{"version":3,"file":"visa-nova-angular.mjs","sources":["../../../projects/nova-angular/src/lib/listener-service/listener.service.ts","../../../projects/nova-angular/src/lib/dropdown-item/dropdown-item.directive.ts","../../../projects/nova-angular/src/lib/nova-lib.constants.ts","../../../projects/nova-angular/src/lib/add-arrow-keys/add-arrow-keys.directive.ts","../../../projects/nova-angular/src/lib/alternate/alternate.directive.ts","../../../projects/nova-angular/src/lib/breakpoints/breakpoints.directive.ts","../../../projects/nova-angular/src/lib/dual-icons/dual-icons.directive.ts","../../../projects/nova-angular/src/lib/elevation/elevation.directive.ts","../../../projects/nova-angular/src/lib/flex/flex.directive.ts","../../../projects/nova-angular/src/lib/nova-lib.utils.ts","../../../projects/nova-angular/src/lib/margin/margin.directive.ts","../../../projects/nova-angular/src/lib/opens-in-new-tab/opens-in-new-tab.directive.ts","../../../projects/nova-angular/src/lib/padding/padding.directive.ts","../../../projects/nova-angular/src/lib/screenreader-only/screenreader-only.directive.ts","../../../projects/nova-angular/src/lib/surface/surface.directive.ts","../../../projects/nova-angular/src/lib/nova-common.module.ts","../../../projects/nova-angular/src/lib/app-ready/app-ready.service.ts","../../../projects/nova-angular/src/lib/id-generator/id-generator.service.ts","../../../projects/nova-angular/src/lib/checkbox/checkbox.directive.ts","../../../projects/nova-angular/src/lib/utilities/values-differ.ts","../../../projects/nova-angular/src/lib/utilities/index.ts","../../../projects/nova-angular/src/lib/radio-group/radio-group.directive.ts","../../../projects/nova-angular/src/lib/toggle-button/toggle-button.directive.ts","../../../projects/nova-angular/src/lib/toggle-container/toggle-container.directive.ts","../../../projects/nova-angular/src/lib/toggle/toggle.directive.ts","../../../projects/nova-angular/src/lib/radio/radio.directive.ts","../../../projects/nova-angular/src/lib/checkbox-panel/checkbox-panel.directive.ts","../../../projects/nova-angular/src/lib/badge/badge.directive.ts","../../../projects/nova-angular/src/lib/dropdown-menu/dropdown-menu.directive.ts","../../../projects/nova-angular/src/lib/floating-ui-element/floating-ui-element.directive.ts","../../../projects/nova-angular/src/lib/floating-ui-trigger/floating-ui-trigger.directive.ts","../../../projects/nova-angular/src/lib/floating-ui/floating-ui.constants.ts","../../../projects/nova-angular/src/lib/floating-ui/floating-ui.service.ts","../../../projects/nova-angular/src/lib/accordion/accordion.directive.ts","../../../projects/nova-angular/src/lib/button/button.constants.ts","../../../projects/nova-angular/src/lib/accordion-heading/accordion-heading.directive.ts","../../../projects/nova-angular/src/lib/accordion-item/accordion-item.directive.ts","../../../projects/nova-angular/src/lib/nav/nav.directive.ts","../../../projects/nova-angular/src/lib/listbox/listbox.service.ts","../../../projects/nova-angular/src/lib/listbox/listbox.directive.ts","../../../projects/nova-angular/src/lib/listbox-item/listbox-item.component.ts","../../../projects/nova-angular/src/lib/listbox-item/listbox-item.component.html","../../../projects/nova-angular/src/lib/nova-lib.service.ts","../../../projects/nova-angular/src/lib/panel-content/panel-content.directive.ts","../../../projects/nova-angular/src/lib/tab-list/tab-list.directive.ts","../../../projects/nova-angular/src/lib/tab-item/tab-item.directive.ts","../../../projects/nova-angular/src/lib/icon-toggle-default/icon-toggle-default.directive.ts","../../../projects/nova-angular/src/lib/icon-toggle-rotated/icon-toggle-rotated.directive.ts","../../../projects/nova-angular/src/lib/icon-toggle/icon-toggle.component.ts","../../../projects/nova-angular/src/lib/icon-toggle/icon-toggle.component.html","../../../projects/nova-angular/src/lib/icon/icon.constants.ts","../../../projects/nova-angular/src/lib/icon-toggle/icon-toggle.directive.ts","../../../projects/nova-angular/src/lib/arrow/arrow.directive.ts","../../../projects/nova-angular/src/lib/tooltip/tooltip.directive.ts","../../../projects/nova-angular/src/lib/floating-ui-container/floating-ui-container.directive.ts","../../../projects/nova-angular/src/lib/input/input.directive.ts","../../../projects/nova-angular/src/lib/select/select.directive.ts","../../../projects/nova-angular/src/lib/input-container/input-container.component.ts","../../../projects/nova-angular/src/lib/input-container/input-container.component.html","../../../projects/nova-angular/src/lib/circular-progress/circular-progress.component.ts","../../../projects/nova-angular/src/lib/circular-progress/circular-progress.component.html","../../../projects/nova-angular/src/lib/label/label.directive.ts","../../../projects/nova-angular/src/lib/listbox-container/listbox-container.directive.ts","../../../projects/nova-angular/src/lib/combobox/combobox.directive.ts","../../../projects/nova-angular/src/lib/button/button.directive.ts","../../../projects/nova-angular/src/lib/chip/chip.directive.ts","../../../projects/nova-angular/src/lib/input-message/input-message.directive.ts","../../../projects/nova-angular/src/lib/switch/switch.directive.ts","../../../projects/nova-angular/src/lib/nova-forms.module.ts","../../../projects/nova-angular/src/lib/accordion-panel/accordion-panel.directive.ts","../../../projects/nova-angular/src/lib/anchor-link-menu-header/anchor-link-menu-header.directive.ts","../../../projects/nova-angular/src/lib/anchor-link-menu/anchor-link-menu.directive.ts","../../../projects/nova-angular/src/lib/avatar/avatar.directive.ts","../../../projects/nova-angular/src/lib/banner/banner.directive.ts","../../../projects/nova-angular/src/lib/breadcrumbs/breadcrumbs.directive.ts","../../../projects/nova-angular/src/lib/content-card-body/content-card-body.directive.ts","../../../projects/nova-angular/src/lib/content-card-image/content-card-image.directive.ts","../../../projects/nova-angular/src/lib/content-card-subtitle/content-card-subtitle.directive.ts","../../../projects/nova-angular/src/lib/content-card/content-card.directive.ts","../../../projects/nova-angular/src/lib/content-card-title-link/content-card-title-link.directive.ts","../../../projects/nova-angular/src/lib/content-card-title/content-card-title.directive.ts","../../../projects/nova-angular/src/lib/dialog/dialog.directive.ts","../../../projects/nova-angular/src/lib/dialog-header/dialog-header.directive.ts","../../../projects/nova-angular/src/lib/dialog-text/dialog-text.directive.ts","../../../projects/nova-angular/src/lib/divider/divider.directive.ts","../../../projects/nova-angular/src/lib/dropdown-list/dropdown-list.directive.ts","../../../projects/nova-angular/src/lib/flag/flag.directive.ts","../../../projects/nova-angular/src/lib/footer/footer.directive.ts","../../../projects/nova-angular/src/lib/icon/icon.component.ts","../../../projects/nova-angular/src/lib/icon/icon.component.html","../../../projects/nova-angular/src/lib/linear-progress/linear-progress.directive.ts","../../../projects/nova-angular/src/lib/link/link.directive.ts","../../../projects/nova-angular/src/lib/message-content/message-content.directive.ts","../../../projects/nova-angular/src/lib/message-icon/message-icon.directive.ts","../../../projects/nova-angular/src/lib/message/message.constants.ts","../../../projects/nova-angular/src/lib/message/message.directive.ts","../../../projects/nova-angular/src/lib/pagination-overflow/pagination-overflow.directive.ts","../../../projects/nova-angular/src/lib/pagination/pagination.directive.ts","../../../projects/nova-angular/src/lib/panel-body/panel-body.directive.ts","../../../projects/nova-angular/src/lib/panel-toggle-button/panel-toggle-button.directive.ts","../../../projects/nova-angular/src/lib/panel/panel.directive.ts","../../../projects/nova-angular/src/lib/section-message/section-message.directive.ts","../../../projects/nova-angular/src/lib/skip-to-content/skip-to-content.directive.ts","../../../projects/nova-angular/src/lib/table-wrapper/table-wrapper.directive.ts","../../../projects/nova-angular/src/lib/table/table.constants.ts","../../../projects/nova-angular/src/lib/table/table.directive.ts","../../../projects/nova-angular/src/lib/td/td.directive.ts","../../../projects/nova-angular/src/lib/th/th.directive.ts","../../../projects/nova-angular/src/lib/typography/typography.directive.ts","../../../projects/nova-angular/src/lib/visa-logo/visa-logo.component.ts","../../../projects/nova-angular/src/lib/wizard-step/wizard-step.directive.ts","../../../projects/nova-angular/src/lib/wizard/wizard.directive.ts","../../../projects/nova-angular/src/lib/nova-lib.module.ts","../../../projects/nova-angular/src/lib/combobox/combobox.constants.ts","../../../projects/nova-angular/src/lib/divider/divider.constants.ts","../../../projects/nova-angular/src/lib/pagination-control/pagination.control.ts","../../../projects/nova-angular/src/lib/combobox/combobox.service.ts","../../../projects/nova-angular/src/index.ts","../../../projects/nova-angular/src/visa-nova-angular.ts"],"sourcesContent":["/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { effect, Injectable } from '@angular/core';\nimport { Unsubscribable } from '../types';\n\n@Injectable()\nexport class ListenerService {\n  public listeners: (() => void)[] = [];\n  public navListeners: (() => void)[] = []; // For navigation events added by nova-lib-service\n  public navSubscriptions: (Unsubscribable | undefined)[] = []; // For navigation subscriptions added by nova-lib-service\n  public subscriptions: (Unsubscribable | undefined)[] = [];\n\n  cleanupEffect = effect((onCleanup) => {\n    onCleanup(() => {\n      this.cleanup();\n      this.cleanupNavListeners();\n    });\n  });\n\n  cleanup(): void {\n    this.listeners?.forEach((listener) => listener());\n    this.listeners = [];\n    this.subscriptions?.forEach((subscription) => subscription?.unsubscribe());\n    this.subscriptions = [];\n  }\n\n  cleanupNavListeners(): void {\n    this.navListeners?.forEach((listener) => listener());\n    this.navListeners = [];\n    this.navSubscriptions?.forEach((sub) => sub?.unsubscribe());\n    this.navSubscriptions = [];\n  }\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport {\n  afterNextRender,\n  booleanAttribute,\n  computed,\n  Directive,\n  ElementRef,\n  EventEmitter,\n  inject,\n  input,\n  InputSignalWithTransform,\n  Signal,\n  signal,\n  WritableSignal\n} from '@angular/core';\nimport { ListenerService } from '../listener-service/listener.service';\n\n@Directive({\n  host: {\n    class: 'v-dropdown-item v-listbox-item',\n\n    '[attr.disabled]': 'disabled() ? \"disabled\" : null',\n\n    '[class.v-button]': 'buttonItem()',\n    '[class.v-button-tertiary]': 'buttonItem()',\n    '[class.v-justify-content-start]': 'buttonItem()',\n\n    '(click)': 'clicked.emit($event)'\n  },\n  providers: [ListenerService],\n  selector: '[v-dropdown-item]',\n  standalone: true\n})\nexport class DropdownItemDirective {\n  constructor() {\n    afterNextRender({\n      read: () => {\n        this.tagName.set(this.el.nativeElement.tagName.toLowerCase());\n      }\n    });\n  }\n  public readonly el: ElementRef = inject(ElementRef);\n  public readonly listenerService: ListenerService = inject(ListenerService);\n  private readonly tagName: WritableSignal<string> = signal<string>('');\n  protected readonly buttonItem: Signal<boolean> = computed(() => this.tagName() === 'button');\n\n  /**\n   * Marks item as selected when true.\n   * @default false\n   */\n  readonly disabled: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    transform: booleanAttribute\n  }); // used for floating-ui-container closeOnClick\n\n  /**\n   * Emits event when host interactive element is clicked.\n   */\n  readonly clicked: EventEmitter<Event> = new EventEmitter<Event>();\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nexport const DOWN_ARROW_KEY = 'ArrowDown';\nexport const END_KEY = 'End';\nexport const ESCAPE_KEY = 'Escape';\nexport const HOME_KEY = 'Home';\nexport const LEFT_ARROW_KEY = 'ArrowLeft';\nexport const RIGHT_ARROW_KEY = 'ArrowRight';\nexport const SPACE_KEY = ' ';\nexport const SPACE_CODE = 'Space';\nexport const TAB_KEY = 'Tab';\nexport const UP_ARROW_KEY = 'ArrowUp';\nexport const ENTER_KEY = 'Enter';\nexport const BACKSPACE_KEY = 'Backspace';\n\nexport const SpacingProperties = {\n  INHERIT: 'inherit',\n  NORMAL: 'normal',\n  AUTO: 'auto'\n} as const;\n\nexport type SpacingProperties = (typeof SpacingProperties)[keyof typeof SpacingProperties] | number;\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { Directive, Renderer2, RendererFactory2, Signal, contentChildren, inject } from '@angular/core';\nimport { DropdownItemDirective } from '../dropdown-item/dropdown-item.directive';\nimport { DOWN_ARROW_KEY, ESCAPE_KEY, LEFT_ARROW_KEY, RIGHT_ARROW_KEY, UP_ARROW_KEY } from '../nova-lib.constants';\n\n@Directive({\n  selector: '[vAddArrowKeys]',\n  standalone: true\n})\nexport class AddArrowKeysDirective {\n  private readonly items: Signal<readonly DropdownItemDirective[]> = contentChildren(DropdownItemDirective, {\n    descendants: true\n  });\n  private readonly renderer: Renderer2 = inject(RendererFactory2).createRenderer(null, null);\n\n  ngAfterContentInit() {\n    const itemsArray = this.items()?.filter((item) => !item.el.nativeElement.disabled) ?? [];\n\n    if (!itemsArray.length) return;\n\n    itemsArray.forEach((item, index) => {\n      item.listenerService.navListeners.push(\n        this.renderer.listen(item.el.nativeElement, 'keydown', (event: KeyboardEvent) => {\n          if (\n            event.key === ESCAPE_KEY ||\n            ![DOWN_ARROW_KEY, RIGHT_ARROW_KEY, UP_ARROW_KEY, LEFT_ARROW_KEY].includes(event.key)\n          )\n            return;\n\n          event.preventDefault();\n          const isForward = [DOWN_ARROW_KEY, RIGHT_ARROW_KEY].includes(event.key);\n          const nextIndex = isForward\n            ? (index + 1) % itemsArray.length\n            : (index - 1 + itemsArray.length) % itemsArray.length;\n          itemsArray[nextIndex].el.nativeElement.focus();\n        })\n      );\n    });\n  }\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { Directive } from '@angular/core';\n\n/**\n * Directive to add alternate surface class, <code>class=\"v-alternate\"</code>, to the host element.\n */\n@Directive({\n  host: {\n    class: 'v-alternate'\n  },\n  standalone: true,\n  selector: '[vAlternate]'\n})\nexport class AlternateDirective {}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { booleanAttribute, computed, Directive, input, InputSignalWithTransform, Signal } from '@angular/core';\n\nexport const BreakpointType = {\n  XS: 'xs',\n  SM: 'sm',\n  MD: 'md',\n  LG: 'lg',\n  XL: 'xl',\n  XXL: 'xxl',\n  MOBILE: 'mobile',\n  DESKTOP: 'desktop'\n} as const;\n\nexport type BreakpointType = (typeof BreakpointType)[keyof typeof BreakpointType];\n\nexport const coerceBreakpoint = (\n  type: 'container' | 'media',\n  classes: BreakpointType | BreakpointType[] | null\n): string | null => {\n  if (!classes) return null;\n  if (Array.isArray(classes)) return classes.map((bp) => `v-${bp}-${type}-hide`).join(' ');\n  return `v-${classes}-${type}-hide`;\n};\n\n@Directive({\n  host: {\n    '[class]': 'classes()',\n    '[class.v-hide]': 'vHide()'\n  },\n  selector: '[vContainerHide], [vMediaHide], [vHide]',\n  standalone: true\n})\nexport class BreakpointsDirective {\n  protected readonly classes: Signal<string> = computed(() => [this.vContainerHide(), this.vMediaHide()].join(' '));\n\n  /**\n   * Hides element when within given _container_ breakpoint.\n   */\n  readonly vContainerHide: InputSignalWithTransform<string | null, BreakpointType | BreakpointType[] | null> = input<\n    null | string,\n    BreakpointType | BreakpointType[] | null\n  >(null, {\n    transform: (v) => coerceBreakpoint('container', v)\n  });\n\n  /**\n   * Hides element when true.\n   */\n  readonly vHide: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Hides element when within given _media_ breakpoint.\n   */\n  readonly vMediaHide: InputSignalWithTransform<string | null, BreakpointType | BreakpointType[] | null> = input<\n    null | string,\n    BreakpointType | BreakpointType[] | null\n  >(null, {\n    transform: (v) => coerceBreakpoint('media', v)\n  });\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { Directive } from '@angular/core';\n\n/**\n * The class, <code>class=\"v-icon-tow-color\"</code>, applied by this directive only changes Visa Library icons.\n */\n@Directive({\n  host: {\n    class: 'v-icon-two-color'\n  },\n  selector: '[v-icon-two-color], ',\n  standalone: true\n})\nexport class DualIconDirective {}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { Directive, input, InputSignal } from '@angular/core';\n\nexport const ElevationType = {\n  NONE: 'none',\n  INSET: 'inset',\n  XS: 'xs',\n  SM: 'sm',\n  MD: 'md',\n  LG: 'lg',\n  XL: 'xl',\n  XXL: 'xxl'\n} as const;\n\nexport type ElevationType = (typeof ElevationType)[keyof typeof ElevationType];\n\n@Directive({\n  host: {\n    '[class.v-elevation-none]': 'vElevation() === \"none\"',\n    '[class.v-elevation-inset]': 'vElevation() === \"inset\"',\n    '[class.v-elevation-xsmall]': 'vElevation() === \"xs\"',\n    '[class.v-elevation-small]': 'vElevation() === \"sm\"',\n    '[class.v-elevation-medium]': 'vElevation() === \"md\"',\n    '[class.v-elevation-large]': 'vElevation() === \"lg\"',\n    '[class.v-elevation-xlarge]': 'vElevation() === \"xl\"',\n    '[class.v-elevation-xxlarge]': 'vElevation() === \"xxl\"'\n  },\n  selector: '[vElevation]',\n  standalone: true\n})\nexport class ElevationDirective {\n  /**\n   * Applies elevation given.\n   */\n  readonly vElevation: InputSignal<ElevationType | undefined> = input<ElevationType>();\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport {\n  booleanAttribute,\n  computed,\n  Directive,\n  input,\n  InputSignal,\n  InputSignalWithTransform,\n  Signal\n} from '@angular/core';\nimport { SpacingProperties } from '../nova-lib.constants';\n\n@Directive({\n  host: {\n    '[class.v-align-content-around]': 'vAlignContentAround()',\n    '[class.v-align-content-between]': 'vAlignContentBetween()',\n    '[class.v-align-content-center]': 'vAlignContentCenter()',\n    '[class.v-align-content-end]': 'vAlignContentEnd()',\n    '[class.v-align-content-evenly]': 'vAlignContentEvenly()',\n    '[class.v-align-content-start]': 'vAlignContentStart()',\n\n    '[class.v-align-items-baseline]': 'vAlignItemsBaseline()',\n    '[class.v-align-items-center]': 'vAlignItemsCenter()',\n    '[class.v-align-items-end]': 'vAlignItemsEnd()',\n    '[class.v-align-items-start]': 'vAlignItemsStart()',\n    '[class.v-align-items-stretch]': 'vAlignItemsStretch()',\n\n    '[class.v-align-self-auto]': 'vAlignSelfAuto()',\n    '[class.v-align-self-baseline]': 'vAlignSelfBaseline()',\n    '[class.v-align-self-center]': 'vAlignSelfCenter()',\n    '[class.v-align-self-end]': 'vAlignSelfEnd()',\n    '[class.v-align-self-start]': 'vAlignSelfStart()',\n    '[class.v-align-self-stretch]': 'vAlignSelfStretch()',\n\n    '[class.v-flex]': 'vFlex() || vFlexCol() || vFlexRow()',\n    '[class.v-flex-col]': 'vFlexCol()',\n    '[class.v-flex-col-reverse]': 'vFlexColReverse()',\n    '[class.v-flex-grow]': 'vFlexGrow()',\n    '[class.v-flex-grow-0]': 'vFlexGrow0()',\n    '[class.v-flex-inline]': 'vFlexInline()',\n    '[class.v-flex-nowrap]': 'vFlexNoWrap()',\n    '[class.v-flex-row]': 'vFlexRow() || (vFlex() && (!vFlexCol() && !vFlexColReverse() && !vFlexRowReverse()))',\n    '[class.v-flex-row-reverse]': 'vFlexRowReverse()',\n    '[class.v-flex-shrink]': 'vFlexShrink()',\n    '[class.v-flex-shrink-0]': 'vFlexShrink0()',\n    '[class.v-flex-wrap]': 'vFlexWrap()',\n    '[class.v-flex-wrap-reverse]': 'vFlexWrapReverse()',\n\n    '[class.v-justify-content-around]': 'vJustifyContentAround()',\n    '[class.v-justify-content-between]': 'vJustifyContentBetween()',\n    '[class.v-justify-content-center]': 'vJustifyContentCenter()',\n    '[class.v-justify-content-end]': 'vJustifyContentEnd()',\n    '[class.v-justify-content-evenly]': 'vJustifyContentEvenly()',\n    '[class.v-justify-content-start]': 'vJustifyContentStart()',\n\n    '[class]': 'classes()',\n\n    '[style.flex-basis]': 'vFlexBasis()'\n  },\n  selector: `[vFlex], [vFlexInline], [vGap], [vFlexGrow], [vFlexGrow0],\n  [vFlexShrink], [vFlexShrink0], [vFlexBasis], [vAlignSelfStart], [vAlignSelfEnd],\n  [vAlignSelfCenter], [vAlignSelfStretch], [vAlignSelfAuto], [vAlignSelfBaseline],`,\n  standalone: true\n})\nexport class FlexDirective {\n  protected readonly classes: Signal<string> = computed(() =>\n    [\n      this.vColGap() ? `v-col-gap-${this.vColGap()}` : null, // vGap=\"4\"\n      this.vGap() ? `v-gap-${this.vGap()}` : null, // vGap=\"4\"\n      this.vRowGap() ? `v-row-gap-${this.vRowGap()}` : null // vGap=\"4\"\n    ].join(' ')\n  );\n\n  /**\n /**\n   * Sets property <code>align-content: space-around</code>. <br>\n   * This property should be used alongside a FlexDirective selector (see selectors above).\n   */\n  readonly vAlignContentAround: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets property <code>align-content: space-between</code>. <br>\n   * This property should be used alongside a FlexDirective selector (see selectors above).\n   */\n  readonly vAlignContentBetween: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets property <code>align-content: center</code>. <br>\n   * This property should be used alongside a FlexDirective selector (see selectors above)\n   */\n  readonly vAlignContentCenter: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets property <code>align-content: end</code>. <br>\n   * This property should be used alongside a FlexDirective selector (see selectors above).\n   */\n  readonly vAlignContentEnd: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets property <code>align-content: start</code>. <br>\n   * This property should be used alongside a FlexDirective selector (see selectors above)\n   */\n  readonly vAlignContentStart: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets property <code>align-content: space-evenly</code>. <br>\n   * This property should be used alongside a FlexDirective selector (see selectors above).\n   */\n  readonly vAlignContentEvenly: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets property <code>align-items: baseline</code>. <br>\n   * This property should be used alongside a FlexDirective selector (see selectors above).\n   */\n  readonly vAlignItemsBaseline: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets property <code>align-content: center</code>. <br>\n   * This property should be used alongside a FlexDirective selector (see selectors above).\n   */\n  readonly vAlignItemsCenter: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets property <code>align-content: end</code>. <br>\n   * This property should be used alongside a FlexDirective selector (see selectors above).\n   */\n  readonly vAlignItemsEnd: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets property <code>align-content: start</code>. <br>\n   * This property should be used alongside a FlexDirective selector (see selectors above).\n   */\n  readonly vAlignItemsStart: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets property <code>align-items: stretch</code>. <br>\n   * This property should be used alongside a FlexDirective selector (see selectors above).\n   */\n  readonly vAlignItemsStretch: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets property <code>align-self: auto</code>. <br>\n   * This property is also a selector and can be used by itself on the <i>child</i> of a flex element.\n   */\n  readonly vAlignSelfAuto: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets property <code>align-self: baseline</code>. <br>\n   * This property is also a selector and can be used by itself on the <i>child</i> of a flex element.\n   */\n  readonly vAlignSelfBaseline: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets property <code>align-self: center</code>. <br>\n   * This property is also a selector and can be used by itself on the <i>child</i> of a flex element.\n   */\n  readonly vAlignSelfCenter: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets property <code>align-self: end</code>. <br>\n   * This property is also a selector and can be used by itself on the <i>child</i> of a flex element.\n   */\n  readonly vAlignSelfEnd: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets property <code>align-self: start</code>. <br>\n   * This property is also a selector and can be used by itself on the <i>child</i> of a flex element.\n   */\n  readonly vAlignSelfStart: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets property <code>align-self: stretch</code>. <br>\n   * This property is also a selector and can be used by itself on the <i>child</i> of a flex element.\n   */\n  readonly vAlignSelfStretch: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets property <code>column-gap</code>. <br>Accepts gap: 0 - 48 and SpacingProperties.\n   */\n  readonly vColGap: InputSignal<null | number | SpacingProperties | string | undefined> = input<\n    null | number | SpacingProperties | string | undefined\n  >(null);\n\n  /**\n   * Sets property <code>display: flex</code>. <br>\n   * This property is also a selector and can be used by itself on a flex element.\n   */\n  readonly vFlex: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets property <code>flex-basis: &lt;value&gt;</code>. <br>\n   * Accepts a string that should be in the form of a percentage or CSS unit. <br />\n   * This property is also a selector and can be used by itself on the <i>child</i> of a flex element.\n   */\n  readonly vFlexBasis: InputSignal<null | string> = input<null | string>(null);\n\n  /**\n   * Sets property <code>flex-direction: column</code>. <br>\n   * This property should be used alongside a FlexDirective selector (see selectors above).\n   */\n  readonly vFlexCol: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets property <code>flex-direction: column-reverse</code>. <br>\n   * This property should be used alongside a FlexDirective selector (see selectors above).\n   */\n  readonly vFlexColReverse: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets property <code>flex-grow: 1</code>. <br>\n   * This property is also a selector and can be used by itself on the <i>child</i> of a flex element.\n   */\n  readonly vFlexGrow: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets property <code>flex-grow: 0</code>. <br>\n   * This property is also a selector and can be used by itself on the <i>child</i> of a flex element.\n   */\n  readonly vFlexGrow0: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets property <code>display: inline-flex</code>. <br>\n   * This property is also a selector and can be used by itself on a flex element.\n   */\n  readonly vFlexInline: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets property <code>flex-wrap: no-wrap</code>. <br>\n   * This property should be used alongside a FlexDirective selector (see selectors above).\n   */\n  readonly vFlexNoWrap: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets property <code>flex-direction: row</code>. <br>\n   * This property should be used alongside a FlexDirective selector (see selectors above).\n   */\n  readonly vFlexRow: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets property <code>flex-direction: row-reverse</code>. <br>\n   * This property should be used alongside a FlexDirective selector (see selectors above).\n   */\n  readonly vFlexRowReverse: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets property <code>flex-shrink: 1</code>. <br>\n   * This property is also a selector and can be used by itself on the <i>child</i> of a flex element.\n   */\n  readonly vFlexShrink: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets property <code>flex-shrink: 0</code>. <br>\n   * This property is also a selector and can be used by itself on the <i>child</i> of a flex element.\n   */\n  readonly vFlexShrink0: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets property <code>flex-wrap: wrap</code>. <br>\n   * This property should be used alongside a FlexDirective selector (see selectors above).\n   */\n  readonly vFlexWrap: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets property <code>flex-wrap: wrap-reverse</code>. <br>\n   * This property should be used alongside a FlexDirective selector (see selectors above).\n   */\n  readonly vFlexWrapReverse: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets property <code>gap</code>. <br>Accepts gap: 0 - 48 and SpacingProperties.\n   */\n  readonly vGap: InputSignal<null | number | SpacingProperties | string | undefined> = input<\n    null | number | SpacingProperties | string | undefined\n  >(null);\n\n  /**\n   * Sets property <code>justify-content: space-around</code>. <br>\n   * This property should be used alongside a FlexDirective selector (see selectors above).\n   */\n  readonly vJustifyContentAround: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets property <code>justify-content: space-between</code>. <br>\n   * This property should be used alongside a FlexDirective selector (see selectors above).\n   */\n  readonly vJustifyContentBetween: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets property <code>justify-content: center</code>. <br>\n   * This property should be used alongside a FlexDirective selector (see selectors above).\n   */\n  readonly vJustifyContentCenter: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets property <code>justify-content: end</code>. <br>\n   * This property should be used alongside a FlexDirective selector (see selectors above).\n   */\n  readonly vJustifyContentEnd: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets property <code>justify-content: space-evenly</code>. <br>\n   * This property should be used alongside a FlexDirective selector (see selectors above).\n   */\n  readonly vJustifyContentEvenly: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets property <code>justify-content: start</code>. <br>\n   * This property should be used alongside a FlexDirective selector (see selectors above).\n   */\n  readonly vJustifyContentStart: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets property <code>row-gap</code>. <br>Accepts gap: 0 - 48 and SpacingProperties.\n   */\n  readonly vRowGap: InputSignal<null | number | SpacingProperties | string | undefined> = input<\n    null | number | SpacingProperties | string | undefined\n  >(null);\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { numberAttribute } from '@angular/core';\n\nexport function coerceSpacing(v: string | number | null | undefined, prefix: string): string | null {\n  if (!v && v !== 0) return null;\n  const num = +v;\n  // If negative number, return with - prefix\n  if (!isNaN(num) && num < 0) return `-${prefix}${v}`;\n  return `${prefix}-${v}`;\n}\n\nexport const pxAttribute = <T = unknown | null>(value: unknown, fallback = null as T): string | T => {\n  const asNumber = numberAttribute(value);\n  return Number.isNaN(asNumber) ? fallback : `${asNumber}px`;\n};\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { computed, Directive, input, InputSignalWithTransform, Signal } from '@angular/core';\nimport { SpacingProperties } from '../nova-lib.constants';\nimport { coerceSpacing } from '../nova-lib.utils';\n\n@Directive({\n  host: {\n    '[class]': 'classes()'\n  },\n  selector:\n    '[vM], ' + // all margins\n    '[vMB], ' + // margin block end\n    '[vML], ' + // margin inline start\n    '[vMR], ' + // margin inline end\n    '[vMT], ' + // margin block start\n    '[vMX], ' + // margin inline\n    '[vMY], ', // margin block\n  standalone: true\n})\nexport class MarginDirective {\n  protected readonly classes: Signal<string> = computed(() =>\n    [this.vM(), this.vMB(), this.vML(), this.vMR(), this.vMT(), this.vMX(), this.vMY()].join(' ')\n  );\n\n  /**\n   * Sets margin-block-start property. <br>\n   * Accepts: 0 - 48 or <code>SpacingProperties</code>.\n   */\n  readonly vM: InputSignalWithTransform<string | null, SpacingProperties | string | undefined> = input<\n    string | null,\n    SpacingProperties | string | undefined\n  >(null, {\n    transform: (v) => coerceSpacing(v, 'v-m')\n  });\n\n  /**\n   * Sets margin-inline-end property. <br>\n   * Accepts: 0 - 48 or <code>SpacingProperties</code>.\n   */\n  readonly vMB: InputSignalWithTransform<string | null, SpacingProperties | string | undefined> = input<\n    string | null,\n    SpacingProperties | string | undefined\n  >(null, {\n    transform: (v) => coerceSpacing(v, 'v-mb')\n  });\n\n  /**\n   * Sets margin-block-end property. <br>\n   * Accepts: 0 - 48 or <code>SpacingProperties</code>.\n   */\n  readonly vML: InputSignalWithTransform<string | null, SpacingProperties | string | undefined> = input<\n    string | null,\n    SpacingProperties | string | undefined\n  >(null, {\n    transform: (v) => coerceSpacing(v, 'v-ml')\n  });\n\n  /**\n   * Sets margin-inline-start property. <br>\n   * Accepts: 0 - 48 or <code>SpacingProperties</code>.\n   */\n  readonly vMR: InputSignalWithTransform<string | null, SpacingProperties | string | undefined> = input<\n    string | null,\n    SpacingProperties | string | undefined\n  >(null, {\n    transform: (v) => coerceSpacing(v, 'v-mr')\n  });\n\n  /**\n   * Sets margin-inline property. <br>\n   * Accepts: 0 - 48 or <code>SpacingProperties</code>.\n   */\n  readonly vMT: InputSignalWithTransform<string | null, SpacingProperties | string | undefined> = input<\n    string | null,\n    SpacingProperties | string | undefined\n  >(null, {\n    transform: (v) => coerceSpacing(v, 'v-mt')\n  });\n\n  /**\n   * Sets margin-block property. <br>\n   * Accepts: 0 - 48 or <code>SpacingProperties</code>.\n   */\n  readonly vMX: InputSignalWithTransform<string | null, SpacingProperties | string | undefined> = input<\n    string | null,\n    SpacingProperties | string | undefined\n  >(null, {\n    transform: (v) => coerceSpacing(v, 'v-mx')\n  });\n\n  /**\n   * Sets margin property. <br>\n   * Accepts: 0 - 48 or <code>SpacingProperties</code>.\n   */\n  readonly vMY: InputSignalWithTransform<string | null, SpacingProperties | string | undefined> = input<\n    string | null,\n    SpacingProperties | string | undefined\n  >(null, {\n    transform: (v) => coerceSpacing(v, 'v-my')\n  });\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport {\n  afterNextRender,\n  computed,\n  Directive,\n  ElementRef,\n  inject,\n  input,\n  InputSignal,\n  Signal,\n  signal,\n  WritableSignal\n} from '@angular/core';\n\n@Directive({\n  host: {\n    rel: 'noopener noreferrer',\n    target: 'blank',\n\n    '[attr.aria-label]': 'ariaLabel()'\n  },\n  selector: '[vOpensInNewTab], ',\n  standalone: true\n})\nexport class OpensInNewTabDirective {\n  constructor() {\n    afterNextRender({\n      read: () => {\n        // Ensure the textContent is trimmed to avoid leading/trailing whitespace issues\n        this.textContent.set(this.el.nativeElement.textContent?.trim() || null);\n      }\n    });\n  }\n\n  private readonly el: ElementRef<HTMLAnchorElement> = inject(ElementRef);\n  private readonly textContent: WritableSignal<string | null> = signal(null);\n\n  /**\n   * Allows user to set custom aria-label attribute.\n   * @default '&lt;inner-text-of-link&gt; (opens in new tab)'\n   */\n  readonly ariaLabelInput: InputSignal<string | null> = input<string | null>(null, { alias: 'aria-label' });\n  readonly ariaLabel: Signal<string | null> = computed(() => {\n    const textContent = this.textContent();\n    // If ariaLabelInput is set, use it; otherwise, construct a default label\n    const customLabel = textContent ? `${textContent} (opens in new tab)` : null;\n    return this.ariaLabelInput() ?? customLabel;\n  });\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { computed, Directive, input, InputSignalWithTransform, Signal } from '@angular/core';\nimport { type SpacingProperties } from '../nova-lib.constants';\nimport { coerceSpacing } from '../nova-lib.utils';\n\n@Directive({\n  host: {\n    '[class]': 'classes()'\n  },\n  selector:\n    '[vP], ' + // all paddings\n    '[vPB], ' + // padding block end\n    '[vPL], ' + // padding inline start\n    '[vPR], ' + // padding inline end\n    '[vPT], ' + // padding block start\n    '[vPX], ' + // padding inline\n    '[vPY], ', // padding block\n  standalone: true\n})\nexport class PaddingDirective {\n  protected readonly classes: Signal<string> = computed(() =>\n    [this.vP(), this.vPB(), this.vPL(), this.vPR(), this.vPT(), this.vPX(), this.vPY()].join(' ')\n  );\n\n  /**\n   * Sets padding-block-start property. <br>\n   * Accepts: 0 - 48 or <code>SpacingProperties</code>.\n   */\n  readonly vP: InputSignalWithTransform<string | null, SpacingProperties | string | undefined> = input<\n    string | null,\n    SpacingProperties | string | undefined\n  >(null, {\n    transform: (v) => coerceSpacing(v, 'v-p')\n  });\n\n  /**\n   * Sets padding-inline-end property. <br>\n   * Accepts: 0 - 48 or <code>SpacingProperties</code>.\n   */\n  readonly vPB: InputSignalWithTransform<string | null, SpacingProperties | string | undefined> = input<\n    string | null,\n    SpacingProperties | string | undefined\n  >(null, {\n    transform: (v) => coerceSpacing(v, 'v-pb')\n  });\n\n  /**\n   * Sets padding-block-end property. <br>\n   * Accepts: 0 - 48 or <code>SpacingProperties</code>.\n   */\n  readonly vPL: InputSignalWithTransform<string | null, SpacingProperties | string | undefined> = input<\n    string | null,\n    SpacingProperties | string | undefined\n  >(null, {\n    transform: (v) => coerceSpacing(v, 'v-pl')\n  });\n\n  /**\n   * Sets padding-inline-start property. <br>\n   * Accepts: 0 - 48 or <code>SpacingProperties</code>.\n   */\n  readonly vPR: InputSignalWithTransform<string | null, SpacingProperties | string | undefined> = input<\n    string | null,\n    SpacingProperties | string | undefined\n  >(null, {\n    transform: (v) => coerceSpacing(v, 'v-pr')\n  });\n\n  /**\n   * Sets padding-inline property. <br>\n   * Accepts: 0 - 48 or <code>SpacingProperties</code>.\n   */\n  readonly vPT: InputSignalWithTransform<string | null, SpacingProperties | string | undefined> = input<\n    string | null,\n    SpacingProperties | string | undefined\n  >(null, {\n    transform: (v) => coerceSpacing(v, 'v-pt')\n  });\n\n  /**\n   * Sets padding-block property. <br>\n   * Accepts: 0 - 48 or <code>SpacingProperties</code>.\n   */\n  readonly vPX: InputSignalWithTransform<string | null, SpacingProperties | string | undefined> = input<\n    string | null,\n    SpacingProperties | string | undefined\n  >(null, {\n    transform: (v) => coerceSpacing(v, 'v-px')\n  });\n\n  /**\n   * Sets padding property. <br>\n   * Accepts: 0 - 48 or <code>SpacingProperties</code>.\n   */\n  readonly vPY: InputSignalWithTransform<string | null, SpacingProperties | string | undefined> = input<\n    string | null,\n    SpacingProperties | string | undefined\n  >(null, {\n    transform: (v) => coerceSpacing(v, 'v-py')\n  });\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { Directive } from '@angular/core';\n\n@Directive({\n  host: {\n    class: 'v-sr'\n  },\n  selector: '[vSr], [vSR], [vScreenreader], [vScreenReader]',\n  standalone: true\n})\nexport class ScreenreaderOnlyDirective {}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { Directive, input, InputSignal } from '@angular/core';\n\n/**\n * I don't love having 'surface' in the key names,\n * but using just numbers does not work as expected.\n */\nexport const SurfaceType = {\n  Surface1: '1',\n  Surface2: '2',\n  Surface3: '3'\n} as const;\n\nexport type SurfaceType = (typeof SurfaceType)[keyof typeof SurfaceType];\n\n/**\n * Directive to add default surface class, <code>class=\"v-surface\"</code>, to the host element.\n */\n@Directive({\n  host: {\n    class: 'v-surface',\n\n    '[class.v-surface-2]': `vSurface() === '2'`,\n    '[class.v-surface-3]': `vSurface() === '3'`\n  },\n  selector: '[vSurface]',\n  standalone: true\n})\nexport class SurfaceDirective {\n  /**\n   * Applies given surface class. <br>\n   */\n  readonly vSurface: InputSignal<'' | SurfaceType | null> = input<SurfaceType | '' | null>(SurfaceType.Surface1);\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { NgModule } from '@angular/core';\nimport { AddArrowKeysDirective } from './add-arrow-keys/add-arrow-keys.directive';\nimport { AlternateDirective } from './alternate/alternate.directive';\nimport { BreakpointsDirective } from './breakpoints/breakpoints.directive';\nimport { DualIconDirective } from './dual-icons/dual-icons.directive';\nimport { ElevationDirective } from './elevation/elevation.directive';\nimport { FlexDirective } from './flex/flex.directive';\nimport { MarginDirective } from './margin/margin.directive';\nimport { OpensInNewTabDirective } from './opens-in-new-tab/opens-in-new-tab.directive';\nimport { PaddingDirective } from './padding/padding.directive';\nimport { ScreenreaderOnlyDirective } from './screenreader-only/screenreader-only.directive';\nimport { SurfaceDirective } from './surface/surface.directive';\n\n@NgModule({\n  imports: [\n    AddArrowKeysDirective,\n    AlternateDirective,\n    BreakpointsDirective,\n    DualIconDirective,\n    ElevationDirective,\n    FlexDirective,\n    MarginDirective,\n    OpensInNewTabDirective,\n    PaddingDirective,\n    ScreenreaderOnlyDirective,\n    SurfaceDirective\n  ],\n  exports: [\n    AddArrowKeysDirective,\n    AlternateDirective,\n    BreakpointsDirective,\n    DualIconDirective,\n    ElevationDirective,\n    FlexDirective,\n    MarginDirective,\n    OpensInNewTabDirective,\n    PaddingDirective,\n    ScreenreaderOnlyDirective,\n    SurfaceDirective\n  ]\n})\nexport class NovaCommonModule {}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { Injectable, PLATFORM_ID, inject } from '@angular/core';\n\n/**\n * @note Where possible, use Angular's new `afterRender` and `afterNextRender` lifecycle hooks instead of this service.\n * This service is used internally by the library and can optionally be used directly. <br />\n * It’s required for SSR integration but not necessary for functions behind Angular's renderer.\n */\n@Injectable({\n  providedIn: 'root'\n})\nexport class AppReadyService {\n  private document: Document | null = inject(DOCUMENT, { optional: true });\n  private platformId: object = inject(PLATFORM_ID);\n\n  /**\n   * The isPlatformBrowser property checks if the platform is a browser (as opposed to server).\n   */\n  public readonly isPlatformBrowser: boolean = isPlatformBrowser(this.platformId);\n\n  /**\n   * The isBrowserAndDomAvailable property checks for both the document and the browser platform.\n   */\n  public readonly isBrowserAndDomAvailable: boolean = !!this.document && this.isPlatformBrowser;\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\n/** This was inspired by materials id-generator: https://github.com/angular/components/blob/main/src/cdk/a11y/id-generator.ts */\nimport { APP_ID, inject, Injectable } from '@angular/core';\n\n/**\n * Keeps track of the ID count per prefix. This helps us make the IDs a bit more deterministic.\n */\nlet counters: Record<string, number> = {};\n\n/**\n * Service that generates unique IDs for DOM nodes.\n * Note that this service should not be used inside templates and should only be used within classes or else id will change with every render.\n * @docs {@link https://design.visa.com/developing/angular/services/id-generator | See docs}\n */\n@Injectable({ providedIn: 'root' })\nexport class IdGenerator {\n  private readonly appId: null | string = inject(APP_ID, { optional: true });\n\n  /**\n   * Generates a unique ID with a specific prefix.\n   * @param prefix Prefix to add to the ID.\n   */\n  public newId(prefix: string = ''): string {\n    // Omit the app ID if it's the default `ng`. Since the vast majority of pages have one\n    // Angular app on them, we can reduce the amount of breakages by not adding it.\n    if (this.appId && this.appId !== 'ng') prefix = `${this.appId}-${prefix}`;\n    if (!counters.hasOwnProperty(prefix)) counters[prefix] = 0;\n    return `${prefix}-${counters[prefix]++}`;\n  }\n\n  /**\n   * Resets the counters for the IDs.\n   * This is useful when testing to ensure that the IDs are deterministic.\n   * @deprecated WARNING: This should only be used in tests. Do NOT use this in an actual application.\n   */\n  public static reset(): void {\n    counters = {};\n  }\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport {\n  Directive,\n  ElementRef,\n  InputSignal,\n  InputSignalWithTransform,\n  ModelSignal,\n  Renderer2,\n  Signal,\n  WritableSignal,\n  afterNextRender,\n  booleanAttribute,\n  computed,\n  effect,\n  forwardRef,\n  inject,\n  input,\n  model,\n  signal\n} from '@angular/core';\nimport { CheckboxControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IdGenerator } from '../id-generator/id-generator.service';\nimport { ListenerService } from '../listener-service/listener.service';\n\nconst CHECKBOX_VALUE_ACCESSOR = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => CheckboxDirective),\n  multi: true\n};\n\n@Directive({\n  host: {\n    class: 'v-checkbox',\n    type: 'checkbox',\n\n    '[attr.aria-invalid]': 'invalid()',\n    '[attr.checked]': 'checked() ? \"checked\" : null',\n    '[attr.disabled]': 'disabled() ? \"disabled\" : null',\n    '[attr.id]': 'id()',\n    '[attr.required]': 'required() ? \"required\" : null',\n\n    '(change)': 'handleChange($event)'\n  },\n  providers: [CHECKBOX_VALUE_ACCESSOR, ListenerService],\n  selector: '[v-checkbox]',\n  standalone: true\n})\nexport class CheckboxDirective extends CheckboxControlValueAccessor {\n  constructor() {\n    const el: ElementRef<HTMLInputElement> = inject<ElementRef<HTMLInputElement>>(ElementRef);\n    const renderer: Renderer2 = inject<Renderer2>(Renderer2);\n    super(renderer, el);\n    afterNextRender({\n      write: () => {\n        // if initial checked state is set, set the checked state to the initial value\n        // ie `<input v-checkbox checked>` will set the checked state to '', which is truthy\n        if (this.checked() === '') {\n          this.checked.set(true);\n        }\n      }\n    });\n  }\n\n  public readonly el: ElementRef<HTMLInputElement> = inject<ElementRef<HTMLInputElement>>(ElementRef);\n  private readonly idGenerator: IdGenerator = inject(IdGenerator);\n  public readonly listenerService: ListenerService = inject(ListenerService);\n\n  /**\n   * Sets checked state of component. <br />\n   * Because 'checked' is a native attribute of input[type=\"checkbox\"], it can only be set false by using [checked]=\"false\", not checked=\"false\" <br />\n   * Use [checked] when you want to handle the checked state of the checkbox.\n   * Use (checkedChange) when you want the library to handle the checked state of the checkbox, but get notified of changes.\n   * Use [(checked)] when you want the checked state to reflect changes by both you and the library.\n   */\n  readonly checked: ModelSignal<boolean | null | string> = model<boolean | null | string>(null);\n  // This is required since you can bind [checked] to the host, and we need to update the property when it changes.\n  private readonly checkedEffect = effect(() => {\n    const checked = this.checked();\n    this.setProperty('checked', checked ? checked.toString() : null);\n  });\n\n  /**\n   * Sets checkbox to disabled when true\n   * @default false\n   */\n  readonly disabledInput: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    alias: 'disabled',\n    transform: booleanAttribute\n  });\n  private readonly disabledInternal: WritableSignal<boolean | null> = signal<boolean | null>(null);\n  readonly disabled: Signal<boolean | null> = computed(() => this.disabledInput() ?? this.disabledInternal());\n  /** Fires when a formControl's disabled state updates  */\n  override setDisabledState(isDisabled: boolean | null): void {\n    super.setDisabledState(!!isDisabled);\n    this.disabledInternal.set(isDisabled);\n  }\n\n  /**\n   * Sets custom id.\n   * @default idGenerator.newId('v-checkbox')\n   * @builtin true\n   */\n  readonly id: InputSignal<string> = input<string>(this.idGenerator.newId('v-checkbox'));\n\n  /**\n   * Marks checkbox as invalid when true.\n   * @default false\n   */\n  readonly invalid: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets checkbox to indeterminate when true.\n   * @default false\n   */\n  readonly indeterminate: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    transform: booleanAttribute\n  });\n  // This is required since you can bind [indeterminate] to the host, and we need to update the property when it changes.\n  private readonly indeterminateEffect = effect(() => {\n    const indeterminate = this.indeterminate();\n    this.setProperty('indeterminate', indeterminate ? true : null);\n  });\n\n  /**\n   * Marks checkbox as required when true.\n   * @default false\n   */\n  readonly required: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    transform: booleanAttribute\n  });\n\n  handleChange(event: Event): void {\n    const { checked } = event.target as HTMLInputElement;\n    this.onChange(checked);\n    this.checked.set(checked);\n  }\n\n  override writeValue(value: any): void {\n    super.writeValue(value);\n    this.checked.set(value ? value.toString() : null);\n  }\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\n/** Improved version inspired by AI and best practices */\n\n/**\n * Internal only. Not included in public API.\n * This can most likely be removed once all our supported versions support linked signals\n * since linked signals will store previous and current values automatically.\n */\ntype Primitive = string | number | boolean | null | undefined;\ntype PrimitiveArray = Primitive[];\ntype PrimitiveObject = { [key: string]: Primitive | PrimitiveArray | PrimitiveObject };\n\nfunction isPrimitive(value: unknown): value is Primitive {\n  return value === null || ['string', 'number', 'boolean', 'undefined'].includes(typeof value);\n}\n\nfunction isArray(value: unknown): value is PrimitiveArray {\n  return Array.isArray(value);\n}\n\nfunction isObject(value: unknown): value is PrimitiveObject {\n  return typeof value === 'object' && value !== null && !Array.isArray(value) && !(value instanceof Date);\n}\n\n/**\n * Compares two values for differences.\n * @param a primitive, array, or object to compare\n * @param b primitive, array, or object to compare\n * @returns true if values differ, false if they are the same\n */\nexport function valuesDiffer<T extends Primitive | PrimitiveArray | PrimitiveObject>(a: T, b: T): boolean {\n  // Check for identity\n  if (Object.is(a, b)) return false;\n\n  // Check for different types\n  if (typeof a !== typeof b) return true;\n\n  // Handle arrays\n  if (isArray(a) && isArray(b)) {\n    return a.length !== b.length || !a.every((value, index) => !valuesDiffer(value, b[index]));\n  }\n\n  // Handle objects\n  if (isObject(a) && isObject(b)) {\n    const entriesA = Object.entries(a);\n    const entriesB = Object.entries(b);\n\n    if (entriesA.length !== entriesB.length) return true;\n\n    return entriesA.some(\n      ([key, value]) => !Object.prototype.hasOwnProperty.call(b, key) || valuesDiffer(value, b[key])\n    );\n  }\n\n  // Handle primitives\n  if (isPrimitive(a) && isPrimitive(b)) {\n    return a !== b;\n  }\n\n  // Fallback for complex objects\n  return JSON.stringify(a) !== JSON.stringify(b);\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nexport * from './values-differ';\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport {\n  Directive,\n  InputSignal,\n  InputSignalWithTransform,\n  ModelSignal,\n  Signal,\n  WritableSignal,\n  booleanAttribute,\n  computed,\n  contentChildren,\n  effect,\n  forwardRef,\n  inject,\n  input,\n  model,\n  signal,\n  untracked\n} from '@angular/core';\nimport { DefaultValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IdGenerator } from '../id-generator/id-generator.service';\nimport { RadioDirective } from '../radio/radio.directive';\nimport { valuesDiffer } from '../utilities';\n\nconst RADIO_GROUP_VALUE_ACCESSOR = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => RadioGroupDirective),\n  multi: true\n};\n\n/**\n * This directive is used to group radio buttons together and manage their state. <br />\n * Typically used for a required group to relay that one of the group is required to be selected.\n */\n@Directive({\n  host: {\n    role: 'radiogroup',\n\n    '[attr.aria-required]': 'required() || null'\n  },\n  providers: [RADIO_GROUP_VALUE_ACCESSOR],\n  selector: '[v-radio-group]',\n  standalone: true\n})\nexport class RadioGroupDirective extends DefaultValueAccessor {\n  private readonly idGenerator: IdGenerator = inject(IdGenerator);\n  readonly radios: Signal<readonly RadioDirective[]> = contentChildren(\n    forwardRef(() => RadioDirective),\n    { descendants: true }\n  );\n\n  /**\n   * Sets radio group as disabled when true.\n   * @default false\n   */\n  readonly disabledInput: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    alias: 'disabled',\n    transform: booleanAttribute\n  });\n  readonly disabledInternal: WritableSignal<boolean | null> = signal<boolean | null>(null);\n  readonly disabled: Signal<boolean | null> = computed(() => this.disabledInput() ?? this.disabledInternal());\n  /** Fires when a formControl's disabled state updates  */\n  override setDisabledState(disabled: boolean): void {\n    super.setDisabledState(disabled);\n    this.disabledInternal.set(disabled);\n  }\n\n  /**\n   * Marks radio group as invalid when true.\n   * @default false\n   */\n  readonly invalid: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Shared name of radio group.\n   * @default this.uuidService.getUUID('v-radio-group-');\n   * @builtin true\n   */\n  readonly name: InputSignal<string> = input<string>(this.idGenerator.newId('v-radio-group'));\n\n  /**\n   * Marks radio group as required when true.\n   * @default false\n   */\n  readonly required: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Value of radio group.\n   * Use [value] when you want to handle the value of the toggle container.\n   * Use (valuedChange) when you want the library to handle the value of the toggle container, but get notified of changes.\n   * Use [(value)] when you want the value to reflect changes by both you and the library.\n   */\n  readonly value: ModelSignal<string | number | null | undefined> = model<string | number | null | undefined>(null);\n  // radio button group value changes should update the checked radio button\n  private readonly valueEffect = effect(() => {\n    const value = this.value();\n    this.onChange(value);\n  });\n  private readonly activeRadio: Signal<RadioDirective | undefined> = computed(() =>\n    this.radios()?.find((item) => item.checked())\n  );\n  // radio button changes should update the value of the radio group\n  // use untracked to avoid circular updates\n  private readonly activeRadioEffect = effect(() => {\n    const activeValue = this.activeRadio()?.valueSignal();\n\n    // you can't 'uncheck' a radio button by clicking it again, so only update the value if it is different\n    if (!activeValue) return;\n    untracked(() => {\n      if (valuesDiffer(this.value(), activeValue)) {\n        this.value.set(activeValue);\n      }\n    });\n  });\n\n  override writeValue(value: string | number): void {\n    this.value.set(value);\n  }\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport {\n  afterNextRender,\n  booleanAttribute,\n  computed,\n  Directive,\n  inject,\n  input,\n  InputSignal,\n  InputSignalWithTransform,\n  model,\n  ModelSignal,\n  Signal\n} from '@angular/core';\nimport { IdGenerator } from '../id-generator/id-generator.service';\nimport { ToggleContainerDirective } from '../toggle-container/toggle-container.directive';\n\n@Directive({\n  host: {\n    type: 'button',\n\n    '[attr.aria-disabled]': 'disabled() ? \"true\" : null',\n    '[attr.aria-pressed]': '!!active()', // always use true or false\n    '[attr.disabled]': 'disabled() ? \"disabled\" : null',\n\n    '(click)': 'handleClick()'\n  },\n  selector: 'button[v-toggle]',\n  standalone: true\n})\nexport class ToggleButtonDirective {\n  private readonly idGenerator: IdGenerator = inject(IdGenerator);\n  private readonly toggleContainer: ToggleContainerDirective | null = inject(ToggleContainerDirective, {\n    optional: true\n  });\n  private readonly multi: Signal<boolean> = computed(() => this.toggleContainer?.multiselect() ?? false);\n\n  constructor() {\n    afterNextRender({\n      write: () => {\n        // if initial active state is set, set the active state to the initial value\n        // ie `<button v-toggle active>` will set the active state to '', which is truthy\n        if (this.active() === '') {\n          this.active.set(true);\n        }\n      }\n    });\n  }\n\n  /**\n   * Sets the `aria-pressed` attribute to indicate the pressed (active) state of the button.\n   * Use [active] when you want to handle the active state of the toggle button.\n   * Use (activeChange) when you want the library to handle the active state of the toggle button, but get notified of changes.\n   * Use [(active)] when you want the active state to reflect changes by both you and the library.\n   */\n  readonly active: ModelSignal<boolean | string | null> = model<boolean | string | null>(null);\n\n  /**\n   * Disables button when true.\n   * @default false\n   */\n  readonly disabledInput: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    alias: 'disabled',\n    transform: booleanAttribute\n  });\n  protected readonly disabled: Signal<boolean | null> = computed(\n    () => this.disabledInput() ?? this.toggleContainer?.disabled() ?? null\n  );\n\n  /**\n   * Sets the value of the button to be used in the toggle container.\n   * @default this.idGenerator.newId('v-toggle-button')\n   * @builtin true\n   */\n  readonly value: InputSignal<string | number> = input<string | number>(this.idGenerator.newId('v-toggle-button'));\n\n  handleClick(): void {\n    if (this.multi()) {\n      this.active.update((active) => !active);\n    } else {\n      this.active.set(true);\n    }\n  }\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport {\n  AfterContentInit,\n  booleanAttribute,\n  computed,\n  contentChildren,\n  Directive,\n  effect,\n  forwardRef,\n  inject,\n  input,\n  InputSignal,\n  InputSignalWithTransform,\n  model,\n  ModelSignal,\n  Signal,\n  signal,\n  untracked,\n  WritableSignal\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IdGenerator } from '../id-generator/id-generator.service';\nimport { ToggleButtonDirective } from '../toggle-button/toggle-button.directive';\nimport { valuesDiffer } from '../utilities';\n\nexport type ToggleContainerValue = number | string | (string | number | null)[] | null;\n\n@Directive({\n  host: {\n    class: 'v-toggle-container',\n\n    '[attr.aria-invalid]': 'invalid()',\n    '[attr.disabled]': \"disabled() ? 'disabled' : null\",\n\n    '(focus)': 'onTouched($event)'\n  },\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => ToggleContainerDirective),\n      multi: true\n    }\n  ],\n  selector: '[v-toggle-container]',\n  standalone: true\n})\nexport class ToggleContainerDirective implements ControlValueAccessor, AfterContentInit {\n  constructor() {\n    let prevActiveButtons: ToggleButtonDirective[] | undefined = undefined;\n    effect(() => {\n      const activeButtons = this.activeButtons();\n      const multiselect = untracked(() => this.multiselect());\n\n      if (multiselect && prevActiveButtons === undefined) {\n        prevActiveButtons = []; // initialize to empty array in multiselect mode\n      }\n\n      if (!activeButtons || !activeButtons.length || prevActiveButtons == activeButtons) return;\n\n      // if active buttons changed, store the new value\n      prevActiveButtons = activeButtons;\n\n      // update container value to match active buttons when changed\n      // if multiselect, or single select with only one active button\n      if (multiselect || (!multiselect && activeButtons.length <= 1)) {\n        this.updateValue();\n      } else {\n        // if single select and 2 selected, remove the previous one\n      \n        const previousSSValue = untracked(() => this.previousSSValue());\n        previousSSValue?.active.set(false);\n      }\n    });\n  }\n\n  private readonly idGenerator: IdGenerator = inject(IdGenerator);\n\n  readonly buttons: Signal<readonly ToggleButtonDirective[]> = contentChildren(\n    forwardRef(() => ToggleButtonDirective),\n    {\n      descendants: true\n    }\n  );\n\n  // store the active button(s)\n  private readonly activeButtons: Signal<ToggleButtonDirective[]> = computed(() =>\n    this.buttons()?.filter((item) => item.active())\n  );\n\n  // store the previous selected button in single select mode\n  previousSSValue: Signal<ToggleButtonDirective | null> = computed<ToggleButtonDirective | null>(() =>\n    !this.multiselect() ? (this.activeButtons()?.find((item) => item.value() === this.value()) ?? null) : null\n  );\n\n  /**\n   * Sets custom name.\n   * @default this.idGenerator.newId('v-toggle');\n   * @builtin true\n   */\n  readonly name: InputSignal<string> = input(this.idGenerator.newId('v-toggle'));\n\n  /**\n   * Allows multiple buttons to be selected when true. <br />\n   * To be used with child Button components, not Radio or Checkbox.\n   * @default false\n   */\n  readonly multiselectInput: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    alias: 'multiselect',\n    transform: booleanAttribute\n  });\n  readonly multiselect: Signal<boolean> = computed(() => this.multiselectInput() ?? Array.isArray(this.value()));\n\n  /**\n   * Sets component as disabled when true.\n   * @default false\n   */\n  readonly disabledInput: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    alias: 'disabled',\n    transform: booleanAttribute\n  });\n  private readonly disabledInternal: WritableSignal<boolean | null> = signal<boolean | null>(null);\n  readonly disabled: Signal<boolean | null> = computed(\n    () =>\n      this.disabledInput() ??\n      this.disabledInternal() ??\n      // if any items are enabled, set container to enabled, if all items are disabled, set container to disabled\n      // if no items are present, set container to null\n      (this.buttons()?.length ? !this.buttons()?.some((item) => !item.disabledInput()) : null)\n  );\n  setDisabledState(disabled: boolean): void {\n    this.disabledInternal.set(disabled);\n  }\n\n  /**\n   * Marks component as invalid when true.\n   * @default false\n   */\n  readonly invalid: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Value of toggle container.\n   * Use [value] when you want to handle the value of the toggle container.\n   * Use (valuedChange) when you want the library to handle the value of the toggle container, but get notified of changes.\n   * Use [(value)] when you want the value to reflect changes by both you and the library.\n   */\n  readonly value: ModelSignal<ToggleContainerValue> = model<ToggleContainerValue>(null);\n  private readonly valueEffect = effect(() => {\n    const value = this.value();\n    this.onChange(value);\n  });\n\n  ngAfterContentInit(): void {\n    this.updateValue(this.value() ? this.value() : undefined);\n  }\n\n  /**\n   * Sets the value of the toggle container.\n   * Used in toggle button directive to avoid circular dependency.\n   */\n  updateValue(value: ToggleContainerValue | undefined = undefined): void {\n\n    // if the value was changed externally, update the active buttons\n    if (value !== undefined) {\n      this.buttons().forEach((item) => {\n        // if the value is an array, set the active state of the button to true if the value is in the array\n        if (Array.isArray(value) && this.multiselect()) {\n          item.active.set(value.includes(item.value()));\n        } else {\n          // if the value is not an array, set the active state of the button to true if the value is equal to the button value\n          item.active.set(item.value() === value);\n        }\n      });\n    } else {\n      let newValue: ToggleContainerValue = this.activeButtons().map((item) => item.value());\n      if (!this.multiselect()) newValue = newValue[0] ?? null;\n\n      if (valuesDiffer(newValue, this.value())) {\n        this.value.set(newValue);\n      }\n    }\n  }\n\n  private onChange = (_: any): void => { };\n\n  onTouched = (_: any): void => { };\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  writeValue(value: ToggleContainerValue): void {\n    this.value.set(value);\n    this.updateValue(value);\n  }\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport {\n  Directive,\n  InputSignalWithTransform,\n  Signal,\n  booleanAttribute,\n  computed,\n  contentChild,\n  forwardRef,\n  input\n} from '@angular/core';\nimport { CheckboxDirective } from '../checkbox/checkbox.directive';\nimport { RadioDirective } from '../radio/radio.directive';\n\n@Directive({\n  host: {\n    class: 'v-toggle',\n\n    '[attr.for]': 'htmlFor()',\n    '[class.v-toggle-icon]': 'toggleIcon()'\n  },\n  selector: '[v-toggle]',\n  standalone: true\n})\nexport class ToggleDirective {\n  private readonly checkbox: Signal<CheckboxDirective | undefined> = contentChild(forwardRef(() => CheckboxDirective));\n  private readonly radio: Signal<RadioDirective | undefined> = contentChild(forwardRef(() => RadioDirective));\n\n  /**\n   * Sets the `for` attribute to the id of the radio or checkbox.\n   * @default &lt;radio-id&gt; or &lt;checkbox-id&gt;\n   * @builtin true\n   */\n  protected readonly htmlFor: Signal<string | null> = computed(\n    () => this.radio()?.id() ?? this.checkbox()?.id() ?? null\n  );\n\n  /**\n   * Adds <code>v-toggle-icon</code> class for when toggle has icons only.\n   * @default false\n   */\n  readonly toggleIcon: InputSignalWithTransform<boolean, unknown> = input(false, { transform: booleanAttribute });\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport {\n  Directive,\n  ElementRef,\n  Injector,\n  InputSignal,\n  InputSignalWithTransform,\n  ModelSignal,\n  Signal,\n  WritableSignal,\n  booleanAttribute,\n  computed,\n  effect,\n  forwardRef,\n  inject,\n  input,\n  model,\n  signal\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, NgControl, RadioControlValueAccessor } from '@angular/forms';\nimport { IdGenerator } from '../id-generator/id-generator.service';\nimport { RadioGroupDirective } from '../radio-group/radio-group.directive';\nimport { ToggleContainerDirective } from '../toggle-container/toggle-container.directive';\nimport { ToggleDirective } from '../toggle/toggle.directive';\n\nconst RADIO_VALUE_ACCESSOR = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => RadioDirective),\n  multi: true\n};\n\n@Directive({\n  host: {\n    class: 'v-radio',\n    type: 'radio',\n\n    '[attr.aria-invalid]': 'invalid()',\n    '[attr.disabled]': 'disabled() ? \"disabled\" : null',\n    '[attr.id]': 'id()',\n    '[attr.name]': 'nameSignal()',\n    '[attr.required]': 'required() ? \"required\" : null',\n    '[attr.value]': 'valueSignal()',\n\n    '(blur)': 'radioGroup?.onTouched()',\n    '(change)': 'handleChange($event)'\n  },\n  providers: [RADIO_VALUE_ACCESSOR],\n  selector: '[v-radio]',\n  standalone: true\n})\nexport class RadioDirective extends RadioControlValueAccessor {\n  override ngOnInit(): void {\n    // if initial checked state is set, set the checked state to the initial value\n    // ie `<input v-checkbox checked>` will set the checked state to '', which is truthy\n    if (this.checked() === '') {\n      this.checked.set(true);\n    }\n    this._control = this.injector.get(NgControl, null, { optional: true });\n    this.checkName();\n    this?.['_registry'].add(this._control, this);\n  }\n  private _control: NgControl | null = null;\n  private readonly injector: Injector = inject(Injector);\n  public readonly el: ElementRef = inject(ElementRef);\n  private readonly idGenerator: IdGenerator = inject(IdGenerator);\n  protected readonly radioGroup: RadioGroupDirective | null = inject(RadioGroupDirective, { optional: true });\n  private readonly toggle: ToggleDirective | null = inject(ToggleDirective, { optional: true });\n  private readonly toggleContainer: ToggleContainerDirective | null = inject(ToggleContainerDirective, {\n    optional: true\n  });\n\n  /**\n   * Sets checked state of component. <br />\n   * Because 'checked' is a native attribute of input[type=\"checkbox\"], it can only be set false by using [checked]=\"false\", not checked=\"false\" <br />\n   * Use [checked] when you want to handle the checked state of the checkbox.\n   * Use (checkedChange) when you want the library to handle the checked state of the checkbox, but get notified of changes.\n   * Use [(checked)] when you want the checked state to reflect changes by both you and the library.\n   */\n  readonly checked: ModelSignal<boolean | null | string> = model<boolean | null | string>(null);\n\n  readonly checkedEffect = effect(() => {\n    const checked = this.checked();\n    this.setProperty('checked', checked);\n  });\n\n  private checkName: () => void = super['_checkName'];\n\n  private readonly radioGroupValueEffect = effect(() => {\n    const radioGroupValue = this.radioGroup?.value();\n    if (radioGroupValue !== undefined) {\n      this.checked.set(this.valueSignal() === radioGroupValue);\n    }\n  });\n\n  /**\n   * Sets radio as disabled when true.\n   * @default false\n   */\n  readonly disabledInput: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    alias: 'disabled',\n    transform: booleanAttribute\n  });\n  readonly disabledInternal: WritableSignal<boolean | null> = signal<boolean | null>(null);\n  readonly disabled: Signal<boolean | null> = computed(\n    () => this.disabledInput() ?? this.radioGroup?.disabled() ?? this.disabledInternal()\n  );\n  /** Fires when a formControl's disabled state updates  */\n  override setDisabledState(disabled: boolean | null): void {\n    this.disabledInternal.set(disabled);\n  }\n\n  /**\n   * @ignore\n   */\n  readonly formName: InputSignal<string | null> = input<null | string>(null, { alias: 'formControlName' });\n\n  /**\n   * Sets custom id.\n   * @default idGenerator.newId('v-radio')\n   * @builtin true\n   */\n  readonly id: InputSignal<string> = input(this.idGenerator.newId('v-radio'));\n\n  /**\n   * Marks radio as invalid when true.\n   * @default false\n   */\n  readonly invalidInput: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    alias: 'invalid',\n    transform: booleanAttribute\n  });\n  protected readonly invalid: Signal<boolean | null> = computed(\n    () => this.invalidInput() ?? this.radioGroup?.invalid() ?? null\n  );\n\n  /**\n   * @ignore\n   */\n  readonly nameInput: InputSignal<string | null> = input<HTMLInputElement['name'] | null>(null, { alias: 'name' });\n  readonly nameSignal: Signal<string | null> = computed(\n    () => this.nameInput() ?? this.radioGroup?.name() ?? this.formName() ?? this.toggleContainer?.name() ?? null\n  );\n  private readonly namesEffect = effect(() => {\n    this.formControlName = this.formName() ?? '';\n    this.name = this.nameSignal() ?? '';\n    this.checkName();\n  }); // Used to sync to RadioControlValueAccessor\n\n  /**\n   * Marks component as required when true.\n   * @default false\n   */\n  readonly requiredInput: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    alias: 'required',\n    transform: booleanAttribute\n  });\n  protected readonly required: Signal<boolean | null> = computed(\n    () => this.requiredInput() ?? this.radioGroup?.required() ?? null\n  );\n\n  /**\n   * Value of radio input.\n   * @default idGenerator.newId('v-radio') when toggle is true, otherwise null\n   */\n  readonly valueInput: InputSignal<string | number | null> = input<number | null | string>(null, { alias: 'value' });\n  readonly valueSignal: Signal<string | number | null> = computed(\n    () => this.valueInput() ?? (this.toggle ? this.idGenerator.newId('v-radio') : null)\n  );\n  private readonly valueEffect = effect(() => {\n    this.value = this.valueSignal();\n  }); // Used to sync to RadioControlValueAccessor\n\n  handleChange(event: Event): void {\n    const { checked: isChecked } = event.target as HTMLInputElement;\n    this.checked.set(isChecked);\n  }\n\n  override writeValue(value: string | number | null): void {\n    this.checked.set(this.valueSignal() === value);\n  }\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { contentChild, Directive, inject, Signal } from '@angular/core';\nimport { AppReadyService } from '../app-ready/app-ready.service';\nimport { CheckboxDirective } from '../checkbox/checkbox.directive';\nimport { RadioDirective } from '../radio/radio.directive';\n\n@Directive({\n  host: {\n    class: 'v-action v-action-secondary v-checkbox-panel',\n\n    '(click)': 'handleClick($event)'\n  },\n  selector: '[v-checkbox-panel], [v-radio-panel]',\n  standalone: true\n})\nexport class CheckboxPanelDirective {\n  private readonly appReadyService: AppReadyService = inject(AppReadyService);\n  private readonly checkbox: Signal<CheckboxDirective | undefined> = contentChild(CheckboxDirective);\n  private readonly radio: Signal<RadioDirective | undefined> = contentChild(RadioDirective);\n\n  handleClick(event: Event): void {\n    const control = this.checkbox() || this.radio();\n    if (!control) return;\n    this.toggleControl(control, event);\n  }\n\n  /**\n   * Toggles checkbox or radio programmatically.\n   * @param control Checkbox or Radio item to toggle.\n   * @param event Event to check if target is the control.\n   */\n  public toggleControl(control: RadioDirective | CheckboxDirective, event: Event): void {\n    // check that browser is available before manipulating/checking DOM elements\n    if (!this.appReadyService.isBrowserAndDomAvailable || !control || control.el.nativeElement.contains(event.target))\n      return;\n    control.el.nativeElement.click();\n  }\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { booleanAttribute, Directive, inject, input, InputSignal, InputSignalWithTransform } from '@angular/core';\nimport { IdGenerator } from '../id-generator/id-generator.service';\n\nexport const BadgeType = {\n  ACTIVE: 'active',\n  CRITICAL: 'critical',\n  DEFAULT: 'default',\n  NEGATIVE: 'negative',\n  NEUTRAL: 'neutral',\n  NUMBER: 'number',\n  STABLE: 'stable',\n  SUBTLE: 'subtle',\n  WARNING: 'warning'\n} as const;\n\nexport type BadgeType = (typeof BadgeType)[keyof typeof BadgeType];\n\n@Directive({\n  host: {\n    class: 'v-badge',\n\n    '[attr.id]': 'id()',\n    '[class.v-badge-active]': 'badgeType() === \"active\"',\n    '[class.v-badge-clear]': 'noBackground()',\n    '[class.v-badge-critical]': 'badgeType() === \"critical\" || badgeType() === \"negative\"',\n    '[class.v-badge-default]': 'badgeType() === \"default\"',\n    '[class.v-badge-icon]': 'icon()',\n    '[class.v-badge-neutral]': 'badgeType() === \"neutral\"',\n    '[class.v-badge-number]': 'number() || badgeType() === \"number\"',\n    '[class.v-badge-stable]': 'badgeType() === \"stable\"',\n    '[class.v-badge-subtle]': 'badgeType() === \"subtle\"',\n    '[class.v-badge-warning]': 'badgeType() === \"warning\"'\n  },\n  standalone: true,\n  selector: '[v-badge]'\n})\nexport class BadgeDirective {\n  private readonly idGenerator = inject(IdGenerator);\n\n  /**\n   * Sets badge type.\n   * @default 'default' | BadgeType.DEFAULT\n   * @options 'default' | BadgeType.DEFAULT | <br> 'neutral' | BadgeType.NEUTRAL | <br> 'critical' | BadgeType.CRITICAL | <br> 'stable' | BadgeType.STABLE | <br> 'warning' | BadgeType.WARNING | <br> 'subtle' | BadgeType.SUBTLE | <br> 'number' | BadgeType.NUMBER\n   */\n  readonly badgeType: InputSignal<BadgeType> = input<BadgeType>(BadgeType.DEFAULT);\n\n  /**\n   * Whether or not badge contains an icon.\n   * @default false\n   */\n  readonly icon: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets custom id.\n   * @default uuidService.getUUID('v-badge-')\n   * @builtin true\n   */\n  readonly id: InputSignal<string> = input(this.idGenerator.newId('v-badge'));\n\n  /**\n   * Removes background color from badge when true.\n   */\n  readonly noBackground: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets badge to number variant when true. <br />\n   * Using this flag rather than <code>badgeType=\"number\"</code> allows for number badges with other badge types.\n   * @default false\n   */\n  readonly number: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport {\n  computed,\n  Directive,\n  ElementRef,\n  inject,\n  input,\n  InputSignal,\n  InputSignalWithTransform,\n  numberAttribute,\n  Signal,\n  signal,\n  WritableSignal\n} from '@angular/core';\nimport { FloatingUIContainer } from '../floating-ui-container/floating-ui-container.directive';\n\n@Directive({\n  host: {\n    class: 'v-dropdown-menu v-surface',\n    style: 'inline-size: 180px; --v-dropdown-menu-surface-margin-block-start: 0;',\n\n    '[attr.aria-hidden]': '!isShown()',\n    '[attr.id]': 'id()',\n    '[style.z-index]': 'zIndex() || null'\n  },\n  selector: '[v-menu], [v-dropdown-menu]',\n  standalone: true\n})\nexport class DropdownMenuDirective {\n  public readonly el: ElementRef = inject(ElementRef); // ElementRef needed for floating-ui-container\n  private readonly floatingUIContainer: FloatingUIContainer | null = inject(FloatingUIContainer, {\n    optional: true,\n    host: true\n  });\n  /**\n   * Sets custom ID.\n   */\n  readonly idInput: InputSignal<string | null> = input<null | string>(null, { alias: 'id' });\n  readonly idInternal: WritableSignal<string | null> = signal<null | string>(null); // used in floating-ui-container\n  readonly id: Signal<string | null> = computed(() => this.idInput() ?? this.idInternal());\n\n  // the following is determined by floating-ui-container and used to set aria attributes\n  protected readonly isShown: Signal<boolean | null> = computed(() => this.floatingUIContainer?.isShown() ?? null);\n\n  /**\n   * Provides custom z-index to control stacking order.\n   * @default 200;\n   */\n  readonly zIndex: InputSignalWithTransform<string | number, unknown> = input<number | string, unknown>('200', {\n    alias: 'z-index',\n    transform: numberAttribute\n  });\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport {\n  computed,\n  Directive,\n  ElementRef,\n  inject,\n  input,\n  InputSignal,\n  InputSignalWithTransform,\n  numberAttribute,\n  Signal,\n  signal,\n  WritableSignal\n} from '@angular/core';\nimport { FloatingUIContainer } from '../floating-ui-container/floating-ui-container.directive';\n\n@Directive({\n  host: {\n    '[attr.id]': 'id()',\n    '[attr.aria-hidden]': '!isShown()',\n    '[style.inline-size]': 'inlineSize()',\n    '[style.z-index]': 'zIndex() || null'\n  },\n  selector: '[v-floating-ui-element]',\n  standalone: true\n})\nexport class FloatingUIElementDirective {\n  public readonly el: ElementRef = inject(ElementRef);\n  private readonly floatingUIContainer: FloatingUIContainer | null = inject(FloatingUIContainer, {\n    optional: true,\n    host: true\n  });\n\n  /**\n   * Sets custom ID.\n   */\n  readonly idInput: InputSignal<string | null> = input<string | null>(null, { alias: 'id' });\n  readonly idInternal: WritableSignal<string | null> = signal<string | null>(null); // used in floating-ui-container\n  readonly id: Signal<string | null> = computed(() => this.idInput() ?? this.idInternal());\n\n  readonly inlineSize: InputSignal<string> = input<string>('100%');\n\n  // the following is determined by floating-ui-container and used to set aria attributes\n  protected readonly isShown: Signal<boolean | null> = computed(() => this.floatingUIContainer?.isShown() ?? null);\n\n  /**\n   * Provides custom z-index to control stacking order.\n   * @default 200;\n   */\n  readonly zIndex: InputSignalWithTransform<string | number, unknown> = input<number | string, unknown>('200', {\n    alias: 'z-index',\n    transform: numberAttribute\n  });\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { computed, Directive, ElementRef, inject, signal, Signal, WritableSignal } from '@angular/core';\nimport { FloatingUIContainer } from '../floating-ui-container/floating-ui-container.directive';\nimport { ButtonDirective } from '../button/button.directive';\n\n@Directive({\n  host: {\n    class: 'v-dropdown',\n\n    '[attr.aria-controls]': '(triggersDropdownMenu() && button) ? floatingElemID() : null',\n    '[attr.aria-describedby]': 'triggersTooltip() ? floatingElemID() : null',\n    '[attr.aria-expanded]': '(triggersDropdownMenu() && button) ? isShown() : null'\n  },\n  selector: '[v-floating-ui-trigger]',\n  standalone: true\n})\nexport class FloatingUITriggerDirective {\n  public readonly el: ElementRef = inject(ElementRef);\n  public readonly button: ButtonDirective | null = inject(ButtonDirective, {\n    optional: true,\n    host: true\n  });\n  private readonly floatingUIContainer: FloatingUIContainer | null = inject(FloatingUIContainer, {\n    optional: true,\n    host: true\n  });\n  // the following are determined by floating-ui-container and used to set correct aria roles\n  protected readonly floatingElemID: Signal<string | null> = computed(\n    () => this.floatingUIContainer?.floatingElementID() ?? null\n  );\n  protected readonly triggersDropdownMenu: Signal<boolean | null> = computed(\n    () => this.floatingUIContainer?.triggersDropdownMenu() ?? null\n  );\n  protected readonly triggersTooltip: Signal<boolean | null> = computed(\n    () => this.floatingUIContainer?.triggersTooltip() ?? null\n  );\n  public readonly isShown: WritableSignal<boolean> = signal(false); // aria-expanded should be set to true or false if shown\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nexport const FloatingUIPlacements = {\n  TOP: 'top',\n  TOP_START: 'top-start',\n  TOP_END: 'top-end',\n  RIGHT: 'right',\n  RIGHT_START: 'right-start',\n  RIGHT_END: 'right-end',\n  BOTTOM: 'bottom',\n  BOTTOM_START: 'bottom-start',\n  BOTTOM_END: 'bottom-end',\n  LEFT: 'left',\n  LEFT_START: 'left-start',\n  LEFT_END: 'left-end'\n} as const;\nexport type FloatingUIPlacements = (typeof FloatingUIPlacements)[keyof typeof FloatingUIPlacements];\n\nexport const FloatingUIVisibility = {\n  SHOW: 'show',\n  HIDE: 'hide'\n} as const;\nexport type FloatingUIVisibility = (typeof FloatingUIVisibility)[keyof typeof FloatingUIVisibility];\n\nexport type UIEventVisibilityPair =\n  | [UIEvent, FloatingUIVisibility?][]\n  | ((UIEvent | 'show')[] | (UIEvent | 'hide')[])[];\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport {\n  effect,\n  ElementRef,\n  EventEmitter,\n  inject,\n  Injectable,\n  isDevMode,\n  Renderer2,\n  RendererFactory2,\n  signal,\n  WritableSignal\n} from '@angular/core';\nimport { arrow, autoUpdate, computePosition, ComputePositionReturn, flip, offset, shift, hide } from '@floating-ui/dom';\nimport { TooltipArrowDirective } from '../arrow/arrow.directive';\nimport { FloatingUIPlacements, FloatingUIVisibility, UIEventVisibilityPair } from './floating-ui.constants';\n\n/**\n * This internal service is used by Combobox, Dropdown Menu, and Tooltip components. <br />\n * It can be used with generic FloatingUIContainer, FloatingUIElementDirective, and FloatingUITriggerDirective to create your own custom floating-ui. <br />\n * If you are using any of the components mentioned, you will typically not need to use this service directly. <br />\n * Derived from [Floating UI documentation](https://floating-ui.com/).\n */\n@Injectable({\n  providedIn: 'root'\n})\nexport class FloatingUIService {\n  /** @ignore */\n  private readonly rendererFactory: RendererFactory2 = inject(RendererFactory2);\n  /** @ignore */\n  private renderer: Renderer2 = this.rendererFactory.createRenderer(null, null);\n\n  /** @ignore */\n  private trigger?: Element;\n  /** @ignore */\n  private floatingUI?: ElementRef;\n  /** @ignore */\n  private arrow?: TooltipArrowDirective;\n  /** @ignore */\n  private offset: number = 0;\n  /** @ignore */\n  private offsetDefault: number = 2;\n  /** @ignore */\n  public comboboxMiddleware: any = [offset(0), flip(), shift(), hide()];\n  /** @ignore */\n  private middlewareDefault: any = [offset(this.offsetDefault), flip(), shift(), hide()];\n  /** @ignore */\n  private middleware: any = this.middlewareDefault;\n  /** @ignore */\n  private placement: FloatingUIPlacements = FloatingUIPlacements.BOTTOM;\n  /** @ignore */\n  public isShown: WritableSignal<boolean> = signal(false);\n  private readonly isShownEffect = effect(() => {\n    const isShown = this.isShown();\n    this.isShownEmitter.emit(isShown);\n    if (!isShown && this.floatingUI) return this.renderer.setStyle(this.floatingUI.nativeElement, 'display', 'none');\n    const triggerDisabled = this.trigger?.getAttribute('disabled');\n    // only show the floating UI if the trigger and element exist, menu is set to shown, and trigger is not disabled\n    if (!this.trigger || !this.floatingUI || !isShown || triggerDisabled) return;\n    this.positionFloatingUI();\n    this.renderer.setStyle(this.floatingUI.nativeElement, 'display', this.display);\n  });\n\n  /**\n   * Displays property of the floating UI element.\n   * @default 'flex'\n   */\n  private display: string = 'flex';\n\n  /**\n   * Time in milliseconds to wait before hiding the floating UI element when the trigger is hovered over.\n   * @default A factor of the offset middleware option if provided, otherwise 50.\n   */\n  private hideOnHoverTimeout: number = 0;\n\n  // store unlisten functions\n  private rendererListeners: (() => void)[] = [];\n\n  /**\n   * Emits true when this floating UI element is shown and false when hidden.\n   */\n  readonly isShownEmitter: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n  /**\n   * The setUpFloatingUI method is required to initialize the floating element and its trigger. <br />\n   * Called by default with FloatingUIContainer or ComboboxDirective.\n   * @param referenceEl References element that will trigger floating UI.\n   * @param floatingEl References floating UI element.\n   * @param eventArray Array of events for the reference/trigger element to listen for. <br> i.e. <code>[new UIEvent('focus'), FloatingUIVisibility.SHOW]</code> <br> tells the element to show the floating UI when the triggering element is focused.\n   */\n  public setUpfloatingUI(\n    referenceEl: ElementRef | HTMLElement,\n    floatingEl: ElementRef,\n    eventArray: UIEventVisibilityPair | null\n  ): void {\n    this.rendererListeners?.forEach((unlisten) => unlisten());\n    this.rendererListeners = [];\n    this.trigger = this.nativeElement(referenceEl);\n    this.floatingUI = floatingEl;\n    if (!this.trigger && isDevMode()) return console.error('Floating UI trigger element is not defined.');\n    if (!this.floatingUI && isDevMode()) return console.error('Floating UI element is not defined.');\n\n    this.renderer.setStyle(this.floatingUI.nativeElement, 'top', '0');\n    this.renderer.setStyle(this.floatingUI.nativeElement, 'left', '0');\n    this.renderer.setStyle(this.floatingUI.nativeElement, 'display', 'none');\n\n    if (eventArray) {\n      this.setUpTrigger(eventArray);\n    } else if (isDevMode()) {\n      console.error('No events provided to trigger the Floating UI.');\n    }\n  }\n\n  /**\n   * The nativeElement method returns the Element type of the reference element.\n   * @param element Element to be converted to Element type.\n   * @returns Element\n   */\n  private nativeElement(element: ElementRef<any> | HTMLElement): Element {\n    if (element instanceof ElementRef) {\n      return element.nativeElement;\n    }\n    return element;\n  }\n\n  /**\n   * The customizeFloatingUI method allows you to provide custom placement and middleware options to the Floating UI service.\n   * @param placement Optional. See <code>FloatingUIPlacements</code> enum.\n   * @param middleware Optional. Visit the official Floating UI documentation for more on [middleware options](https://floating-ui.com/docs/computePosition#middleware).\n   * @param display Optional. Sets CSS display property for the floating UI element.\n   * @param tooltipArrow Optional. Directive reference to the arrow element. See TooltipArrowDirective.\n   */\n  public customizeFloatingUI(\n    placement?: FloatingUIPlacements | null,\n    middleware?: any | null,\n    display?: string | null,\n    tooltipArrow?: TooltipArrowDirective | null\n  ): void {\n    // custom placement\n    if (placement) this.placement = placement;\n\n    // custom middleware\n    if (middleware) {\n      this.middleware = middleware;\n      // save a custom offset\n      const customOffset = (this.middleware.find((m: any) => m['name'] === 'offset') as any) || 2;\n      this.offset = customOffset.options;\n    }\n\n    // custom display\n    if (display) this.display = display;\n\n    // custom arrow\n    if (!tooltipArrow) return;\n    this.arrow = tooltipArrow;\n    // update the offset to factor in the arrow size if no custom offset was placed\n    const floatingOffset = Math.ceil(Math.sqrt(2 * this.arrow.customSize() ** 2) / 2);\n    this.offset = this.offset ? floatingOffset + this.offset : floatingOffset + this.offsetDefault;\n    this.middleware.push(arrow({ element: this.arrow.el.nativeElement }));\n    const offsetIndex = this.middleware.findIndex((func: any) => func.name === 'offset');\n\n    // If no old offset function is found, just add the new one\n    if (offsetIndex === -1) {\n      this.middleware = [...this.middleware, offset(this.offset)];\n      return;\n    }\n    // Replace the old offset function with the new one\n    this.middleware = [\n      ...this.middleware.slice(0, offsetIndex),\n      offset(this.offset),\n      ...this.middleware.slice(offsetIndex + 1)\n    ];\n  }\n\n  /**\n   * The positionFloatingUI method positions the Floating UI based on the given placement and middleware. <br />\n   * For more details on the internal function, refer to Floating UI's [compute position documentation](https://floating-ui.com/docs/computePosition).\n   * @param trigger The triggering element.\n   * @param floatingUI The element that will \"float\" when triggered.\n   * @param placement Reference FloatingUIPlacements.\n   * @param middleware Visit the official Floating UI documentation for more on [middleware options](https://floating-ui.com/docs/computePosition#middleware).\n   */\n  public positionFloatingUI(\n    trigger: Element | undefined = this.trigger,\n    floatingUI: HTMLElement | undefined = this.floatingUI?.nativeElement,\n    placement: FloatingUIPlacements = this.placement\n  ): void {\n    if (!trigger) return;\n    autoUpdate(trigger, floatingUI, () => {\n      computePosition(trigger, floatingUI, {\n        placement: placement,\n        middleware: this.middleware\n      }).then(({ x, y, middlewareData, placement }: ComputePositionReturn) => {\n        // Handle hiding when reference is out of view (if hide middleware is present)\n        if (\n          middlewareData.hide &&\n          middlewareData.hide.referenceHidden &&\n          // Skip this check in test environments where JSDOM may not properly calculate element visibility\n          !window?.navigator?.userAgent?.includes('jsdom')\n        ) {\n          this.hidefloatingUI();\n          return; // Don't update position if hidden\n        }\n\n        floatingUI.style.left = `${x}px`;\n        floatingUI.style.top = `${y}px`;\n\n        if (!middlewareData.arrow || !this.arrow) return;\n\n        // see: https://codesandbox.io/s/mystifying-kare-ee3hmh?file=/src/index.js\n        const { x: arrowX, y: arrowY } = middlewareData.arrow;\n\n        this.renderer.setStyle(this.arrow.el.nativeElement, 'left', arrowX != null ? `${arrowX}px` : '');\n        this.renderer.setStyle(this.arrow.el.nativeElement, 'top', arrowY != null ? `${arrowY}px` : '');\n        this.renderer.setStyle(this.arrow.el.nativeElement, 'right', '');\n        this.renderer.setStyle(this.arrow.el.nativeElement, 'bottom', '');\n\n        const side = placement.split('-')[0];\n        const staticSide = {\n          top: 'bottom',\n          bottom: 'top',\n          left: 'right',\n          right: 'left'\n        }[side];\n\n        if (!staticSide) return;\n\n        this.renderer.setStyle(\n          this.arrow.el.nativeElement,\n          staticSide,\n          -(this.arrow.el.nativeElement.offsetWidth / 2) + 'px'\n        );\n      });\n    });\n  }\n\n  /**\n   * The showFloatingUI method displays the Floating UI element.\n   */\n  public showfloatingUI(): void {\n    this.isShown.set(true);\n  }\n\n  /**\n   * The hideFloatingUI method hides the Floating UI element.\n   */\n  public hidefloatingUI(): void {\n    this.isShown.set(false);\n  }\n\n  /**\n   * The toggleFloatingUI method toggles the visibility of the Floating UI element.\n   */\n  public toggleFloatingUI(): void {\n    this.isShown.update((prev) => !prev);\n  }\n\n  /**\n   * The closeOnClickOut method closes the menu when a click occurs outside of the menu and the triggering element.\n   * @param event Document click event.\n   */\n  private closeOnClickOut(event: Event): void {\n    // listen for document click and close menu if click is outside of component\n    if (!this.isShown()) return;\n    const target = event.target as HTMLInputElement;\n    if (!this.floatingUI?.nativeElement.contains(event.target) && !this.trigger?.contains(target)) {\n      this.hidefloatingUI();\n    }\n  }\n\n  /**\n   * The closeAndFocus method hides the Floating UI element and focuses the trigger element. <br />\n   * This is typically used when closing the menu with the escape key or clicking outside of the floating UI element.\n   */\n  private readonly closeAndFocus = (): void => {\n    this.hidefloatingUI();\n    this.restoreFocus();\n  };\n\n  /**\n   * The restoreFocus method focuses the trigger element. <br />\n   * This method is useful if you've set `closeOnClick` to false and want to manually restore focus.\n   */\n  public readonly restoreFocus = (): void => {\n    if (this.trigger) {\n      (this.trigger as HTMLElement)?.focus(); // ensure the trigger is focused after restoring focus\n    }\n  };\n\n  /**\n   * The addCloseActions method adds default close actions to the Floating UI component. These actions include closing the menu when the escape key is pressed or when clicking outside of the floating element.\n   */\n  private addCloseActions(): void {\n    // close menu on escape key press or clicking outside of menu\n    if (!document) return;\n    this.rendererListeners.push(this.renderer.listen(document, 'click', this.closeOnClickOut.bind(this)));\n    this.rendererListeners.push(this.renderer.listen(document, 'keydown.esc', this.hidefloatingUI.bind(this)));\n    if (!this.floatingUI) return;\n    this.rendererListeners.push(\n      this.renderer.listen(this.floatingUI.nativeElement, 'keydown.escape', this.closeAndFocus.bind(this))\n    );\n  }\n\n  /**\n   * The setUpTrigger method configures the triggering element by setting up the events to listen for and the actions to take when those events are triggered.\n   * @param eventArray Array of events for the reference/trigger element to listen for.<br> i.e. <code>[new UIEvent('focus'), FloatingUIVisibility.SHOW]</code> <br> tells the element to show the floating UI when the triggering element is focused.\n   */\n  private setUpTrigger(eventArray: UIEventVisibilityPair): void {\n    // add default actions to close menu\n    this.addCloseActions();\n    eventArray.forEach((pair) => {\n      /**\n       * if a custom eventArray is **not** typed as UIEventVisibilityPair[],<br />\n       * Typescript will type the array as ((UIEvent | \"show\")[] | (UIEvent | \"hide\")[])[] <br />\n       * because the passed arrays have different types, the type of the array is inferred as a union of the types of the passed arrays. <br />\n       * The following code ensures the correct types are assigned to the event and listener variables.\n       */\n      const event: UIEvent | undefined | FloatingUIVisibility = pair.find((e) => e instanceof UIEvent);\n      const listener: FloatingUIVisibility | undefined | UIEvent = pair.find(\n        (e) => e === FloatingUIVisibility.SHOW || e === FloatingUIVisibility.HIDE\n      );\n      if (!(event instanceof UIEvent)) return;\n      if (event.type === 'click') {\n        this.rendererListeners.push(this.renderer.listen(this.trigger, event.type, this.toggleFloatingUI.bind(this)));\n      } else if (event.type === 'mouseleave' && listener && listener === FloatingUIVisibility.HIDE) {\n        this.keepOnHover();\n      } else if (listener && listener === FloatingUIVisibility.SHOW) {\n        this.rendererListeners.push(this.renderer.listen(this.trigger, event.type, this.showfloatingUI.bind(this)));\n      } else if (listener && listener === FloatingUIVisibility.HIDE) {\n        this.rendererListeners.push(this.renderer.listen(this.trigger, event.type, this.hidefloatingUI.bind(this)));\n      }\n    });\n  }\n\n  // for keepOnHover\n  /** @ignore */\n  onTooltip: boolean = false;\n  /** @ignore */\n  onTrigger: boolean = false;\n\n  /**\n   * The keepOnHover method keeps the floating element visible when hovering over the trigger or the floating element.\n   */\n  private keepOnHover(): void {\n    let offset = this.middleware.find((m: any) => m['name'] === 'offset') as any;\n    offset = this.hideOnHoverTimeout ? this.hideOnHoverTimeout : offset['options'] ? offset['options'] * 20 : 50;\n    this.rendererListeners.push(\n      this.renderer.listen(this.trigger, 'mouseleave', () => {\n        setTimeout(() => {\n          this.onTrigger = false;\n          if (!this.onTooltip) this.hidefloatingUI();\n        }, offset);\n      })\n    );\n    this.rendererListeners.push(\n      this.renderer.listen(this.trigger, 'mouseenter', () => {\n        this.onTrigger = true;\n      })\n    );\n\n    this.rendererListeners.push(\n      this.renderer.listen(this.floatingUI?.nativeElement, 'mouseenter', () => {\n        this.onTooltip = true;\n      })\n    );\n    this.rendererListeners.push(\n      this.renderer.listen(this.floatingUI?.nativeElement, 'mouseleave', () => {\n        setTimeout(() => {\n          this.onTooltip = false;\n          if (!this.onTrigger) this.hidefloatingUI();\n        }, offset);\n      })\n    );\n  }\n\n  // method to clean up all listeners\n  public cleanupListeners(): void {\n    this.rendererListeners?.forEach((unlisten) => unlisten());\n    this.rendererListeners = [];\n  }\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport {\n  booleanAttribute,\n  computed,\n  Directive,\n  forwardRef,\n  inject,\n  input,\n  InputSignalWithTransform,\n  Signal,\n  signal,\n  WritableSignal\n} from '@angular/core';\nimport { FlexDirective } from '../flex/flex.directive';\nimport { IdGenerator } from '../id-generator/id-generator.service';\n\n@Directive({\n  host: {\n    '[class.v-flex]': '!removeDefaultFlex()',\n    '[class.v-flex-col]': '!removeDefaultFlex()',\n    '[class.v-gap-6]': '!removeDefaultGap()'\n  },\n  selector: '[v-accordion]',\n  standalone: true\n})\nexport class AccordionDirective {\n  private readonly flex: FlexDirective | null = inject(FlexDirective, { optional: true, host: true });\n  private readonly idGenerator: IdGenerator = inject<IdGenerator>(forwardRef(() => IdGenerator));\n  public readonly singleSelectItemsName: WritableSignal<string> = signal<string>(\n    this.idGenerator.newId('accordion-details-')\n  );\n\n  protected readonly removeDefaultFlex: Signal<boolean | undefined> = computed<boolean | undefined>(\n    () => !!(this.flex && this.flex?.vFlexRow())\n  );\n  protected readonly removeDefaultGap: Signal<boolean | undefined | null | any> = computed<\n    boolean | undefined | null | any\n  >(() => this.flex && this.flex.vGap());\n\n  /**\n   * Allows multiple accordion items to be expanded when true.\n   * @default false\n   */\n  readonly multiselect: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Applies subtle accordion styling when true.\n   * @default false\n   */\n  readonly subtle: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nexport const ButtonSize = {\n  SMALL: 'small',\n  MEDIUM: 'medium',\n  LARGE: 'large'\n} as const;\n\nexport type ButtonSize = (typeof ButtonSize)[keyof typeof ButtonSize];\n\nexport const ButtonColor = {\n  PRIMARY: 'primary',\n  SECONDARY: 'secondary',\n  TERTIARY: 'tertiary'\n} as const;\n\nexport type ButtonColor = (typeof ButtonColor)[keyof typeof ButtonColor];\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { AfterContentInit, Directive, inject } from '@angular/core';\nimport { AccordionDirective } from '../accordion/accordion.directive';\nimport { ButtonColor, ButtonSize } from '../button/button.constants';\nimport { ButtonDirective } from '../button/button.directive';\n\n@Directive({\n  host: {\n    class: 'v-accordion-heading',\n\n    '[style.--v-button-default-background]': 'accordion?.subtle() ? \"transparent\" : null',\n    '[style.--v-accordion-background]': 'accordion?.subtle() ? \"transparent\" : null',\n    '[style.--v-button-default-gap]': 'accordion?.subtle() ? \"2px\" : null',\n    '[style.--v-accordion-items-gap]': 'accordion?.subtle() ? \"2px\" : null',\n    '[style.--v-accordion-foreground-initial]':\n      'accordion?.subtle() && !(hostButton?.disabled() || hostButton?.ariaDisabled()) ? \"var(--palette-default-active)\" : null' // only apply subtle foreground color if the button is not disabled\n  },\n  selector: '[v-accordion-heading]',\n  standalone: true\n})\nexport class AccordionHeadingDirective implements AfterContentInit {\n  readonly accordion: AccordionDirective | null = inject(AccordionDirective, { optional: true, host: true });\n  public readonly hostButton: ButtonDirective | null = inject(ButtonDirective, { optional: true });\n\n  ngAfterContentInit(): void {\n    // [v-button][v-accordion-heading] instance\n    if (!this.hostButton) return;\n    this.hostButton.buttonSizeInternal.set(ButtonSize.LARGE);\n    this.hostButton.buttonColorInternal.set(this.accordion?.subtle() ? ButtonColor.TERTIARY : ButtonColor.SECONDARY);\n  }\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport {\n  Directive,\n  ElementRef,\n  InputSignal,\n  ModelSignal,\n  OnInit,\n  OutputEmitterRef,\n  Signal,\n  computed,\n  contentChild,\n  forwardRef,\n  inject,\n  input,\n  model,\n  output\n} from '@angular/core';\nimport { AccordionHeadingDirective } from '../accordion-heading/accordion-heading.directive';\nimport { AccordionDirective } from '../accordion/accordion.directive';\n\n@Directive({\n  host: {\n    class: 'v-accordion',\n\n    '[attr.name]': 'name()',\n    '[attr.open]': 'expanded() ? \"open\" : null',\n    '[attr.tabindex]': 'heading()?.hostButton?.disabled() ? \"-1\" : null',\n\n    '(toggle)': 'toggle($event)'\n  },\n  selector: '[v-accordion-item]',\n  standalone: true\n})\nexport class AccordionDetailsDirective implements OnInit {\n  ngOnInit(): void {\n    // only on initial load, if the user sets 'open' (<details v-accordion-item open ...>, update this.expanded\n    if (this.el.nativeElement.open) {\n      this.expanded.set(true);\n    }\n  }\n  private readonly el: ElementRef = inject(ElementRef);\n  private readonly accordion: AccordionDirective | null = inject(\n    forwardRef(() => AccordionDirective),\n    { optional: true, host: true }\n  );\n\n  protected readonly heading: Signal<AccordionHeadingDirective> = contentChild(\n    forwardRef(() => AccordionHeadingDirective)\n  );\n\n  /**\n   *\n   * Sets expanded state ('open' or 'closed') of component. <br />\n   * Because 'open' is a native attribute of <details>, it can only be set false by using [open]=\"false\", not open=\"false\" <br />\n   * Use [open] when you want to handle the expanded state of the accordion item.\n   * Use (openChange) when you want the library to handle the expanded state of the accordion item, but get notified of changes.\n   * Use [(open)] when you want the expanded state to reflect changes by both you and the library.\n   */\n  readonly expanded: ModelSignal<boolean | null | string> = model<boolean | null | string>(null, { alias: 'open' });\n\n  /** @ignore */\n  readonly nameInput: InputSignal<string | null> = input<string | null>(null, { alias: 'name' });\n  readonly name: Signal<string | null> = computed(\n    () =>\n      this.nameInput() ?? (!this.accordion?.multiselect() ? (this.accordion?.singleSelectItemsName() ?? null) : null)\n  );\n\n  /**\n   * Emits expanded state of item when toggled.\n   */\n  readonly toggled: OutputEmitterRef<boolean> = output<boolean>();\n\n  toggle(event: Event): void {\n    const { newState } = event as ToggleEvent;\n    const expanded = newState === 'open';\n    this.expanded.set(expanded);\n    this.toggled.emit(expanded);\n  }\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { booleanAttribute, Directive, input, InputSignalWithTransform } from '@angular/core';\n\n@Directive({\n  host: {\n    class: 'v-nav',\n\n    '[class.v-nav-drawer]': 'drawer()',\n    '[class.v-nav-horizontal]': '!vertical()',\n    '[class.v-nav-vertical]': 'vertical()'\n  },\n  selector: '[v-nav]',\n  standalone: true\n})\nexport class NavDirective {\n  /**\n   * Sets navigation to drawer variation when true.\n   * @default false\n   */\n  readonly drawer: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets navigation to vertical orientation when true.\n   * @default false\n   */\n  readonly vertical: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { inject, Injectable, Renderer2, RendererFactory2 } from '@angular/core';\nimport { AppReadyService } from '../app-ready/app-ready.service';\nimport { ListboxItemComponent } from '../listbox-item/listbox-item.component';\nimport {\n  DOWN_ARROW_KEY,\n  END_KEY,\n  ENTER_KEY,\n  HOME_KEY,\n  SPACE_CODE,\n  SPACE_KEY,\n  TAB_KEY,\n  UP_ARROW_KEY\n} from '../nova-lib.constants';\nimport { NovaLibService } from '../nova-lib.service';\nimport { ListboxDirective } from './listbox.directive';\n\n/**\n * Service used to create listbox behavior. Some functions are used within listbox component, others are optional additions.\n */\n@Injectable({\n  providedIn: 'root'\n})\nexport class ListboxService {\n  constructor() {\n    this.renderer = this.rendererFactory.createRenderer(null, null);\n  }\n\n  /** @ignore */\n  private appReadyService: AppReadyService = inject(AppReadyService);\n  private novaLibService: NovaLibService = inject(NovaLibService);\n  private rendererFactory: RendererFactory2 = inject(RendererFactory2);\n  /** @ignore */\n  private renderer: Renderer2;\n\n  /**\n   * The setUpListbox method configures the listbox with the expected keyboard behaviors and sets the aria-activedescendant attribute. <br>\n   * This method is called by default within <code>ListboxDirective</code>.\n   * @param listbox Listbox to set up.\n   */\n  public setUpListbox(listbox: ListboxDirective): void {\n    listbox.listeners.forEach((listener) => listener()); // remove previous listeners\n    listbox.listeners = []; // reset listeners\n\n    this.novaLibService.addArrowKeyNavigation(listbox.listItems(), true, 'both', listbox);\n    this.addShortcuts(listbox);\n  }\n\n  /**\n   * The scrollItemIntoView method scrolls given item to top of listbox. <br>\n   * It’s called by default in <code>ListBoxDirective</code> unless <code>customScrollControl</code> is present. <br>\n   * This method can also call to scroll to a custom index. By default it will scroll to the first active item, but you can provide a specific item if desired.\n   * @param listbox Listbox to scroll.\n   * @param indexToScrollTo Optional specific index to scroll to top (othwerwise, scrolls to first active item).\n   */\n  public scrollItemIntoView(listbox: ListboxDirective, indexToScrollTo?: number): void {\n    const listboxReversed = [...listbox.listItems()].reverse();\n    const targetItem: ListboxItemComponent | undefined =\n      indexToScrollTo || indexToScrollTo === 0\n        ? listbox.listItems()[indexToScrollTo]\n        : listbox.multiselect()\n          ? listboxReversed.find((item) => item.active())\n          : listbox.listItems().find((item) => item.active());\n\n    if (targetItem && this.appReadyService.isBrowserAndDomAvailable) {\n      if (!listbox.listboxScrollStylesSet) {\n        // gather variable information\n        listbox.listboxHeight = listbox.el.nativeElement.offsetHeight;\n        listbox.listboxItemHeight = listbox.listItems()[0].el.nativeElement.offsetHeight;\n        listbox.listboxGap = parseInt(window.getComputedStyle(listbox.el.nativeElement).gap, 10);\n        listbox.listboxGap = isNaN(listbox.listboxGap) ? 4 : listbox.listboxGap;\n      }\n\n      let amountScrolledAlready = listbox.el.nativeElement.scrollTop;\n      // determine distance between top of listbox and active item\n      this.renderer.setStyle(listbox.el.nativeElement, 'position', 'relative'); // set position to relative to allow for correct offsetTop of item\n      const fullItemDistanceFromTop = targetItem.el.nativeElement.offsetTop + listbox.listboxItemHeight;\n\n      // if item is in the top view of the listbox..\n      if (fullItemDistanceFromTop < listbox.listboxHeight) {\n        if (!amountScrolledAlready) {\n          return; // do nothing, item is in view (user hasn't scrolled)\n        } else {\n          // scroll to top of listbox (where item is)\n          listbox.el.nativeElement.scrollTo(0, 0);\n        }\n      } else if (\n        /**\n         * Do nothing if the item is between the amount already scrolled and the bottom of the listbox\n         * ie it is in view and the user has scrolled\n         */\n        amountScrolledAlready &&\n        fullItemDistanceFromTop < listbox.listboxHeight + amountScrolledAlready &&\n        fullItemDistanceFromTop > amountScrolledAlready\n      ) {\n        return;\n      } else {\n        // either scroll to top of listbox or scroll item to top\n        if (!listbox.el?.nativeElement.scrollBy) return; // needed for testing\n        listbox.el.nativeElement.scrollBy({\n          top: fullItemDistanceFromTop - listbox.listboxGap - amountScrolledAlready - listbox.listboxItemHeight\n        });\n      }\n    }\n  }\n\n  /* ======= KEYBOARD SHORTCUTS ======= */\n\n  /**\n   * The addShortcuts method adds keyboard shortcuts to the listbox and is called by default within <code>setUpListbox</code>.\n   * @param listbox Listbox to add shortcuts to.\n   */\n  private addShortcuts(listbox: ListboxDirective): void {\n    listbox.listeners.push(\n      this.renderer.listen(listbox.el.nativeElement, 'keydown', (event) => {\n        this.handleKeyDown(event, listbox);\n      })\n    );\n    listbox.listeners.push(\n      this.renderer.listen(listbox.el.nativeElement, 'keyup', (event) => {\n        this.handleKeyUp(event);\n      })\n    );\n  }\n\n  /**\n   * The handleKeyup method handles item selection on keyup events for the listbox and is called by default within <code>addShortcuts</code>.\n   * @param event Keyup event\n   * @param listbox Listbox to handle keyup event for.\n   */\n  private handleKeyUp(event: KeyboardEvent): void {\n    if (event.key === ENTER_KEY || event.key === SPACE_KEY || event.key === HOME_KEY || event.key === END_KEY) {\n      event.preventDefault(); // prevent scrolling\n    }\n  }\n\n  /**\n   * The handleKeydown handles keydown events for the listbox and is called by default within <code>addShortcuts</code>.\n   * @param event Keydown event\n   * @param listbox Listbox to handle keyup event for.\n   */\n  private handleKeyDown(event: KeyboardEvent, listbox: ListboxDirective): void {\n    listbox.isHotkeyEvent = true;\n    if (event.key !== TAB_KEY) {\n      event.preventDefault();\n    }\n\n    /**\n     * Meta + Shift + Home or End\n     * Select the focused option and all options up/down to the first option\n     * &\n     * Home or End\n     * Move the focus to the first/last listbox option\n     */\n    if (event.key === HOME_KEY || event.key === END_KEY) this.updateFocusItem(event, listbox);\n\n    /**\n     * A-Z OR a-z\n     * Typing a character will move the focus to the next item with a name that starts with that character\n     * Typing in rapid succession moves the focus to the next item with a name that reflectes the set of characters just typed\n     */\n    if (\n      !event.metaKey &&\n      event.key.length === 1 &&\n      ((event.key >= 'a' && event.key <= 'z') ||\n        (event.key >= 'A' && event.key <= 'Z') ||\n        (event.key >= '0' && event.key <= '9'))\n    )\n      this.searchKeyword(event, listbox);\n\n    if (!listbox.multiselect()) {\n      listbox.isHotkeyEvent = false;\n      return; // only handle multiselect for the rest of the shortcuts\n    }\n\n    /**\n     * Shift + ↑/↓\n     * Move the focus to and toggle the selected state of the next/previous option\n     * Multi-select only\n     */\n    if (event.key === UP_ARROW_KEY || event.key === DOWN_ARROW_KEY) this.toggleSelectedState(event, listbox);\n\n    /**\n     * Meta + A\n     * Select all or deselect all items\n     * Multi-select only\n     */\n    if (event.metaKey && (event.key === 'A' || event.key === 'a') && listbox.multiselect()) {\n      this.selectAll(listbox);\n    }\n\n    /**\n     * Shift + Space\n     * Select contiguous items from the most recently selected item to ths focused item\n     * Multi-select only\n     */\n    if (event.code === SPACE_CODE && event.shiftKey === true) this.selectContiguousItems(listbox);\n    listbox.isHotkeyEvent = false;\n  }\n\n  /**\n   * The updateFocusItem method  is activated by Meta + Shift + Home/End and selects all items between the focused item and the first or last item, then sets focus to the first or last item. <br>\n   * This method is called by default within <code>handleKeyDown</code>.\n   * @param event Keyboard event\n   * @param listbox Listbox to update focus item for.\n   */\n  private updateFocusItem(event: KeyboardEvent, listbox: ListboxDirective): void {\n    const listItemsArray = listbox.listItems();\n    const currentFocusItem = listbox.highlightedItem();\n\n    // store first or last item\n    const homeOrEndIndex =\n      event.key === HOME_KEY\n        ? this.novaLibService.firstEnabledItem(listItemsArray)\n        : this.novaLibService.lastEnabledItem(listItemsArray);\n\n    // focus first or last item\n    if (homeOrEndIndex < 0) return; // no items in listbox\n    listbox.highlightedItem.set(listItemsArray[homeOrEndIndex]);\n    listbox.highlightedItem()?.el.nativeElement.focus();\n\n    if (!event.metaKey || !event.shiftKey) return;\n    // if shift+meta key is pressed, select all items between the highlighted item and the first or last item\n    const currentFocusIndex = listItemsArray.findIndex((item) => item === currentFocusItem);\n    if (currentFocusIndex < 0) return; // no items in listbox\n    const startIndex = event.key === HOME_KEY ? homeOrEndIndex : currentFocusIndex;\n    const endIndex = event.key === HOME_KEY ? currentFocusIndex : homeOrEndIndex;\n    // select all items between the highlighted item and the first or last item\n    this.selectItems(listItemsArray, startIndex, endIndex);\n  }\n\n  /**\n   * The searchKeyword method  handles keys A-Z, a-z, and 0-9, moving the focus to the next item with a name starting with the typed character. <br>\n   * In the case of rapid succession, it moves the focus to the next item whose name matches the sequence of characters typed. <br />\n   * This method is called by default within <code>handleKeyDown</code>.\n   * @param event Keyboard event\n   * @param listbox Listbox to search for items in.\n   */\n  private searchKeyword(event: KeyboardEvent, listbox: ListboxDirective): void {\n    const listItemsArray = listbox.listItems();\n    listbox.keyword = listbox.keyword + event.key.toLowerCase();\n    clearTimeout(listbox.timeoutId);\n    const bounce = window.setTimeout(() => {\n      if (listbox.keyword !== '') {\n        listbox.keyword = '';\n      }\n    }, 1000);\n    listbox.timeoutId = bounce;\n    const selectedIndex = listItemsArray.findIndex((item) => {\n      const text = item.el.nativeElement.innerText?.toLowerCase() || item.el.nativeElement.textContent?.toLowerCase();\n      return text?.toLowerCase().includes(listbox.keyword);\n    });\n\n    if (selectedIndex === -1 || listItemsArray[selectedIndex].disabled()) return;\n    listbox.highlightedItem.set(listItemsArray[selectedIndex]);\n    listbox.highlightedItem()?.el.nativeElement.focus();\n  }\n\n  /**\n   * The selectAll method is activated by the Meta + A keys and selects or deselects all items in the listbox. <br>\n   * This method is called by default within <code>handleKeyDown</code>.\n   * @param listbox Listbox to select all items in.\n   */\n  private selectAll(listbox: ListboxDirective): void {\n    if (!listbox.multiselect()) return;\n    const listItemsArray = listbox.listItems() || [];\n    const allSelected = this.detectAllItemsSelected(listItemsArray);\n    allSelected ? this.deselectItems(listItemsArray) : this.selectItems(listItemsArray);\n  }\n\n  /**\n   * The selectFromCloserSelectedToFocused method selects all items between the currently focused item and the closest selected item. <br>\n   * This method is called by default within <code>handleKeyDown</code>.\n   */\n  private selectContiguousItems(listbox: ListboxDirective): void {\n    if (listbox.highlightedItem() === null || !listbox.recentSelectedItem() === null) return;\n    const listItemsArray = listbox.listItems();\n    const recentIndex = listItemsArray.findIndex((item) => item === listbox.recentSelectedItem());\n    const highlightedIndex = listItemsArray.findIndex((item) => item === listbox.highlightedItem());\n    const isRecentLarger = recentIndex > highlightedIndex;\n    this.selectItems(\n      listItemsArray,\n      isRecentLarger ? highlightedIndex : recentIndex,\n      isRecentLarger ? recentIndex : highlightedIndex\n    );\n  }\n\n  /**\n   * The toggleSelectedState method is activated by Shift + ↑/↓ and moves the focus to, and toggles the selected state of, the next or previous option. <br>\n   * This method is called by default within <code>handleKeyDown</code>.\n   * @param event Keyboard event\n   * @param listbox Listbox to toggle selected state for.\n   */\n  // @note: this is based on the fact that highlightedItem is set by novaLibService.addArrowKeyNavigation\n  // BEFORE this method is called, can we trust that order? how do we know?\n  private toggleSelectedState(event: KeyboardEvent, listbox: ListboxDirective): void {\n    const listItemsArray = listbox.listItems();\n\n    // this method is intended for up/down arrow keys with **shift key** pressed\n    if (!listItemsArray || !listItemsArray.length || !event.shiftKey) return; // no items in listbox\n\n    let newHighlightIndex = listbox.listItems().findIndex((item) => item === listbox.highlightedItem());\n\n    // if highlighted index is not found, refer to first enabled item\n    if (newHighlightIndex < 0) newHighlightIndex = this.novaLibService.firstEnabledItem(listItemsArray);\n\n    if (newHighlightIndex === null) return; // no items in listbox\n    listbox.highlightedItem.set(listItemsArray[newHighlightIndex]);\n    listbox.highlightedItem()?.selectItem(); // toggle active state\n  }\n\n  /**\n   * The selectItems method selects items from start_index to end_index in a list of listbox items. By default, it selects all items if no indices are specified.\n   * @param items Array of listbox items that you want to manipulate.\n   * @param start Index of the first item you want to manipulate.\n   * @param end Index of the last item you want to manipulate.\n   * @param prop The property name you want to set to true (ie. active, highlighted, etc.). Defaults to 'active'.\n   */\n  private selectItems(\n    items: readonly ListboxItemComponent[],\n    start: number = 0,\n    end: number = items?.length - 1 || 0\n  ): void {\n    if (!items || !items.length) return;\n    if (start < 0 || end >= items.length || start > end) return;\n    for (let i = start; i <= end; i++) {\n      const item = items[i];\n      if (!item.disabled()) item.selectItem(true);\n    }\n  }\n\n  /**\n   * The deselectItems method deselect items out of a list of listbox items.\n   * @param items List of items that contains the items you want to manipulate.\n   * @param index Optional index of the item you DO NOT want to manipulate.\n   * @param prop The property name you want to set to false (ie. active, highlighted, etc.). Defaults to 'active'.\n   */\n  private deselectItems(items: readonly ListboxItemComponent[], index?: number): void {\n    if (!items || !items.length) return;\n    items.forEach((item: ListboxItemComponent, i: number) => {\n      if ((index || index === 0) && i === index) return;\n      item.selectItem(false);\n    });\n  }\n\n  /**\n   * The detectAllItemsSelected method checks whether all items in a given list of tab or listbox items are selected.\n   * @param items List of items that contains the items you want to check.\n   * @returns true if all items are selected, false if not.\n   */\n  private detectAllItemsSelected(items: readonly ListboxItemComponent[]): boolean | undefined {\n    if (!items || !items.length) return;\n    let unSelectedItems = 0;\n    items.forEach((item) => {\n      if (!item.active() && !item.disabled()) unSelectedItems++;\n    });\n    return unSelectedItems == 0;\n  }\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport {\n  Directive,\n  ElementRef,\n  InputSignal,\n  InputSignalWithTransform,\n  ModelSignal,\n  Signal,\n  WritableSignal,\n  booleanAttribute,\n  computed,\n  contentChildren,\n  effect,\n  forwardRef,\n  inject,\n  input,\n  model,\n  numberAttribute,\n  output,\n  signal,\n  untracked\n} from '@angular/core';\nimport { DefaultValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ComboboxDirective } from '../combobox/combobox.directive';\nimport { IdGenerator } from '../id-generator/id-generator.service';\nimport { ListboxItemComponent } from '../listbox-item/listbox-item.component';\nimport { ListboxService } from './listbox.service';\nimport { NovaLibService } from '../nova-lib.service';\nimport { MultiSelectValue, SingleSelectValue } from '../combobox/combobox.constants';\nimport { valuesDiffer } from '../utilities';\n\nexport type ListboxValue = string | number | (string | number)[] | null;\n\nconst LISTBOX_VALUE_ACCESSOR = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => ListboxDirective),\n  multi: true\n};\n@Directive({\n  host: {\n    role: 'group',\n    class: 'v-listbox',\n\n    '[attr.id]': 'id()',\n    '[class.v-listbox-error]': 'invalid()',\n    '[class.v-listbox-scroll]': 'containHeight()',\n    '[style.--v-listbox-block-size-scroll]': 'scrollHeight()'\n  },\n  providers: [LISTBOX_VALUE_ACCESSOR],\n  selector: '[v-listbox]',\n  standalone: true\n})\nexport class ListboxDirective extends DefaultValueAccessor {\n  readonly combobox: ComboboxDirective | null = inject(ComboboxDirective, { optional: true }); // accessed in listbox-item.component.ts\n  public readonly el: ElementRef = inject(ElementRef);\n  private readonly idGenerator: IdGenerator = inject(IdGenerator);\n  private readonly listboxService: ListboxService = inject(ListboxService);\n  public readonly novaLibService: NovaLibService = inject(NovaLibService);\n\n  public readonly listItems: Signal<readonly ListboxItemComponent[]> = contentChildren(\n    forwardRef(() => ListboxItemComponent)\n  );\n\n  // set up listbox when rendered (or re-rendered)\n  prevListItems: ListboxItemComponent[] | undefined = undefined;\n  private readonly listboxItemsChangeEffect = effect(() => {\n    const prevListItems = this.prevListItems;\n    /**\n     * this effect will be called for every list item change (including active)\n     * we need to only update the listbox and relevant item props when the **rendered** items change\n     * ie when items are added or removed\n     * */\n    if (this.listItems() && this.listItems() !== prevListItems) {\n      // set up listbox\n      // if not in combobox, add arrow key navigation\n      if (!this.inCombobox) this.listboxService.setUpListbox(this);\n\n      if (this.customScrollControl()) return; // if custom scroll control is set, skip scrolling\n      setTimeout(() => {\n        this.listboxService.scrollItemIntoView(this);\n      }, 500); // on initial load, extra time is needed for getComputedStyle\n\n      // grab first focusable item and set as highlighted\n      const firstFocusableItem = this.listItems().find((item) => untracked(() => item.active()));\n      if (!firstFocusableItem) return; // if no focusable item, do nothing\n      // if an active item exists, set it as first highlighted\n      this.highlightedItem.set(firstFocusableItem);\n      this.prevListItems = this.listItems() as ListboxItemComponent[];\n    }\n  });\n\n  private readonly inCombobox: boolean = !!this.combobox;\n\n  // used in service\n  public listboxHeight: number = 0;\n  public listboxItemHeight: number = 0;\n  public listboxGap: number = 0;\n  public listboxScrollStylesSet: boolean = false;\n  public listeners: (() => void)[] = []; // used in service\n\n  public keyword: string = '';\n  public highlightedItem: WritableSignal<ListboxItemComponent | null> = signal(null);\n  public showFocus: WritableSignal<boolean> = signal(false);\n  public isHotkeyEvent: Boolean = false;\n  public timeoutId: number = 0;\n  public readonly ariaActiveDescendant: Signal<string | null> = computed(() => this.highlightedItem()?.id() || null);\n  public readonly recentSelectedItem: Signal<ListboxItemComponent | undefined> = computed(() => {\n    const value = this.value();\n\n    // if no value, return undefined\n    if (!value) return undefined;\n\n    // if multiselect, return last selected item\n    if (this.multiselect() && Array.isArray(value))\n      return this.listItems().find((item) => item.value() === value[value.length - 1]);\n\n    // if single select, return item with value\n    return this.listItems().find((item: ListboxItemComponent) => item.value() === value);\n  });\n\n  /**\n   * Sets custom id.\n   * @default idGenerator.newId('v-listbox')\n   * @builtin true\n   */\n  readonly id: InputSignal<string> = input<string>(this.idGenerator.newId('v-listbox'));\n\n  /**\n   * Sets listbox to multiselect variant when true.\n   * @default false\n   */\n  readonly multiselect: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets component and any ListboxItemComponent children as disabled when true. <br>\n   * Will automatically become true if all children are disabled.\n   * @default false\n   */\n  readonly disabledInput: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    alias: 'disabled',\n    transform: booleanAttribute\n  });\n  readonly disabledInternal: WritableSignal<boolean | null> = signal<boolean | null>(null);\n  // if any items are enabled, set listbox to enabled, if all items are disabled, set listbox to disabled\n  readonly disabledChildren: Signal<boolean | null> = computed(() => {\n    // if no items exist, return null\n    if (!this.listItems() || this.listItems().length === 0) return null;\n    // if any items are enabled, set listbox to enabled, if all items are disabled, set listbox to disabled\n    return this.listItems().some((item) => !item.disabledInput() && !item.disabledInternal()) ? null : true;\n  });\n  readonly disabled: Signal<boolean | null> = computed(\n    () =>\n      this.disabledInput() ?? this.disabledChildren() ?? this.combobox?.disabled() ?? this.disabledInternal() ?? null\n  );\n  /** Fires when a formControl's disabled state updates  */\n  override setDisabledState(isDisabled: boolean): void {\n    this.disabledInternal.set(isDisabled);\n    super.setDisabledState(isDisabled);\n  }\n\n  /**\n   * Sets component and any ListboxItemComponent children as invalid when true. <br>\n   * @default false\n   */\n  readonly invalidInput: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    alias: 'invalid',\n    transform: booleanAttribute\n  });\n  readonly invalid: Signal<boolean | null> = computed(() => this.invalidInput() ?? this.combobox?.invalid() ?? null);\n\n  /**\n   * Marks component as required when true.\n   * @default false\n   */\n  readonly requiredInput: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    alias: 'required',\n    transform: booleanAttribute\n  });\n  readonly required: Signal<boolean | null> = computed(() => this.requiredInput() ?? this.combobox?.required() ?? null);\n\n  /**\n   * Sets CSS variable <code>--v-listbox-block-size-scroll</code>. <br />\n   * If true, the default 180px will be the listbox's <code>max-block-size</code>. <br />\n   * If set to a number or string representing a number (ie <code>[containHeight]=\"250\"</code>), the variable will be set to that amount of pixels.\n   */\n  readonly containHeight: InputSignalWithTransform<boolean | null | number, unknown> = input<\n    boolean | null | number,\n    unknown\n  >(null, {\n    transform: (v) => {\n      const asNum = numberAttribute(v);\n      const asBool = booleanAttribute(v);\n      // if num is 0 return boolean\n      if (asNum === 0 || Number.isNaN(asNum)) return asBool;\n      return asNum;\n    }\n  });\n  protected readonly scrollHeight: Signal<string | null> = computed(() =>\n    this.containHeight() && this.containHeight() !== true ? parseInt(this.containHeight()?.toString()!) + 'px' : null\n  ); // allows \"250\" or \"250px\" for example\n\n  /**\n   * Value of listbox.\n   */\n  readonly value: ModelSignal<SingleSelectValue | MultiSelectValue | null> = model<\n    SingleSelectValue | MultiSelectValue | null\n  >(null);\n\n  // update item active from listbox value\n  private prevListboxValue: SingleSelectValue | MultiSelectValue | null = null;\n  private readonly valueChangeEffect = effect(() => {\n    const value = this.value();\n    if (!valuesDiffer(value, this.prevListboxValue)) return; // if value hasn't changed, do nothing\n    this.prevListboxValue = this.value();\n  });\n\n  /**\n   * Overrides default scroll control behavior. <br />\n   * By default the listbox will scroll to the last selected item.\n   * @default false\n   */\n  readonly customScrollControl: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  override writeValue(value: SingleSelectValue | MultiSelectValue | null): void {\n    this.value.set(value);\n    super.writeValue(value);\n  }\n\n  readonly manualUserChange = output<void>();\n\n  readonly userChange = () => {\n    // let form control know value has changed\n    this.onChange(this.value());\n    // emit manual user change event\n    this.manualUserChange.emit();\n  };\n\n  ngOnDestroy(): void {\n    // remove listeners\n    this.listeners?.forEach((listener) => listener());\n    this.listeners = [];\n  }\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  EventEmitter,\n  InputSignal,\n  InputSignalWithTransform,\n  OnInit,\n  Signal,\n  ViewEncapsulation,\n  WritableSignal,\n  afterNextRender,\n  booleanAttribute,\n  computed,\n  effect,\n  inject,\n  input,\n  signal\n} from '@angular/core';\nimport { ListboxDirective } from '../listbox/listbox.directive';\nimport { ListenerService } from '../listener-service/listener.service';\nimport { END_KEY, ENTER_KEY, HOME_KEY, SPACE_KEY } from '../nova-lib.constants';\n\n@Component({\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  host: {\n    class: 'v-listbox-item',\n    role: 'option',\n\n    '[attr.aria-disabled]': ' disabled() ? \"true\" : null',\n    '[attr.aria-selected]': 'active()',\n    '[attr.disabled]': 'null',\n    '[attr.id]': 'id()',\n    '[attr.value]': 'value()',\n    '[class.v-listbox-item-highlighted]': 'highlighted()',\n\n    '(click)': 'handleClick($event)',\n    '(keydown)': 'handleKeyDown($event)',\n    '(keyup)': 'handleKeyup($event)',\n    '(blur)': 'listbox?.onTouched()'\n  },\n  providers: [ListenerService],\n  selector: '[v-listbox-item] ',\n  standalone: true,\n  templateUrl: './listbox-item.component.html'\n})\nexport class ListboxItemComponent implements OnInit {\n  constructor() {\n    afterNextRender({\n      read: () => {\n        this.label.set(this.el.nativeElement.innerText || this.el.nativeElement.textContent || null);\n      }\n    });\n  }\n\n  readonly ready: WritableSignal<boolean> = signal<boolean>(false);\n  ngOnInit(): void {\n    this.ready.set(true);\n  }\n\n  // keep track of own label\n\n  public readonly el: ElementRef = inject(ElementRef);\n  protected readonly listbox: ListboxDirective | null = inject(ListboxDirective, { optional: true });\n  public readonly listenerService: ListenerService = inject(ListenerService);\n\n  readonly multiselect: Signal<boolean> = computed(() => this.listbox?.multiselect() ?? false);\n  readonly label: WritableSignal<string | null> = signal<string | null>(null);\n\n  /**\n   * Marks item as **intitally** selected when true. <br />\n   * Use the listbox directive's <code>value</code> to update the active state of the items.\n   * @default false\n   */\n  readonly activeInput: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    alias: 'active',\n    transform: booleanAttribute\n  });\n  private readonly initialActiveEffect = effect(() => {\n    const isActive = this.activeInput();\n    if (!isActive) return; // don't add to listbox value if not active\n    if (this.multiselect()) {\n      // multiselect, add value to array\n      this.listbox?.value.update((value) => (Array.isArray(value) ? [...value, this.value()] : [this.value()]));\n    } else {\n      // single select, set value directly\n      this.listbox?.value.set(this.value());\n    }\n  });\n\n  // holds the active state of the item\n  readonly active: Signal<boolean | null> = computed(() => {\n    if (!this.ready()) return null; // wait for initial render\n    const listboxValue = this.listbox?.value();\n    const itemValue = this.value();\n    if (Array.isArray(listboxValue) && this.multiselect()) {\n      // multiselect, check if item value is in the listbox value array\n      return listboxValue.includes(itemValue);\n    }\n    return listboxValue === itemValue;\n  });\n\n  /**\n   * Emits event when host interactive element is clicked.\n   */\n  readonly clicked: EventEmitter<Event> = new EventEmitter<Event>();\n\n  /**\n   * Marks item as selected when true.\n   * @default false\n   */\n  readonly disabledInput: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    alias: 'disabled',\n    transform: booleanAttribute\n  });\n  readonly disabledInternal: WritableSignal<boolean | null> = signal<boolean | null>(null); // used in listbox directive. Needed so there's no circular dependency between disableds.\n  readonly disabled: Signal<boolean | null> = computed(\n    () => this.disabledInput() ?? this.disabledInternal() ?? this.listbox?.disabled() ?? null\n  );\n\n  handleClick(event: Event): void {\n    this.clicked.emit(event);\n\n    // Directly call the combobox's handleListboxItemClick method if available\n    if (this.listbox?.combobox) {\n      this.listbox?.combobox?.handleListboxItemClick();\n    }\n\n    this.selectItem();\n  }\n\n  /**\n   * Marks item as highlighted when true. Occurs natively with :focus-visible.\n   * @default false\n   * @builtin true\n   */\n  readonly highlighted: Signal<boolean | null> = computed(() =>\n    // show highlight state when the item is highlighted and the listbox is focused\n    // this 'focus' is typically the psuedo focus state from combobox\n    this.value() === this.listbox?.highlightedItem()?.value() && this.listbox?.showFocus() ? true : false\n  );\n\n  /**\n   * Sets custom id.\n   * @default 'v-listbox-item-<value>'\n   * @builtin true\n   */\n  readonly idInput: InputSignal<string | null> = input<string | null>(null, {\n    alias: 'id'\n  });\n  readonly id: Signal<string> = computed(() => this.idInput() ?? 'v-listbox-item-' + this.value());\n\n  /**\n   * Value of listbox item. <br />\n   * A value <strong>must</strong> be present on every list item if it does not have a child radio or checkbox.\n   */\n  readonly value: InputSignal<string | number> = input.required<string | number>();\n\n  handleKeyup(event: KeyboardEvent): void {\n    // look for enter or space key to select item, but not if shift is pressed in tandem\n    if ((event.key === ENTER_KEY || event.key === SPACE_KEY) && !event.shiftKey) {\n      this.selectItem();\n    }\n  }\n\n  handleKeyDown(event: KeyboardEvent): void {\n    if (event.key === ENTER_KEY || event.key === SPACE_KEY || event.key === HOME_KEY || event.key === END_KEY) {\n      event.preventDefault(); // prevent scrolling\n    }\n  }\n\n  selectItem(newState?: boolean): void {\n    if (!this.listbox || this.disabled()) return;\n\n    const multiselect = this.multiselect();\n    const itemValue = this.value();\n    const listboxValue = this.listbox.value();\n\n    if (multiselect) {\n      // Ensure listboxValue is an array\n      const values: Array<string | number> = Array.isArray(listboxValue)\n        ? [...listboxValue]\n        : listboxValue\n          ? [listboxValue]\n          : [];\n      const index = values.indexOf(itemValue);\n      const exists = index !== -1;\n\n      // Determine if item should be in the array\n      const shouldInclude = newState === undefined ? !exists : newState;\n\n      // Add or remove item based on shouldInclude\n      if (shouldInclude && !exists) {\n        values.push(itemValue);\n      } else if (!shouldInclude && exists) {\n        values.splice(index, 1);\n      }\n\n      this.listbox.value.set(values);\n      this.listbox.userChange();\n    } else {\n      // For single select, set to itemValue or null based on newState\n      this.listbox.value.set(newState === false ? null : itemValue);\n      this.listbox.userChange();\n    }\n  }\n}\n","<!--\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n -->\n<span class=\"v-flex-shrink-0\" [class.v-checkbox]=\"multiselect()\" [class.v-radio]=\"!multiselect()\"></span>\n<ng-content />\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { DOCUMENT } from '@angular/common';\nimport { inject, Injectable, Renderer2, RendererFactory2 } from '@angular/core';\nimport { ButtonDirective } from './button/button.directive';\nimport { CheckboxDirective } from './checkbox/checkbox.directive';\nimport { LinkDirective } from './link/link.directive';\nimport { ListboxItemComponent } from './listbox-item/listbox-item.component';\nimport { DOWN_ARROW_KEY, LEFT_ARROW_KEY, RIGHT_ARROW_KEY, TAB_KEY, UP_ARROW_KEY } from './nova-lib.constants';\nimport { TabItemDirective } from './tab-item/tab-item.directive';\nimport { ListboxDirective } from './listbox/listbox.directive';\n\ntype Item = (ButtonDirective | CheckboxDirective | ListboxItemComponent) | undefined;\ntype Items = readonly Item[];\n/**\n * This service manages navigation states within the application, ensuring smooth transitions and a consistent user experience. <br />\n * It’s primarily used internally by the library but can also be leveraged directly for custom implementations.\n */\n@Injectable({\n  providedIn: 'root'\n})\nexport class NovaLibService {\n  private rendererFactory: RendererFactory2 = inject(RendererFactory2);\n  private document: Document | null = inject(DOCUMENT, { optional: true });\n\n  /** @ignore */\n  private renderer: Renderer2 = this.rendererFactory.createRenderer(null, null);\n\n  /**\n   * The addArrowKeyNavigation method adds arrow key navigation to an array of elements of type <code>ButtonDirective</code>, <code>ListboxItemComponent</code>, <code>or CheckboxDirective</code>.\n   * @param itemsArray Array of items to add arrow key navigation to.\n   * @param removeTabNavigation Optionally remove tab navigation from an array you're adding arrow navigation to.\n   * @param arrowDirections Optionally specify which arrow key directions to use for navigation.\n   * @param listbox Optionally specify a ListboxDirective to track highlighted item.\n   */\n  public addArrowKeyNavigation(\n    itemsArray: Items,\n    removeTabNavigation: boolean = false,\n    arrowDirections: 'both' | 'horizontal' | 'vertical' = 'both',\n    listbox?: ListboxDirective\n  ): void {\n    if (!itemsArray || !itemsArray.length) return;\n    itemsArray.forEach((item, index) => {\n      if (!item?.el?.nativeElement) return;\n\n      item.listenerService.navListeners.push(\n        // for each button, add an event listener for arrow \"keydown\"\n        this.renderer.listen(item.el.nativeElement, 'keydown', (event) => {\n          // right and down arrow keys should go to next focusable item\n          if (\n            (event.key === DOWN_ARROW_KEY && arrowDirections !== 'horizontal') ||\n            (event.key === RIGHT_ARROW_KEY && arrowDirections !== 'vertical')\n          ) {\n            event.preventDefault();\n            const focusableIndex = this.nextEnabledItem(itemsArray, index);\n            if (focusableIndex > -1) {\n              const focusableItem = itemsArray?.[focusableIndex];\n              if (!focusableItem?.el?.nativeElement) return;\n              focusableItem?.el.nativeElement.focus();\n              if (listbox) listbox.highlightedItem.set(focusableItem as ListboxItemComponent);\n            }\n          } else if (\n            (event.key === UP_ARROW_KEY && arrowDirections !== 'horizontal') ||\n            (event.key === LEFT_ARROW_KEY && arrowDirections !== 'vertical')\n          ) {\n            // left and up arrow keys should go to previous focusable item\n            event.preventDefault();\n            const focusableIndex = this.previousEnabledItem(itemsArray, index);\n            if (focusableIndex > -1) {\n              const focusableItem = itemsArray?.[focusableIndex];\n              if (!focusableItem?.el?.nativeElement) return;\n              focusableItem?.el.nativeElement.focus();\n              if (listbox) listbox.highlightedItem.set(focusableItem as ListboxItemComponent);\n            }\n          }\n        })\n      );\n    });\n\n    if (removeTabNavigation) this.removeTabNavigation(itemsArray);\n  }\n\n  /**\n   * The removeTabNavigation method removes tab navigation for an array of elements of type ButtonDirective, ListboxItemComponent, or CheckboxDirective. <br />\n   * When this functionality is added, it will disable tabbing between these specified elements.\n   * @param itemsArray Array of items to remove tab navigation from.\n   */\n  private removeTabNavigation(itemsArray: Items, listbox?: ListboxDirective): void {\n    if (!itemsArray || !itemsArray.length) return;\n    this.findStartingFocus(itemsArray);\n\n    itemsArray.forEach((item, index: number) => {\n      if (!item?.el.nativeElement) return;\n\n      item.listenerService.navListeners.push(\n        this.renderer.listen(item.el.nativeElement, 'keydown', (event) => {\n          // as you loop through the items with arrow keys, tabIndex must be updated so that only the item with focus has tabIndex = 0\n          if (event.key === DOWN_ARROW_KEY || event.key === RIGHT_ARROW_KEY) {\n            event.preventDefault(); // prevent scrolling\n            const focusableIndex = this.nextEnabledItem(itemsArray, index);\n            if (focusableIndex === -1) return; // no next item found\n            const focusableItem = itemsArray[focusableIndex];\n            if (!focusableItem?.el.nativeElement) return;\n            // set tabindex for the item that is focused to 0, and all\n            this.renderer.setAttribute(item.el.nativeElement, 'tabIndex', '-1');\n            this.renderer.setAttribute(focusableItem.el.nativeElement, 'tabIndex', '0');\n            if (listbox) listbox.highlightedItem.set(focusableItem as ListboxItemComponent);\n          } else if (event.key === UP_ARROW_KEY || event.key === LEFT_ARROW_KEY) {\n            event.preventDefault(); // prevent scrolling\n            const focusableIndex = this.previousEnabledItem(itemsArray, index);\n            if (focusableIndex === -1) return; // no next item found\n            const focusableItem = itemsArray[focusableIndex];\n            if (!focusableItem?.el.nativeElement) return;\n            // set tabindex for the item that is focused to 0, and all\n            this.renderer.setAttribute(item.el.nativeElement, 'tabIndex', '-1');\n            this.renderer.setAttribute(focusableItem.el.nativeElement, 'tabIndex', '0');\n            if (listbox) listbox.highlightedItem.set(focusableItem as ListboxItemComponent);\n          } else if (event.key === TAB_KEY) {\n            // if you tab out of the array, reset the starting index\n            this.findStartingFocus(itemsArray);\n          }\n        })\n      );\n    });\n  }\n\n  /**\n   * This method resets navigation behaviors for an array of elements of type <code>ButtonDirective</code>, <code>ListboxItemComponent</code>, or <code>CheckboxDirective</code>. <br />\n   * It removes any tabindex or event listeners added by <code>addArrowKeyNavigation</code> or <code>removeTabNavigation</code>.\n   * @param itemsArray Array of items to reset navigation behaviors for.\n   */\n  public resetNavigationBehaviors(itemsArray: Items): void {\n    if (!itemsArray || !itemsArray.length) return;\n    itemsArray.forEach((item) => {\n      if (!item?.el.nativeElement) return;\n      this.renderer.removeAttribute(item.el.nativeElement, 'tabIndex');\n      item.listenerService.cleanupNavListeners(); // cleanup any event listeners added by addArrowKeyNavigation or removeTabNavigation\n    });\n  }\n\n  /**\n   * The findStartingFocus method finds the item to start navigation on. <br />\n   * The starting focusable item is either the first item or the currently selected item.\n   * @param itemsArray Array of items to find starting focus for.\n   */\n  public findStartingFocus(itemsArray: Items): void {\n    if (!itemsArray || !itemsArray.length) return;\n    // item.ariaSelected = button, item.active = listboxItem, item.checked = checkbox\n    let selectedItemIndex = itemsArray.findIndex(\n      (item) =>\n        ((item instanceof ButtonDirective && item.ariaSelected()) ||\n          (item instanceof ListboxItemComponent && item.active()) ||\n          (item instanceof CheckboxDirective && item.checked())) === true\n    );\n    if (selectedItemIndex === -1) selectedItemIndex = this.nextEnabledItem(itemsArray);\n    itemsArray.forEach((item, index: number) => {\n      if (!item?.el.nativeElement) return;\n      // if an item is the first / selected item, allow tab focus, otherwise remove tab focus ability\n      this.renderer.setAttribute(item.el.nativeElement, 'tabIndex', index === selectedItemIndex ? '0' : '-1');\n    });\n  }\n\n  /**\n   * The nextEnabledItem method finds the next item in the array that is not disabled. <br />\n   * When this functionality is added, it will automatically skip over disabled items to locate the next enabled one.\n   * @param items Array of items to search for next enabled item.\n   * @param currentIndex Index to start searching from.\n   * @returns Index of next item that is not disabled.\n   */\n  public nextEnabledItem(items: Items, currentIndex?: number): number {\n    if (!items || !items.length) return -1;\n    let index = currentIndex || currentIndex === 0 ? currentIndex + 1 : 0;\n    let count = 0;\n    while (count < items.length && index !== currentIndex) {\n      if (index >= items.length) {\n        index = 0;\n      }\n      if (!items[index]?.disabled()) {\n        return index;\n      }\n      index++;\n      count++;\n    }\n    return index;\n  }\n\n  /**\n   * The lastEnabledItem method retrieves the last item in an array that is not disabled.\n   * @param items Array of items to search for last enabled item.\n   * @returns Index of most last item that is not disabled.\n   */\n  public lastEnabledItem(items: Items): number {\n    if (!items || !items.length) return -1;\n    let count = items.length - 1;\n    while (count >= 0) {\n      if (items[count]?.disabled() !== true) return count;\n      count--;\n    }\n    return -1;\n  }\n\n  /**\n   * The firstEnabledItem methods retrieves the first item in array that is not disabled.\n   * @param items Array of items to search for first enabled item.\n   * @returns Index of first item that is not disabled.\n   */\n  public firstEnabledItem(items: Items): number {\n    if (!items || !items.length) return -1;\n    let count = 0;\n    while (count < items.length) {\n      if (items[count]?.disabled() !== true) return count;\n      count++;\n    }\n    return -1;\n  }\n\n  /**\n   * The previousEnabledItem method finds the previous item in the array that is not disabled. <br />\n   * When this functionality is added, it will automatically skip over disabled items to locate the previous enabled one.\n   * @param items Array of items to search for previous enabled item.\n   * @param currentIndex Index to start reverse searching from.\n   * @returns Index of first previous item that is not disabled.\n   */\n  public previousEnabledItem(items: Items, currentIndex?: number): number {\n    if (!items || !items.length) return -1;\n    let index = currentIndex || currentIndex === 0 ? currentIndex - 1 : items.length - 1;\n    let count = 0;\n    while (count < items.length && index !== currentIndex) {\n      if (index === -1) {\n        index = items.length - 1;\n      }\n      if (!items[index]?.disabled()) {\n        return index;\n      }\n      index--;\n      count++;\n    }\n    return index;\n  }\n\n  /**\n   * The addAutomaticActivation method enables automatic tab activation for the specified tab or listbox list. <br />\n   * When this functionality is added, focusing on an item will also select and activate it.\n   * @param items Array of items to add automatic activation to.\n   */\n  public addAutomaticActivation(items: readonly (ListboxItemComponent | TabItemDirective)[]): void {\n    if (!items || !items.length) return;\n    items.forEach((item) => {\n      if (item instanceof TabItemDirective) {\n        const button = item.button();\n        if (!button?.el?.nativeElement) return;\n        // tab button\n        button.listenerService.navListeners.push(\n          this.renderer.listen(button.el.nativeElement, 'focus', () => {\n            item.active.set(true);\n          })\n        );\n      } else if (item instanceof ListboxItemComponent) {\n        // standard list item\n        item.listenerService.navListeners.push(\n          this.renderer.listen(item.el.nativeElement, 'focus', () => {\n            item.selectItem();\n          })\n        );\n      }\n    });\n  }\n\n  /** @ignore */\n  private currentLink: HTMLElement | null | undefined;\n  /**\n   * @deprecated\n   * @deprecationMessage instead of `setAriaCurrent`, use `handleAriaCurrent` for a list of LinkDirectives,\n   * or manipulate the property via template binding to [attr.aria-current].\n   * The setAriaCurrent method sets the aria-current=\"true\" attribute on the element with the specified ID.\n   * @param id ID of element to set aria-current=\"true\" on.\n   */\n  public setAriaCurrent(id: string) {\n    if (this.currentLink) {\n      this.renderer.setAttribute(this.currentLink, 'aria-current', 'false');\n    }\n\n    this.currentLink = this.document?.getElementById(id);\n    if (!this.currentLink) {\n      console.warn('NovaLibService: setAriaCurrent could not find element with id: ' + id);\n      return;\n    }\n    this.renderer.setAttribute(this.currentLink, 'aria-current', 'true');\n  }\n\n  /**\n   * The handleAriaCurrent method handles the aria-current value on click for a list of links.\n   * @param links List of links to add aria-current functionality to.\n   */\n  public handleAriaCurrent(links: readonly LinkDirective[]): void {\n    links.forEach((link) => {\n      if (!link.el?.nativeElement) return;\n      link.listenerService.listeners.push(\n        this.renderer.listen(link.el.nativeElement, 'click', () => {\n          this.renderer.setAttribute(link.el.nativeElement, 'aria-current', 'true');\n          links.forEach((item) => {\n            if (item === link || !item.el?.nativeElement) return;\n            this.renderer.setAttribute(item.el.nativeElement, 'aria-current', 'false');\n          });\n        })\n      );\n    });\n  }\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { Directive } from '@angular/core';\n\n@Directive({\n  host: {\n    class: 'v-panel-content v-surface'\n  },\n  selector: '[v-panel-content]',\n  standalone: true\n})\nexport class PanelContentDirective {}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport {\n  AfterContentInit,\n  booleanAttribute,\n  computed,\n  contentChildren,\n  Directive,\n  effect,\n  ElementRef,\n  forwardRef,\n  inject,\n  input,\n  InputSignal,\n  InputSignalWithTransform,\n  signal,\n  Signal,\n  WritableSignal\n} from '@angular/core';\nimport { ButtonDirective } from '../button/button.directive';\nimport { NavDirective } from '../nav/nav.directive';\nimport { NovaLibService } from '../nova-lib.service';\nimport { PanelContentDirective } from '../panel-content/panel-content.directive';\nimport { TabItemDirective } from '../tab-item/tab-item.directive';\n\n@Directive({\n  host: {\n    class: 'v-tabs',\n\n    '[attr.aria-orientation]': \"vertical() && !navParent ?  'vertical' : null\",\n    '[attr.role]': 'role()',\n    '[class.v-panel-tabs]': 'panelParent',\n    '[class.v-tabs-horizontal]': '!vertical()',\n    '[class.v-tabs-vertical]': 'vertical()'\n  },\n  selector: '[v-tabs]',\n  standalone: true\n})\nexport class TabListDirective implements AfterContentInit {\n  prevTabs: WritableSignal<TabItemDirective[] | undefined> = signal(undefined);\n  constructor() {\n    /**\n     * this effect will be called for every tab item change (including active)\n     * we need to only update the list and relevant item props when the **rendered** items change\n     * ie when items are added or removed\n     * */\n    effect(() => {\n      const tabs = this.tabs();\n      if (!tabs || tabs.length === 0 || tabs === this.prevTabs()) return;\n      this.setUpTabs();\n      this.prevTabs.set(tabs as TabItemDirective[]); // store the current tabs for comparison\n    });\n  }\n\n  ngAfterContentInit(): void {\n    // set up tabs immediately so if user calls resetNavigation from NovaService,\n    // it will have the correct listeners to reset\n    // otherwise the listeners will be added AFTER the user calls resetNavigation\n    this.setUpTabs();\n    this.prevTabs.set(this.tabs() as TabItemDirective[]); // store the current tabs for comparison\n  }\n\n  readonly tabListParent: TabListDirective | null = inject(TabListDirective, {\n    optional: true,\n    host: true,\n    skipSelf: true\n  });\n  readonly navParent: NavDirective | null = inject(NavDirective, {\n    optional: true,\n    host: true\n  });\n  protected readonly panelParent: PanelContentDirective | null = inject(PanelContentDirective, {\n    optional: true,\n    host: true\n  });\n  private readonly el: ElementRef = inject(ElementRef, { host: true });\n  private readonly novaLibService: NovaLibService = inject(NovaLibService);\n\n  public readonly buttons: Signal<readonly ButtonDirective[]> = contentChildren(\n    forwardRef(() => ButtonDirective),\n    { descendants: true }\n  );\n  public readonly tabs: Signal<readonly TabItemDirective[]> = contentChildren(forwardRef(() => TabItemDirective));\n\n  /**\n   * Sets custom role.\n   * @default 'tablist'\n   * @default null if nested tab list or within Navigation.\n   * @builtin true\n   */\n  readonly roleInput: InputSignal<string | null> = input<HTMLElement['role']>(null, { alias: 'role' });\n  protected readonly role: Signal<string | null> = computed(\n    () => this.roleInput() ?? (this.tabListParent || this.navParent ? null : 'tablist')\n  );\n\n  /**\n   * Sets tab list to vertical orientation when true.\n   * @default false\n   */\n  readonly vertical: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  private setUpTabs(): void {\n    if (this.navParent) return;\n    // if just plain tabs..\n    this.novaLibService.addArrowKeyNavigation(\n      this.buttons(),\n      this.el.nativeElement,\n      this.vertical() ? 'vertical' : 'horizontal'\n    );\n\n    this.setUpFocusListener();\n  }\n\n  private readonly prevActiveTab: WritableSignal<TabItemDirective | undefined> = signal(\n    this.tabs()?.find((tab) => tab.active()) || undefined\n  );\n  private readonly activeTabEffect = effect(() => {\n    this.tabs().forEach((tab) => {\n      const active = tab.active();\n\n      if (active && this.prevActiveTab && this.prevActiveTab() !== tab) {\n        this.prevActiveTab()?.active.set(false); // deactivate previous active tab\n        // if the tab is active, set it as the previous active tab\n        this.prevActiveTab.set(tab);\n      }\n    });\n  });\n\n  private setUpFocusListener(): void {\n    this.buttons()?.forEach((button) => {\n      // button's listenerService will clean up the subscriptions\n      button.listenerService.navSubscriptions.push(\n        button.blurred.subscribe((event: FocusEvent) => {\n          // if focus is leaving the tab list, find the starting focusable tab for when the list receives focus again\n          // if focus stays in the tab list, relatedTarget will be a button within the tab list\n          if (!event.relatedTarget || !!this.el.nativeElement.contains(event.target)) {\n            this.novaLibService.findStartingFocus(this.buttons());\n          }\n        })\n      );\n    });\n  }\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport {\n  AfterContentInit,\n  Directive,\n  InputSignal,\n  InputSignalWithTransform,\n  ModelSignal,\n  OnInit,\n  OutputEmitterRef,\n  Signal,\n  afterNextRender,\n  booleanAttribute,\n  computed,\n  contentChild,\n  effect,\n  forwardRef,\n  inject,\n  input,\n  model,\n  output\n} from '@angular/core';\nimport { ButtonDirective } from '../button/button.directive';\nimport { FloatingUITriggerDirective } from '../floating-ui-trigger/floating-ui-trigger.directive';\nimport { TabListDirective } from '../tab-list/tab-list.directive';\n\n@Directive({\n  host: {\n    class: 'v-tab',\n\n    '[attr.role]': 'role()',\n    '[class.v-tab-section-title]': 'sectionTitle()'\n  },\n  selector: '[v-tab-item]',\n  standalone: true\n})\nexport class TabItemDirective implements OnInit, AfterContentInit {\n  ngOnInit(): void {\n    // ie `<div v-tab-item expanded>` will set the checked state to '', which is truthy\n    if (this.expanded() === '') {\n      this.expanded.set(true);\n    }\n  }\n\n  constructor() {\n    afterNextRender({\n      write: () => {\n        // if initial active state is set, set the active state to the initial value\n        // ie `<li v-tab-item active>` will set the active state to '', which is truthy\n        if (this.active() === '') {\n          this.active.set(true);\n        }\n      }\n    });\n\n    // Watch for expanded state changes and emit disclosureTabToggled\n    // This handles both click-triggered and programmatic changes\n    let previousExpandedValue: boolean | null | string = null;\n    let isFirstRun = true;\n\n    effect(() => {\n      if (!this.disclosureTab()) return;\n\n      const currentExpandedValue = this.expanded();\n\n      // Skip initial run and only emit if value changed\n      if (!isFirstRun && currentExpandedValue !== previousExpandedValue) {\n        this.disclosureTabToggled.emit(!!currentExpandedValue);\n\n        // Update button aria-expanded if button exists\n        const button = this.button();\n        if (button) {\n          button.ariaExpandedInternal.set(!!currentExpandedValue);\n        }\n      }\n\n      previousExpandedValue = currentExpandedValue;\n      isFirstRun = false;\n    });\n  }\n\n  public readonly tabList: TabListDirective | null = inject(TabListDirective, {\n    optional: true,\n    host: true\n  });\n\n  public readonly button: Signal<ButtonDirective | undefined> = contentChild(forwardRef(() => ButtonDirective));\n  public readonly stackedButton: Signal<ButtonDirective | undefined> = computed(() =>\n    this.button()?.buttonStacked() ? this.button() : undefined\n  );\n  public readonly trigger: Signal<FloatingUITriggerDirective | undefined> = contentChild(\n    forwardRef(() => FloatingUITriggerDirective)\n  );\n\n  /**\n   * Marks item as selected when true. <br />\n   * Can be used with navigational tabs as an alternative to Angular Router's routerLinkActive. When active is true, child buttons will automatically receive aria-current=\"page\".\n   * Use [active] when you want to handle the active state of the tab item.\n   * Use (activeChange) when you want the library to handle the active state of the tab item, but get notified of changes.\n   * Use [(active)] when you want the active state to reflect changes by both you and the library.\n   */\n  readonly active: ModelSignal<boolean | string | null> = model<boolean | string | null>(null);\n\n  /**\n   * Marks the tab as a disclosure item when true. <br />\n   * This item cannot be active and should expand and collapse when pressed.\n   * @default false\n   */\n  readonly disclosureTab: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Emits expanded state when the child button is clicked.\n   */\n  readonly disclosureTabToggled: OutputEmitterRef<boolean> = output<boolean>();\n\n  /**\n   * Sets expanded state of disclosure tab item.\n   * Use [expanded] when you want to handle the expanded state of the tab item.\n   * Use (expandedChange) when you want the library to handle the expanded state of the tab item, but get notified of changes.\n   * Use [(expanded)] when you want the expanded state to reflect changes by both you and the library.\n\n   * @default false\n   */\n  readonly expanded: ModelSignal<boolean | null | string> = model<boolean | null | string>(null);\n\n  /**\n   * Sets role of tab item. <br />\n   * If no custom role is set, role may be set by a parent component (nav, tabs, etc.).\n   * @builtin true\n   */\n  readonly roleInput: InputSignal<HTMLElement['role']> = input<HTMLElement['role']>(null, { alias: 'role' });\n  protected readonly role: Signal<HTMLElement['role'] | undefined> = computed(\n    () =>\n      this.roleInput() ??\n      (this.tabList\n        ? this.trigger() ||\n          this.disclosureTab() ||\n          this.sectionTitle() ||\n          this.tabList?.tabListParent ||\n          this.tabList?.navParent\n          ? null\n          : 'none'\n        : null)\n  );\n\n  /**\n   * Marks the tab as a section title when true. <br />\n   * This item titles a subset of tabs and is not interactive.\n   * @default false\n   */\n  readonly sectionTitle: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  ngAfterContentInit(): void {\n    const button = this.button();\n    if (!button) return;\n\n    button.listenerService.subscriptions.push(\n      button.clicked.subscribe(() => {\n        this.active.set(true);\n\n        if (!this.disclosureTab()) return;\n\n        const newExpandedValue = !this.expanded();\n        this.expanded.set(newExpandedValue);\n      })\n    );\n    if (!this.disclosureTab()) return;\n    // set the initial expanded state\n    button.ariaExpandedInternal.set(!!this.expanded());\n  }\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { computed, Directive, inject, Signal } from '@angular/core';\nimport { IconToggleComponent } from '../icon-toggle/icon-toggle.component';\nimport { TabItemDirective } from '../tab-item/tab-item.directive';\n\n@Directive({\n  host: {\n    '[class.v-tab-suffix]': 'tabSuffix()',\n    '[class.v-accordion-toggle-icon]': '!!iconToggle?.accordion'\n  },\n  selector: '[v-toggle-default-template]',\n  standalone: true\n})\nexport class IconToggleDefaultTemplateDirective {\n  protected readonly iconToggle: IconToggleComponent | null = inject(IconToggleComponent, {\n    optional: true,\n    host: true\n  });\n  readonly tabItem: TabItemDirective | null = inject(TabItemDirective, {\n    optional: true,\n    host: true\n  });\n\n  readonly tabSuffix: Signal<boolean> = computed(() => !!(this.tabItem?.disclosureTab() || this.tabItem?.trigger()));\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { computed, Directive, inject, Signal } from '@angular/core';\n\nimport { IconToggleComponent } from '../icon-toggle/icon-toggle.component';\nimport { TabItemDirective } from '../tab-item/tab-item.directive';\n\n@Directive({\n  host: {\n    '[class.v-tab-suffix]': 'tabSuffix()',\n    '[class.v-accordion-toggle-icon]': '!!iconToggle?.accordion'\n  },\n  selector: '[v-toggle-rotated-template]',\n  standalone: true\n})\nexport class IconToggleRotatedTemplateDirective {\n  protected readonly iconToggle: IconToggleComponent | null = inject(IconToggleComponent, {\n    optional: true,\n    host: true\n  });\n  readonly tabItem: TabItemDirective | null = inject(TabItemDirective, {\n    optional: true,\n    host: true\n  });\n\n  readonly tabSuffix: Signal<boolean> = computed(() => !!(this.tabItem?.disclosureTab() || this.tabItem?.trigger()));\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  InputSignal,\n  InputSignalWithTransform,\n  Signal,\n  ViewEncapsulation,\n  WritableSignal,\n  booleanAttribute,\n  computed,\n  contentChild,\n  forwardRef,\n  inject,\n  input,\n  signal\n} from '@angular/core';\nimport { AccordionDetailsDirective } from '../accordion-item/accordion-item.directive';\nimport { ButtonDirective } from '../button/button.directive';\nimport { IconToggleDefaultTemplateDirective } from '../icon-toggle-default/icon-toggle-default.directive';\nimport { IconToggleRotatedTemplateDirective } from '../icon-toggle-rotated/icon-toggle-rotated.directive';\n\n@Component({\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  host: {\n    class: 'v-icon v-icon-tiny',\n\n    '[class.v-accordion-toggle-icon]': '!!accordion',\n    '[class.v-tab-suffix]': 'tabSuffix()',\n    '[style.align-items]': 'alignment()',\n    '[style.justify-content]': 'alignment()',\n    '[style.pointer-events]': 'pointerEvents()',\n    '[style.--v-icon-primary]': 'color()',\n    '[style.--v-icon-secondary]': 'color()'\n  },\n  selector: 'v-icon-visa-toggle',\n  standalone: true,\n  templateUrl: './icon-toggle.component.html'\n})\nexport class IconToggleComponent {\n  private readonly button: ButtonDirective | null = inject(ButtonDirective, { optional: true, host: true });\n  public readonly accordion: AccordionDetailsDirective | null = inject(AccordionDetailsDirective, {\n    optional: true,\n    host: true\n  });\n\n  readonly defaultTemplate: Signal<IconToggleDefaultTemplateDirective | undefined> = contentChild(\n    forwardRef(() => IconToggleDefaultTemplateDirective)\n  );\n  readonly rotatedTemplate: Signal<IconToggleRotatedTemplateDirective | undefined> = contentChild(\n    IconToggleRotatedTemplateDirective\n  );\n\n  readonly tabSuffix: Signal<boolean | null> = computed(() =>\n    this.defaultTemplate()?.tabSuffix() || this.rotatedTemplate()?.tabSuffix() ? true : null\n  );\n\n  /** @ignore */\n  readonly alignment: InputSignal<string> = input<HTMLElement['style']['alignItems']>('center');\n\n  // don't allow this component to be styled with colors\n  // \"pass\" the colors to the child svg\n  /** @ignore */\n  readonly color: InputSignal<string> = input<HTMLElement['style']['color']>('inherit');\n\n  /** @ignore */\n  readonly pointerEvents: InputSignal<string> = input<HTMLElement['style']['pointerEvents']>('none');\n\n  /**\n   * Shows the rotated template when true and the default template when false.\n   * @default false\n   **/\n  readonly rotatedInput: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    alias: 'rotated',\n    transform: booleanAttribute\n  });\n  readonly rotatedInternal: WritableSignal<boolean | null> = signal<boolean | null>(null); // used in floating-ui-container\n  protected readonly rotated: Signal<boolean | null | string> = computed(\n    () =>\n      this.rotatedInput() ?? this.button?.ariaExpanded() ?? this.accordion?.expanded() ?? this.rotatedInternal() ?? null\n  );\n}\n","<!--\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n -->\n@if (rotated()) {\n  <ng-content select=\"[v-toggle-rotated-template]\" />\n} @else {\n  <ng-content select=\"[v-toggle-default-template]\" />\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nexport const IconSize = {\n  TINY: 'tiny',\n  LOW: 'low',\n  HIGH: 'high'\n} as const;\n\nexport type IconSize = (typeof IconSize)[keyof typeof IconSize];\n\nexport const IconLibrary = {\n  VISA: 'visa',\n  GENERIC: 'generic'\n} as const;\n\nexport type IconLibrary = (typeof IconLibrary)[keyof typeof IconLibrary];\n\nexport const IconToggle = {\n  ACCORDION_COLLAPSED: 'chevron-right',\n  ACCORDION_EXPANDED: 'chevron-down',\n  COLLAPSED: 'chevron-down',\n  EXPANDED: 'chevron-up'\n} as const;\n\nexport type IconToggle = (typeof IconToggle)[keyof typeof IconToggle];\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport {\n  computed,\n  Directive,\n  inject,\n  input,\n  InputSignal,\n  Signal,\n  signal,\n  WritableSignal,\n} from '@angular/core';\nimport { IconToggle } from '../icon/icon.constants';\nimport { AccordionDetailsDirective } from '../accordion-item/accordion-item.directive';\nimport { FloatingUIContainer } from '../floating-ui-container/floating-ui-container.directive';\n\n/**\n * This directive can be used alongside the <code>v-icon</code> component to show a toggle icon when the item is collapsed or expanded. <br>\n * It is for use in icons that are part of icon sprites and not standalone icons.\n */\n@Directive({\n  host: {\n    '[class.v-accordion-toggle-icon]': '!!accordion',\n  },\n  selector: '[v-icon-toggle]',\n  standalone: true,\n})\nexport class IconToggleDirective {\n  protected readonly accordion: AccordionDetailsDirective | null = inject(\n    AccordionDetailsDirective,\n    {\n      optional: true,\n      host: true,\n    },\n  );\n  private readonly floatingContainer: FloatingUIContainer | null = inject(\n    FloatingUIContainer,\n    {\n      optional: true,\n      host: true,\n    },\n  );\n  readonly rotatedInternal: WritableSignal<boolean | null> = signal<\n    boolean | null\n  >(null); // used in floating-ui-container\n  public readonly expanded: Signal<boolean | string | null> = computed<\n    boolean | string | null\n  >(\n    () =>\n      this.rotatedInternal() ??\n      this.accordion?.expanded() ??\n      this.floatingContainer?.isShown() ??\n      null,\n  );\n\n  /**\n   * Icon to show when item is collapsed / hidden. <br>\n   * Will render this icon when no <code>icon</code> or <code>customIcon</code> is provided to <code>v-icon</code>. <br>\n   * Should refer to an icon in VPDS' [Icon Library](https://design.visa.com/components/icons-illustrations/).\n   * @default 'chevron-right' / IconToggle.COLLAPSED <br>\n   * @builtin true\n   */\n  readonly collapsedIconInput: InputSignal<string | null> = input<\n    IconToggle | null | string\n  >(null, {\n    alias: 'collapsedIcon',\n  });\n  public readonly collapsedIcon: Signal<string> = computed(\n    () =>\n      this.collapsedIconInput() ??\n      (!!this.accordion\n        ? IconToggle.ACCORDION_COLLAPSED\n        : IconToggle.COLLAPSED),\n  );\n\n  /**\n   * Icon to show when item is expanded / shown. <br>\n   * Will render this icon when no <code>icon</code> or <code>customIcon</code> is provided to <code>v-icon</code>. <br>\n   * Should refer to an icon in VPDS' [Icon Library](https://design.visa.com/components/icons-illustrations/).\n   * @default 'chevron-down' / IconToggle.EXPANDED <br>\n   * @builtin true\n   */\n  readonly expandedIconInput: InputSignal<IconToggle | null> =\n    input<IconToggle | null>(null, {\n      alias: 'expandedIcon',\n    });\n  public readonly expandedIcon: Signal<string> = computed(\n    () =>\n      this.expandedIconInput() ??\n      (!!this.accordion ? IconToggle.ACCORDION_EXPANDED : IconToggle.EXPANDED),\n  );\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { Directive, ElementRef, inject, input, InputSignalWithTransform, numberAttribute } from '@angular/core';\n\n@Directive({\n  host: {\n    class: 'v-tooltip-arrow',\n    style: 'background-color: var(--v-surface-background); position: absolute; transform: rotate(45deg); z-index: -1;',\n\n    '[style.block-size]': 'customSize() + \"px\"',\n    '[style.inline-size]': 'customSize() + \"px\"'\n  },\n  selector: '[v-tooltip-arrow]',\n  standalone: true\n})\nexport class TooltipArrowDirective {\n  public readonly el: ElementRef = inject(ElementRef); // ElementRef needed for floating-ui-container\n\n  /**\n   * Sets custom size *in pixels* for the arrow.\n   * @default 8\n   */\n  readonly customSize: InputSignalWithTransform<number, unknown> = input<number, unknown>(8, {\n    transform: numberAttribute\n  });\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport {\n  Directive,\n  ElementRef,\n  InputSignal,\n  InputSignalWithTransform,\n  Signal,\n  WritableSignal,\n  computed,\n  contentChild,\n  inject,\n  input,\n  numberAttribute,\n  signal\n} from '@angular/core';\nimport { TooltipArrowDirective } from '../arrow/arrow.directive';\n\n@Directive({\n  host: {\n    class: 'v-surface v-tooltip',\n    role: 'tooltip',\n\n    '[attr.id]': 'id()',\n    '[style.display]': 'display()',\n    '[style.z-index]': 'zIndex() || null'\n  },\n  selector: '[v-tooltip]',\n  standalone: true\n})\nexport class TooltipDirective {\n  public readonly el: ElementRef = inject(ElementRef); // ElementRef needed for floating-ui-container\n\n  public readonly arrow: Signal<TooltipArrowDirective | undefined> = contentChild(TooltipArrowDirective); // Used inside floating-ui-container\n\n  /**\n   * Sets custom display when tooltip is visible. Initial display is set to none to hide tooltip.\n   * @builtin true\n   */\n  readonly display: InputSignal<string> = input<HTMLElement['style']['display']>('none');\n\n  /**\n   * Sets custom ID.\n   */\n  readonly idInput: InputSignal<HTMLElement['id'] | null> = input<HTMLElement['id'] | null>(null, { alias: 'id' });\n  readonly idInternal: WritableSignal<HTMLElement['id'] | null> = signal<HTMLElement['id'] | null>(null); // used in floating-ui-container\n  readonly id: Signal<HTMLElement['id'] | null> = computed(() => this.idInput() ?? this.idInternal());\n\n  /**\n   * Sets custom z-index.\n   * @default '700'\n   * @builtin true\n   */\n  readonly zIndex: InputSignalWithTransform<string | number, unknown> = input<number | string, unknown>('700', {\n    alias: 'z-index',\n    transform: numberAttribute\n  });\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport {\n  AfterContentInit,\n  Directive,\n  ElementRef,\n  InputSignal,\n  InputSignalWithTransform,\n  OutputEmitterRef,\n  Renderer2,\n  Signal,\n  WritableSignal,\n  booleanAttribute,\n  computed,\n  contentChild,\n  contentChildren,\n  effect,\n  forwardRef,\n  inject,\n  input,\n  output,\n  signal\n} from '@angular/core';\nimport { Middleware } from '@floating-ui/dom';\nimport { ButtonDirective } from '../button/button.directive';\nimport { DropdownItemDirective } from '../dropdown-item/dropdown-item.directive';\nimport { DropdownMenuDirective } from '../dropdown-menu/dropdown-menu.directive';\nimport { FloatingUIElementDirective } from '../floating-ui-element/floating-ui-element.directive';\nimport { FloatingUITriggerDirective } from '../floating-ui-trigger/floating-ui-trigger.directive';\nimport {\n  FloatingUIPlacements,\n  FloatingUIVisibility,\n  UIEventVisibilityPair\n} from '../floating-ui/floating-ui.constants';\nimport { FloatingUIService } from '../floating-ui/floating-ui.service';\nimport { IconToggleComponent } from '../icon-toggle/icon-toggle.component';\nimport { IconToggleDirective } from '../icon-toggle/icon-toggle.directive';\nimport { IdGenerator } from '../id-generator/id-generator.service';\nimport { ListboxItemComponent } from '../listbox-item/listbox-item.component';\nimport { ListboxDirective } from '../listbox/listbox.directive';\nimport { TooltipDirective } from '../tooltip/tooltip.directive';\nimport { TabItemDirective } from '../tab-item/tab-item.directive';\nimport { Unsubscribable } from '../types';\nimport { AccordionHeadingDirective } from '../accordion-heading/accordion-heading.directive';\n\n@Directive({\n  host: {\n    style: '--v-dropdown-menu-surface-margin-block-start: 0;', // this is an angular-specific override. Spacing between dropdown-menu and button/trigger, is handled within floating-ui.service\n\n    '(document:keydown)': 'tab($event)',\n    '(focusout)': 'focusout($event)'\n  },\n  providers: [FloatingUIService],\n  selector: '[v-floating-ui-container]',\n  standalone: true\n})\nexport class FloatingUIContainer implements AfterContentInit {\n  // service injection\n  private readonly idGenerator: IdGenerator = inject(IdGenerator);\n  private readonly renderer: Renderer2 = inject(Renderer2);\n  public readonly floatingUIService: FloatingUIService = inject(FloatingUIService);\n\n  // element injection\n  private readonly el: ElementRef = inject(ElementRef);\n\n  /**\n   * we need to find child containers so we can SKIP setting up any of their children\n   * We want to set up any toggle buttons, tooltips, menus, etc in this current container\n   * but not in any child containers\n   */\n  private readonly containers: Signal<readonly FloatingUIContainer[]> = contentChildren(FloatingUIContainer, {\n    descendants: true\n  });\n\n  /**\n   * Gather accordions so we can SKIP setting up any of their children as toggle icons\n   */\n  private readonly accordions: Signal<readonly AccordionHeadingDirective[]> = contentChildren(\n    AccordionHeadingDirective,\n    {\n      descendants: true\n    }\n  );\n\n  // gather the children!\n  // we specifically need the toggle button (buttons with toggleIcon or toggleIconComponent)\n  private readonly buttons: Signal<readonly ButtonDirective[]> = contentChildren(\n    forwardRef(() => ButtonDirective),\n    {\n      descendants: true\n    }\n  );\n  // the following are all possible floating UI elements\n  private readonly genericFloatingUIComponent: Signal<FloatingUIElementDirective | undefined> =\n    contentChild(FloatingUIElementDirective);\n  private readonly listbox: Signal<ListboxDirective | undefined> = contentChild(forwardRef(() => ListboxDirective));\n  private readonly menu: Signal<DropdownMenuDirective | undefined> = contentChild(\n    forwardRef(() => DropdownMenuDirective)\n  );\n  private readonly tooltip: Signal<TooltipDirective | undefined> = contentChild(forwardRef(() => TooltipDirective));\n\n  // floating UI trigger\n  private readonly triggers: Signal<readonly FloatingUITriggerDirective[] | undefined> = contentChildren(\n    forwardRef(() => FloatingUITriggerDirective),\n    { descendants: true }\n  );\n  private readonly dropdownItems: Signal<readonly DropdownItemDirective[]> = contentChildren(\n    forwardRef(() => DropdownItemDirective),\n    {\n      descendants: true\n    }\n  );\n  private readonly tabItems: Signal<readonly TabItemDirective[]> = contentChildren(\n    forwardRef(() => TabItemDirective),\n    {\n      descendants: true\n    }\n  );\n  private readonly toggleIconComponent: Signal<IconToggleComponent | undefined> = contentChild(\n    forwardRef(() => IconToggleComponent),\n    {\n      descendants: true\n    }\n  );\n  private readonly toggleIconDirective: Signal<IconToggleDirective | undefined> = contentChild(\n    forwardRef(() => IconToggleDirective),\n    {\n      descendants: true\n    }\n  );\n\n  private prevButtons: ButtonDirective[] = [];\n  private prevDropdownItems: DropdownItemDirective[] = [];\n  private prevListItems: ListboxItemComponent[] = [];\n  private prevTabItems: TabItemDirective[] = [];\n  private prevTrigger: FloatingUITriggerDirective | null = null;\n  private childrenClickSubscriptions: (Unsubscribable | undefined)[] = [];\n\n  /**\n   * Dropdown items that are direct children of this container (not nested in child containers).\n   */\n  private readonly ownDropdownItems: Signal<readonly DropdownItemDirective[]> = computed(() =>\n    this.dropdownItems().filter(\n      (item) => !this.containers().some((container) => container.dropdownItems().includes(item))\n    )\n  );\n\n  /**\n   * Listbox items that are direct children of this container (not nested in child containers).\n   */\n  private readonly ownListItems: Signal<readonly ListboxItemComponent[]> = computed(() =>\n    (this.listbox()?.listItems() || []).filter(\n      (item) => !this.containers().some((container) => (container.listbox()?.listItems() || []).includes(item))\n    )\n  );\n\n  /**\n   * Tab items that are direct children of this container (not nested in child containers).\n   */\n  private readonly ownTabItems: Signal<readonly TabItemDirective[]> = computed(() =>\n    this.tabItems().filter(\n      (item) =>\n        item.disclosureTab() && !this.containers().some((container) => (container.ownTabItems() || []).includes(item))\n    )\n  );\n  // if children re-render, re-set up close on click\n  private childrenEffect = effect(() => {\n    const buttons = this.buttons();\n    const listItems = this.ownListItems();\n    const dropdownItems = this.ownDropdownItems();\n    const tabItems = this.ownTabItems();\n    const trigger = this.floatingUITrigger();\n\n    // check if the buttons have changed\n    if (\n      buttons === this.prevButtons &&\n      listItems === this.prevListItems &&\n      dropdownItems === this.prevDropdownItems &&\n      tabItems === this.prevTabItems &&\n      this.prevTrigger === trigger\n    )\n      return;\n    this.prevButtons = buttons as ButtonDirective[];\n    this.prevListItems = listItems as ListboxItemComponent[];\n    this.prevDropdownItems = dropdownItems as DropdownItemDirective[];\n    this.prevTabItems = tabItems as TabItemDirective[];\n    this.prevTrigger = trigger;\n    this.autoCloseOnItemClick();\n  });\n\n  // store pieces of information about the floating UI\n  private readonly floatingElement: WritableSignal<\n    FloatingUIElementDirective | DropdownMenuDirective | TooltipDirective | null\n  > = signal(null);\n  private readonly floatingUITrigger: WritableSignal<FloatingUITriggerDirective | null> = signal(null);\n  private readonly floatingUIToggleIcon: WritableSignal<IconToggleComponent | IconToggleDirective | null> =\n    signal(null);\n  public readonly floatingElementID: Signal<string | null> = computed(\n    () => this.floatingElement()?.id() ?? this.idGenerator.newId('v-floating-ui-element')\n  );\n  public readonly triggersDropdownMenu: WritableSignal<boolean> = signal(false);\n  public readonly triggersTooltip: WritableSignal<boolean> = signal(false);\n  public readonly isCombobox: WritableSignal<boolean> = signal(false);\n  private readonly floatingUIToggleButton: Signal<ButtonDirective | null> = computed(\n    () =>\n      this.buttons()?.find(\n        (button) =>\n          (button.toggleIcon() || button.toggleIconComponent()) &&\n          !this.containers().some((container) => container.buttons().includes(button))\n      ) || null\n  );\n\n  // default events differ per component\n  private tooltipDefaultEvents: UIEventVisibilityPair = [\n    [new UIEvent('mouseenter'), FloatingUIVisibility.SHOW],\n    [new UIEvent('mouseleave'), FloatingUIVisibility.HIDE],\n    [new UIEvent('focus'), FloatingUIVisibility.SHOW],\n    [new UIEvent('blur'), FloatingUIVisibility.HIDE]\n  ];\n  private dropdownMenuDefaultEvents: UIEventVisibilityPair = [[new UIEvent('click')]];\n\n  /** @ignore */\n  public readonly isShown: Signal<boolean | null> = computed(() => this.floatingUIService?.isShown());\n  private isShownEffect = effect(() => {\n    const isShown = this.isShown();\n    if (isShown === undefined || isShown === null) return;\n    this.floatingUIToggled.emit(isShown);\n    this.floatingUIToggleIcon()?.rotatedInternal.set(isShown);\n    this.floatingUITrigger()?.isShown.set(isShown);\n  });\n  /**\n   * Placement of floating content relevant to triggering element.\n   * @default FloatingUIPlacements.BOTTOM_START\n   * @see 'FloatingUIPlacements'.\n   */\n  readonly placement: InputSignal<FloatingUIPlacements> = input<FloatingUIPlacements>(\n    FloatingUIPlacements.BOTTOM_START\n  );\n  readonly placementEffect = effect(() => {\n    const placement = this.placement();\n    if (!placement) return;\n    this.floatingUIService.customizeFloatingUI(placement, null, null, null);\n  });\n\n  /**\n   * Middleware for FloatingUIService.\n   * @default [ offset(2), flip(), shift() ] for tooltip <br />\n   * @default [ offset(0), flip(), shift() ] for combobox <br />\n   * @see [Floating UI](https://floating-ui.com/docs/middleware) for options.\n   */\n  readonly middlewareInput: InputSignal<Middleware[] | null> = input<Middleware[] | null>(null, {\n    alias: 'middleware'\n  });\n  private readonly middleware: Signal<Middleware[] | null> = computed(\n    () => this.middlewareInput() ?? (this.isCombobox() ? this.floatingUIService?.comboboxMiddleware : null)\n  );\n  private middlewareEffect = effect(() => {\n    const middleware = this.middleware();\n    if (!middleware || middleware.length === 0) return;\n    this.floatingUIService.customizeFloatingUI(null, middleware, null, null);\n  });\n\n  /**\n   * Events array for FloatingUIService. <br />\n   * This array specifies whether to show or hide the floating element on a given UIEvent. <br />\n   * This should be an array of [UIEvent, FloatingUIVisibility].\n   * @default [ [new UIEvent('mouseenter'), FloatingUIVisibility.SHOW], <br /> [new UIEvent('mouseleave'), FloatingUIVisibility.HIDE], <br /> [new UIEvent('focus'), FloatingUIVisibility.SHOW], <br /> [new UIEvent('blur'), FloatingUIVisibility.HIDE] <br />] for tooltip\n   * @default [ [new UIEvent('click')] ] for dropdown-menu and floating-ui-element\n   * @default [] Ie. events are removed for combobox.\n   */\n  readonly eventsArrayInput: InputSignal<UIEventVisibilityPair | null> = input<UIEventVisibilityPair | null>(null, {\n    alias: 'eventsArray'\n  });\n  private readonly eventsArrayInternal: WritableSignal<UIEventVisibilityPair | null> =\n    signal<UIEventVisibilityPair | null>(null);\n  private readonly eventsArray: Signal<UIEventVisibilityPair | null> = computed(\n    () => this.eventsArrayInput() ?? (this.isCombobox() ? [] : null) ?? this.eventsArrayInternal()\n  );\n\n  /**\n   * Closes the menu on item click/select when true. <br>\n   * If <code>multiselect</code> is set to <code>true</code>, it will not take effect.<br>\n   * @default true\n   */\n  readonly closeOnClick: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(true, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Emits whether or not the floating UI element is visible.\n   */\n  readonly floatingUIToggled: OutputEmitterRef<boolean> = output<boolean>();\n\n  private tabPressed: boolean = false;\n  tab(event: KeyboardEvent): void {\n    if (event.key === 'Tab') {\n      // used in focusout function\n      this.tabPressed = true;\n    }\n  }\n\n  focusout(event: FocusEvent): void {\n    if (!this.tabPressed) return;\n    this.tabPressed = false;\n    // if focus out is a result of tabbing out of this component, hide the floating UI\n    // (keep the ui visible if focus out is a result of tabbing into another element within this component)\n    if (!event.relatedTarget || this.el.nativeElement.contains(event.relatedTarget)) return;\n    this.floatingUIService.hidefloatingUI();\n  }\n\n  ngAfterContentInit(): void {\n    // set up the items, methods will return if the item does not exist or is in a child container\n    this.setUpTooltip();\n    this.setUpMenu();\n    this.setUpGenericFloatingUIComponent();\n    this.setUpTrigger();\n    this.setUpToggleIcon();\n\n    // if the tooltip arrow exists and a valid, visual display is set, use that display\n    // otherwise (if the tooltip arrow exists), use block\n    // if the tooltip arrow does not exist, use the default display\n    const display = this.tooltip()?.arrow()\n      ? this.tooltip()?.display() !== 'none'\n        ? this.tooltip()?.display()\n        : 'block'\n      : undefined;\n    this.floatingUIService.customizeFloatingUI(this.placement(), this.middleware(), display, this.tooltip()?.arrow());\n\n    const floatingUITriggerElementRef = this.floatingUITrigger()?.el;\n    const floatingUIElementRef = this.floatingElement()?.el;\n    if (floatingUITriggerElementRef && floatingUIElementRef) {\n      this.floatingUIService.setUpfloatingUI(floatingUITriggerElementRef, floatingUIElementRef, this.eventsArray());\n    }\n  }\n\n  private setUpTooltip(): void {\n    const tooltip = this.tooltip();\n    // if the tooltip doesn't exist or is in a child container, we don't want to set it up\n    if (!tooltip || this.containers().some((container) => container.tooltip() === tooltip)) return;\n    // if the tooltip is in this container, we want to set it up\n    this.triggersTooltip.set(true);\n    this.floatingUISetup(tooltip, this.tooltipDefaultEvents);\n  }\n\n  private setUpMenu(): void {\n    const menu = this.menu();\n    // if the menu doesn't exist or is in a child container, we don't want to set it up\n    if (!menu || this.containers().some((container) => container.menu() === menu)) return;\n    // if the menu is in this container, we want to set it up\n    this.triggersDropdownMenu.set(true);\n    this.floatingUISetup(menu, this.dropdownMenuDefaultEvents, 'absolute');\n  }\n\n  private setUpGenericFloatingUIComponent(): void {\n    const genericFloatingUIComponent = this.genericFloatingUIComponent();\n    // if the genericFloatingUIComponent doesn't exist or is in a child container, we don't want to set it up\n    if (\n      !genericFloatingUIComponent ||\n      this.containers().some((container) => container.genericFloatingUIComponent() === genericFloatingUIComponent)\n    )\n      return;\n    // if the genericFloatingUIComponent is in this container, we want to set it up\n    this.triggersDropdownMenu.set(true);\n    this.floatingUISetup(genericFloatingUIComponent, this.dropdownMenuDefaultEvents, 'absolute');\n  }\n\n  private floatingUISetup(\n    component: FloatingUIElementDirective | DropdownMenuDirective | TooltipDirective,\n    events: UIEventVisibilityPair,\n    position?: string\n  ): void {\n    this.floatingElement.set(component);\n    this.floatingElement()?.idInternal.set(this.floatingElementID());\n    if (position) this.renderer.setStyle(component.el.nativeElement, 'position', position || 'absolute');\n    this.eventsArrayInternal.set(events);\n  }\n\n  private setUpTrigger(): void {\n    const triggers = this.triggers();\n    if (!triggers || triggers?.length === 0) return;\n    const triggerElem =\n      triggers.find((trigger) => !this.containers().some((container) => container.triggers()?.includes(trigger))) ||\n      null;\n    // if the trigger is in this container, we want to set it up\n    this.floatingUITrigger.set(triggerElem);\n  }\n\n  private setUpToggleIcon(): void {\n    // this must be done here rather than computed in child components because we need to know if the trigger is in a child container\n    const toggleIcon = this.toggleIconComponent() || this.toggleIconDirective();\n    // if the toggleIcon doesn't exist is in a child container, we don't want to set it up\n    if (\n      !toggleIcon ||\n      this.containers().some((container) => container.floatingUIToggleIcon() === toggleIcon) ||\n      // if the toggleIcon is part of a button in a child accordion-heading, we don't want to set it up\n      this.accordions().some(\n        (accordion) =>\n          accordion.hostButton?.toggleIcon() === toggleIcon ||\n          accordion.hostButton?.toggleIconComponent() === toggleIcon\n      )\n    )\n      return;\n    // if the toggleIcon is in this container, we want to set it up\n    this.floatingUIToggleIcon.set(toggleIcon);\n  }\n\n  private autoCloseOnItemClick(): void {\n    const isMultiSelect = this.listbox()?.multiselect();\n\n    // don't set up the close on click if we are in a multiselect listbox or user has set closeOnClick to false\n    if (!this.closeOnClick() || isMultiSelect) return;\n\n    // clean up previous subscriptions\n    this.childrenClickSubscriptions?.forEach((subscription) => subscription?.unsubscribe());\n    this.childrenClickSubscriptions = [];\n\n    const ownTabItemButtons: ButtonDirective[] = this.ownTabItems()\n      .map((tabItem) => tabItem.button())\n      .filter((button): button is ButtonDirective => !!button);\n\n    const nonToggleButtons = this.buttons().filter(\n      (button) =>\n        button !== this.floatingUIToggleButton() &&\n        button !== this.floatingUITrigger()?.button &&\n        !ownTabItemButtons.includes(button) &&\n        !this.containers().some((container) => container?.el?.nativeElement?.contains(button?.el?.nativeElement))\n    );\n\n    const clickableChildren = [...this.ownDropdownItems(), ...nonToggleButtons, ...this.ownListItems()];\n    clickableChildren.forEach((child) => {\n      // don't call for the floating UI trigger, duplicating check for safety\n      if (child.el.nativeElement === this.floatingUITrigger()?.el?.nativeElement) return;\n\n      this.childrenClickSubscriptions.push(\n        child.clicked.subscribe(() => {\n          if (child.disabled()) return;\n          this.floatingUIService.hidefloatingUI();\n          // when a child is clicked and the floating UI is closed, restore focus to the trigger\n          this.floatingUIService.restoreFocus();\n        })\n      );\n    });\n  }\n\n  ngOnDestroy(): void {\n    this.floatingUIService?.cleanupListeners();\n  }\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport {\n  Directive,\n  ElementRef,\n  EventEmitter,\n  InputSignal,\n  InputSignalWithTransform,\n  ModelSignal,\n  OutputEmitterRef,\n  Provider,\n  Signal,\n  WritableSignal,\n  booleanAttribute,\n  computed,\n  effect,\n  forwardRef,\n  inject,\n  input,\n  model,\n  output,\n  signal\n} from '@angular/core';\nimport { DefaultValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ComboboxDirective } from '../combobox/combobox.directive';\nimport { IdGenerator } from '../id-generator/id-generator.service';\nimport { SPACE_KEY } from '../nova-lib.constants';\n\nconst DEFAULT_VALUE_ACCESSOR: Provider = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => InputDirective),\n  multi: true\n};\n\n@Directive({\n  host: {\n    class: 'v-input',\n\n    '[attr.aria-activedescendant]': 'ariaActiveDescendant()',\n    '[attr.aria-autocomplete]': 'ariaAutocomplete()',\n    '[attr.aria-controls]': 'ariaControls()',\n    '[attr.aria-expanded]': 'ariaExpanded()',\n    '[attr.aria-haspopup]': 'ariaHaspopup()',\n    '[attr.aria-invalid]': 'invalid()',\n    '[attr.aria-owns]': 'ariaOwns()',\n    '[attr.disabled]': 'disabled() ? \"disabled\" : null',\n    '[attr.id]': 'id()',\n    '[attr.readonly]': 'readonly()? \"readonly\" : null',\n    '[attr.role]': 'role()',\n    '[attr.value]': 'value()',\n    '[class.v-input-otp]': 'otp()',\n    '[class.v-input-resize-none]': 'noResize()',\n\n    // adding blur, focus, and click as they were previously supported by extending BaseInteractiveDirective\n    '(blur)': 'handleBlur($event)',\n    '(focus)': 'isFocused.set(true)',\n    '(click)': 'clicked.emit($event)',\n    '(input)': 'handleInput($event)',\n    '(keydown)': 'handleReadonlySpace($event)'\n  },\n  providers: [DEFAULT_VALUE_ACCESSOR],\n  selector: '[v-input]',\n  standalone: true\n})\nexport class InputDirective extends DefaultValueAccessor {\n  private readonly combobox: ComboboxDirective | null = inject(ComboboxDirective, { optional: true });\n  readonly el: ElementRef = inject(ElementRef);\n  private readonly idGenerator: IdGenerator = inject(IdGenerator);\n\n  public readonly isFocused: WritableSignal<boolean> = signal(false);\n  private readonly inCombobox: boolean = !!this.combobox;\n\n  /**\n   * Aria attribute relaying what active element the input refers to.\n   * @default null\n   * @default '&lt;listbox-item-id&gt;' when input is used within combobox and an option is highlighted or active.\n   * @builtin true\n   */\n  readonly ariaActiveDescendantInput: InputSignal<string | null> = input<string | null>(null, {\n    alias: 'aria-activedescendant'\n  });\n  protected readonly ariaActiveDescendant: Signal<string | null> = computed(\n    () => this.ariaActiveDescendantInput() ?? this.combobox?.ariaActiveDescendant() ?? null\n  );\n\n  /**\n   * Aria attribute relaying autocomplete type.\n   * @default null\n   * @default 'list' when input is used within combobox and no custom value is provided.\n   * @builtin true\n   */\n  readonly ariaAutocompleteInput: InputSignal<string | null> = input<HTMLElement['ariaAutoComplete']>(null, {\n    alias: 'aria-autocomplete'\n  });\n  protected readonly ariaAutocomplete: Signal<string | null> = computed(\n    () => this.ariaAutocompleteInput() ?? (this.inCombobox ? 'list' : null)\n  );\n\n  /**\n   * Aria attribute relaying what element the input controls.\n   * @default null\n   * @default '&lt;listbox-id&gt;' when input is used within combobox and combobox menu is open.\n   * @builtin true\n   */\n  readonly ariaControlsInput: InputSignal<string | null> = input<string | null>(null, { alias: 'aria-controls' });\n  protected readonly ariaControls: Signal<string | null> = computed(\n    () => this.ariaControlsInput() ?? this.combobox?.ariaControls() ?? null\n  );\n\n  /**\n   * Aria attribute relaying whether input is expanded.\n   * @default null\n   * @builtin true\n   */\n  readonly ariaExpandedInput: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    alias: 'aria-expanded',\n    transform: booleanAttribute\n  });\n  protected readonly ariaExpanded: Signal<boolean | null> = computed(\n    () => this.ariaExpandedInput() ?? this.combobox?.ariaExpanded() ?? null\n  );\n\n  /**\n   * Sets input aria-haspopup attribute.\n   * @default null\n   * @default 'listbox' when input is used within combobox and no custom value is given.\n   * @builtin true\n   */\n  readonly ariaHaspopupInput: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    alias: 'aria-haspopup',\n    transform: booleanAttribute\n  });\n  protected readonly ariaHaspopup: Signal<boolean | 'listbox' | null> = computed(\n    () => this.ariaHaspopupInput() ?? (this.inCombobox ? 'listbox' : null)\n  );\n\n  /**\n   * Sets input aria-owns attribute.\n   * @default null\n   * @default '&lt;listbox-container-id&gt;' when input is used within combobox and no custom value is given.\n   * @builtin true\n   */\n  readonly ariaOwnsInput: InputSignal<string | null> = input<string | null>(null, { alias: 'aria-owns' });\n  protected readonly ariaOwns: Signal<string | null> = computed(\n    () => this.ariaOwnsInput() ?? this.combobox?.ariaOwns() ?? null\n  );\n\n  /**\n   * Sets component as disabled when true.\n   * @default false\n   */\n  readonly disabledInput: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    alias: 'disabled',\n    transform: booleanAttribute\n  });\n  readonly disabledInternal: WritableSignal<boolean | null> = signal<boolean | null>(null);\n  readonly disabled: Signal<boolean | null> = computed(\n    () => this.disabledInput() ?? this.combobox?.disabled() ?? this.disabledInternal()\n  );\n  /** Fires when a formControl's disabled state updates  */\n  override setDisabledState(isDisabled: boolean): void {\n    super.setDisabledState(isDisabled);\n    this.disabledInternal.set(isDisabled);\n  }\n\n  /**\n   * Sets custom id.\n   * @default idGenerator.newId('v-input')\n   * @builtin true\n   */\n  readonly id: InputSignal<string> = input(this.idGenerator.newId('v-input'));\n\n  /**\n   * Marks component as invalid when true.\n   * @default false\n   */\n  readonly invalidInput: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    alias: 'invalid',\n    transform: booleanAttribute\n  });\n  readonly invalid: Signal<boolean | null> = computed(() => this.invalidInput() ?? this.combobox?.invalid() ?? null);\n\n  /**\n   * Removes resize from textarea when true.\n   * @default false\n   */\n  readonly noResize: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets input to one-time-passcode (OTP) variant when true.\n   * @default false\n   */\n  readonly otp: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets input as readonly when true.\n   * @default false\n   */\n  readonly readonlyInput: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    alias: 'readonly',\n    transform: booleanAttribute\n  });\n  readonly readonly: Signal<boolean | null> = computed(() => this.readonlyInput() ?? this.combobox?.readonly() ?? null);\n\n  /**\n   * Sets custom role.\n   * @default null\n   * @default 'combobox' when input is used within combobox and no custom role is provided.\n   * @builtin true\n   */\n  readonly roleInput: InputSignal<HTMLElement['role']> = input<HTMLElement['role']>(null, { alias: 'role' });\n  protected readonly role: Signal<HTMLElement['role']> = computed(\n    () => this.roleInput() ?? (this.inCombobox ? 'combobox' : null)\n  );\n\n  /**\n   * Value of input.\n   * Use [value] when you want to handle the value of the input.\n   * Use (valuedChange) when you want the library to handle the value of the input, but get notified of changes.\n   * Use [(value)] when you want the value to reflect changes by both you and the library.\n   */\n  readonly value: ModelSignal<string | null> = model<string | null>('');\n  // This is required since you can bind [value] to the host, and we need to update the property when it changes.\n  private prevInputValue: string | null = '';\n  private readonly valueEffect = effect(() => {\n    const value = this.value();\n    if (value === this.prevInputValue) return;\n    this.setProperty('value', this.value());\n    this.prevInputValue = value;\n  });\n\n  /**\n   * Emits value when the input event is triggered or backspace key is pressed.\n   */\n  readonly inputEvent: OutputEmitterRef<string> = output<string>();\n\n  /**\n   * Emits event when host interactive element is blurred.\n   */\n  readonly blurred: EventEmitter<FocusEvent> = new EventEmitter<FocusEvent>();\n\n  /**\n   * Emits event when host interactive element is clicked.\n   */\n  readonly clicked: EventEmitter<Event> = new EventEmitter<Event>();\n\n  handleBlur(event: FocusEvent): void {\n    this.isFocused.set(false);\n    this.blurred.emit(event);\n  }\n\n  handleInput(event: Event): void {\n    const { value } = event.target as HTMLInputElement;\n    this.onChange(value);\n    this.writeValue(value);\n    this.inputEvent.emit(value);\n  }\n\n  handleReadonlySpace(event: KeyboardEvent): void {\n    // this resolves a bug where date/time/color menus were still opening when readonly and pressing space\n    if (this.readonly() && event.key === SPACE_KEY) {\n      event.preventDefault();\n    }\n  }\n\n  override writeValue(value: string): void {\n    super.writeValue(value);\n    this.value.set(value);\n  }\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { Directive, inject, ElementRef, InputSignalWithTransform, input, booleanAttribute } from '@angular/core';\n\n@Directive({\n  host: {\n    class: 'v-input',\n\n    '[attr.aria-invalid]': 'invalid()'\n  },\n  selector: '[v-select]',\n  standalone: true\n})\nexport class SelectDirective {\n  public readonly el: ElementRef<HTMLElement> = inject(ElementRef<HTMLElement>);\n  /**\n   * Marks select as invalid when true.\n   * @default false\n   */\n  readonly invalid: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    transform: booleanAttribute\n  });\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport {\n  booleanAttribute,\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  contentChild,\n  contentChildren,\n  forwardRef,\n  input,\n  InputSignalWithTransform,\n  Signal,\n  ViewEncapsulation\n} from '@angular/core';\nimport { ButtonDirective } from '../button/button.directive';\nimport { CheckboxDirective } from '../checkbox/checkbox.directive';\nimport { InputDirective } from '../input/input.directive';\nimport { RadioDirective } from '../radio/radio.directive';\nimport { SelectDirective } from '../select/select.directive';\n\n@Component({\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  host: {\n    class: 'v-input-container',\n\n    '[class.v-surface]': 'input() || select()'\n  },\n  selector: '[v-input-container]',\n  standalone: true,\n  templateUrl: './input-container.component.html'\n})\nexport class InputContainerComponent {\n  public readonly buttons: Signal<readonly ButtonDirective[]> = contentChildren(forwardRef(() => ButtonDirective));\n  private readonly checkbox: Signal<CheckboxDirective | undefined> = contentChild(CheckboxDirective);\n  protected readonly input: Signal<InputDirective | undefined> = contentChild(InputDirective);\n  private readonly radio: Signal<RadioDirective | undefined> = contentChild(RadioDirective);\n  protected readonly select: Signal<SelectDirective | undefined> = contentChild(SelectDirective);\n\n  /**\n   * Removes the default toggle icon when true, allowing you to provide your own. <br>\n   * After the closing <code>select</code> tag, provide your custom icon inside a <code>&lt;div class=&#8220;v-input-control&#8221;&gt;</code>.\n   * @default false\n   */\n  readonly useCustomIcon: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  public readonly childButtonsDisabled: Signal<boolean | null> = computed(\n    () => (this.input()?.disabled() || this.input()?.readonly()) ?? null\n  );\n\n  public readonly labelId: Signal<string | null> = computed(\n    () => this.checkbox()?.id() ?? this.radio()?.id() ?? this.input()?.id() ?? null\n  );\n}\n","<!--\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n -->\n<ng-content />\n\n@if (select() && !useCustomIcon()) {\n  <div class=\"v-input-control\">\n    <ng-content select=\"v-icon-visa-toggle\" />\n    <ng-content select=\"[v-icon-visa-chevron-down-tiny]\" />\n    <ng-content select=\"[v-icon-visa-chevron-up-tiny]\" />\n    <ng-content select=\"[v-icon][icon='chevron-down']\" />\n    <ng-content select=\"[v-icon][icon='chevron-up']\" />\n  </div>\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport {\n  afterNextRender,\n  booleanAttribute,\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  contentChild,\n  ElementRef,\n  forwardRef,\n  input,\n  InputSignal,\n  InputSignalWithTransform,\n  numberAttribute,\n  Signal,\n  signal,\n  viewChild,\n  ViewEncapsulation,\n  WritableSignal,\n} from '@angular/core';\nimport { LabelDirective } from '../label/label.directive';\n\n@Component({\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  host: {\n    class: 'v-progress v-progress-circular',\n\n    '[attr.aria-labelledby]': 'ariaLabelledby()',\n    '[attr.role]': 'role() ? role() : determinate() ? \"progressbar\" : null',\n    '[class.v-progress-circular-small]': 'small()',\n    '[class.v-progress-complete]': 'complete()',\n    '[class.v-progress-error]': 'invalid()',\n    '[class.v-progress-indeterminate]': '!determinate()',\n  },\n  selector: '[v-progress-circular], [v-circular-progress]',\n  standalone: true,\n  templateUrl: './circular-progress.component.html',\n})\nexport class CircularProgressComponent {\n  constructor() {\n    afterNextRender({\n      read: () => {\n        let radius: number = parseInt(\n          window\n            .getComputedStyle(this.progressBar().nativeElement)\n            .getPropertyValue('r'),\n        );\n        // use default radius if r is not set or invalid\n        radius = !isNaN(radius) ? radius : ((this.small() ? 48 : 72) - 4) / 2;\n        this.radius.set(radius);\n      },\n    });\n  }\n\n  private readonly label: Signal<LabelDirective | undefined> = contentChild(\n    forwardRef(() => LabelDirective),\n  );\n  private readonly progressBar: Signal<ElementRef<HTMLElement>> =\n    viewChild.required<ElementRef<HTMLElement>>('progressBar');\n\n  private readonly radius: WritableSignal<number | null> = signal(null);\n\n  // This should only kick in if the CSS hasn't loaded, and ensures the circular-progress component\n  // renders SOMETHING on the page in that case\n  protected readonly fallbackRadius: Signal<number> = computed(() => {\n    // Subtract default stroke-width (4px) from container size to prevent clipping (then divide by 2 to get radius)\n    return ((this.small() ? 48 : 72) - 4) / 2;\n  });\n\n  protected readonly dashOffset: Signal<number> = computed(() =>\n    this.initialSize() <= 0\n      ? 0\n      : this.initialSize() - this.initialSize() * (this.percentage() * 0.01),\n  );\n  protected readonly initialSize: Signal<number> = computed(() => {\n    const radius = this.radius() ?? this.fallbackRadius();\n    return 2 * Math.PI * radius;\n  });\n\n  public readonly complete: Signal<boolean> = computed(\n    () => this.determinate() && this.percentage() === 100,\n  );\n\n  /**\n   * Sets progress to determinate when true.\n   * @default false\n   */\n  readonly determinate: InputSignalWithTransform<boolean, unknown> = input<\n    boolean,\n    unknown\n  >(false, {\n    transform: booleanAttribute,\n  });\n\n  /**\n   * Sets progress to invalid when true.\n   * @default false\n   */\n  readonly invalid: InputSignalWithTransform<boolean, unknown> = input<\n    boolean,\n    unknown\n  >(false, {\n    transform: booleanAttribute,\n  });\n\n  /**\n   * Sets custom role.\n   * @default 'progressbar' when determinate\n   * @default null when indeterminate\n   * @builtin true\n   */\n  readonly role: InputSignal<HTMLElement['role']> =\n    input<HTMLElement['role']>(null);\n\n  /**\n   * Sets the percentage for a <code>determinate</code> circular progress.\n   * @default 0\n   */\n  readonly percentage: InputSignalWithTransform<number, unknown> = input<\n    number,\n    unknown\n  >(0, {\n    transform: numberAttribute,\n  });\n\n  /**\n   * Sets progress to small variant when true.\n   * @default false\n   */\n  readonly small: InputSignalWithTransform<boolean, unknown> = input<\n    boolean,\n    unknown\n  >(false, {\n    transform: booleanAttribute,\n  });\n\n  /**\n   * Aria attribute pointing to id of labelling element.\n   * @default &lt;child-label-id&gt;\n   * @builtin true\n   */\n  readonly ariaLabelledbyInput: InputSignal<string | null> = input<\n    string | null\n  >(null, { alias: 'aria-labelledby' });\n  protected readonly ariaLabelledby: Signal<string | null | undefined> =\n    computed<null | string | undefined>(\n      () => this.ariaLabelledbyInput() ?? this.label()?.id(),\n    );\n}\n","<!--\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n -->\n<svg class=\"v-progress-circular-track\" [class.v-progress-complete]=\"complete()\">\n  <circle class=\"v-progress-circular-background\" />\n  <circle\n    class=\"v-progress-circular-bar\"\n    [style.stroke-dasharray]=\"\n       determinate() ? initialSize() : initialSize() ? initialSize() * 0.8 : null\n     \"\n    [style.stroke-dashoffset]=\"determinate() ? dashOffset() : null\"\n    #progressBar\n  />\n</svg>\n<ng-content />\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport {\n  booleanAttribute,\n  computed,\n  Directive,\n  ElementRef,\n  inject,\n  input,\n  InputSignal,\n  InputSignalWithTransform,\n  signal,\n  Signal,\n  WritableSignal\n} from '@angular/core';\nimport { IdGenerator } from '../id-generator/id-generator.service';\nimport { CircularProgressComponent } from '../circular-progress/circular-progress.component';\nimport { InputContainerComponent } from '../input-container/input-container.component';\n\n@Directive({\n  host: {\n    '[attr.for]': 'htmlFor()',\n    '[attr.id]': 'id()',\n    '[class.v-label]': '!progressLabel()',\n    '[class.v-progress-label]': 'progressLabel()',\n    '[class.v-switch-label]': 'switchLabel()',\n\n    '(click)': 'handleClick($event)'\n  },\n  selector: '[v-label], [v-switch-label]',\n  standalone: true\n})\nexport class LabelDirective {\n  private readonly circularProgress = inject(CircularProgressComponent, { optional: true });\n  public readonly el: ElementRef = inject(ElementRef); // needed for combobox readonly span accessibility\n  private readonly idGenerator: IdGenerator = inject(IdGenerator);\n  private readonly inputContainer: InputContainerComponent | null = inject(InputContainerComponent, { optional: true });\n\n  /**\n   * Attribute set to the id of the element it's labeling. <br />\n   * This property is set by default for radio and checkbox components when used within <code>v-input-container</code> as directed.\n   */\n  readonly htmlForInput: InputSignal<string | null> = input<string | null>(null, { alias: 'for' }); // Aliased to \"for\" because `for` is an JS/Angular keyword\n  readonly htmlForInternal: WritableSignal<string | null> = signal<string | null>(null);\n  protected readonly htmlFor: Signal<string | null> = computed<string | null>(\n    () => this.htmlForInput() ?? this.inputContainer?.labelId() ?? this.htmlForInternal() ?? null\n  );\n\n  /**\n   * Sets custom id.\n   * @default idGenerator.newId('v-label')\n   * @builtin true\n   */\n  readonly id: InputSignal<string> = input<string>(this.idGenerator.newId('v-label'));\n\n  /**\n   * Swaps <code>v-label</code> class for <code>v-progress-label</code> when true. <br />\n   * Intended for use when label is describing a progress component. <br />\n   * Automatically set to true when used within a Circular Progress component.\n   * @default false\n   */\n  readonly progressLabelInput: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(\n    null,\n    {\n      alias: 'progressLabel',\n      transform: booleanAttribute\n    }\n  );\n  protected readonly progressLabel: Signal<boolean> = computed(\n    () => !!this.progressLabelInput() || !!this.circularProgress\n  );\n\n  readonly switchLabel: InputSignalWithTransform<boolean | null, unknown> = input(null, {\n    alias: 'v-switch-label',\n    transform: booleanAttribute\n  });\n\n  handleClick(event: Event): void {\n    // stops click event for firing for label **and** input.\n    // event will still fire for input\n    event.stopPropagation();\n  }\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { computed, contentChild, Directive, forwardRef, inject, input, InputSignal, Signal } from '@angular/core';\nimport { IdGenerator } from '../id-generator/id-generator.service';\nimport { ListboxDirective } from '../listbox/listbox.directive';\n\n@Directive({\n  host: {\n    class: 'v-listbox-container',\n    role: 'listbox',\n\n    '[attr.aria-activedescendant]': 'ariaActiveDescendant()',\n    '[attr.aria-invalid]': 'listbox()?.invalid() ? \"true\" : null',\n    '[attr.aria-multiselectable]': 'listbox()?.multiselect() ? \"true\" : null',\n    '[attr.aria-required]': 'listbox()?.required() ? \"true\" : null',\n    '[class.v-listbox-disabled]': 'listbox()?.disabled()',\n    '[class.v-listbox-error]': 'listbox()?.invalid()'\n  },\n  selector: '[v-listbox-container]',\n  standalone: true\n})\nexport class ListboxContainerDirective {\n  private readonly idGenerator: IdGenerator = inject(IdGenerator);\n\n  protected readonly listbox: Signal<ListboxDirective | undefined> = contentChild(forwardRef(() => ListboxDirective));\n\n  /**\n   * Aria attribute relaying what active element the listbox container refers to.\n   * @builtin true\n   */\n  readonly ariaActiveDescendantInput: InputSignal<string | null> = input<string | null>(null, {\n    alias: 'aria-activedescendant'\n  });\n  protected readonly ariaActiveDescendant: Signal<string | null | undefined> = computed(\n    () => this.ariaActiveDescendantInput() ?? this.listbox()?.ariaActiveDescendant()\n  );\n\n  /**\n   * Sets custom id.\n   * @default idGenerator.newId('v-listbox-container')\n   * @builtin true\n   */\n  readonly id: InputSignal<string> = input<string>(this.idGenerator.newId('v-listbox-container'));\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport {\n  AfterContentInit,\n  booleanAttribute,\n  computed,\n  contentChild,\n  contentChildren,\n  Directive,\n  effect,\n  forwardRef,\n  inject,\n  input,\n  InputSignalWithTransform,\n  model,\n  ModelSignal,\n  OnInit,\n  output,\n  OutputEmitterRef,\n  Renderer2,\n  Signal,\n  signal,\n  untracked,\n  WritableSignal\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ChipDirective } from '../chip/chip.directive';\nimport { FloatingUIContainer } from '../floating-ui-container/floating-ui-container.directive';\nimport { IdGenerator } from '../id-generator/id-generator.service';\nimport { InputContainerComponent } from '../input-container/input-container.component';\nimport { InputDirective } from '../input/input.directive';\nimport { LabelDirective } from '../label/label.directive';\nimport { ListboxContainerDirective } from '../listbox-container/listbox-container.directive';\nimport { ListboxItemComponent } from '../listbox-item/listbox-item.component';\nimport { ListboxDirective } from '../listbox/listbox.directive';\nimport { ListboxService } from '../listbox/listbox.service';\nimport { ListenerService } from '../listener-service/listener.service';\nimport {\n  BACKSPACE_KEY,\n  DOWN_ARROW_KEY,\n  ENTER_KEY,\n  LEFT_ARROW_KEY,\n  RIGHT_ARROW_KEY,\n  TAB_KEY,\n  UP_ARROW_KEY\n} from '../nova-lib.constants';\nimport { NovaLibService } from '../nova-lib.service';\nimport { valuesDiffer } from '../utilities';\nimport { ComboboxFilterType, ComboboxValue, MultiSelectValue, SingleSelectValue } from './combobox.constants';\n\n@Directive({\n  host: {\n    class: 'v-combobox',\n\n    '[attr.aria-invalid]': 'invalid()',\n    '[attr.disabled]': 'disabled() ? \"disabled\" : null',\n\n    '(keydown)': 'hostKeyDown($event)'\n  },\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => ComboboxDirective),\n      multi: true\n    },\n    ListenerService\n  ],\n  selector: '[v-combobox]',\n  standalone: true\n})\nexport class ComboboxDirective implements ControlValueAccessor, OnInit, AfterContentInit {\n  public readonly floatingContainer: FloatingUIContainer | null = inject(FloatingUIContainer, { optional: true });\n  private readonly idGenerator: IdGenerator = inject(IdGenerator);\n  private readonly listboxService: ListboxService = inject(ListboxService);\n  private readonly novaLibService: NovaLibService = inject(NovaLibService);\n  private readonly renderer: Renderer2 = inject(Renderer2);\n  public readonly listenerService: ListenerService = inject(ListenerService);\n\n  readonly chips: Signal<readonly ChipDirective[]> = contentChildren(\n    forwardRef(() => ChipDirective),\n    { descendants: true }\n  );\n  private readonly inputContainer: Signal<InputContainerComponent | undefined> = contentChild(InputContainerComponent);\n  public readonly input: Signal<InputDirective | undefined> = contentChild<InputDirective>(\n    forwardRef(() => InputDirective)\n  );\n  private readonly listboxContainer: Signal<ListboxContainerDirective | undefined> =\n    contentChild(ListboxContainerDirective);\n  public readonly listbox: Signal<ListboxDirective | undefined> = contentChild(forwardRef(() => ListboxDirective));\n  private readonly label: Signal<LabelDirective | undefined> = contentChild(LabelDirective);\n\n  public highlightedIndex: Signal<number | null> = computed<number | null>(() => {\n    const index = this.listbox()\n      ?.listItems()\n      ?.findIndex((item: ListboxItemComponent) => item === this.listbox()?.highlightedItem());\n    return index !== undefined && index !== -1 ? index : null;\n  });\n  public activeIndex: Signal<number | null> = computed(() => {\n    const index = this.listbox()\n      ?.listItems()\n      ?.findIndex((item: ListboxItemComponent) => item.active());\n    return index !== undefined && index !== -1 ? index : null;\n  });\n  // used in service only to store previously active item of type ListboxItemComponent or of type of array passed with custom filter\n  public prevActiveItem: ListboxItemComponent | any;\n  public autoSelect: WritableSignal<boolean> = signal(false);\n  public selectFirstFilteredItemEffect = effect(() => {\n    if (!this.autoSelect()) return;\n    const listItems = this.listbox()?.listItems() || [];\n    if (listItems.length && this.input()?.value() !== '') {\n      const firstItem = this.novaLibService.nextEnabledItem(this.listbox()?.listItems() || []);\n      this.listbox()?.highlightedItem.set(this.listbox()?.listItems()[firstItem] || null);\n    }\n  });\n  /**\n   * children aria attributes\n   */\n  readonly ariaOwns: Signal<string | null> = computed(\n    () => this.floatingContainer?.floatingElementID() ?? this.listboxContainer()?.id() ?? null\n  );\n  readonly ariaExpanded: Signal<boolean | null> = computed(() => this.floatingContainer?.isShown() ?? null);\n  readonly ariaControls: Signal<string | null> = computed(() =>\n    this.floatingContainer?.isShown() && this.listbox() ? this.listbox()!.id() : null\n  );\n\n  readonly ariaActiveDescendant: Signal<string | null> = computed(() =>\n    this.floatingContainer?.isShown() && this.highlightedIndex() !== null && this.getListItem(this.highlightedIndex())\n      ? this.getListItem(this.highlightedIndex())!.id()\n      : null\n  );\n\n  /**\n   * Removes appended screenreader readonly text when true. <br>\n   * By default &#40;when <code>removeReadonlyText=\"false\"</code>&#41;, if a combobox is readonly, a span element with text '&#40;readonly&#41;' will be appended to the label element for screenreader support.\n   * @default false\n   */\n  readonly removeReadonlyText: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets component as readonly when true.\n   * @default false\n   */\n  readonly readonlyInput: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    alias: 'readonly',\n    transform: booleanAttribute\n  });\n  readonly readonly: Signal<boolean | null> = computed<boolean | null>(\n    () => this.readonlyInput() ?? this.input()?.readonlyInput() ?? null\n  );\n  private readonly readonlyEffect = effect(() => {\n    const readonly = this.readonly();\n    const removeText = untracked(() => this.removeReadonlyText());\n    if (!removeText) this.appendReadonlyText(readonly);\n  });\n\n  /**\n   * Sets component as disabled when true.\n   * @default false\n   */\n  readonly disabledInput: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    alias: 'disabled',\n    transform: booleanAttribute\n  });\n  private readonly disabledInternal: WritableSignal<boolean | null> = signal<boolean | null>(null);\n  private readonly disabledInputChild: Signal<boolean | null> = computed<boolean | null>(\n    () => this.input()?.disabledInput() ?? this.input()?.disabledInternal() ?? null\n  );\n  private readonly disabledListboxChild: Signal<boolean | null> = computed<boolean | null>(\n    () => this.listbox()?.disabledInput() ?? this.listbox()?.disabledInternal() ?? null\n  );\n  readonly disabled: Signal<boolean | null> = computed<boolean | null>(\n    () =>\n      // combobox disabled priority goes user input, set by formControl, input, listbox\n      this.disabledInput() ?? this.disabledInternal() ?? this.disabledInputChild() ?? this.disabledListboxChild()\n  );\n  /** Fires when a formControl's disabled state updates  */\n  setDisabledState(disabled: boolean): void {\n    this.disabledInternal.set(disabled);\n  }\n\n  /**\n   * Marks component as invalid when true.\n   * @default false\n   */\n  readonly invalidInput: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    alias: 'invalid',\n    transform: booleanAttribute\n  });\n  private readonly invalidInternal: Signal<boolean | null> = computed<boolean | null>(\n    () => this.input()?.invalidInput() ?? this.listbox()?.invalidInput() ?? null\n  );\n  readonly invalid: Signal<boolean | null> = computed(() => this.invalidInput() ?? this.invalidInternal());\n\n  /**\n   * Marks component as required when true.\n   * @default false\n   */\n  readonly required: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Value of combobox.\n   * Use [value] when you want to handle the value of the combobox.\n   * Use (valuedChange) when you want the library to handle the value of the combobox, but get notified of changes.\n   * Use [(value)] when you want the value to reflect changes by both you and the library.\n   */\n  readonly value: ModelSignal<ComboboxValue> = model<ComboboxValue>(null);\n\n  private readonly labelIdEffect = effect(() => {\n    const id = this.inputContainer()?.labelId();\n    if (id) this.label()?.htmlForInternal.set(id);\n  });\n\n  selectedItem: WritableSignal<ListboxItemComponent | undefined> = signal<ListboxItemComponent | undefined>(undefined);\n  private readonly selectedItemLabelReady = effect(() => {\n    const itemReady = this.selectedItem()?.ready();\n    const itemLabel = this.selectedItem()?.label();\n\n    if (!itemReady || !itemLabel) return;\n    const currentInputValue = untracked(() => this.input()?.value());\n    if (currentInputValue === itemLabel) return; // don't set input value if it already matches the selected item label\n    this.input()?.value.set(itemLabel);\n  });\n\n  prevInputValue: string | null = '';\n  private readonly inputValueEffect = effect(() => {\n    const input = untracked(() => this.input());\n    if (!input) return;\n    const inputValue = input.value();\n    if (!valuesDiffer(inputValue, this.prevInputValue)) return;\n    // if input value changes, update combobox value\n    untracked(() => {\n      const listboxValue = this.listbox()?.value();\n      this.value.set({ label: inputValue || '', value: listboxValue ?? null });\n    });\n    this.prevInputValue = inputValue;\n  });\n\n  prevListboxValue: SingleSelectValue | MultiSelectValue | null = null;\n  private readonly listboxValueEffect = effect(() => {\n    // update combobox and input value when listbox value changes\n    const listboxValue: SingleSelectValue | MultiSelectValue | null = this.listbox()?.value() || null;\n    if (!valuesDiffer(listboxValue, this.prevListboxValue)) return;\n    this.prevListboxValue = listboxValue;\n\n    let inputText = untracked(() => this.input()?.value());\n\n    const multiselect = untracked(() => this.listbox()?.multiselect());\n    const comboboxValue = untracked(() => this.value());\n    if (listboxValue && !multiselect) {\n      this.selectedItem.set(\n        this.listbox()\n          ?.listItems()\n          ?.find((item: ListboxItemComponent) => untracked(() => item.active()))\n      );\n      const selectedItem = this.selectedItem();\n      if (selectedItem) {\n        inputText = selectedItem.label() ?? inputText;\n      }\n    } else if (multiselect) {\n      // for multiselect listbox selection, clear input\n      inputText = '';\n    }\n    const newValue = { label: inputText ?? undefined, value: listboxValue };\n    if (!this.meaningfulComboboxValueChange(newValue, comboboxValue)) return;\n    // if the value is different, set it\n    this.value.set(newValue);\n    this.itemSelected.emit(newValue.value);\n    if (newValue.value) {\n      this.filter.emit({\n        type: 'selection',\n        listbox: newValue.value,\n        input: newValue.label\n      });\n    }\n  });\n\n  prevValue: ComboboxValue = this.value();\n  private readonly valueEffect = effect(() => {\n    const value = this.value();\n\n    if (!this.meaningfulComboboxValueChange(value, this.prevValue)) return;\n\n    if (!value || (value && !value.value && !value.label)) {\n      // if no value or both value and label are empty, reset input and listbox\n      this.input()?.value.set('');\n      this.listbox()?.value.set(null);\n      this.filter.emit({ type: 'reset', listbox: null, input: '' });\n    } else {\n      // update input and listbox value when combobox value changes\n      let newListboxValue: SingleSelectValue | MultiSelectValue | null = value.value;\n      const currentInputValue = untracked(() => this.input()?.value());\n      const currentListboxValue = untracked(() => this.listbox()?.value());\n      if (valuesDiffer(value.label, currentInputValue) && untracked(() => this.input()))\n        this.input()?.value.set(value.label ?? '');\n\n      if (valuesDiffer(newListboxValue, currentListboxValue)) {\n        if (this.listbox()?.multiselect() && newListboxValue !== null && !Array.isArray(newListboxValue)) {\n          newListboxValue = [newListboxValue];\n        }\n        this.listbox()?.value.set(newListboxValue);\n        this.itemSelected.emit(value.value);\n        this.filter.emit({ type: 'selection', listbox: value.value, input: value.label });\n      }\n    }\n\n    if (this.manualChange()) {\n      // only emit onChange if the change was made by user interaction (listbox item selection)\n      this.manualChange.set(false);\n      this.onChange(value);\n    }\n    this.prevValue = value;\n  });\n\n  /**\n   * Emits value of selected item(s).\n   */\n  readonly itemSelected: OutputEmitterRef<SingleSelectValue | MultiSelectValue | null> = output<\n    SingleSelectValue | MultiSelectValue | null\n  >();\n\n  /**\n   * Emitted when a listbox item is selected, when an input value is entered, and when the combobox is reset. <br />\n   * Subscribe to provide your own filter function when this event is emitted. <br />\n   * Emits { type: 'selection' | 'input' | 'reset'; listbox: string; input: string } where type is the type of filter event, listbox is the value of the selected item(s), and input is the value of the input.\n   */\n  readonly filter = output<{\n    type: ComboboxFilterType;\n    listbox: SingleSelectValue | MultiSelectValue | null;\n    input?: string | null;\n  }>();\n\n  /**\n   * Emits the filtered array of ListboxItemComponents when the list is filtered by ComboboxService.\n   */\n  readonly filteredListEmitter: OutputEmitterRef<any[]> = output<any[]>();\n\n  ngOnInit(): void {\n    this.floatingContainer?.isCombobox.set(true);\n  }\n\n  private readonly manualChange = signal<boolean>(false);\n  ngAfterContentInit(): void {\n    // early returns are avoided here to ensure that all content children are initialized before setting up the combobox\n    const input = this.input();\n    if (input) {\n      this.listenerService.subscriptions.push(\n        input.inputEvent.subscribe(() => {\n          this.manualChange.set(true);\n          if (!this.listbox()?.multiselect()) this.listbox()?.value.set(null);\n          this.filter.emit({\n            type: 'input',\n            listbox: null,\n            input: input.value()\n          });\n          // if input event occurs and floating ui is closed, open it\n          if (!this.floatingContainer || this.floatingContainer?.isShown()) return;\n          this.floatingContainer.floatingUIService.showfloatingUI();\n          this.listbox()?.showFocus.set(true);\n        })\n      );\n\n      // Subscribe to input blur to mark combobox as touched\n      this.listenerService.subscriptions.push(\n        input.blurred.subscribe((event) => {\n          this.onTouched(event);\n        })\n      );\n    }\n\n    const inputContainer = this.inputContainer();\n    if (inputContainer?.buttons()) {\n      const toggleButton = inputContainer.buttons().find((button) => button.toggleIcon || button.toggleIconComponent);\n      if (!toggleButton) return;\n      this.listenerService.subscriptions.push(\n        toggleButton.clicked.subscribe(() => {\n          this.input()?.el.nativeElement.focus();\n          this.floatingContainer?.floatingUIService.toggleFloatingUI();\n        })\n      );\n    }\n\n    const listbox = this.listbox();\n    if (listbox) {\n      this.listenerService.subscriptions.push(\n        listbox.manualUserChange.subscribe(() => {\n          // mark that the change was made by user interaction\n          this.manualChange.set(true);\n        })\n      );\n    }\n\n    if (this.floatingContainer) {\n      this.listenerService.subscriptions.push(\n        this.floatingContainer.floatingUIService.isShownEmitter.subscribe(() => {\n          // when floating UI is shown, highlight first item\n          if (this.listbox()?.listItems()?.length) {\n            const firstFocusableItem = this.listbox()\n              ?.listItems()\n              .find((item: ListboxItemComponent) => item.active());\n            if (firstFocusableItem) {\n              this.listbox()?.highlightedItem.set(firstFocusableItem);\n              this.listbox()?.showFocus.set(true);\n            }\n          }\n        })\n      );\n    }\n  }\n  /**\n   * Public method to handle listbox item clicks directly\n   * This can be called from the listbox-item component to ensure the click is processed\n   */\n  public handleListboxItemClick(): void {\n    this.input()?.el.nativeElement.focus();\n  }\n\n  hostKeyDown(event: KeyboardEvent): void {\n    // don't perform any keboard functions if readonly or disabled\n    // also don't open menu if no floating container exists\n    const input = this.input();\n    if (input?.readonly() || input?.disabled() || !this.input()?.isFocused() || !this.floatingContainer) return;\n\n    if (event.key === DOWN_ARROW_KEY || event.key === RIGHT_ARROW_KEY) {\n      // highlight next item and show menu\n      if (event.key === DOWN_ARROW_KEY) event.preventDefault(); // allow right arrow to navigate through input\n      this.highlightNextPrevItem('next');\n      if (!this.floatingContainer?.isShown()) this.floatingContainer.floatingUIService.showfloatingUI();\n      const listbox = this.listbox();\n      if (this.highlightedIndex() !== null && listbox)\n        this.listboxService.scrollItemIntoView(listbox, this.highlightedIndex()!);\n    } else if (event.key === UP_ARROW_KEY || event.key === LEFT_ARROW_KEY) {\n      // highlight previous item and show menu\n      if (event.key === UP_ARROW_KEY) event.preventDefault(); // allow left arrow to navigate through input\n      this.highlightNextPrevItem('prev');\n      if (!this.floatingContainer?.isShown()) this.floatingContainer.floatingUIService.showfloatingUI();\n      if (this.highlightedIndex() !== null && this.listbox) {\n        this.listboxService.scrollItemIntoView(this.listbox()!, this.highlightedIndex()!);\n      }\n    } else if (event.key === ENTER_KEY) {\n      if (this.floatingContainer?.isShown()) {\n        event.preventDefault(); // prevent form submission if enter is triggered on list item\n      }\n      // select currently highlighted item\n      if (this.highlightedIndex() !== null) {\n        this.listbox()\n          ?.highlightedItem()\n          ?.selectItem(this.listbox()?.multiselect() ? undefined : true); // multiselect should toggle, single select should select\n        this.getListItem(this.highlightedIndex())?.clicked.emit(null as unknown as Event); // emit click event (closes item when close on click is called)\n      }\n    } else if (event.key === TAB_KEY && event.shiftKey) {\n      if (this.listbox()?.multiselect() && this.chips().length > 0) {\n        // if shift+tab is pressed and there is a chip (aka a value), close the menu\n        // @note, possibly make this optional by providing an opt-out input\n        this.floatingContainer.floatingUIService.hidefloatingUI();\n      }\n    } else if (event.key === BACKSPACE_KEY) {\n      if (!this.listbox()?.multiselect() && this.listbox()?.highlightedItem()) {\n        // in single select, if backspace is pressed, reset highlighted item\n        // keep on multiselect since it can have other items selected?\n        this.listbox()?.highlightedItem.set(null);\n      }\n      const value = this.value();\n      if (\n        this.listbox()?.multiselect() &&\n        Array.isArray(value?.value) &&\n        !this.input()?.value() &&\n        this.chips().length > 0\n      ) {\n        // remove last chip if backspace is pressed on empty input and there are chips (aka a value)\n        const lastValue = value?.value[value?.value?.length - 1];\n        const lastItem = this.listbox()\n          ?.listItems()\n          ?.find((item: ListboxItemComponent) => item.value() === lastValue);\n        lastItem?.selectItem(false);\n      }\n    }\n  }\n\n  /**\n   * Highlight next enabled item or previous enabled item depending on type.\n   * @param type 'next' | 'prev'\n   */\n  private highlightNextPrevItem(type: 'next' | 'prev'): void {\n    let filteredIndex: number | null = null;\n    if (this.highlightedIndex() !== null) {\n      // find next item given current item\n      if (type === 'next')\n        filteredIndex = this.novaLibService.nextEnabledItem(\n          this.listbox()?.listItems() || [],\n          this.highlightedIndex()!\n        );\n      if (type === 'prev')\n        filteredIndex = this.novaLibService.previousEnabledItem(\n          this.listbox()?.listItems() || [],\n          this.highlightedIndex()!\n        );\n    } else if (this.activeIndex() !== null) {\n      filteredIndex = this.activeIndex();\n    } else {\n      // find next item initially\n      if (type === 'next') filteredIndex = this.novaLibService.nextEnabledItem(this.listbox()?.listItems() || []);\n      if (type === 'prev') filteredIndex = this.novaLibService.previousEnabledItem(this.listbox()?.listItems() || []);\n    }\n\n    if (filteredIndex === -1 || filteredIndex === null) return;\n    this.listbox()?.highlightedItem.set(this.listbox()?.listItems()[filteredIndex] || null);\n    this.listbox()?.showFocus.set(true);\n  }\n\n  /**\n   * @param index\n   * @returns ListboxItemComponent at index given.\n   */\n  private getListItem(index: number | null): ListboxItemComponent | undefined {\n    if (index === null || !this.listbox()?.listItems()[index]) {\n      return;\n    }\n    return this.listbox()?.listItems()[index];\n  }\n\n  private readonlySpanID?: string;\n  private appendReadonlyText(readonly: boolean | null): void {\n    if (readonly) {\n      const span = this.renderer.createElement('span');\n      this.renderer.addClass(span, 'v-sr');\n      this.readonlySpanID = this.idGenerator.newId('v-label');\n      this.renderer.setAttribute(span, 'id', this.readonlySpanID);\n      const text = this.renderer.createText(' (read-only)');\n      this.renderer.appendChild(span, text);\n      if (this.label()?.el.nativeElement) {\n        this.renderer.appendChild(this.label()?.el.nativeElement, span);\n      }\n    } else {\n      if (!this.readonlySpanID) return;\n      const readonlyText = document.getElementById(this.readonlySpanID);\n      if (readonlyText) this.renderer.removeChild(this.label()?.el.nativeElement, readonlyText);\n    }\n  }\n\n  /**\n   * For our comparison purposes, we don't want to trigger a value change effect if\n   * the first combobox value passed is set to an empty string or null,\n   * and second the combobox value passed is set to an empty combobox value object\n   * with an empty label and value.\n   * @param a combobox value\n   * @param b combobox value\n   * @returns boolean indicating whether the values are meaningfully different.\n   */\n  private meaningfulComboboxValueChange(a: ComboboxValue, b: ComboboxValue): boolean {\n    if (\n      (a === null &&\n        b &&\n        (b.label === '' || b.label === null || b.label === undefined) &&\n        (b.value === null || (Array.isArray(b.value) && b.value.length === 0))) ||\n      (b === null &&\n        a &&\n        (a.label === '' || a.label === null || a.label === undefined) &&\n        (a.value === null || (Array.isArray(a.value) && a.value.length === 0)))\n    ) {\n      return false;\n    }\n    return valuesDiffer(a, b);\n  }\n\n  private onChange = (_: any) => {};\n\n  onTouched = (_: any) => {};\n\n  registerOnChange(fn: any) {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any) {\n    this.onTouched = fn;\n  }\n\n  writeValue(value: ComboboxValue): void {\n    const newValue = value;\n    if (!this.meaningfulComboboxValueChange(newValue, this.value())) return;\n    if (this.listbox()?.multiselect() && newValue?.value && !Array.isArray(newValue.value)) {\n      // if multiselect, ensure value is an array\n      newValue.value = [newValue.value];\n    }\n    this.value.set(newValue);\n  }\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport {\n  Directive,\n  ElementRef,\n  EventEmitter,\n  InputSignal,\n  InputSignalWithTransform,\n  Signal,\n  WritableSignal,\n  afterNextRender,\n  booleanAttribute,\n  computed,\n  contentChild,\n  inject,\n  input,\n  numberAttribute,\n  signal\n} from '@angular/core';\nimport { BadgeDirective } from '../badge/badge.directive';\nimport { ComboboxDirective } from '../combobox/combobox.directive';\nimport { IconToggleComponent } from '../icon-toggle/icon-toggle.component';\nimport { IconToggleDirective } from '../icon-toggle/icon-toggle.directive';\nimport { InputContainerComponent } from '../input-container/input-container.component';\nimport { ListenerService } from '../listener-service/listener.service';\nimport { TabItemDirective } from '../tab-item/tab-item.directive';\nimport { ToggleContainerDirective } from '../toggle-container/toggle-container.directive';\nimport { ButtonColor, ButtonSize } from './button.constants';\n\n@Directive({\n  host: {\n    class: 'v-button',\n    type: 'button',\n\n    '[attr.aria-current]': '!ariaSelected() ? ariaCurrent() : null',\n    '[attr.aria-describedby]': 'ariaDescribedby()',\n    '[attr.aria-disabled]': 'ariaDisabled()',\n    '[attr.aria-expanded]': 'ariaExpanded()',\n    '[attr.aria-haspopup]': 'ariaHaspopup()',\n    '[attr.aria-selected]': '!ariaCurrent() ? ariaSelected() : null',\n    '[attr.disabled]': 'disabled() ? \"disabled\" : null',\n    '[attr.role]': 'role()',\n    '[attr.tabindex]': 'tabindex()',\n    '[class.v-button-destructive]': 'destructive()',\n    '[class.v-button-icon]': 'buttonIcon()',\n    '[class.v-button-large]': 'buttonSize() === \"large\"',\n    '[class.v-button-secondary]': 'buttonColor() === \"secondary\"',\n    '[class.v-button-small]': 'buttonSize() === \"small\"',\n    '[class.v-button-stacked]': 'buttonStacked()',\n    '[class.v-button-subtle]': 'subtle()',\n    '[class.v-button-tertiary]': 'buttonColor() === \"tertiary\"',\n\n    '(blur)': 'blurred.emit($event)',\n    '(click)': 'clicked.emit($event)'\n  },\n  providers: [ListenerService],\n  selector: '[v-button], [v-button-icon], [v-button-stacked], [v-panel-toggle]',\n  standalone: true\n})\nexport class ButtonDirective {\n  constructor() {\n    afterNextRender({\n      read: () => {\n        this.tagName.set(this.el.nativeElement.tagName.toLowerCase());\n      }\n    });\n  }\n  public readonly el: ElementRef = inject(ElementRef);\n  public readonly listenerService: ListenerService = inject(ListenerService);\n\n  // possible parents\n  private readonly combobox: ComboboxDirective | null = inject(ComboboxDirective, { optional: true, host: true });\n  private readonly toggleContainer: ToggleContainerDirective | null = inject(ToggleContainerDirective, {\n    optional: true,\n    host: true\n  });\n  private readonly inputContainer: InputContainerComponent | null = inject(InputContainerComponent, { optional: true });\n  private readonly tabItem: TabItemDirective | null = inject(TabItemDirective, { optional: true });\n  private readonly tagName: WritableSignal<string> = signal<string>('');\n  protected readonly isLink: Signal<boolean> = computed(() => this.tagName() === 'a');\n  protected readonly isSummary: Signal<boolean> = computed(() => this.tagName() === 'summary');\n\n  private noTabRole: Signal<boolean | null> = computed<boolean | null>(() => {\n    if (this.tabItem?.trigger() || this.tabItem?.disclosureTab() || this.tabItem?.sectionTitle()) {\n      return true; // no tab role\n    }\n    return false;\n  });\n\n  // possible children\n  private readonly badge: Signal<BadgeDirective | undefined> = contentChild(BadgeDirective);\n  public readonly toggleIcon: Signal<IconToggleDirective | undefined> = contentChild(IconToggleDirective); // Needed for Accordion\n  public readonly toggleIconComponent: Signal<IconToggleComponent | undefined> = contentChild(IconToggleComponent); // Needed for Accordion\n\n  /**\n   * Aria attribute relaying whether button is selected. <br />\n   * <code>aria-current</code> and <code>aria-selected</code> cannot be used together.\n   * @default null\n   * @builtin true\n   */\n  readonly ariaCurrentInput: InputSignalWithTransform<HTMLButtonElement['ariaCurrent'] | boolean, unknown> = input<\n    HTMLButtonElement['ariaCurrent'] | boolean,\n    unknown\n  >(null, {\n    alias: 'aria-current',\n    transform: (v) => {\n      if (v === 'page') return 'page';\n      return booleanAttribute(v);\n    }\n  });\n  protected readonly ariaCurrent: Signal<string | boolean | null> = computed(\n    () =>\n      this.ariaCurrentInput() ?? // aria-current is used for navigational or nested tabs\n      ((this.tabItem?.tabList?.tabListParent || this.tabItem?.tabList?.navParent) && !this.noTabRole()\n        ? (this.tabItem?.active() ? 'page' : null)\n        : null) ??\n      null\n  );\n\n  /**\n   * Aria attribute pointing to id of descriptive element. <br />\n   * If the button has a badge, the <code>aria-describedby</code> will be set to the badge's id by default.\n   * @default false\n   */\n  readonly ariaDescribedbyInput: InputSignal<string | null> = input<null | string>(null, { alias: 'aria-describedby' });\n  protected readonly ariaDescribedby: Signal<string | undefined> = computed(\n    () => this.ariaDescribedbyInput() ?? this.badge()?.id()\n  );\n\n  /**\n   * Sets aria disabled state for accessibility purposes. <br />\n   * When true, indicates that the button is disabled and not interactive.\n   * @default false\n   */\n  readonly ariaDisabledInput: InputSignal<HTMLElement['ariaDisabled']> = input<HTMLElement['ariaDisabled']>(null, {\n    alias: 'aria-disabled'\n  });\n  readonly ariaDisabled: Signal<HTMLElement['ariaDisabled']> = computed<HTMLElement['ariaDisabled']>(\n    () => this.ariaDisabledInput() ?? ((this.isLink() || this.isSummary()) && this.disabled() ? 'true' : null)\n  );\n\n  /**\n   * Aria attribute relaying whether button is expanded.\n   * @default null\n   * @builtin true\n   */\n  readonly ariaExpandedInput: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    alias: 'aria-expanded',\n    transform: booleanAttribute\n  });\n  readonly ariaExpandedInternal: WritableSignal<boolean | null> = signal<boolean | null>(null); // used in panel and disclosure tab\n  readonly ariaExpanded: Signal<boolean | null> = computed(\n    () =>\n      // if aria-expanded is set, use that\n      this.ariaExpandedInput() ??\n      this.ariaExpandedInternal() ??\n      // else\n      null\n  );\n\n  /**\n   * Sets button to combobox toggle button when true.\n   * @default false\n   * @default true when button is used within combobox and no custom value is given.\n   * @builtin true\n   */\n  readonly ariaHaspopupInput: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    alias: 'aria-haspopup',\n    transform: booleanAttribute\n  });\n  protected readonly ariaHaspopup: Signal<string | null> = computed(() => {\n    return (\n      this.ariaHaspopupInput()?.toString() ??\n      (this.combobox && (this.toggleIcon() || this.toggleIconComponent()) ? 'true' : null)\n    );\n  });\n\n  /**\n   * Aria attribute relaying whether button is selected. <br />\n   * <code>aria-current</code> and <code>aria-selected</code> cannot be used together.\n   * @default null\n   * @builtin true\n   */\n  readonly ariaSelectedInput: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    alias: 'aria-selected',\n    transform: booleanAttribute\n  });\n    readonly ariaSelected: Signal<boolean | string | null> = computed(\n    () =>\n      this.ariaSelectedInput() ??\n      // aria-selected is used for tabs\n      (!this.tabItem?.tabList?.tabListParent && !this.tabItem?.tabList?.navParent && !this.noTabRole()\n        ? this.tabItem?.active()\n        : null) ??\n      null\n  );\n\n  /**\n   * Sets button size.\n   * @default 'medium' / ButtonSize.MEDIUM\n   * @options 'small' | ButtonSize.SMALL | <br> 'medium' | ButtonSize.MEDIUM | <br> 'large' | ButtonSize.LARGE\n   */\n  readonly buttonSizeInput: InputSignal<ButtonSize | null> = input<ButtonSize | null>(null, { alias: 'buttonSize' });\n  readonly buttonSizeInternal: WritableSignal<ButtonSize | null> = signal<ButtonSize | null>(null); // used in accordion heading\n  protected readonly buttonSize: Signal<ButtonSize> = computed(\n    () =>\n      this.buttonSizeInput() ??\n      this.buttonSizeInternal() ??\n      (this.tabItem?.tabList?.vertical() ? ButtonSize.MEDIUM : null) ??\n      (!this.tabItem || this.tabItem?.stackedButton() ? null : ButtonSize.LARGE) ??\n      ButtonSize.MEDIUM\n  );\n\n  /**\n   * Sets button color scheme.\n   * @default 'primary' / ButtonColor.PRIMARY\n   * @options 'primary' | ButtonSize.PRIMARY | <br> 'secondary' | ButtonSize.SECONDARY | <br> 'tertiary' | ButtonSize.TERTIARY\n   */\n  readonly buttonColorInput: InputSignal<ButtonColor | null> = input<ButtonColor | null>(null, {\n    alias: 'buttonColor'\n  });\n  readonly buttonColorInternal: WritableSignal<ButtonColor | null> = signal<ButtonColor | null>(null); // used in accordion heading\n  protected readonly buttonColor: Signal<ButtonColor> = computed<ButtonColor>(\n    () =>\n      this.buttonColorInput() ?? // prevents parent component from overriding if buttonColor if buttonColor is given directly by user\n      this.buttonColorInternal() ??\n      (this.tabItem ? ButtonColor.TERTIARY : null) ??\n      ButtonColor.PRIMARY\n  );\n\n  readonly buttonIcon: InputSignalWithTransform<boolean, unknown> = input(false, {\n    alias: 'v-button-icon',\n    transform: booleanAttribute\n  });\n\n  readonly buttonStacked: InputSignalWithTransform<boolean, unknown> = input(false, {\n    alias: 'v-button-stacked',\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets button to destructive variant when true.\n   * @default false\n   */\n  readonly destructive: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Disables button when true.\n   * @default false\n   */\n  readonly disabledInput: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    alias: 'disabled',\n    transform: booleanAttribute\n  });\n  readonly disabled: Signal<boolean | null> = computed<boolean | null>(\n    () =>\n      this.disabledInput() ?? this.toggleContainer?.disabled() ?? this.inputContainer?.childButtonsDisabled() ?? null\n  );\n\n  /**\n   * Sets role of button. <br />\n   * If no custom role is given, role may be set by a parent component (nav, tabs, etc.).\n   * @builtin true\n   */\n  readonly roleInput: InputSignal<HTMLElement['role']> = input<HTMLElement['role']>(null, { alias: 'role' });\n  readonly role: Signal<HTMLElement['role']> = computed<HTMLElement['role']>(\n    () =>\n      this.roleInput() ??\n      (this.isLink() && this.disabled() ? 'link' : null) ??\n      (!this.tabItem?.tabList || this.tabItem?.tabList?.tabListParent || this.tabItem?.tabList?.navParent\n        ? null\n        : 'tab')\n  ); // prevents parent component from overriding if role is given directly by user\n\n  /**\n   * Sets button to subtle variant when true.\n   * @default false\n   */\n  readonly subtle: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets button's tabIndex.\n   * @default null\n   * @default -1 when button is used within combobox and no custom value is given.\n   * @builtin true\n   */\n  readonly tabindexInput: InputSignalWithTransform<number | null, unknown> = input<null | number, unknown>(null, {\n    alias: 'tabindex',\n    transform: numberAttribute\n  });\n  protected readonly tabindex: Signal<string | number | null> = computed<number | null | string>(\n    () =>\n      this.tabindexInput() ??\n      ((this.combobox && (this.toggleIcon() || this.toggleIconComponent())) || this.ariaDisabled() ? '-1' : null)\n  );\n\n  /**\n   * Emits event when host interactive element is blurred.\n   */\n  readonly blurred: EventEmitter<FocusEvent> = new EventEmitter<FocusEvent>();\n\n  /**\n   * Emits event when host interactive element is clicked.\n   */\n  readonly clicked: EventEmitter<Event> = new EventEmitter<Event>();\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport {\n  booleanAttribute,\n  contentChild,\n  Directive,\n  forwardRef,\n  input,\n  InputSignalWithTransform,\n  Signal\n} from '@angular/core';\nimport { ButtonDirective } from '../button/button.directive';\nimport { CheckboxDirective } from '../checkbox/checkbox.directive';\n\n@Directive({\n  host: {\n    class: 'v-chip',\n\n    '[class.v-chip-compact]': 'compact()',\n    '[class.v-chip-selection]': 'checkbox()'\n  },\n  selector: '[v-chip]',\n  standalone: true\n})\nexport class ChipDirective {\n  readonly button: Signal<ButtonDirective | undefined> = contentChild(forwardRef(() => ButtonDirective));\n  protected readonly checkbox: Signal<CheckboxDirective | undefined> = contentChild(CheckboxDirective);\n\n  /**\n   * Sets chip to compact variant when true.\n   * @default false\n   */\n  readonly compact: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { Directive } from '@angular/core';\n\n@Directive({\n  host: {\n    class: 'v-input-message'\n  },\n  standalone: true,\n  selector: '[v-input-message] '\n})\nexport class InputMessageDirective {}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport {\n  Directive,\n  ElementRef,\n  InputSignalWithTransform,\n  ModelSignal,\n  Renderer2,\n  Signal,\n  WritableSignal,\n  afterNextRender,\n  booleanAttribute,\n  computed,\n  forwardRef,\n  inject,\n  input,\n  model,\n  signal\n} from '@angular/core';\nimport { CheckboxControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nconst SWITCH_VALUE_ACCESSOR = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => SwitchDirective),\n  multi: true\n};\n\n@Directive({\n  host: {\n    class: 'v-switch',\n    role: 'switch',\n    type: 'checkbox',\n\n    '[attr.aria-checked]': 'checked()',\n    '[attr.aria-invalid]': 'invalid()',\n    '[attr.checked]': \"checked() ? 'checked' : null\",\n    '[attr.disabled]': \"disabled() ? 'disabled' : null\",\n    '[attr.required]': \"required() ? 'required' : null\",\n\n    '(change)': 'handleChange($event)'\n  },\n  providers: [SWITCH_VALUE_ACCESSOR],\n  selector: '[v-switch]',\n  standalone: true\n})\nexport class SwitchDirective extends CheckboxControlValueAccessor {\n  constructor() {\n    const el: ElementRef<HTMLInputElement> = inject<ElementRef<HTMLInputElement>>(ElementRef);\n    const renderer: Renderer2 = inject<Renderer2>(Renderer2);\n    super(renderer, el);\n    afterNextRender({\n      write: () => {\n        // if initial checked state is set, set the checked state to the initial value\n        // ie `<input v-switch checked>` will set the checked state to '', which is truthy\n        if (this.checked() === '') {\n          this.checked.set(true);\n        }\n      }\n    });\n  }\n\n  public readonly el: ElementRef<HTMLInputElement> = inject<ElementRef<HTMLInputElement>>(ElementRef);\n\n  /**\n   * Sets checked state of component. <br />\n   * Because 'checked' is a native attribute of input[type=\"checkbox\"], it can only be set false by using [checked]=\"false\", not checked=\"false\" <br />\n   * Use [checked] when you want to handle the checked state of the checkbox.\n   * Use (checkedChange) when you want the library to handle the checked state of the checkbox, but get notified of changes.\n   * Use [(checked)] when you want the checked state to reflect changes by both you and the library.\n   */\n  readonly checked: ModelSignal<boolean | null | string> = model<boolean | null | string>(null);\n\n  /**\n   * Sets switch as disabled when true.\n   * @default false\n   */\n  readonly disabledInput: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    alias: 'disabled',\n    transform: booleanAttribute\n  });\n  readonly disabledInternal: WritableSignal<boolean | null> = signal<boolean | null>(null);\n  protected readonly disabled: Signal<boolean | null> = computed(() => this.disabledInput() ?? this.disabledInternal());\n  /** Fires when a formControl's disabled state updates  */\n  override setDisabledState(isDisabled: boolean): void {\n    super.setDisabledState(isDisabled);\n    this.disabledInternal.set(isDisabled);\n  }\n\n  /**\n   * Marks switch as invalid when true.\n   * @default false\n   */\n  readonly invalid: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Marks switch as required when true.\n   * @default false\n   */\n  readonly required: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  handleChange(event: Event): void {\n    const { checked } = event.target as HTMLInputElement;\n    this.onChange(checked);\n    this.checked.set(checked);\n  }\n\n  override writeValue(value: string): void {\n    super.writeValue(value);\n    this.checked.set(value ? value.toString() : null);\n  }\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { NgModule } from '@angular/core';\nimport { CheckboxPanelDirective } from './checkbox-panel/checkbox-panel.directive';\nimport { CheckboxDirective } from './checkbox/checkbox.directive';\nimport { ChipDirective } from './chip/chip.directive';\nimport { ComboboxDirective } from './combobox/combobox.directive';\nimport { FloatingUIContainer } from './floating-ui-container/floating-ui-container.directive';\nimport { FloatingUIElementDirective } from './floating-ui-element/floating-ui-element.directive';\nimport { FloatingUITriggerDirective } from './floating-ui-trigger/floating-ui-trigger.directive';\nimport { IconToggleDefaultTemplateDirective } from './icon-toggle-default/icon-toggle-default.directive';\nimport { IconToggleRotatedTemplateDirective } from './icon-toggle-rotated/icon-toggle-rotated.directive';\nimport { IconToggleComponent } from './icon-toggle/icon-toggle.component';\nimport { InputContainerComponent } from './input-container/input-container.component';\nimport { InputMessageDirective } from './input-message/input-message.directive';\nimport { InputDirective } from './input/input.directive';\nimport { LabelDirective } from './label/label.directive';\nimport { ListboxContainerDirective } from './listbox-container/listbox-container.directive';\nimport { ListboxItemComponent } from './listbox-item/listbox-item.component';\nimport { ListboxDirective } from './listbox/listbox.directive';\nimport { RadioGroupDirective } from './radio-group/radio-group.directive';\nimport { RadioDirective } from './radio/radio.directive';\nimport { SelectDirective } from './select/select.directive';\nimport { SwitchDirective } from './switch/switch.directive';\nimport { ToggleButtonDirective } from './toggle-button/toggle-button.directive';\nimport { ToggleContainerDirective } from './toggle-container/toggle-container.directive';\nimport { ToggleDirective } from './toggle/toggle.directive';\n\n@NgModule({\n  imports: [\n    CheckboxDirective,\n    CheckboxPanelDirective,\n    ChipDirective,\n    ComboboxDirective,\n    FloatingUIContainer,\n    FloatingUIElementDirective,\n    FloatingUITriggerDirective,\n    InputDirective,\n    InputContainerComponent,\n    InputMessageDirective,\n    IconToggleComponent,\n    IconToggleDefaultTemplateDirective,\n    IconToggleRotatedTemplateDirective,\n    LabelDirective,\n    ListboxDirective,\n    ListboxContainerDirective,\n    ListboxItemComponent,\n    RadioDirective,\n    RadioGroupDirective,\n    SelectDirective,\n    SwitchDirective,\n    ToggleDirective,\n    ToggleButtonDirective,\n    ToggleContainerDirective\n  ],\n  exports: [\n    CheckboxDirective,\n    CheckboxPanelDirective,\n    ChipDirective,\n    ComboboxDirective,\n    FloatingUIContainer,\n    FloatingUIElementDirective,\n    FloatingUITriggerDirective,\n    IconToggleComponent,\n    IconToggleDefaultTemplateDirective,\n    IconToggleRotatedTemplateDirective,\n    InputDirective,\n    InputContainerComponent,\n    InputMessageDirective,\n    LabelDirective,\n    ListboxDirective,\n    ListboxContainerDirective,\n    ListboxItemComponent,\n    RadioDirective,\n    RadioGroupDirective,\n    SelectDirective,\n    SwitchDirective,\n    ToggleDirective,\n    ToggleButtonDirective,\n    ToggleContainerDirective\n  ]\n})\nexport class NovaFormsModule {}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { Directive, inject } from '@angular/core';\nimport { AccordionDirective } from '../accordion/accordion.directive';\n@Directive({\n  host: {\n    class: 'v-accordion-panel',\n\n    '[style.--v-accordion-panel-background-color]': 'accordion?.subtle() ? \"transparent\" : null',\n    '[style.--v-accordion-panel-border-size]': 'accordion?.subtle() ? \"0px\" : null',\n    '[style.--v-accordion-panel-padding-inline]': 'accordion?.subtle() ? \"32px\" : null'\n  },\n  selector: '[v-accordion-panel]',\n  standalone: true\n})\nexport class AccordionPanelDirective {\n  protected readonly accordion: AccordionDirective | null = inject(AccordionDirective, { optional: true, host: true });\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { Directive } from '@angular/core';\n\n@Directive({\n  host: {\n    class: 'v-anchor-link-menu-header'\n  },\n  selector: '[v-anchor-link-menu-header]',\n  standalone: true\n})\nexport class AnchorLinkMenuHeaderDirective {}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { Directive } from '@angular/core';\n\n@Directive({\n  host: {\n    class: 'v-anchor-link-menu'\n  },\n  selector: '[v-anchor-link-menu]',\n  standalone: true\n})\nexport class AnchorLinkMenuDirective {}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport {\n  afterNextRender,\n  booleanAttribute,\n  computed,\n  Directive,\n  ElementRef,\n  inject,\n  input,\n  InputSignal,\n  InputSignalWithTransform,\n  Signal,\n  signal,\n  WritableSignal\n} from '@angular/core';\n\n@Directive({\n  host: {\n    class: 'v-avatar',\n\n    '[attr.role]': 'role() ?? defaultRole()',\n    '[class.v-avatar-small]': 'small()'\n  },\n  standalone: true,\n  selector: '[v-avatar]'\n})\nexport class AvatarDirective {\n  constructor() {\n    afterNextRender({\n      read: () => {\n        this.tagName.set(this.el.nativeElement.tagName.toLowerCase());\n      }\n    });\n  }\n  private readonly el: ElementRef = inject(ElementRef);\n  private readonly tagName: WritableSignal<string> = signal<string>('');\n  protected readonly defaultRole: Signal<string | null> = computed(() => (this.tagName() !== 'img' ? 'img' : null));\n\n  /**\n   * Sets avatar to small variant when true.\n   * @default false\n   */\n  readonly small: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  readonly role: InputSignal<HTMLElement['role'] | null> = input<HTMLElement['role'] | null>(null);\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { booleanAttribute, Directive, input, InputSignalWithTransform } from '@angular/core';\n\n@Directive({\n  host: {\n    class: 'v-banner',\n\n    '[style.position]': 'isGlobal() ? \"sticky\" : null',\n    '[style.top]': 'isGlobal() ? 0 : null',\n    '[style.z-index]': 'isGlobal() ? 888 : null'\n  },\n  selector: '[v-banner]',\n  standalone: true\n})\nexport class BannerDirective {\n  /**\n   * Provides sticky styling for global banners. <br />\n   * When true, the following CSS rules are applied - <code>position: sticky; top: 0; z-index: 888;</code>.\n   * @default false\n   */\n  readonly isGlobal: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { booleanAttribute, Directive, input, InputSignal, InputSignalWithTransform } from '@angular/core';\n\n@Directive({\n  host: {\n    class: 'v-breadcrumbs',\n\n    '[class.v-breadcrumbs-custom]': 'hasInlineSeparator()',\n    '[style.--v-breadcrumbs-pseudo-separator]': `separator() ? \"'\" + separator() + \"'\" : null`\n  },\n  selector: '[v-breadcrumbs]',\n  standalone: true\n})\nexport class BreadcrumbsDirective {\n  /**\n   * Removes separator inserted by CSS and allows you to provide your own separator within the markup.\n   * @default false\n   */\n  readonly hasInlineSeparator: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Replaces the default '<code>/</code>' separator with the string provided.\n   * @default false\n   */\n  readonly separator: InputSignal<null | string> = input<null | string>(null);\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { Directive } from '@angular/core';\n\n@Directive({\n  host: {\n    class: 'v-content-card-body'\n  },\n  selector: '[v-content-card-body]',\n  standalone: true\n})\nexport class ContentCardBodyDirective {}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { Directive } from '@angular/core';\n\n@Directive({\n  host: {\n    class: 'v-content-card-image'\n  },\n  selector: '[v-content-card-image]',\n  standalone: true\n})\nexport class ContentCardImageDirective {}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { Directive } from '@angular/core';\n\n@Directive({\n  host: {\n    class: 'v-content-card-subtitle'\n  },\n  selector: '[v-content-card-subtitle]',\n  standalone: true\n})\nexport class ContentCardSubtitleDirective {}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport {\n  booleanAttribute,\n  computed,\n  contentChild,\n  Directive,\n  forwardRef,\n  input,\n  InputSignalWithTransform,\n  Signal\n} from '@angular/core';\nimport { ContentCardTitleLinkDirective } from '../content-card-title-link/content-card-title-link.directive';\n\n@Directive({\n  host: {\n    class: 'v-content-card',\n\n    '[attr.aria-disabled]': 'disabled()',\n    '[class.v-content-card-border-block-end]': 'indicator()',\n\n    '(click)': 'handleClick()',\n    '(keydown.space)': 'handleSpaceKeydown($event)'\n  },\n  selector: '[v-content-card]',\n  standalone: true\n})\nexport class ContentCardDirective {\n  private readonly titleLink: Signal<ContentCardTitleLinkDirective | undefined> = contentChild(\n    forwardRef(() => ContentCardTitleLinkDirective)\n  );\n\n  /**\n   * Transforms card into a clickable card when true.\n   * @default false\n   */\n  readonly clickable: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Displays indicator line at the bottom of the card when true.\n   * @default false\n   */\n  readonly indicator: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets component as disabled when true.\n   * @default false\n   */\n  readonly disabledInput: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    alias: 'disabled',\n    transform: booleanAttribute\n  });\n  public readonly disabled: Signal<boolean | null | undefined> = computed(\n    () => this.disabledInput() ?? this.titleLink()?.disabledInput()\n  );\n\n  handleClick(): void {\n    if (!this.clickable()) return;\n    this.titleLink()?.handleParentClick();\n  }\n\n  handleSpaceKeydown(event: Event): void {\n    if (!this.clickable()) return;\n    //to prevent unnecessary scrolling\n    event.preventDefault();\n  }\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport {\n  booleanAttribute,\n  computed,\n  Directive,\n  ElementRef,\n  inject,\n  input,\n  InputSignalWithTransform,\n  Signal\n} from '@angular/core';\nimport { ContentCardDirective } from '../content-card/content-card.directive';\n\n@Directive({\n  host: {\n    class: 'v-content-card-title-link',\n\n    '[attr.aria-disabled]': 'disabled()',\n\n    '(click)': 'handleClick($event)'\n  },\n  selector: '[v-content-card-title-link]',\n  standalone: true\n})\nexport class ContentCardTitleLinkDirective {\n  private readonly el: ElementRef<HTMLLinkElement> = inject(ElementRef);\n  private readonly contentCard: ContentCardDirective | null = inject(ContentCardDirective, { optional: true });\n\n  /**\n   * Disables link and sets content card to disabled when true.\n   * @default false\n   */\n  readonly disabledInput: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    alias: 'disabled',\n    transform: booleanAttribute\n  });\n  readonly disabled: Signal<boolean | null> = computed(\n    () => this.disabledInput() ?? this.contentCard?.disabled() ?? null\n  );\n\n  readonly handleClick = (event: Event): void => {\n    if (this.disabled()) event.preventDefault();\n  };\n\n  public handleParentClick(): void {\n    const link = this.el.nativeElement;\n    if (!link || this.disabled()) return;\n    link.click();\n  } // Used in content card directive to propagate click event\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { Directive } from '@angular/core';\n\n@Directive({\n  host: {\n    class: 'v-content-card-title'\n  },\n  selector: '[v-content-card-title]',\n  standalone: true\n})\nexport class ContentCardTitleDirective {}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { computed, Directive, inject, input, InputSignal, Signal } from '@angular/core';\nimport { IdGenerator } from '../id-generator/id-generator.service';\nimport { MessageType } from '../message/message.constants';\n\n@Directive({\n  host: {\n    'aria-modal': 'true',\n    class: 'v-dialog',\n    role: 'dialog',\n\n    '[attr.aria-describedby]': 'descriptionLabel()',\n    '[attr.aria-labelledby]': 'label()',\n    '[attr.id]': 'id()',\n    '[class.v-dialog-default]': '!this.messageType() || this.messageType() === \"information\"'\n  },\n  selector: '[v-dialog]',\n  standalone: true\n})\nexport class DialogDirective {\n  private readonly idGenerator: IdGenerator = inject(IdGenerator);\n\n  /**\n   * Aria attribute pointing to id of descriptive element.\n   * @default '&lt;this.id&gt;-description'\n   * @builtin true\n   */\n  readonly descriptionLabelInput: InputSignal<null | string> = input<null | string>(null, {\n    alias: 'aria-describedby'\n  });\n  readonly descriptionLabel: Signal<string> = computed(\n    () => this.descriptionLabelInput() ?? `${this.id()}-description`\n  );\n\n  /**\n   * Sets custom id.\n   * @default idGenerator.newId('v-dialog')\n   * @builtin true\n   */\n  readonly id: InputSignal<string> = input<string>(this.idGenerator.newId('v-dialog'));\n\n  /**\n   * Aria attribute pointing to id of labelling element.\n   * @default '&lt;this.id&gt;-title'\n   * @builtin true\n   */\n  readonly labelInput: InputSignal<null | string> = input<null | string>(null, { alias: 'aria-labelledby' });\n  readonly label: Signal<string> = computed(() => this.labelInput() ?? `${this.id()}-title`);\n\n  /**\n   * @ignore\n   */\n  readonly messageType: InputSignal<MessageType | undefined> = input<MessageType | undefined>();\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { computed, Directive, inject, input, InputSignal, Signal } from '@angular/core';\nimport { DialogDirective } from '../dialog/dialog.directive';\n\n@Directive({\n  host: {\n    class: 'v-dialog-header',\n\n    '[attr.id]': 'id()'\n  },\n  selector: '[v-dialog-header]',\n  standalone: true\n})\nexport class DialogHeaderDirective {\n  private readonly dialogComponent: DialogDirective = inject(DialogDirective);\n\n  /**\n   * Sets custom id.\n   * @default '&lt;parent-dialog-id&gt;-label' if no id is provided\n   * @builtin true\n   */\n  readonly idInput: InputSignal<string | null> = input<null | string>(null, { alias: 'id' });\n  protected readonly id: Signal<string> = computed(() => this.idInput() ?? this.dialogComponent.label());\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { computed, Directive, inject, input, InputSignal, Signal } from '@angular/core';\nimport { DialogDirective } from '../dialog/dialog.directive';\n\n@Directive({\n  host: {\n    '[attr.id]': 'id()'\n  },\n  selector: '[v-dialog-text]',\n  standalone: true\n})\nexport class DialogTextDirective {\n  private readonly dialog: DialogDirective | null = inject(DialogDirective, { optional: true });\n\n  /**\n   * Sets custom id.\n   * @default '&lt;parent-dialog-id&gt;-description' if no id is provided.\n   * @builtin true\n   */\n  readonly idInput: InputSignal<HTMLElement['id'] | null> = input<HTMLElement['id'] | null>(null, { alias: 'id' });\n  protected readonly id: Signal<string | undefined> = computed(() => this.idInput() ?? this.dialog?.descriptionLabel());\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { Directive, input, InputSignal } from '@angular/core';\nimport { DividerType } from './divider.constants';\n\n@Directive({\n  standalone: true,\n  selector: '[v-divider]',\n  host: {\n    class: 'v-divider',\n\n    '[attr.aria-hidden]': \"ariaHidden() ?? dividerType() === 'decorative' || null\",\n    '[class.v-divider-decorative]': 'dividerType() === \"decorative\"',\n    '[class.v-divider-section]': 'dividerType() === \"section\"'\n  }\n})\nexport class DividerDirective {\n  readonly ariaHidden: InputSignal<string | null> = input<HTMLElement['ariaHidden'] | null>(null, {\n    alias: 'aria-hidden'\n  });\n\n  /**\n   * Sets divider style.\n   * @default 'default' / DividerType.DEFAULT\n   * @options 'default' | DividerType.DEFAULT | <br> 'section' | DividerType.SECTION | <br> 'decorative' | DividerType.DECORATIVE\n   */\n  readonly dividerType: InputSignal<DividerType> = input<DividerType>('default');\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { Directive } from '@angular/core';\n\n@Directive({\n  host: {\n    class: 'v-listbox'\n  },\n  selector: '[v-dropdown-list]',\n  standalone: true\n})\nexport class DropdownListDirective {}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { Directive } from '@angular/core';\n\n@Directive({\n  host: {\n    class: 'v-flag'\n  },\n  selector: '[v-flag]',\n  standalone: true\n})\nexport class FlagDirective {}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { Directive } from '@angular/core';\n\n@Directive({\n  host: {\n    class: 'v-footer'\n  },\n  standalone: true,\n  selector: '[v-footer]'\n})\nexport class FooterDirective {}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport {\n  booleanAttribute,\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  inject,\n  input,\n  InputSignal,\n  InputSignalWithTransform,\n  Signal,\n  signal,\n  ViewEncapsulation,\n  WritableSignal,\n} from '@angular/core';\nimport { IconToggleDirective } from '../icon-toggle/icon-toggle.directive';\nimport { IconLibrary, IconSize } from './icon.constants';\n\n/**\n * <code>IconComponent</code> is intended <i>only</i> for use with icons used with an icon sprite. <br />\n * <strong>Standalone icons from @visa/nova-icons-angular is recommended over using the <code>IconComponent</code>.</strong>. <br />\n * Icon component for displaying icons from VPDS' [Icon Library](https://design.visa.com/components/icons-illustrations/). <br />\n */\n@Component({\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  host: {\n    class: 'v-icon',\n    focusable: 'false',\n    hidden: 'true',\n\n    '[attr.height]': 'computedSize()',\n    '[attr.viewBox]': \"'0 0 ' + computedSize() + ' ' + computedSize()\",\n    '[attr.width]': 'computedSize()',\n    '[class.v-badge-ellipse]': 'isBadgeEllipse()',\n    '[class.v-icon-generic]': 'library() === \"generic\"',\n    '[class.v-icon-high]': 'iconSize() === \"high\"',\n    '[class.v-icon-low]': 'iconSize() === \"low\"',\n    '[class.v-icon-rtl]': 'rtl()',\n    '[class.v-icon-tiny]': 'iconSize() === \"tiny\"',\n    '[class.v-icon-visa]': 'library() === \"visa\"',\n    '[class.v-tab-suffix]': 'tabSuffix()',\n    '[style.--v-icon-height]':\n      'isBadgeEllipse() ? \"var(--size-scalable-\" + customHeight() + \")\" : null',\n    '[style.--v-icon-primary]':\n      'isBadgeEllipse() ? \"var(--v-badge-ellipse-color)\" : null',\n    '[style.--v-icon-secondary]':\n      'isBadgeEllipse() ? \"var(--v-badge-ellipse-color)\" : null',\n    '[style.--v-icon-width]':\n      'isBadgeEllipse() ? \"var(--size-scalable-\" + customWidth() + \")\" : null',\n  },\n  selector: '[v-icon]',\n  standalone: true,\n  templateUrl: './icon.component.html',\n})\nexport class IconComponent {\n  /**\n   * Set CSS variable <code>--v-icon-height</code> which customizes icon height. <code>isBadgeEllipse</code> must be true for this to have an affect. <br />\n   * @default '8'\n   */\n  readonly customHeight: InputSignal<string> = input<string>('8');\n\n  /**\n   * Name of <strong>custom</strong> icon reference. <br />\n   * Should refer to an icon within an icon sprite in your application. <br />\n   * The href will reference the string provided directly. No library or iconSize will be added.\n   */\n  readonly customIcon: InputSignal<string | undefined> = input<string>();\n\n  /**\n   * Set CSS variable <code>--v-icon-width</code> which customizes icon width. <code>isBadgeEllipse</code> must be true for this to have an affect. <br />\n   * @default '8'\n   */\n  readonly customWidth: InputSignal<string> = input<string>('8');\n\n  /**\n   * Name of icon to display. <br />\n   * Should refer to an icon in VPDS' [Icon Library](https://design.visa.com/components/icons-illustrations/).\n   */\n  readonly iconInput: InputSignal<string | null> = input<null | string>(null, {\n    alias: 'icon',\n  });\n  private readonly icon: Signal<string | null> = computed(\n    () =>\n      this.iconInput() ??\n      (this.iconToggle !== undefined\n        ? ((this.iconToggle?.expanded()\n            ? this.iconToggle?.expandedIcon()\n            : this.iconToggle?.collapsedIcon()) as string)\n        : null),\n  );\n\n  private readonly iconToggle: IconToggleDirective | null = inject(\n    IconToggleDirective,\n    { optional: true, host: true },\n  );\n\n  /**\n   * Sets icon resolution/size.\n   * @default 'tiny' / IconSize.TINY\n   * @options 'tiny' | IconSize.TINY | <br> 'low' | IconSize.LOW | <br> 'high' | IconSize.HIGH\n   */\n  // default of tiny chosen because it is the default for majority of buttons\n  readonly iconSize: InputSignal<IconSize> = input<IconSize>('tiny');\n\n  /**\n   * Sets icon to badge-ellipse variant when true. <br />\n   * Intended for use in badges with an indicator.\n   * @default false\n   */\n  readonly isBadgeEllipse: InputSignalWithTransform<boolean, unknown> = input<\n    boolean,\n    unknown\n  >(false, {\n    transform: booleanAttribute,\n  });\n\n  /**\n   * Tells icon which library to reference.\n   * @default 'visa' / IconLibrary.VISA\n   * @options 'visa' | IconLibrary.VISA | <br> 'generic' | IconLibrary.GENERIC\n   */\n  readonly library: InputSignal<IconLibrary> = input<IconLibrary>('visa');\n\n  /**\n   * Flips icon from right to left when true and <code>dir=\"rtl\" is present on a parent element.\n   * @default false\n   */\n  readonly rtl: InputSignalWithTransform<boolean, unknown> = input<\n    boolean,\n    unknown\n  >(false, {\n    transform: booleanAttribute,\n  });\n\n  readonly tabSuffix: WritableSignal<boolean> = signal<boolean>(false);\n\n  protected readonly computedSize: Signal<number> = computed<number>(() =>\n    this.iconSize() === 'low' ? 24 : this.iconSize() === 'high' ? 48 : 16,\n  );\n\n  protected readonly iconRef: Signal<string | null> = computed(\n    () =>\n      this.customIcon() ??\n      (this.icon() && `${this.library()}-${this.icon()}-${this.iconSize()}`),\n  );\n}\n","<!--\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n -->\n@if (iconRef()) {\n  <svg:use [attr.href]=\"'#' + iconRef()\" [attr.xlink:href]=\"'#' + iconRef()\"></svg:use>\n}\n@if (isBadgeEllipse()) {\n  <svg:circle cx=\"8\" cy=\"8\" r=\"8\" style=\"fill: var(--v-badge-ellipse-color)\"></svg:circle>\n}\n<ng-content />\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport {\n  booleanAttribute,\n  computed,\n  Directive,\n  input,\n  InputSignal,\n  InputSignalWithTransform,\n  numberAttribute,\n  Signal\n} from '@angular/core';\n\n@Directive({\n  host: {\n    class: 'v-progress v-progress-bar',\n\n    '[attr.aria-hidden]': 'ariaHidden() ? ariaHidden() : determinate() ? null : \"true\"',\n    '[attr.max]': 'max()',\n    '[attr.value]': 'value()',\n    '[class.v-progress-complete]': 'complete()',\n    '[class.v-progress-error]': 'invalid()',\n    '[class.v-progress-indeterminate]': '!determinate()'\n  },\n  selector: '[v-progress-linear], [v-linear-progress]',\n  standalone: true\n})\nexport class LinearProgressDirective {\n  /**\n   * Hide progress from screen readers when true. By default, indeterminate progress is hidden and determinate progress is visible.\n   * @default 'true' when <code>determinate</code> is false\n   * @default null when <code>determinate</code> is true\n   * @builtin true\n   */\n  readonly ariaHidden: InputSignal<string | void | null> = input<string | void | null>(null, { alias: 'aria-hidden' });\n\n  /**\n   * Marks progress as complete when true. By default, determinate progress is marked complete\n   * when value is greater than or equal to max, and indeterminate progress is never marked complete.\n   * @default null\n   */\n  public readonly completeInput: InputSignalWithTransform<boolean | null, unknown> = input(null, {\n    alias: 'complete',\n    transform: booleanAttribute\n  });\n  protected readonly complete: Signal<boolean> = computed(\n    () => this.completeInput() ?? (this.determinate() ? null : false) ?? this.value()! >= this.max()!\n  );\n\n  /**\n   * Sets progress to determinate when true.\n   * @default false\n   */\n  readonly determinate: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Marks progress as invalid when true.\n   * @default false\n   */\n  readonly invalid: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * The max value for a <code>determinate</code> progress bar.\n   * @default 100\n   */\n  readonly maxInput: InputSignalWithTransform<number, unknown> = input<number, unknown>(100, {\n    alias: 'max',\n    transform: (val) => numberAttribute(val, 100)\n  });\n  readonly max: Signal<number | null> = computed(() =>\n    this.determinate() ? (this.percentage() !== null ? 100 : this.maxInput()) : null\n  );\n\n  /**\n   * The current progress as a percentage (0-100). Use this for simple percentage-based progress.\n   * @default null\n   */\n  readonly percentage: InputSignalWithTransform<number | null, unknown> = input(null, {\n    transform: numberAttribute\n  });\n\n  /**\n   * The current progress value. Works with the max attribute to calculate percentage.\n   * Use when tracking progress with custom units (e.g., items processed out of a total).\n   * @default 100\n   */\n  readonly valueInput: InputSignalWithTransform<number, unknown> = input<number, unknown>(100, {\n    alias: 'value',\n    transform: numberAttribute\n  });\n  readonly value: Signal<number | null> = computed(() =>\n    this.determinate() ? (this.percentage() ?? this.valueInput()) : null\n  );\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { booleanAttribute, Directive, ElementRef, inject, input, InputSignalWithTransform } from '@angular/core';\nimport { ListenerService } from '../listener-service/listener.service';\n\n@Directive({\n  host: {\n    class: 'v-link',\n\n    '[attr.aria-disabled]': 'disabled()',\n    '[attr.role]': \"disabled() ? 'link' : null\",\n    '[class.v-link-no-underline]': 'noUnderline()'\n  },\n  providers: [ListenerService],\n  selector: '[v-link]',\n  standalone: true\n})\nexport class LinkDirective {\n  public readonly el: ElementRef = inject(ElementRef); // used in nova-lib-service handleAriaCurrent\n  public readonly listenerService: ListenerService = inject(ListenerService);\n\n  /**\n   * Disables link when true. <br />\n   * Adds <code>role=\"link\"</code> and <code>aria-disabled=\"true\"</code> when true for a11y.\n   * @default false\n   */\n  readonly disabled: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Removes underline on link when true.\n   * @default false\n   */\n  readonly noUnderline: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { Directive } from '@angular/core';\n\n@Directive({\n  host: {\n    class: 'v-message-content'\n  },\n  selector: '[v-message-content]',\n  standalone: true\n})\nexport class MessageContentDirective {}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { Directive } from '@angular/core';\n\n@Directive({\n  host: {\n    class: 'v-message-icon'\n  },\n  selector: '[v-message-icon]',\n  standalone: true\n})\nexport class MessageIconDirective {}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nexport const MessageType = {\n  CLOSE: 'close',\n  ERROR: 'error',\n  INFORMATION: 'information',\n  SUBTLE: 'subtle',\n  SUCCESS: 'success',\n  WARNING: 'warning'\n} as const;\n\nexport type MessageType = (typeof MessageType)[keyof typeof MessageType];\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { Directive, input, InputSignal } from '@angular/core';\nimport { MessageType } from './message.constants';\n\n@Directive({\n  host: {\n    class: 'v-message',\n\n    '[class.v-message-close]': 'messageType() === \"close\"',\n    '[class.v-message-error]': 'messageType() === \"error\"',\n    '[class.v-message-subtle]': 'messageType() === \"subtle\"',\n    '[class.v-message-success]': 'messageType() === \"success\"',\n    '[class.v-message-warning]': 'messageType() === \"warning\"'\n  },\n  selector: '[v-message]',\n  standalone: true\n})\nexport class MessageDirective {\n  /**\n   * Sets message type.\n   * @default 'information' / MessageType.INFORMATION\n   * @options \"error\" | MessageType.ERROR | <br> \"information\" | MessageType.INFORMATION | <br> \"success\" | MessageType.SUCCESS | <br> \"warning\" | MessageType.WARNING | <br> \"close\" | MessageType.CLOSE | <br> \"subtle\" | MessageType.SUBTLE\n   */\n  readonly messageType: InputSignal<MessageType> = input<MessageType>(MessageType.INFORMATION);\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { Directive } from '@angular/core';\n\n@Directive({\n  host: {\n    class: 'v-pagination-overflow'\n  },\n  selector: '[v-pagination-overflow]',\n  standalone: true\n})\nexport class PaginationOverflowDirective {}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { Directive } from '@angular/core';\n\n@Directive({\n  host: {\n    class: 'v-pagination'\n  },\n  selector: '[v-pagination]',\n  standalone: true\n})\nexport class PaginationDirective {}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { Directive } from '@angular/core';\n\n@Directive({\n  host: {\n    class: 'v-panel-body'\n  },\n  selector: '[v-panel-body]',\n  standalone: true\n})\nexport class PanelBodyDirective {}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { Directive, inject } from '@angular/core';\nimport { ButtonDirective } from '../button/button.directive';\n\n@Directive({\n  host: {\n    class: 'v-panel-toggle'\n  },\n  selector: '[v-panel-toggle]',\n  standalone: true\n})\nexport class PanelToggleDirective {\n  public readonly button: ButtonDirective | null = inject(ButtonDirective, { optional: true });\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport {\n  AfterContentInit,\n  booleanAttribute,\n  computed,\n  contentChild,\n  Directive,\n  input,\n  InputSignal,\n  InputSignalWithTransform,\n  Signal,\n  signal,\n  WritableSignal\n} from '@angular/core';\nimport { PanelToggleDirective } from '../panel-toggle-button/panel-toggle-button.directive';\n\n@Directive({\n  host: {\n    class: 'v-panel',\n\n    '[attr.aria-modal]': 'responsive() ? null : true',\n    '[attr.role]': 'role()',\n    '[class.v-panel-expandable]': 'expandable() || toggleButton()',\n    '[class.v-panel-responsive]': 'responsive()',\n    '[class.v-panel-skrim]': 'skrim()'\n  },\n  selector: '[v-panel]',\n  standalone: true\n})\nexport class PanelDirective implements AfterContentInit {\n  protected readonly toggleButton: Signal<PanelToggleDirective | undefined> = contentChild(PanelToggleDirective);\n\n  /**\n   * Sets panel to expandable variant when true.\n   * @default false\n   * @default true if panel contains a <code>PanelToggleDirective</code>.\n   */\n  readonly expandable: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Expands panel by default when true. <br />\n   * To be used when <code>expandable</code> is true.\n   * @default false\n   */\n  readonly expandedInput: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    alias: 'expanded',\n    transform: booleanAttribute\n  });\n  private readonly expandedInternal: WritableSignal<boolean | null> = signal<boolean | null>(null);\n  public readonly expanded = computed(() => this.expandedInput() ?? this.expandedInternal());\n\n  /**\n   * Sets panel to responsive variant when true and places panel on same layer as content around it.\n   * @default false\n   */\n  readonly responsive: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets custom role.\n   * @default 'dialog' if panel is not responsive.\n   * @builtin true\n   */\n  readonly roleInput: InputSignal<string | null> = input<HTMLElement['role']>(null, { alias: 'role' });\n  protected readonly role: Signal<string | null> = computed(\n    () => this.roleInput() ?? (this.responsive() ? null : 'dialog')\n  );\n\n  /**\n   * Adds skrim (shadow overlay) to modal variant (responsive=\"false\") when true.\n   * @default false\n   */\n  readonly skrim: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  ngAfterContentInit(): void {\n    const toggleButton = this.toggleButton()?.button;\n    if (!toggleButton) return;\n    toggleButton.ariaExpandedInternal.set(!!this.expanded());\n\n    // subscriptions will be cleaned up by the base interactive directive\n    toggleButton.listenerService.subscriptions.push(\n      toggleButton.clicked.subscribe(() => {\n        this.expandedInternal.update((expanded) => !expanded);\n        toggleButton.ariaExpandedInternal.set(this.expanded());\n      })\n    );\n  }\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { Directive } from '@angular/core';\n\n@Directive({\n  host: {\n    class: 'v-section'\n  },\n  selector: '[v-section]',\n  standalone: true\n})\nexport class SectionMessageDirective {}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { Directive } from '@angular/core';\n\n/**\n * Directive to provide a skip to content link.\n * @default .v-skip-link\n */\n@Directive({\n  host: {\n    class: 'v-skip-link'\n  },\n  selector: '[v-skip-to-content]',\n  standalone: true\n})\nexport class SkipToContentDirective {}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { Directive, input, InputSignalWithTransform } from '@angular/core';\nimport { pxAttribute } from '../nova-lib.utils';\n\n@Directive({\n  host: {\n    class: 'v-table-wrapper',\n\n    '[style.--v-table-wrapper-block-size]': 'scrollBlockSize()',\n    '[style.--v-table-wrapper-inline-size]': 'scrollInlineSize()'\n  },\n  selector: '[v-table-wrapper]',\n  standalone: true\n})\nexport class TableWrapperDirective {\n  /**\n   * Sets CSS variable <code>--v-table-wrapper-block-size</code> to customize the block size of the scroll area.\n   */\n  readonly scrollBlockSize: InputSignalWithTransform<string, unknown> = input<string, unknown>('unset', {\n    transform: (v) => pxAttribute<string>(v, 'unset')\n  });\n\n  /**\n   * Sets CSS variable <code>--v-table-wrapper-inline-size</code> to customize the inline size of the scroll area.\n   */\n  readonly scrollInlineSize: InputSignalWithTransform<string, unknown> = input<string, unknown>('unset', {\n    transform: (v) => pxAttribute<string>(v, 'unset')\n  });\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nexport const TableSize = {\n  COMPACT: 'compact',\n  MEDIUM: 'medium',\n  LARGE: 'large'\n} as const;\n\nexport type TableSize = (typeof TableSize)[keyof typeof TableSize];\n\nexport const tableBlockMap = {\n  compact: 'var(--v-table-data-block-small)',\n  large: 'var(--v-table-data-block-large)',\n  medium: ''\n};\n\nexport const tablePaddingMap = {\n  compact: 'var(--v-table-data-padding-block-small)',\n  large: 'var(--v-table-data-padding-block-large)',\n  medium: ''\n};\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport {\n  booleanAttribute,\n  computed,\n  Directive,\n  input,\n  InputSignal,\n  InputSignalWithTransform,\n  Signal\n} from '@angular/core';\nimport { tableBlockMap, tablePaddingMap, TableSize } from './table.constants';\n\n@Directive({\n  host: {\n    class: 'v-table',\n\n    '[class.v-table-alt]': 'alternate()',\n    '[class.v-table-border]': 'dividerLines()',\n    '[class.v-table-border-block]': 'horizontalDividerLines()',\n    '[class.v-table-key-value]': 'keyValue()',\n    '[class.v-table-subtle]': 'subtle()',\n    '[style.--v-table-data-block-default]': 'tableBlockDefault()',\n    '[style.--v-table-data-padding-block-default]': 'tablePaddingBlock()'\n  },\n  selector: '[v-table]',\n  standalone: true\n})\nexport class TableDirective {\n  /**\n   * Sets table as subtle variant when true.\n   * @default false\n   */\n  readonly alternate: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Adds vertical and horizontal divider lines when true.\n   * @default false\n   */\n  readonly dividerLines: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Adds horizontal divider lines when true.\n   * @default false\n   */\n  readonly horizontalDividerLines: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets table as key-value variant when true.\n   * @default false\n   */\n  readonly keyValue: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets table as subtle variant when true.\n   * @default false\n   */\n  readonly subtle: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  /**\n   * Sets table size.\n   * @default 'medium' / TableSize.MEDIUM\n   * @options 'compact' | TableSize.COMPACT | <br> 'medium' | TableSize.MEDIUM | <br> 'large' | TableSize.LARGE\n   */\n  readonly tableSize: InputSignal<TableSize> = input<TableSize>(TableSize.MEDIUM);\n\n  readonly tableBlockDefault: Signal<string> = computed(() => tableBlockMap[this.tableSize()] ?? null);\n  readonly tablePaddingBlock: Signal<string> = computed(() => tablePaddingMap[this.tableSize()] ?? null);\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { Directive } from '@angular/core';\n\n@Directive({\n  host: {\n    class: 'v-td'\n  },\n  selector: '[v-td]',\n  standalone: true\n})\nexport class TdDirective {}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { booleanAttribute, computed, Directive, inject, input, InputSignalWithTransform, Signal } from '@angular/core';\nimport { TableDirective } from '../table/table.directive';\nimport { TdDirective } from '../td/td.directive';\n\n@Directive({\n  host: {\n    // allow v-td class to apply if v-td directive is present\n    '[class.v-td]': 'isKeyValue() || tdDirective ? true : false',\n    '[class.v-th]': '!isKeyValue()',\n    '[class.v-th-alt]': 'groupHeader()',\n    '[class.v-typography-overline]': 'groupHeader()'\n  },\n  selector: '[v-th]',\n  standalone: true\n})\nexport class ThDirective {\n  private readonly tableDirective: TableDirective | null = inject(TableDirective, { optional: true });\n  readonly tdDirective: TdDirective | null = inject(TdDirective, { optional: true, self: true });\n\n  /**\n   * Alternate header for when there are two levels of headers (group headers).\n   */\n  readonly groupHeader: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute\n  });\n\n  protected readonly isKeyValue: Signal<boolean | undefined> = computed(() => this.tableDirective?.keyValue());\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { computed, Directive, input, InputSignal, Signal } from '@angular/core';\n\nexport const TypographyColor = {\n  Default: 'default',\n  Active: 'active',\n  Subtle: 'subtle',\n  OnActive: 'on-active'\n} as const;\n\nexport type TypographyColor = (typeof TypographyColor)[keyof typeof TypographyColor];\n\nexport const TypographyType = {\n  Display1: 'display-1',\n  Display2: 'display-2',\n  Headline1: 'headline-1',\n  Headline2: 'headline-2',\n  Headline3: 'headline-3',\n  Headline4: 'headline-4',\n  Subtitle1: 'subtitle-1',\n  Subtitle2: 'subtitle-2',\n  Subtitle3: 'subtitle-3',\n  Overline: 'overline',\n  Body1: 'body-1',\n  Body2: 'body-2',\n  Body2Bold: 'body-2-bold',\n  Body2Link: 'body-2-link',\n  Body2Medium: 'body-2-medium',\n  Body3: 'body-3',\n  ButtonSmall: 'button-small',\n  ButtonMedium: 'button-medium',\n  ButtonLarge: 'button-large',\n  Label: 'label',\n  LabelSmall: 'label-small',\n  LabelActive: 'label-active',\n  LabelLarge: 'label-large',\n  LabelLargeActive: 'label-large-active',\n  LabelSmallActive: 'label-small-active'\n} as const;\n\nexport type TypographyType = (typeof TypographyType)[keyof typeof TypographyType];\n\n@Directive({\n  host: {\n    '[class]': 'classes()'\n  },\n  selector: '[vTypography], [vFont], [vTypographyColor], [vFontColor]',\n  standalone: true\n})\nexport class TypographyDirective {\n  protected readonly classes: Signal<string> = computed(() =>\n    [\n      this.vTypography() && `v-typography-${this.vTypography()}`,\n      this.vTypographyColor() && `v-typography-color-${this.vTypographyColor()}`\n    ].join(' ')\n  );\n\n  /**\n   * Applies given typography class, alias for <code>vTypography</code>.\n   */\n  readonly vFont: InputSignal<'' | TypographyType | null> = input<TypographyType | '' | null>(null); // This was added at the request of devs for a shorter alias.\n  /**\n   * Applies given typography color class, alias for <code>vTypographyColor</code>.\n   */\n  readonly vFontColor: InputSignal<'' | TypographyColor | null> = input<TypographyColor | '' | null>(null); // This was added at the request of devs for a shorter alias.\n\n  /**\n   * Applies given typography class. <br>\n   * Can be used as a more succinct alias for <code>vTypography</code>.\n   */\n  readonly vTypographyInput: InputSignal<'' | TypographyType | null> = input<TypographyType | '' | null>(null, {\n    alias: 'vTypography'\n  });\n  private readonly vTypography: Signal<'' | TypographyType | null> = computed(\n    () => this.vTypographyInput() ?? this.vFont()\n  );\n\n  /**\n   * Applies given typography color class. <br>\n   * Can be used as a more succinct alias for <code>vTypographyColor</code>.\n   */\n  readonly vTypographyColorInput: InputSignal<'' | TypographyColor | null> = input<TypographyColor | '' | null>(null, {\n    alias: 'vTypographyColor'\n  });\n  private readonly vTypographyColor: Signal<'' | TypographyColor | null> = computed(\n    () => this.vTypographyColorInput() || this.vFontColor()\n  );\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  input,\n  InputSignalWithTransform,\n  numberAttribute,\n  ViewEncapsulation\n} from '@angular/core';\n\n@Component({\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  host: {\n    class: 'v-logo',\n    viewBox: '0 0 156 51', // viewBox set to original dimensions of logo svg\n\n    '[attr.height]': 'height()',\n    '[attr.width]': 'width()'\n  },\n  selector: '[v-logo-visa]',\n  standalone: true,\n  template: `<svg:path\n    fill-rule=\"evenodd\"\n    clip-rule=\"evenodd\"\n    d=\"M111.134 33.9989C111.164 26.325 104.81 22.9893 99.7247 20.3201C96.3099 18.5276 93.4677 17.0357 93.5169 14.7323C93.5529 12.9893 95.2167 11.1311 98.8467 10.6629C103.098 10.2519 107.381 10.9985 111.242 12.8236L113.453 2.53852C109.695 1.1258 105.714 0.394122 101.699 0.377777C89.3107 0.377777 80.5309 6.98244 80.4516 16.4465C80.3724 23.4257 86.6962 27.3438 91.4714 29.6702C96.3691 32.047 98.0185 33.574 97.9968 35.7059C97.9968 38.9686 94.0859 40.4019 90.4775 40.4595C84.3492 40.5572 80.7168 38.8625 77.8368 37.5187L77.5634 37.3913L75.2658 48.0365C78.2045 49.3906 83.6279 50.5646 89.253 50.6222C102.455 50.6222 111.098 44.0968 111.141 33.9989H111.134ZM59.0603 1.26366L38.6989 49.8587H25.4103L15.3917 11.0806C14.7795 8.68941 14.2537 7.81791 12.4027 6.80957C9.36321 5.1746 4.39351 3.63327 0 2.67535L0.302504 1.23485H21.6866C24.5639 1.24665 27.0063 3.34708 27.4486 6.19015L32.7424 34.3158L45.8653 1.26366H59.0603ZM155.573 49.8443H143.949L142.429 42.6059H126.303L123.681 49.8587H110.486L129.335 4.82889C130.228 2.66308 132.343 1.25366 134.686 1.26367H145.425L155.573 49.8443ZM129.918 32.6448L136.537 14.3937L140.347 32.6448H129.918ZM66.6373 49.8587L77.0664 1.26362H64.4621L54.0617 49.8587H66.6373Z\"\n  />`\n})\nexport class VisaLogoComponent {\n  /**\n   * Sets height of logo image.\n   * @default 23\n   */\n  readonly height: InputSignalWithTransform<number, unknown> = input<number, unknown>(23, {\n    transform: numberAttribute\n  });\n\n  /**\n   * Sets width of logo image.\n   * @default 71\n   */\n  readonly width: InputSignalWithTransform<number, unknown> = input<number, unknown>(71, {\n    transform: numberAttribute\n  });\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport {\n  booleanAttribute,\n  computed,\n  Directive,\n  inject,\n  input,\n  InputSignal,\n  InputSignalWithTransform,\n  Signal\n} from '@angular/core';\nimport { AccordionDetailsDirective } from '../accordion-item/accordion-item.directive';\n\n@Directive({\n  host: {\n    class: 'v-wizard-step',\n\n    '[attr.aria-current]': 'ariaCurrent() ?? (active() ? \"step\" : null)'\n  },\n  selector: '[v-wizard-step]',\n  standalone: true\n})\nexport class WizardStepDirective {\n  private readonly accordion: AccordionDetailsDirective | null = inject(AccordionDetailsDirective, { optional: true });\n\n  /**\n   * Marks the step as current step when true.\n   * @default false\n   */\n  readonly activeInput: InputSignalWithTransform<boolean | null, unknown> = input<boolean | null, unknown>(null, {\n    alias: 'active',\n    transform: booleanAttribute\n  });\n  protected readonly active: Signal<string | boolean | null> = computed(\n    () => this.activeInput() ?? this.accordion?.expanded() ?? null\n  );\n\n  readonly ariaCurrent: InputSignal<string | null> = input<HTMLElement['ariaCurrent'] | null>(null, {\n    alias: 'aria-current'\n  });\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport {\n  booleanAttribute,\n  Directive,\n  input,\n  InputSignalWithTransform,\n} from '@angular/core';\n\n@Directive({\n  host: {\n    class: 'v-wizard',\n\n    '[class.v-wizard-compact]': 'compact()',\n    '[class.v-wizard-vertical]': 'vertical()',\n  },\n  standalone: true,\n  selector: '[v-wizard]',\n})\nexport class WizardDirective {\n  /**\n   * Sets wizard to compact variant when true.\n   * @default false\n   */\n  readonly compact: InputSignalWithTransform<boolean, unknown> = input<\n    boolean,\n    unknown\n  >(false, {\n    transform: booleanAttribute,\n  });\n\n  /**\n   * Sets wizard to vertical orientation when true.\n   * @default false\n   */\n  readonly vertical: InputSignalWithTransform<boolean, unknown> = input<\n    boolean,\n    unknown\n  >(false, {\n    transform: booleanAttribute,\n  });\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { NgModule } from '@angular/core';\n\nimport { AccordionHeadingDirective } from './accordion-heading/accordion-heading.directive';\nimport { AccordionDetailsDirective } from './accordion-item/accordion-item.directive';\nimport { AccordionPanelDirective } from './accordion-panel/accordion-panel.directive';\nimport { AccordionDirective } from './accordion/accordion.directive';\nimport { AddArrowKeysDirective } from './add-arrow-keys/add-arrow-keys.directive';\nimport { AlternateDirective } from './alternate/alternate.directive';\nimport { AnchorLinkMenuHeaderDirective } from './anchor-link-menu-header/anchor-link-menu-header.directive';\nimport { AnchorLinkMenuDirective } from './anchor-link-menu/anchor-link-menu.directive';\nimport { TooltipArrowDirective } from './arrow/arrow.directive';\nimport { AvatarDirective } from './avatar/avatar.directive';\nimport { BadgeDirective } from './badge/badge.directive';\nimport { BannerDirective } from './banner/banner.directive';\nimport { BreadcrumbsDirective } from './breadcrumbs/breadcrumbs.directive';\nimport { BreakpointsDirective } from './breakpoints/breakpoints.directive';\nimport { ButtonDirective } from './button/button.directive';\nimport { CheckboxPanelDirective } from './checkbox-panel/checkbox-panel.directive';\nimport { CheckboxDirective } from './checkbox/checkbox.directive';\nimport { ChipDirective } from './chip/chip.directive';\nimport { CircularProgressComponent } from './circular-progress/circular-progress.component';\nimport { ComboboxDirective } from './combobox/combobox.directive';\nimport { ContentCardBodyDirective } from './content-card-body/content-card-body.directive';\nimport { ContentCardImageDirective } from './content-card-image/content-card-image.directive';\nimport { ContentCardSubtitleDirective } from './content-card-subtitle/content-card-subtitle.directive';\nimport { ContentCardTitleLinkDirective } from './content-card-title-link/content-card-title-link.directive';\nimport { ContentCardTitleDirective } from './content-card-title/content-card-title.directive';\nimport { ContentCardDirective } from './content-card/content-card.directive';\nimport { DialogHeaderDirective } from './dialog-header/dialog-header.directive';\nimport { DialogTextDirective } from './dialog-text/dialog-text.directive';\nimport { DialogDirective } from './dialog/dialog.directive';\nimport { DividerDirective } from './divider/divider.directive';\nimport { DropdownItemDirective } from './dropdown-item/dropdown-item.directive';\nimport { DropdownListDirective } from './dropdown-list/dropdown-list.directive';\nimport { DropdownMenuDirective } from './dropdown-menu/dropdown-menu.directive';\nimport { DualIconDirective } from './dual-icons/dual-icons.directive';\nimport { ElevationDirective } from './elevation/elevation.directive';\nimport { FlagDirective } from './flag/flag.directive';\nimport { FlexDirective } from './flex/flex.directive';\nimport { FloatingUIContainer } from './floating-ui-container/floating-ui-container.directive';\nimport { FloatingUIElementDirective } from './floating-ui-element/floating-ui-element.directive';\nimport { FloatingUITriggerDirective } from './floating-ui-trigger/floating-ui-trigger.directive';\nimport { FooterDirective } from './footer/footer.directive';\nimport { IconToggleDefaultTemplateDirective } from './icon-toggle-default/icon-toggle-default.directive';\nimport { IconToggleRotatedTemplateDirective } from './icon-toggle-rotated/icon-toggle-rotated.directive';\nimport { IconToggleComponent } from './icon-toggle/icon-toggle.component';\nimport { IconToggleDirective } from './icon-toggle/icon-toggle.directive';\nimport { IconComponent } from './icon/icon.component';\nimport { InputContainerComponent } from './input-container/input-container.component';\nimport { InputMessageDirective } from './input-message/input-message.directive';\nimport { InputDirective } from './input/input.directive';\nimport { LabelDirective } from './label/label.directive';\nimport { LinearProgressDirective } from './linear-progress/linear-progress.directive';\nimport { LinkDirective } from './link/link.directive';\nimport { ListboxContainerDirective } from './listbox-container/listbox-container.directive';\nimport { ListboxItemComponent } from './listbox-item/listbox-item.component';\nimport { ListboxDirective } from './listbox/listbox.directive';\nimport { MarginDirective } from './margin/margin.directive';\nimport { MessageContentDirective } from './message-content/message-content.directive';\nimport { MessageIconDirective } from './message-icon/message-icon.directive';\nimport { MessageDirective } from './message/message.directive';\nimport { NavDirective } from './nav/nav.directive';\nimport { PaddingDirective } from './padding/padding.directive';\nimport { PaginationOverflowDirective } from './pagination-overflow/pagination-overflow.directive';\nimport { PaginationDirective } from './pagination/pagination.directive';\nimport { PanelBodyDirective } from './panel-body/panel-body.directive';\nimport { PanelContentDirective } from './panel-content/panel-content.directive';\nimport { PanelToggleDirective } from './panel-toggle-button/panel-toggle-button.directive';\nimport { PanelDirective } from './panel/panel.directive';\nimport { RadioGroupDirective } from './radio-group/radio-group.directive';\nimport { RadioDirective } from './radio/radio.directive';\nimport { ScreenreaderOnlyDirective } from './screenreader-only/screenreader-only.directive';\nimport { SectionMessageDirective } from './section-message/section-message.directive';\nimport { SelectDirective } from './select/select.directive';\nimport { SkipToContentDirective } from './skip-to-content/skip-to-content.directive';\nimport { SurfaceDirective } from './surface/surface.directive';\nimport { SwitchDirective } from './switch/switch.directive';\nimport { TabItemDirective } from './tab-item/tab-item.directive';\nimport { TabListDirective } from './tab-list/tab-list.directive';\nimport { TableWrapperDirective } from './table-wrapper/table-wrapper.directive';\nimport { TableDirective } from './table/table.directive';\nimport { TdDirective } from './td/td.directive';\nimport { ThDirective } from './th/th.directive';\nimport { ToggleButtonDirective } from './toggle-button/toggle-button.directive';\nimport { ToggleContainerDirective } from './toggle-container/toggle-container.directive';\nimport { ToggleDirective } from './toggle/toggle.directive';\nimport { TooltipDirective } from './tooltip/tooltip.directive';\nimport { TypographyDirective } from './typography/typography.directive';\nimport { VisaLogoComponent } from './visa-logo/visa-logo.component';\nimport { WizardStepDirective } from './wizard-step/wizard-step.directive';\nimport { WizardDirective } from './wizard/wizard.directive';\nimport { OpensInNewTabDirective } from './opens-in-new-tab/opens-in-new-tab.directive';\n\n@NgModule({\n  imports: [\n    AccordionDetailsDirective,\n    AccordionDirective,\n    AccordionHeadingDirective,\n    AccordionPanelDirective,\n    AddArrowKeysDirective,\n    AlternateDirective,\n    AnchorLinkMenuDirective,\n    AnchorLinkMenuHeaderDirective,\n    AvatarDirective,\n    BadgeDirective,\n    BannerDirective,\n    BreadcrumbsDirective,\n    BreakpointsDirective,\n    ButtonDirective,\n    CheckboxDirective,\n    CheckboxPanelDirective,\n    ChipDirective,\n    CircularProgressComponent,\n    ComboboxDirective,\n    ContentCardBodyDirective,\n    ContentCardDirective,\n    ContentCardImageDirective,\n    ContentCardSubtitleDirective,\n    ContentCardTitleDirective,\n    ContentCardTitleLinkDirective,\n    DialogDirective,\n    DialogHeaderDirective,\n    DialogTextDirective,\n    DividerDirective,\n    DropdownItemDirective,\n    DropdownListDirective,\n    DropdownMenuDirective,\n    DualIconDirective,\n    ElevationDirective,\n    FlagDirective,\n    FlexDirective,\n    FloatingUIContainer,\n    FloatingUIElementDirective,\n    FloatingUITriggerDirective,\n    FooterDirective,\n    IconComponent,\n    IconToggleComponent,\n    IconToggleDefaultTemplateDirective,\n    IconToggleDirective,\n    IconToggleRotatedTemplateDirective,\n    InputContainerComponent,\n    InputDirective,\n    InputMessageDirective,\n    LabelDirective,\n    LinearProgressDirective,\n    LinkDirective,\n    ListboxContainerDirective,\n    ListboxDirective,\n    ListboxItemComponent,\n    MarginDirective,\n    MessageContentDirective,\n    MessageDirective,\n    MessageIconDirective,\n    NavDirective,\n    OpensInNewTabDirective,\n    PaddingDirective,\n    PaginationDirective,\n    PaginationOverflowDirective,\n    PanelBodyDirective,\n    PanelDirective,\n    PanelContentDirective,\n    PanelToggleDirective,\n    RadioDirective,\n    RadioGroupDirective,\n    ScreenreaderOnlyDirective,\n    SectionMessageDirective,\n    SelectDirective,\n    SkipToContentDirective,\n    SurfaceDirective,\n    SwitchDirective,\n    TabItemDirective,\n    TableDirective,\n    TableWrapperDirective,\n    TabListDirective,\n    TdDirective,\n    ThDirective,\n    ToggleDirective,\n    ToggleButtonDirective,\n    ToggleContainerDirective,\n    TooltipDirective,\n    TooltipArrowDirective,\n    TypographyDirective,\n    VisaLogoComponent,\n    WizardDirective,\n    WizardStepDirective\n  ],\n  exports: [\n    AccordionDetailsDirective,\n    AccordionDirective,\n    AccordionHeadingDirective,\n    AccordionPanelDirective,\n    AddArrowKeysDirective,\n    AlternateDirective,\n    AnchorLinkMenuDirective,\n    AnchorLinkMenuHeaderDirective,\n    AvatarDirective,\n    BadgeDirective,\n    BannerDirective,\n    BreadcrumbsDirective,\n    BreakpointsDirective,\n    ButtonDirective,\n    CheckboxDirective,\n    CheckboxPanelDirective,\n    ChipDirective,\n    CircularProgressComponent,\n    ComboboxDirective,\n    ContentCardBodyDirective,\n    ContentCardDirective,\n    ContentCardImageDirective,\n    ContentCardSubtitleDirective,\n    ContentCardTitleDirective,\n    ContentCardTitleLinkDirective,\n    DialogDirective,\n    DialogHeaderDirective,\n    DialogTextDirective,\n    DividerDirective,\n    DropdownItemDirective,\n    DropdownListDirective,\n    DropdownMenuDirective,\n    DualIconDirective,\n    ElevationDirective,\n    FlagDirective,\n    FlexDirective,\n    FloatingUIContainer,\n    FloatingUIElementDirective,\n    FloatingUITriggerDirective,\n    FooterDirective,\n    IconComponent,\n    IconToggleComponent,\n    IconToggleDefaultTemplateDirective,\n    IconToggleDirective,\n    IconToggleRotatedTemplateDirective,\n    InputContainerComponent,\n    InputDirective,\n    InputMessageDirective,\n    LabelDirective,\n    LinearProgressDirective,\n    LinkDirective,\n    ListboxContainerDirective,\n    ListboxDirective,\n    ListboxItemComponent,\n    MarginDirective,\n    MessageContentDirective,\n    MessageDirective,\n    MessageIconDirective,\n    NavDirective,\n    OpensInNewTabDirective,\n    PaddingDirective,\n    PaginationDirective,\n    PaginationOverflowDirective,\n    PanelBodyDirective,\n    PanelDirective,\n    PanelContentDirective,\n    PanelToggleDirective,\n    RadioDirective,\n    RadioGroupDirective,\n    ScreenreaderOnlyDirective,\n    SectionMessageDirective,\n    SelectDirective,\n    SkipToContentDirective,\n    SurfaceDirective,\n    SwitchDirective,\n    TabItemDirective,\n    TableDirective,\n    TableWrapperDirective,\n    TabListDirective,\n    TdDirective,\n    ThDirective,\n    ToggleDirective,\n    ToggleButtonDirective,\n    ToggleContainerDirective,\n    TooltipDirective,\n    TooltipArrowDirective,\n    TypographyDirective,\n    VisaLogoComponent,\n    WizardDirective,\n    WizardStepDirective\n  ]\n})\nexport class NovaLibModule {}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nexport const ComboboxFilterType = {\n  SELECTION: 'selection',\n  INPUT: 'input',\n  RESET: 'reset'\n} as const;\n\nexport type ComboboxFilterType = (typeof ComboboxFilterType)[keyof typeof ComboboxFilterType];\n\nexport type ListboxItemType = { label: string; value: string | number };\nexport type SingleSelectValue = number | string; // single select can be a number, string, null or empty string\nexport type MultiSelectValue = SingleSelectValue[];\nexport type ComboboxValue = { label?: string; value: MultiSelectValue | SingleSelectValue | null } | null;\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nexport const DividerType = {\n  DEFAULT: 'default',\n  SECTION: 'section',\n  DECORATIVE: 'decorative'\n} as const;\n\nexport type DividerType = (typeof DividerType)[keyof typeof DividerType];\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\n/* eslint-disable no-mixed-spaces-and-tabs */\nimport { computed, Signal, signal, WritableSignal } from '@angular/core';\n\n/**\n * Generates an array from number to from + length\n * @param {number} from\n * @param {number} length\n * @returns {number[]}\n */\nexport const generateArray = (from: number, length: number): number[] =>\n  Array.from({ length }, (_, i) => i + from);\n\nexport type PaginationControlOptions = {\n  /** Max block length for all blocks, this gets overwritten by `startBlockMaxLength`, `middleBlockMaxLength`, `endBlockMaxLength` */\n  blockMaxLength: number;\n  /** Forces pages not to paginate */\n  compact: boolean;\n  /** Default selected page */\n  defaultSelected: number;\n  /** Default total amount of page */\n  defaultTotalPages: number;\n  /** What to separate the pagination array up with, usually this delimiter will be replaced with icon or ellipses when shown in the UI */\n  delimiter: number | string;\n  /** Maximum length of pages to show on the end pagination block, overwrites `blockMaxLength` for end block */\n  endBlockMaxLength: number;\n  /** Maximum page number to be shown, (default null for no maximum) */\n  maxPageNumber: number | null;\n  /** Maximum length of pages to show on the middle pagination block, overwrites `blockMaxLength` for middle block */\n  middleBlockMaxLength: number;\n  /** Signal to be used for selected page, otherwise control will create one */\n  selectedPage?: WritableSignal<number> | null;\n  /** Maximum length of pages to show on the start pagination block, overwrites `blockMaxLength` for start block */\n  startBlockMaxLength: number;\n  /** Start from this page */\n  startPage: number;\n};\n\nconst defaultOptions = {\n  blockMaxLength: 3,\n  compact: false,\n  defaultSelected: 1,\n  defaultTotalPages: 1,\n  delimiter: -1,\n  maxPageNumber: null,\n  startPage: 1,\n} satisfies Partial<PaginationControlOptions>;\n\n/**\n * PaginationControl is a signals-based approach to handling and controlling pagination components.\n * It’s customizable, reusable, and allows you to bring your own signal for `selectedPage`.\n * @docs {@link https://design.visa.com/components/pagination/?code_library=angular | See docs}\n */\nexport class PaginationControl {\n  constructor(options?: Partial<PaginationControlOptions>) {\n    const blockMaxLength =\n      options?.blockMaxLength ?? defaultOptions.blockMaxLength;\n    // If we have a blockMaxLength, we should set it for all block max lengths, then we override it with all the options provided by the user\n    this.options = {\n      ...defaultOptions,\n      endBlockMaxLength: blockMaxLength,\n      middleBlockMaxLength: blockMaxLength,\n      startBlockMaxLength: blockMaxLength,\n      ...options,\n    } as PaginationControlOptions;\n    this.totalPages.set(this.options.defaultTotalPages);\n    const defaultStartPage = Math.min(\n      Math.max(this.options.defaultSelected, this.options.startPage),\n      this.options.defaultTotalPages,\n    );\n    this.selectedPage = this.options.selectedPage ?? signal(defaultStartPage);\n    this.selectedPage.set(defaultStartPage);\n    this.compact.set(this.options.compact);\n  }\n\n  /// STATE:\n  public readonly compact = signal<boolean>(false);\n\n  private readonly options: PaginationControlOptions;\n\n  private readonly selectedPage: WritableSignal<number>;\n\n  public readonly totalPages: WritableSignal<number> = signal<number>(0);\n\n  /// DERIVED STATE:\n\n  /** Can paginate or just show all pages */\n  private readonly canPaginate: Signal<boolean> = computed(\n    () =>\n      this.totalPages() >\n        Math.max(\n          this.options.endBlockMaxLength,\n          this.options.startBlockMaxLength,\n        ) +\n          2 && // 1 for end or start number + 1 for single separator show while in start/end blocks\n      this.totalPages() > this.options.middleBlockMaxLength + 4, // 2 for start and end numbers + 2 for separators shown while in middle block\n  );\n\n  /** Pages to show at the end */\n  private readonly endBlock: Signal<number[]> = computed(() =>\n    this.isInEndBlock()\n      ? generateArray(\n          this.lastPage() - this.options.endBlockMaxLength + 1,\n          this.options.endBlockMaxLength,\n        )\n      : [this.lastPage()],\n  );\n\n  /** Ideal last page without maxPageNumber interfering */\n  private readonly idealLastPage: Signal<number> = computed(\n    () => this.totalPages() + this.options.startPage - 1,\n  );\n\n  /** Is first element selected */\n  public readonly isFirstPage: Signal<boolean> = computed(\n    () => this.selectedPage() === this.options.startPage,\n  );\n\n  /** Selected page is in end block */\n  private readonly isInEndBlock: Signal<boolean> = computed(\n    // prevent page from showing in start and end block by not adding here if it isInStartBlock\n    () =>\n      !this.isInStartBlock() &&\n      this.selectedPage() > this.lastPage() - this.options.endBlockMaxLength,\n  );\n\n  /** Selected page is in middle block */\n  private readonly isInMiddleBlock: Signal<boolean> = computed(\n    () => !this.isInStartBlock() && !this.isInEndBlock(),\n  );\n\n  /** Selected page is in start block */\n  private readonly isInStartBlock: Signal<boolean> = computed(\n    () =>\n      this.selectedPage() <\n      this.options.startPage + this.options.startBlockMaxLength,\n  );\n\n  /** Is last element selected */\n  public readonly isLastPage: Signal<boolean> = computed(\n    () => this.selectedPage() === this.lastPage(),\n  );\n\n  /** Last page */\n  private readonly lastPage: Signal<number> = computed(() =>\n    this.options.maxPageNumber === null\n      ? this.idealLastPage()\n      : Math.min(this.options.maxPageNumber, this.idealLastPage()),\n  );\n\n  /** Pages to show in the middle */\n  private readonly middleBlock: Signal<number[]> = computed(() => {\n    if (!this.isInMiddleBlock()) return [];\n    const middleBlockPadding = Math.floor(\n      this.options.middleBlockMaxLength / 2,\n    );\n    if (this.selectedPage() - middleBlockPadding <= this.options.startPage)\n      return generateArray(\n        this.selectedPage() -\n          (this.selectedPage() - this.options.startPage) +\n          1,\n        this.options.middleBlockMaxLength,\n      );\n    if (this.selectedPage() + middleBlockPadding >= this.lastPage())\n      return generateArray(\n        this.selectedPage() +\n          (this.lastPage() - this.selectedPage()) -\n          this.options.middleBlockMaxLength,\n        this.options.middleBlockMaxLength,\n      );\n    return generateArray(\n      this.selectedPage() - middleBlockPadding,\n      this.options.middleBlockMaxLength,\n    );\n  });\n\n  /** Array of pages arrays to loop over */\n  public readonly pages: Signal<(string | number)[]> = computed(() => {\n    if (this.compact()) return this.compactPages;\n    return this.canPaginate()\n      ? [this.startBlock(), this.middleBlock(), this.endBlock()]\n          .map((block) =>\n            block.length ? [...block, this.options.delimiter] : [],\n          )\n          .flat()\n          .slice(0, -1)\n      : generateArray(\n          this.options.startPage,\n          this.lastPage() - this.options.startPage + 1,\n        );\n  });\n\n  /** Pages to show at the start */\n  private readonly startBlock: Signal<number[]> = computed(() =>\n    this.isInStartBlock()\n      ? generateArray(this.options.startPage, this.options.startBlockMaxLength)\n      : [this.options.startPage],\n  );\n\n  /// UTILITIES:\n\n  /** Getter for selectedPage, we shouldn't directly manipulate the `selectedPage` signal, use `goToPage` to do this safely */\n  public get currentPage(): number {\n    return this.selectedPage();\n  }\n\n  private get compactPages(): number[] {\n    const { blockMaxLength } = this.options;\n\n    // Show all pages if we have less than blockMaxLength\n    if (blockMaxLength > this.totalPages())\n      return generateArray(\n        this.options.startPage,\n        this.lastPage() - this.options.startPage + 1,\n      );\n\n    // Show chunk of blockMaxLength pages\n    const padding = Math.floor(blockMaxLength / 2);\n    if (this.selectedPage() - padding <= this.options.startPage)\n      return generateArray(this.options.startPage, blockMaxLength);\n    if (this.selectedPage() + padding >= this.lastPage())\n      return generateArray(\n        this.lastPage() - blockMaxLength + 1,\n        blockMaxLength,\n      );\n    return generateArray(this.selectedPage() - padding, blockMaxLength);\n  }\n\n  /**\n   * The getToFrom method calculates which range of items is currently visible from pagination.\n   * @param {number} items - how many items we have\n   * @param {number} itemsPerPage - how many items there are, per page\n   * @returns to from object with calculated values\n   */\n  public getToFrom(items: number, itemsPerPage: number) {\n    return PaginationControl.getToFrom(\n      items,\n      itemsPerPage,\n      this.selectedPage(),\n      this.options.startPage,\n    );\n  }\n\n  /** The getTotalPages method calculates the total number of pages. */\n  public getTotalPages = PaginationControl.getTotalPages;\n\n  /** This goToFirstPage method navigates to the first page in the dataset. */\n  public goToFirstPage(): void {\n    this.goToPage(this.options.startPage);\n  }\n\n  /** The goToLastPage method navigates to the last page in the dataset. */\n  public goToLastPage(): void {\n    this.goToPage(this.lastPage());\n  }\n\n  /** The goToNextPage method navigates to the next page relative to the current page. */\n  public goToNextPage(): void {\n    this.goToPage(this.selectedPage() + 1);\n  }\n\n  /** The goToPage method navigates directly to a specific page number. */\n  public goToPage(pageNumber: number | string): void {\n    if (Number.isNaN(+pageNumber))\n      throw new Error(\"Can't go to page, invalid number\");\n    if ((pageNumber as number) > this.lastPage())\n      this.selectedPage.set(this.lastPage());\n    else if ((pageNumber as number) < this.options.startPage)\n      this.selectedPage.set(this.options.startPage);\n    else this.selectedPage.set(pageNumber as number);\n  }\n\n  /** The goToPreviosPage method moves to the previous page relative to the current page. */\n  public goToPreviousPage(): void {\n    this.goToPage(this.selectedPage() - 1);\n  }\n\n  /** The isCurrentPage method checks if the given page number is currently active. */\n  public isCurrentPage(page: number | string): boolean {\n    return page === this.selectedPage();\n  }\n\n  /**\n   * The resetPageCount method recalculates the total number of pages based\n   * on the current items-per-page setting, automatically adjusting the pagination control.\n   * By default, this also resets the view to the first page.\n   */\n  public resetPageCount(\n    totalItems: number,\n    itemsPerPage: number,\n    autoResetToFirstPage = true,\n  ): void {\n    const totalPages = this.getTotalPages(totalItems, itemsPerPage);\n    this.totalPages.set(totalPages);\n    if (autoResetToFirstPage) this.goToFirstPage();\n  }\n\n  /// STATIC UTILITIES:\n\n  /**\n   * Calculates which range of items that is currently visible from pagination\n   * @param {number} items - how many items we have\n   * @param {number} itemsPerPage - how many items there are, per page\n   * @param {number} currentPage - which page is visible\n   * @param {number} startPage - which page we're starting from, defaults to page 1 (optional)\n   * @returns to from object with calculated values\n   */\n  public static getToFrom = (\n    items: number,\n    itemsPerPage: number,\n    currentPage: number,\n    startPage: number = 1,\n  ) => {\n    if (itemsPerPage < 1 || items < 1) return { 0: 0, 1: 0, from: 0, to: 0 };\n    const normalizedPageNumber = currentPage - startPage + 1;\n    const from = Math.max((normalizedPageNumber - 1) * itemsPerPage + 1, 0);\n    const to = Math.max(\n      from + itemsPerPage - 1 > items ? items : from + itemsPerPage - 1,\n      0,\n    );\n    return { 0: from, 1: to, from, to };\n  };\n\n  /**\n   * Calculates how many pages there are\n   * @param {number} items - how many items we have\n   * @param {number} itemsPerPage - how many items there are, per page\n   * @returns {number} how many pages there are in total\n   */\n  public static getTotalPages(items: number, itemsPerPage: number): number {\n    return Math.ceil(items / itemsPerPage);\n  }\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\nimport { Injectable } from '@angular/core';\nimport { ListboxItemComponent } from '../listbox-item/listbox-item.component';\nimport { ComboboxFilterType } from './combobox.constants';\nimport { ComboboxDirective } from './combobox.directive';\n\n/**\n * Service containing optional functions for the ComboboxDirective. <br />\n * Can only be used within the context of a ComboboxDirective. <br />\n */\n@Injectable({\n  providedIn: 'root'\n})\nexport class ComboboxService {\n  /**\n   * The closeMenuOnItemClick method automatically closes the menu when an item is selected. <br />\n   * To keep the menu open after an item is selected, you must provide <code>[closeOnClick]=\"false\"</code> to the combobox component.\n   * @param combobox Combobox to apply behavior to.\n   */\n  public closeMenuOnItemClick(combobox: ComboboxDirective): void {\n    const listbox = combobox.listbox();\n    listbox?.listItems()?.forEach((item: ListboxItemComponent) => {\n      combobox.listenerService.subscriptions.push(\n        item.clicked.subscribe(() => {\n          combobox.floatingContainer?.floatingUIService?.hidefloatingUI();\n        })\n      );\n    });\n  }\n\n  /**\n   * The selectHighlightedOnMenuClose method selects the last highlighted item when the menu is closed.\n   * This method is called by default within <code>autoSelectItem</code>. <br />\n   * @param combobox Combobox to apply behavior to.\n   */\n  public selectHighlightedOnMenuClose(combobox: ComboboxDirective): void {\n    combobox.listenerService.subscriptions.push(\n      combobox.floatingContainer?.floatingUIToggled.subscribe((isShown) => {\n        if (!isShown && combobox.highlightedIndex() !== null) {\n          combobox.listbox()?.highlightedItem()?.selectItem(true);\n        }\n      })\n    );\n  }\n\n  /**\n   * The autoFilter method filters items in the combobox based on the list of items you pass. <br />\n   * This method allows customization of the filtering criteria, enabling you to filter items based on properties such as id, label, value, etc. To access the filtered list, subscribe to <code>the filteredListEmitter</code>, which emits the filtered list in the same shape as <code>fullList</code>. <br />\n   * @param combobox Combobox to apply filter function to.\n   * @param fullList List of all items to filter through.\n   * @param condition Condition to filter the list by. Should match what is passed to the listbox item's inner text. ie if you want to use id, your html should look like `<li v-listbox-item>{{ item.id }}</li>`\n   */\n  public autoFilter<T extends Record<string | number, unknown> = Record<string | number, unknown>>(\n    combobox: ComboboxDirective,\n    fullList: T[],\n    condition: string = 'label'\n  ): void {\n    this.autoFilterBasedOnList(combobox, fullList, condition);\n  }\n\n  /**\n   * The autoFilterBasedOnList method filters items in the combobox based on the list of items you pass. <br />\n   * This method allows customization of the filtering criteria, enabling you to filter items based on properties such as id, label, value, etc. To access the filtered list, subscribe to <code>the filteredListEmitter</code>, which emits the filtered list in the same shape as <code>fullList</code>. <br />\n   * @param combobox Combobox to apply filter function to.\n   * @param fullList List of all items to filter through.\n   * @param condition Condition to filter the list by. Should match what is passed to the listbox item's inner text. ie if you want to use id, your html should look like `<li v-listbox-item>{{ item.id }}</li>`\n   */\n  public autoFilterBasedOnList<T extends Record<string | number, unknown> = Record<string | number, unknown>>(\n    combobox: ComboboxDirective,\n    fullList: T[],\n    condition: keyof T = 'label'\n  ): void {\n    const listData = fullList;\n    let filteredData: T[] = fullList;\n\n    if (!combobox || !listData || !filteredData) return;\n    // filter list with defaultValue\n    if (combobox.value()) {\n      // only filter single select combobox on initial render\n      if (!combobox.listbox()?.multiselect()) {\n        const selectedItem = listData?.find(\n          (item) => item[condition]?.toString()?.toLowerCase() === combobox.value()?.['label']?.toLocaleLowerCase()\n        );\n        if (selectedItem) {\n          filteredData = selectedItem ? [selectedItem] : [];\n          combobox.prevActiveItem = selectedItem;\n          this.updateList(combobox, filteredData);\n        }\n      }\n    }\n\n    combobox.listenerService.subscriptions.push(\n      combobox.filter.subscribe((filterEvent) => {\n        filteredData = [];\n        if (filterEvent.type === ComboboxFilterType.SELECTION) {\n          if (combobox.listbox()?.multiselect()) {\n            filteredData = listData;\n          } else {\n            // if an item is selected, the list should only include that item\n            filteredData = listData?.filter(\n              (item) => item[condition]?.toString()?.toLowerCase() === filterEvent.input?.toLowerCase()\n            );\n            if (filteredData && filteredData.length === 1) combobox.prevActiveItem = filteredData[0];\n          }\n        } else if (filterEvent.type === ComboboxFilterType.INPUT) {\n          const inputText = filterEvent.input?.toLowerCase();\n          // filter list based on input value\n          if (!inputText) {\n            filteredData = listData;\n          } else if (inputText.length > 0) {\n            // filter list based on input value\n            listData.forEach((item) => {\n              if (item[condition]?.toString()?.toLowerCase().includes(inputText)) {\n                filteredData.push(item);\n              }\n            });\n          }\n        } else if (filterEvent.type === ComboboxFilterType.RESET) {\n          filteredData = listData;\n        }\n        this.updateList(combobox, filteredData);\n      })\n    );\n  }\n\n  /**\n   * The updateList method updates the combobox component with the given filtered list items,\n   setting the active and highlighted index appropriately. <br />\n   * This method is called by default within <code>autoFilterDisplayedItems</code> and <code>autoFilterBasedOnList</code>.\n   * @param combobox Combobox to update.\n   * @param filteredListItems Filtered array of listbox items.\n   */\n  private updateList<T extends Record<string | number, unknown> = Record<string | number, unknown>>(\n    combobox: ComboboxDirective,\n    filteredListItems: T[]\n  ): void {\n    if (combobox.listbox()?.multiselect()) {\n      // reset multiselect keyboard traversal altogether\n      // combobox.activeIndex = null;\n      combobox.listbox()?.highlightedItem.set(null);\n    } else if (combobox.prevActiveItem && filteredListItems?.includes(combobox.prevActiveItem)) {\n      // combobox.activeIndex = filteredListItems.findIndex((item) => item === combobox.prevActiveItem);\n    } else {\n      // combobox.activeIndex = null;\n      combobox.listbox()?.highlightedItem.set(null);\n    }\n\n    combobox.filteredListEmitter.emit(filteredListItems);\n  }\n\n  /**\n   * The autoSelectItem method highlights the first list item based on user input. <br />\n   * This ensures that when the menu closes, if an input value was entered, an item is selected.\n   * @param combobox Combobox to apply automatic selection to.\n   */\n  public autoSelectItem(combobox: ComboboxDirective): void {\n    this.selectHighlightedOnMenuClose(combobox);\n    combobox.autoSelect.set(true);\n  }\n}\n","/**\n *              © 2025-2026 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *         http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n **/\n\n/**\n * Modules\n */\nexport * from './lib/nova-common.module';\nexport * from './lib/nova-forms.module';\nexport * from './lib/nova-lib.module';\n\n/**\n * Components & Directives\n */\nexport * from './lib/accordion-heading/accordion-heading.directive';\nexport * from './lib/accordion-item/accordion-item.directive';\nexport * from './lib/accordion-panel/accordion-panel.directive';\nexport * from './lib/accordion/accordion.directive';\nexport * from './lib/add-arrow-keys/add-arrow-keys.directive';\nexport * from './lib/alternate/alternate.directive';\nexport * from './lib/anchor-link-menu-header/anchor-link-menu-header.directive';\nexport * from './lib/anchor-link-menu/anchor-link-menu.directive';\nexport * from './lib/arrow/arrow.directive';\nexport * from './lib/avatar/avatar.directive';\nexport * from './lib/badge/badge.directive';\nexport * from './lib/banner/banner.directive';\nexport * from './lib/breadcrumbs/breadcrumbs.directive';\nexport * from './lib/breakpoints/breakpoints.directive';\nexport * from './lib/button/button.directive';\nexport * from './lib/checkbox-panel/checkbox-panel.directive';\nexport * from './lib/checkbox/checkbox.directive';\nexport * from './lib/chip/chip.directive';\nexport * from './lib/circular-progress/circular-progress.component';\nexport * from './lib/combobox/combobox.directive';\nexport * from './lib/content-card-body/content-card-body.directive';\nexport * from './lib/content-card-image/content-card-image.directive';\nexport * from './lib/content-card-subtitle/content-card-subtitle.directive';\nexport * from './lib/content-card-title-link/content-card-title-link.directive';\nexport * from './lib/content-card-title/content-card-title.directive';\nexport * from './lib/content-card/content-card.directive';\nexport * from './lib/dialog-header/dialog-header.directive';\nexport * from './lib/dialog-text/dialog-text.directive';\nexport * from './lib/dialog/dialog.directive';\nexport * from './lib/divider/divider.directive';\nexport * from './lib/dropdown-item/dropdown-item.directive';\nexport * from './lib/dropdown-list/dropdown-list.directive';\nexport * from './lib/dropdown-menu/dropdown-menu.directive';\nexport * from './lib/dual-icons/dual-icons.directive';\nexport * from './lib/elevation/elevation.directive';\nexport * from './lib/flag/flag.directive';\nexport * from './lib/flex/flex.directive';\nexport * from './lib/floating-ui-container/floating-ui-container.directive';\nexport * from './lib/floating-ui-element/floating-ui-element.directive';\nexport * from './lib/floating-ui-trigger/floating-ui-trigger.directive';\nexport * from './lib/footer/footer.directive';\nexport * from './lib/icon-toggle-default/icon-toggle-default.directive';\nexport * from './lib/icon-toggle-rotated/icon-toggle-rotated.directive';\nexport * from './lib/icon-toggle/icon-toggle.component';\nexport * from './lib/icon-toggle/icon-toggle.directive';\nexport * from './lib/icon/icon.component';\nexport * from './lib/input-container/input-container.component';\nexport * from './lib/input-message/input-message.directive';\nexport * from './lib/input/input.directive';\nexport * from './lib/label/label.directive';\nexport * from './lib/linear-progress/linear-progress.directive';\nexport * from './lib/link/link.directive';\nexport * from './lib/listbox-container/listbox-container.directive';\nexport * from './lib/listbox-item/listbox-item.component';\nexport * from './lib/listbox/listbox.directive';\nexport * from './lib/margin/margin.directive';\nexport * from './lib/message-content/message-content.directive';\nexport * from './lib/message-icon/message-icon.directive';\nexport * from './lib/message/message.directive';\nexport * from './lib/nav/nav.directive';\nexport * from './lib/opens-in-new-tab/opens-in-new-tab.directive';\nexport * from './lib/padding/padding.directive';\nexport * from './lib/pagination-overflow/pagination-overflow.directive';\nexport * from './lib/pagination/pagination.directive';\nexport * from './lib/panel-body/panel-body.directive';\nexport * from './lib/panel-content/panel-content.directive';\nexport * from './lib/panel-toggle-button/panel-toggle-button.directive';\nexport * from './lib/panel/panel.directive';\nexport * from './lib/radio-group/radio-group.directive';\nexport * from './lib/radio/radio.directive';\nexport * from './lib/screenreader-only/screenreader-only.directive';\nexport * from './lib/section-message/section-message.directive';\nexport * from './lib/select/select.directive';\nexport * from './lib/skip-to-content/skip-to-content.directive';\nexport * from './lib/surface/surface.directive';\nexport * from './lib/switch/switch.directive';\nexport * from './lib/tab-item/tab-item.directive';\nexport * from './lib/tab-list/tab-list.directive';\nexport * from './lib/table-wrapper/table-wrapper.directive';\nexport * from './lib/table/table.directive';\nexport * from './lib/td/td.directive';\nexport * from './lib/th/th.directive';\nexport * from './lib/toggle-button/toggle-button.directive';\nexport * from './lib/toggle-container/toggle-container.directive';\nexport * from './lib/toggle/toggle.directive';\nexport * from './lib/tooltip/tooltip.directive';\nexport * from './lib/typography/typography.directive';\nexport * from './lib/visa-logo/visa-logo.component';\nexport * from './lib/wizard-step/wizard-step.directive';\nexport * from './lib/wizard/wizard.directive';\n\n/**\n * Constants\n */\nexport * from './lib/button/button.constants';\nexport * from './lib/combobox/combobox.constants';\nexport * from './lib/divider/divider.constants';\nexport * from './lib/floating-ui/floating-ui.constants';\nexport * from './lib/icon/icon.constants';\nexport * from './lib/message/message.constants';\nexport * from './lib/nova-lib.constants';\nexport * from './lib/table/table.constants';\n\n/**\n * Controllers, Helpers, & Utilities\n */\nexport * from './lib/pagination-control/pagination.control';\n\n/**\n * Services\n */\nexport * from './lib/app-ready/app-ready.service';\nexport * from './lib/combobox/combobox.service';\nexport * from './lib/floating-ui/floating-ui.service';\nexport * from './lib/id-generator/id-generator.service';\nexport * from './lib/listbox/listbox.service';\nexport * from './lib/nova-lib.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}