{"version":3,"file":"novo-elements-elements-common.mjs","sources":["../../../projects/novo-elements/src/elements/common/theme/theme-options.ts","../../../projects/novo-elements/src/elements/common/directives/accent.directive.ts","../../../projects/novo-elements/src/elements/common/directives/bg.directive.ts","../../../projects/novo-elements/src/elements/common/directives/border.directive.ts","../../../projects/novo-elements/src/elements/common/directives/color.directive.ts","../../../projects/novo-elements/src/elements/common/directives/fill.directive.ts","../../../projects/novo-elements/src/elements/common/directives/flex.directive.ts","../../../projects/novo-elements/src/elements/common/directives/space.directive.ts","../../../projects/novo-elements/src/elements/common/directives/switch-cases.directive.ts","../../../projects/novo-elements/src/elements/common/directives/theme.directive.ts","../../../projects/novo-elements/src/elements/common/directives/visible.directive.ts","../../../projects/novo-elements/src/elements/common/novo-template/novo-template.directive.ts","../../../projects/novo-elements/src/elements/common/selection/pseudo-checkbox/pseudo-checkbox.component.ts","../../../projects/novo-elements/src/elements/common/selection/index.ts","../../../projects/novo-elements/src/elements/common/mixins/disabled.mixin.ts","../../../projects/novo-elements/src/elements/common/option/option-parent.ts","../../../projects/novo-elements/src/elements/common/option/optgroup.component.ts","../../../projects/novo-elements/src/elements/common/option/optgroup.component.html","../../../projects/novo-elements/src/elements/common/option/option.component.ts","../../../projects/novo-elements/src/elements/common/option/option.component.html","../../../projects/novo-elements/src/elements/common/option/index.ts","../../../projects/novo-elements/src/elements/common/typography/base/base-text.component.ts","../../../projects/novo-elements/src/elements/common/typography/caption/caption.component.ts","../../../projects/novo-elements/src/elements/common/typography/label/label.component.ts","../../../projects/novo-elements/src/elements/common/typography/link/link.component.ts","../../../projects/novo-elements/src/elements/common/typography/text/text.component.ts","../../../projects/novo-elements/src/elements/common/typography/title/title.component.ts","../../../projects/novo-elements/src/elements/common/common.module.ts","../../../projects/novo-elements/src/elements/common/error/error-options.ts","../../../projects/novo-elements/src/elements/common/mixins/color.mixin.ts","../../../projects/novo-elements/src/elements/common/mixins/error-state.mixin.ts","../../../projects/novo-elements/src/elements/common/mixins/overlay.mixin.ts","../../../projects/novo-elements/src/elements/common/mixins/required.mixin.ts","../../../projects/novo-elements/src/elements/common/mixins/size.mixin.ts","../../../projects/novo-elements/src/elements/common/mixins/tab-index.mixin.ts","../../../projects/novo-elements/src/elements/common/overlay/Overlay.ts","../../../projects/novo-elements/src/elements/common/overlay/Overlay.module.ts","../../../projects/novo-elements/src/elements/common/novo-elements-elements-common.ts"],"sourcesContent":["import { EventEmitter, Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\n\nexport class NovoThemeOptions {\n  themeName: string;\n}\nexport interface ThemeChangeEvent {\n  themeName: string;\n  options?: NovoThemeOptions;\n}\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class NovoTheme {\n  private _defaultTheme: NovoThemeOptions = { themeName: 'modern-light' };\n  private _currentTheme: NovoThemeOptions;\n\n  onThemeChange: EventEmitter<ThemeChangeEvent> = new EventEmitter<ThemeChangeEvent>();\n\n  /** Name of the theme being used. defaults to `modern-light` */\n  get themeName() {\n    return this._currentTheme?.themeName || this._defaultTheme.themeName;\n  }\n  set themeName(value: string) {\n    this._currentTheme = { themeName: value };\n    this.changeTheme(this._currentTheme);\n  }\n\n  public use(options: NovoThemeOptions): Observable<any> {\n    // future: don't change the theme if the theme given is already selected\n    this.changeTheme(options);\n    // this might become async in future\n    return of(options);\n  }\n\n  /**\n   * Changes the current theme\n   */\n  private changeTheme(theme: NovoThemeOptions): void {\n    this._currentTheme = theme;\n    this.onThemeChange.emit({ themeName: theme.themeName, options: theme });\n  }\n}\n\n/* FUTURE THOUGHTS */\n/**\n getComputedStyle(document.documentElement)\n    .getPropertyValue('--my-variable-name'); // #999999\n\n document.documentElement.style\n    .setProperty('--my-variable-name', 'pink');\n*/\n","import { ChangeDetectorRef, Directive, HostBinding, Input, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { NovoTheme, ThemeChangeEvent } from '../theme/theme-options';\n\n@Directive({\n    selector: '[accent]',\n    standalone: false,\n})\nexport class AccentColorDirective implements OnDestroy {\n  private subscription: Subscription;\n\n  @Input() accent: string;\n\n  @HostBinding('class')\n  get hb_textColor() {\n    // Support legacy classic theme... for now\n    if (this.theme.themeName === 'classic') {\n      return `novo-theme-${this.accent}`;\n    }\n    return `novo-accent-${this.accent}`;\n  }\n\n  constructor(private theme: NovoTheme, protected cdr: ChangeDetectorRef) {\n    this.subscription = this.theme.onThemeChange.subscribe((event: ThemeChangeEvent) => {\n      this.cdr.markForCheck();\n    });\n  }\n\n  ngOnDestroy(): void {\n    this.subscription.unsubscribe();\n  }\n}\n","import { Directive, ElementRef, HostBinding, Input } from '@angular/core';\n\n@Directive({\n    selector: '[bg]',\n    standalone: false,\n})\nexport class BackgroundColorDirective {\n  @Input() bg: string;\n\n  @HostBinding('class')\n  get hb_bgColor() {\n    return isValidColor(this.bg) ? 'novo-background-custom' : `novo-background-${this.bg}`;\n  }\n  @HostBinding('style.background-color')\n  get hb_bgStyle() {\n    return isValidColor(this.bg) ? this.bg : null;\n  }\n\n  constructor(private el: ElementRef) {}\n}\n\nfunction isValidColor(color: string) {\n  return color.startsWith('#') || color.startsWith('rgb');\n}\n","import { Directive, ElementRef, HostBinding, Input } from '@angular/core';\n@Directive({\n    selector: '[border], [bb], [borderBottom], [bt], [borderTop], [bl], [borderLeft], [br], [borderRight], [bx], [borderX], [by], [borderY]',\n    standalone: false,\n})\nexport class BorderDirective {\n  @Input() borderStyle = 'solid';\n  @Input() borderColor = '#eaecef';\n  @Input() borderWidth = 1;\n\n  @Input() border: string;\n  @Input() borderLeft: string;\n  @Input() bl: string;\n  @Input() borderRight: string;\n  @Input() br: string;\n  @Input() borderTop: string;\n  @Input() bt: string;\n  @Input() borderBottom: string;\n  @Input() bb: string;\n  @Input() borderX: string;\n  @Input() bx: string;\n  @Input() borderY: string;\n  @Input() by: string;\n\n  @HostBinding('class') get hb_border() {\n    return `border-${this.border}`;\n  }\n  @HostBinding('style.border-left') get hb_border_left() {\n    return this.borderLeft || this.bl || this.bx || this.borderX;\n  }\n  @HostBinding('style.border-right') get hb_border_right() {\n    return this.borderRight || this.bt || this.bx || this.borderX;\n  }\n  @HostBinding('style.border-top') get hb_border_top() {\n    return this.borderTop || this.bt || this.by || this.borderY;\n  }\n  @HostBinding('style.border-bottom') get hb_border_bottom() {\n    return this.borderBottom || this.bt || this.by || this.borderY;\n  }\n\n  constructor(private el: ElementRef) {}\n}\n","import { Directive, ElementRef, HostBinding, Input } from '@angular/core';\n\n@Directive({\n    selector: '[txc]',\n    standalone: false,\n})\nexport class TextColorDirective {\n  @Input() txc: string;\n\n  @HostBinding('class')\n  get hb_textColor() {\n    return isValidColor(this.txc) ? 'novo-text-custom' : `novo-text-${this.txc}`;\n  }\n  @HostBinding('style.color')\n  get hb_textStyle() {\n    return isValidColor(this.txc) ? this.txc : null;\n  }\n\n  constructor(private el: ElementRef) {}\n}\n\nfunction isValidColor(color: string) {\n  return color.startsWith('#') || color.startsWith('rgb');\n}\n","import { Directive, ElementRef, HostBinding, Input } from '@angular/core';\n\n@Directive({\n    selector: '[fill]',\n    standalone: false,\n})\nexport class FillColorDirective {\n  @Input() fill: string;\n\n  @HostBinding('class')\n  get hb_textColor() {\n    return `novo-fill-${this.fill}`;\n  }\n\n  constructor(private el: ElementRef) {}\n}\n","import { Directive, ElementRef, HostBinding, Input, Renderer2 } from '@angular/core';\n\n@Directive({\n    selector: '[flex]',\n    standalone: false,\n})\nexport class FlexDirective {\n  private _flex: string;\n\n  @HostBinding('style.flex')\n  @Input()\n  public get flex(): string {\n    return this._flex;\n  }\n\n  public set flex(value: string) {\n    if (!value) {\n      this._flex = '1 1 auto';\n    } else {\n      this._flex = value;\n    }\n  }\n\n  constructor(private readonly el: ElementRef, private readonly renderer: Renderer2) {\n  }\n}\n","import { Directive, HostBinding, Input } from '@angular/core';\nimport * as tokens from 'novo-design-tokens';\n/*\nProp\tCSS Property\tTheme Field\nm, margin\tmargin\tspace\nmt, marginTop\tmargin-top\tspace\nmr, marginRight\tmargin-right\tspace\nmb, marginBottom\tmargin-bottom\tspace\nml, marginLeft\tmargin-left\tspace\nmx\tmargin-left and margin-right\tspace\nmy\tmargin-top and margin-bottom\tspace\np, padding\tpadding\tspace\npt, paddingTop\tpadding-top\tspace\npr, paddingRight\tpadding-right\tspace\npb, paddingBottom\tpadding-bottom\tspace\npl, paddingLeft\tpadding-left\tspace\npx\tpadding-left and padding-right\tspace\npy\tpadding-top and padding-bottom\tspace\n*/\n\n/*\n// Selectors generated with the following code\nconst directions = ['Top', 'Right', 'Bottom', 'Left', 'X', 'Y'];\nconst abbrDirections = directions.map((d) => d.slice(0, 1).toLowerCase());\nconst marginAttrs = [\n  '[m]',\n  '[margin]',\n  ...directions.map((dir) => `[margin${dir}]`),\n  ...abbrDirections.map((dir) => `[m${dir}]`),\n];\nconst paddingAttrs = [\n  '[p]',\n  '[padding]',\n  ...directions.map((dir) => `[padding${dir}]`),\n  ...abbrDirections.map((dir) => `[p${dir}]`),\n];\n\nconst selectors = [...marginAttrs, ...paddingAttrs];\n*/\n\nexport const getSpacingToken = (value: string) => {\n  if (Object.keys(tokens.spacing).includes(value)) {\n    return tokens.spacing[value];\n  }\n  // TODO: Maybe Validate Value ie.(rem, px)\n  return value;\n};\n\n@Directive({\n    selector: '[m],[margin],[marginTop],[marginRight],[marginBottom],[marginLeft],[marginX],[marginY],[mt],[mr],[mb],[ml],[mx],[my]',\n    standalone: false,\n})\nexport class MarginDirective {\n  // Margin\n  @Input() margin: string;\n  @Input() m: string;\n  @Input() marginLeft: string;\n  @Input() ml: string;\n  @Input() marginRight: string;\n  @Input() mr: string;\n  @Input() marginTop: string;\n  @Input() mt: string;\n  @Input() marginBottom: string;\n  @Input() mb: string;\n  @Input() marginX: string;\n  @Input() mx: string;\n  @Input() marginY: string;\n  @Input() my: string;\n\n  @HostBinding('class') get hb_margin() {\n    return `margin-${this.margin || this.m}`;\n  }\n\n  @HostBinding('style.margin-left') get hb_margin_left() {\n    return getSpacingToken(this.marginLeft || this.ml || this.mx || this.marginX);\n  }\n  @HostBinding('style.margin-right') get hb_margin_right() {\n    return getSpacingToken(this.marginRight || this.mr || this.mx || this.marginX);\n  }\n  @HostBinding('style.margin-top') get hb_margin_top() {\n    return getSpacingToken(this.marginTop || this.mt || this.my || this.marginY);\n  }\n  @HostBinding('style.margin-bottom') get hb_margin_bottom() {\n    return getSpacingToken(this.marginBottom || this.mb || this.my || this.marginY);\n  }\n}\n\n@Directive({\n    selector: '[p],[padding],[paddingTop],[paddingRight],[paddingBottom],[paddingLeft],[paddingX],[paddingY],[pt],[pr],[pb],[pl],[px],[py]',\n    standalone: false,\n})\nexport class PaddingDirective {\n  // Padding\n  @Input() padding: string;\n  @Input() p: string;\n  @Input() paddingLeft: string;\n  @Input() pl: string;\n  @Input() paddingRight: string;\n  @Input() pr: string;\n  @Input() paddingTop: string;\n  @Input() pt: string;\n  @Input() paddingBottom: string;\n  @Input() pb: string;\n  @Input() paddingX: string;\n  @Input() px: string;\n  @Input() paddingY: string;\n  @Input() py: string;\n\n  @HostBinding('class') get hb_padding() {\n    return `padding-${this.padding || this.p}`;\n  }\n\n  @HostBinding('style.padding-left') get hb_padding_left() {\n    return getSpacingToken(this.paddingLeft || this.pl || this.px || this.paddingX);\n  }\n  @HostBinding('style.padding-right') get hb_padding_right() {\n    return getSpacingToken(this.paddingRight || this.pr || this.px || this.paddingX);\n  }\n  @HostBinding('style.padding-top') get hb_padding_top() {\n    return getSpacingToken(this.paddingTop || this.pt || this.py || this.paddingY);\n  }\n  @HostBinding('style.padding-bottom') get hb_padding_bottom() {\n    return getSpacingToken(this.paddingBottom || this.pb || this.py || this.paddingY);\n  }\n}\n\n@Directive({\n    selector: '[gap]',\n    standalone: false,\n})\nexport class GapDirective {\n  @Input() gap: string;\n\n  @HostBinding('style.gap')\n  get hb_gap() {\n    return getSpacingToken(this.gap);\n  }\n}\n","import { NgSwitch } from '@angular/common';\nimport { Directive, DoCheck, Host, Input, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';\n\n@Directive({\n    selector: '[novoSwitchCases]',\n    standalone: false,\n})\nexport class SwitchCasesDirective implements OnInit, DoCheck {\n  private ngSwitch: any;\n  private _created = false;\n\n  @Input()\n  novoSwitchCases: any[];\n\n  constructor(private viewContainer: ViewContainerRef, private templateRef: TemplateRef<Object>, @Host() ngSwitch: NgSwitch) {\n    this.ngSwitch = ngSwitch;\n  }\n\n  ngOnInit() {\n    (this.novoSwitchCases || []).forEach(() => this.ngSwitch._addCase());\n  }\n\n  ngDoCheck() {\n    let enforce = false;\n    (this.novoSwitchCases || []).forEach((value) => (enforce = this.ngSwitch._matchCase(value) || enforce));\n    this.enforceState(enforce);\n  }\n\n  enforceState(created: boolean) {\n    if (created && !this._created) {\n      this._created = true;\n      this.viewContainer.createEmbeddedView(this.templateRef);\n    } else if (!created && this._created) {\n      this._created = false;\n      this.viewContainer.clear();\n    }\n  }\n}\n","import { Directive, ElementRef, HostBinding, Input } from '@angular/core';\n\n@Directive({\n    selector: '[theme]',\n    standalone: false,\n})\nexport class ThemeColorDirective {\n  @Input() theme: string;\n\n  @HostBinding('class')\n  get hb_textColor() {\n    return `novo-theme-${this.theme}`;\n  }\n\n  constructor(private el: ElementRef) {}\n}\n","import { Directive, ElementRef, HostBinding, Input } from '@angular/core';\nimport { BooleanInput } from 'novo-elements/utils';\n\n@Directive({\n    selector: '[visible]',\n    standalone: false,\n})\nexport class VisibleDirective {\n  @BooleanInput()\n  @Input()\n  @HostBinding('class')\n  visible: boolean;\n\n  @HostBinding('class')\n  get hb_visibility() {\n    return this.visible ? '' : 'novo-visibility-hidden';\n  }\n\n  constructor(private el: ElementRef) {}\n}\n","import { Directive, Input, TemplateRef } from '@angular/core';\n\n@Directive({\n    selector: '[novoTemplate]',\n    standalone: false,\n})\nexport class NovoTemplate {\n  @Input() type: string;\n  @Input('novoTemplate') name: string;\n\n  constructor(public template: TemplateRef<any>) {}\n\n  getType(): string {\n    return this.name;\n  }\n}\n","import { ChangeDetectionStrategy, Component, Inject, Input, Optional, ViewEncapsulation } from '@angular/core';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\n\n/**\n * Possible states for a pseudo checkbox.\n * @docs-private\n */\nexport type NovoPseudoCheckboxState = 'unchecked' | 'checked' | 'indeterminate';\nexport type NovoPseudoCheckboxShape = 'box' | 'circle' | 'line';\n\n/**\n * Component that shows a simplified checkbox without including any kind of \"real\" checkbox.\n * Meant to be used when the checkbox is purely decorative and a large number of them will be\n * included, such as for the options in a multi-select. Uses no SVGs or complex animations.\n * Note that theming is meant to be handled by the parent element, e.g.\n * `novo-primary .novo-pseudo-checkbox`.\n *\n * Note that this component will be completely invisible to screen-reader users. This is *not*\n * interchangeable with `<novo-checkbox>` and should *not* be used if the user would directly\n * interact with the checkbox. The pseudo-checkbox should only be used as an implementation detail\n * of more complex components that appropriately handle selected / checked state.\n * @docs-private\n */\n@Component({\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    selector: 'novo-pseudo-checkbox',\n    styleUrls: ['pseudo-checkbox.component.scss'],\n    template: ` <i\n    [class.bhi-checkbox-empty]=\"state === 'unchecked' && shape === 'box'\"\n    [class.bhi-checkbox-filled]=\"state === 'checked' && shape === 'box'\"\n    [class.bhi-checkbox-indeterminate]=\"state === 'indeterminate' && shape === 'box'\"\n    [class.bhi-circle-o]=\"state === 'unchecked' && shape === 'circle'\"\n    [class.bhi-check-circle-filled]=\"state === 'checked' && shape === 'circle'\"\n    [class.bhi-circle]=\"state === 'indeterminate' && shape === 'circle'\"\n    [class.bhi-box-empty]=\"state === 'unchecked' && shape === 'line'\"\n    [class.bhi-check]=\"state === 'checked' && shape === 'line'\"\n    [class.bhi-box-minus-o]=\"state === 'indeterminate' && shape === 'line'\"\n  ></i>`,\n    host: {\n        class: 'novo-pseudo-checkbox',\n        '[class.novo-pseudo-checkbox-indeterminate]': 'state === \"indeterminate\"',\n        '[class.novo-pseudo-checkbox-checked]': 'state === \"checked\"',\n        '[class.novo-pseudo-checkbox-disabled]': 'disabled',\n        '[class._novo-animation-noopable]': '_animationMode === \"NoopAnimations\"',\n    },\n    standalone: false,\n})\nexport class NovoPseudoCheckbox {\n  /** Display state of the checkbox. */\n  @Input() state: NovoPseudoCheckboxState = 'unchecked';\n  /** Display state of the checkbox. */\n  @Input() shape: NovoPseudoCheckboxShape = 'box';\n  /** Whether the checkbox is disabled. */\n  @Input() disabled: boolean = false;\n\n  constructor(@Optional() @Inject(ANIMATION_MODULE_TYPE) public _animationMode?: string) {}\n}\n","import { NgModule } from '@angular/core';\nimport { NovoPseudoCheckbox } from './pseudo-checkbox/pseudo-checkbox.component';\n\n@NgModule({\n  imports: [],\n  exports: [NovoPseudoCheckbox],\n  declarations: [NovoPseudoCheckbox],\n})\nexport class NovoPseudoCheckboxModule {}\n\nexport * from './pseudo-checkbox/pseudo-checkbox.component';\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Constructor } from './constructor';\n\n/** @docs-private */\nexport interface CanDisable {\n  /** Whether the component is disabled. */\n  disabled: boolean;\n}\n\n/** @docs-private */\nexport type CanDisableCtor = Constructor<CanDisable>;\n\n/** Mixin to augment a directive with a `disabled` property. */\nexport function mixinDisabled<T extends Constructor<{}>>(base: T): CanDisableCtor & T {\n  return class extends base {\n    protected _disabled: boolean = false;\n\n    get disabled() {\n      return this._disabled;\n    }\n    set disabled(value: any) {\n      this._disabled = coerceBooleanProperty(value);\n    }\n\n    constructor(...args: any[]) {\n      super(...args);\n    }\n  };\n}\n","import { InjectionToken } from '@angular/core';\n\n/**\n * Describes a parent component that manages a list of options.\n * Contains properties that the options can inherit.\n * @docs-private\n */\nexport interface NovoOptionParentComponent {\n  multiple?: boolean;\n  inertGroups?: boolean;\n}\n\n/**\n * Injection token used to provide the parent component to options.\n */\nexport const NOVO_OPTION_PARENT_COMPONENT = new InjectionToken<NovoOptionParentComponent>('NOVO_OPTION_PARENT_COMPONENT');\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { ChangeDetectionStrategy, Component, Directive, Inject, InjectionToken, Optional, ViewEncapsulation } from '@angular/core';\nimport { CanDisable, CanDisableCtor, mixinDisabled } from '../mixins/disabled.mixin';\nimport { NovoOptionParentComponent, NOVO_OPTION_PARENT_COMPONENT } from './option-parent';\n\n// Notes on the accessibility pattern used for `novo-optgroup`.\n// The option group has two different \"modes\": regular and novoInert. The regular mode uses the\n// recommended a11y pattern which has `role=\"group\"` on the group element with `aria-labelledby`\n// pointing to the label. This works for `novo-select`, but it seems to hit a bug for autocomplete\n// under VoiceOver where the group doesn't get read out at all. The bug appears to be that if\n// there's __any__ a11y-related attribute on the group (e.g. `role` or `aria-labelledby`),\n// VoiceOver on Safari won't read it out.\n// We've introduced the `novoInert` mode as a workaround. Under this mode, all a11y attributes are\n// removed from the group, and we get the screen reader to read out the group label by mirroring it\n// inside an invisible element in the option. This is sub-optimal, because the screen reader will\n// repeat the group label on each navigation, whereas the default pattern only reads the group when\n// the user enters a new group. The following alternate approaches were considered:\n// 1. Reading out the group label using the `LiveAnnouncer` solves the problem, but we can't control\n//    when the text will be read out so sometimes it comes in too late or never if the user\n//    navigates quickly.\n// 2. `<novo-option aria-describedby=\"groupLabel\"` - This works on Safari, but VoiceOver in Chrome\n//    won't read out the description at all.\n// 3. `<novo-option aria-labelledby=\"optionLabel groupLabel\"` - This works on Chrome, but Safari\n//     doesn't read out the text at all. Furthermore, on\n\n// Boilerplate for applying mixins to NovoOptgroup.\n@Directive()\nexport class NovoOptgroupBase implements CanDisable {\n  disabled: boolean;\n\n  /** Label for the option group. */\n  label: string;\n\n  /** Unique id for the underlying label. */\n  _labelId: string = `novo-optgroup-label-${_uniqueOptgroupIdCounter++}`;\n\n  /** Whether the group is in novoInert a11y mode. */\n  _novoInert: boolean;\n}\nexport const NovoOptgroupMixinBase: CanDisableCtor & typeof NovoOptgroupBase = mixinDisabled(NovoOptgroupBase);\n\n// Counter for unique group ids.\nlet _uniqueOptgroupIdCounter = 0;\n\n/**\n * Injection token that can be used to reference instances of `NovoOptgroup`. It serves as\n * alternative token to the actual `NovoOptgroup` class which could cause unnecessary\n * retention of the class and its component metadata.\n */\nexport const NOVO_OPTGROUP = new InjectionToken<NovoOptgroup>('NovoOptgroup');\n\n/**\n * Component that is used to group instances of `novo-option`.\n */\n@Component({\n    selector: 'novo-optgroup',\n    exportAs: 'novoOptgroup',\n    templateUrl: 'optgroup.component.html',\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    inputs: ['disabled', 'label'],\n    styleUrls: ['optgroup.component.scss'],\n    host: {\n        class: 'novo-optgroup',\n        '[attr.role]': '_novoInert ? null : \"group\"',\n        '[attr.aria-disabled]': '_novoInert ? null : disabled.toString()',\n        '[attr.aria-labelledby]': '_novoInert ? null : _labelId',\n        '[class.novo-optgroup-disabled]': 'disabled',\n    },\n    providers: [{ provide: NOVO_OPTGROUP, useExisting: NovoOptgroup }],\n    standalone: false,\n})\nexport class NovoOptgroup extends NovoOptgroupMixinBase {\n  constructor(@Inject(NOVO_OPTION_PARENT_COMPONENT) @Optional() parent?: NovoOptionParentComponent) {\n    super();\n    this._novoInert = parent?.inertGroups ?? false;\n  }\n\n  static ngAcceptInputType_disabled: BooleanInput;\n}\n","<span *ngIf=\"label\" class=\"novo-optgroup-label\" aria-hidden=\"true\" [id]=\"_labelId\">{{ label }}</span>\n<ng-content select=\"novo-option, ng-container, novo-divider, cdk-virtual-scroll-viewport\"></ng-content>","import { FocusableOption, FocusOptions, FocusOrigin } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport {\n  AfterViewChecked,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  Directive,\n  ElementRef,\n  EventEmitter,\n  Inject,\n  Input,\n  OnDestroy,\n  Optional,\n  Output,\n  QueryList,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { fromEvent, Subject, Subscription } from 'rxjs';\nimport { BooleanInput, Key } from 'novo-elements/utils';\nimport { NovoOptgroup, NovoOptgroupBase, NOVO_OPTGROUP } from './optgroup.component';\nimport { NovoOptionParentComponent, NOVO_OPTION_PARENT_COMPONENT } from './option-parent';\n\n/**\n * Option IDs need to be unique across components, so this counter exists outside of\n * the component definition.\n */\nlet _uniqueIdCounter = 0;\n\n/** Event object emitted by NovoOption when selected or deselected. */\nexport class NovoOptionSelectionChange {\n  constructor(\n    /** Reference to the option that emitted the event. */\n    public source: NovoOptionBase,\n    /** Whether the change in the option's value was a result of a user action. */\n    public isUserInput = false,\n  ) {}\n}\n\n@Directive()\nexport class NovoOptionBase implements FocusableOption, AfterViewChecked, OnDestroy {\n  private _selected = false;\n  private _active = false;\n  private _disabled = false;\n  private _mostRecentViewValue = '';\n  private _clickCapture: Subscription;\n  private _clickPassive: Subscription;\n\n  /** TODO: deprecate maybe, check support for table headers */\n  @BooleanInput()\n  @Input()\n  keepOpen: boolean = false;\n\n  @BooleanInput()\n  @Input()\n  novoInert: boolean = false;\n\n  @BooleanInput()\n  @Input()\n  allowSelection = true;\n\n  // When selected, use a particular string for display instead of what was used to select it\n  @Input()\n  customViewValue: string = '';\n\n  /** If there is no parent then nothing is managing the selection. */\n  get selectable() {\n    return this.allowSelection && this._parent;\n  }\n\n  /** Whether the wrapping component is in multiple selection mode. */\n  get multiple() {\n    return this._parent && this._parent.multiple;\n  }\n\n  /** The form value of the option. */\n  @Input() value: any;\n\n  /** The unique ID of the option. */\n  @Input() id: string = `novo-option-${_uniqueIdCounter++}`;\n\n  /** Whether the option is disabled. */\n  @Input()\n  get disabled() {\n    return (this.group && this.group.disabled) || this._disabled;\n  }\n  set disabled(value: any) {\n    this._disabled = coerceBooleanProperty(value);\n  }\n\n  @Input()\n  get selected() {\n    return this._selected;\n  }\n  set selected(value: any) {\n    this._selected = coerceBooleanProperty(value);\n  }\n\n  /** Event emitted when the option is selected or deselected. */\n  @Output() readonly onSelectionChange = new EventEmitter<NovoOptionSelectionChange>();\n\n  /** Emits when the state of the option changes and any parents have to be notified. */\n  readonly _stateChanges = new Subject<void>();\n\n  constructor(\n    private _element: ElementRef<HTMLElement>,\n    private _changeDetectorRef: ChangeDetectorRef,\n    @Optional() @Inject(NOVO_OPTION_PARENT_COMPONENT) private _parent: NovoOptionParentComponent,\n    @Optional() @Inject(NOVO_OPTGROUP) readonly group: NovoOptgroupBase,\n  ) {\n    // (click) is overridden when defined by user.\n    this._clickCapture = fromEvent<MouseEvent>(this._element.nativeElement, 'click', { capture: true }).subscribe((evt: MouseEvent) => {\n      this._handleDisabledClick(evt);\n    });\n    this._clickPassive = fromEvent<MouseEvent>(this._element.nativeElement, 'click').subscribe((evt: MouseEvent) => {\n      setTimeout(() => this._handlePassiveClick(evt));\n    });\n  }\n\n  /**\n   * Whether or not the option is currently active and ready to be selected.\n   * An active option displays styles as if it is focused, but the\n   * focus is actually retained somewhere else. This comes in handy\n   * for components like autocomplete where focus must remain on the input.\n   */\n  get active(): boolean {\n    return this._active;\n  }\n\n  /**\n   * The displayed value of the option. It is necessary to show the selected option in the\n   * select's trigger.\n   */\n  get viewValue(): string {\n    return this.customViewValue || (this._getHostElement().textContent || '').trim();\n  }\n\n  /** Selects the option. */\n  select(): void {\n    if (!this._selected) {\n      this._selected = true;\n      this._changeDetectorRef.markForCheck();\n    }\n  }\n\n  /** Deselects the option. */\n  deselect(): void {\n    if (this._selected) {\n      this._selected = false;\n      this._changeDetectorRef.markForCheck();\n    }\n  }\n\n  /** Sets focus onto this option. */\n  focus(_origin?: FocusOrigin, options?: FocusOptions): void {\n    // Note that we aren't using `_origin`, but we need to keep it because some internal consumers\n    // use `NovoOption` in a `FocusKeyManager` and we need it to match `FocusableOption`.\n    const element = this._getHostElement();\n\n    if (typeof element.focus === 'function') {\n      element.focus(options);\n    }\n  }\n\n  /**\n   * This method sets display styles on the option to make it appear\n   * active. This is used by the ActiveDescendantKeyManager so key\n   * events will display the proper options as active on arrow key events.\n   */\n  setActiveStyles(): void {\n    if (!this._active) {\n      this._active = true;\n      this._changeDetectorRef.markForCheck();\n    }\n  }\n\n  /**\n   * This method removes display styles on the option that made it appear\n   * active. This is used by the ActiveDescendantKeyManager so key\n   * events will display the proper options as active on arrow key events.\n   */\n  setInactiveStyles(): void {\n    if (this._active) {\n      this._active = false;\n      this._changeDetectorRef.markForCheck();\n    }\n  }\n\n  /** Gets the label to be used when determining whether the option should be focused. */\n  getLabel(): string {\n    return this.viewValue;\n  }\n\n  _handleDisabledClick(event: MouseEvent) {\n    if (this.disabled) {\n      event.preventDefault();\n      event.stopPropagation();\n      event.stopImmediatePropagation();\n    }\n  }\n\n  _handlePassiveClick(event: MouseEvent) {\n    if (!this.novoInert) {\n      this._selectViaInteraction();\n    }\n  }\n\n  /** Ensures the option is selected when activated from the keyboard. */\n  _handleKeydown(event: KeyboardEvent): void {\n    if (event.target instanceof HTMLInputElement && event.key === Key.Enter) {\n      this._emitSelectionChangeEvent(!this.keepOpen);\n    } else if (\n      !(event.target instanceof HTMLInputElement) &&\n      (event.key === Key.Enter || event.key === Key.Space) &&\n      !hasModifierKey(event)\n    ) {\n      this._selectViaInteraction();\n      // Prevent the page from scrolling down and form submits.\n      event.preventDefault();\n    }\n  }\n\n  /**\n   * `Selects the option while indicating the selection came from the user. Used to\n   * determine if the select's view -> model callback should be invoked.`\n   */\n  _selectViaInteraction(): void {\n    if (!this.disabled) {\n      this._selected = this.multiple ? !this._selected : true;\n      this._changeDetectorRef.markForCheck();\n      this._emitSelectionChangeEvent(!this.keepOpen);\n    }\n  }\n\n  /**\n   * Force a click event\n   */\n  _clickViaInteraction(): void {\n    if (!this.disabled) {\n      this._element.nativeElement.click();\n    }\n  }\n\n  /**\n   * Gets the `aria-selected` value for the option. We explicitly omit the `aria-selected`\n   * attribute from single-selection, unselected options. Including the `aria-selected=\"false\"`\n   * attributes adds a significant amount of noise to screen-reader users without providing useful\n   * information.\n   */\n  _getAriaSelected(): boolean | null {\n    return this.selected || (this.multiple ? false : null);\n  }\n\n  /** Returns the correct tabindex for the option depending on disabled state. */\n  _getTabIndex(): string {\n    return this.disabled ? '-1' : '0';\n  }\n\n  /** Gets the host DOM element. */\n  _getHostElement(): HTMLElement {\n    return this._element.nativeElement;\n  }\n\n  ngAfterViewChecked() {\n    // Since parent components could be using the option's label to display the selected values\n    // (e.g. `novo-select`) and they don't have a way of knowing if the option's label has changed\n    // we have to check for changes in the DOM ourselves and dispatch an event. These checks are\n    // relatively cheap, however we still limit them only to selected options in order to avoid\n    // hitting the DOM too often.\n    if (this._selected) {\n      const viewValue = this.viewValue;\n\n      if (viewValue !== this._mostRecentViewValue) {\n        this._mostRecentViewValue = viewValue;\n        this._stateChanges.next();\n      }\n    }\n  }\n\n  ngOnDestroy() {\n    this._stateChanges.complete();\n    this._clickCapture.unsubscribe();\n    this._clickPassive.unsubscribe();\n  }\n\n  /** Emits the selection change event. */\n  private _emitSelectionChangeEvent(isUserInput = false): void {\n    this.onSelectionChange.emit(new NovoOptionSelectionChange(this, isUserInput));\n  }\n}\n\n/**\n * Single option inside of a `<novo-select>` element.\n */\n@Component({\n    selector: 'novo-option',\n    exportAs: 'novoOption',\n    host: {\n        role: 'option',\n        '[id]': 'id',\n        '[attr.tabindex]': '_getTabIndex()',\n        '[attr.aria-selected]': '_getAriaSelected()',\n        '[attr.aria-disabled]': 'disabled.toString()',\n        '[class.novo-active]': 'active',\n        '[class.novo-selected]': 'selectable && selected',\n        '[class.novo-option-multiple]': 'multiple',\n        '[class.novo-option-disabled]': 'disabled',\n        '[class.novo-option-inert]': 'novoInert',\n        '(keydown)': '_handleKeydown($event)',\n        class: 'novo-option novo-focus-indicator',\n    },\n    inputs: ['selected', 'keepOpen', 'novoInert', 'value', 'disabled'],\n    styleUrls: ['option.component.scss'],\n    templateUrl: 'option.component.html',\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false,\n})\nexport class NovoOption extends NovoOptionBase {\n  constructor(\n    element: ElementRef<HTMLElement>,\n    changeDetectorRef: ChangeDetectorRef,\n    @Optional() @Inject(NOVO_OPTION_PARENT_COMPONENT) parent: NovoOptionParentComponent,\n    @Optional() @Inject(NOVO_OPTGROUP) group: NovoOptgroup,\n  ) {\n    super(element, changeDetectorRef, parent, group);\n  }\n}\n\n/**\n * Counts the amount of option group labels that precede the specified option.\n * @param optionIndex Index of the option at which to start counting.\n * @param options Flat list of all of the options.\n * @param optionGroups Flat list of all of the option groups.\n * @docs-private\n */\nexport function _countGroupLabelsBeforeOption(\n  optionIndex: number,\n  options: QueryList<NovoOption>,\n  optionGroups: QueryList<NovoOptgroup>,\n): number {\n  if (optionGroups.length) {\n    const optionsArray = options.toArray();\n    const groups = optionGroups.toArray();\n    let groupCounter = 0;\n\n    for (let i = 0; i < optionIndex + 1; i++) {\n      if (optionsArray[i].group && optionsArray[i].group === groups[groupCounter]) {\n        groupCounter++;\n      }\n    }\n\n    return groupCounter;\n  }\n\n  return 0;\n}\n\n/**\n * Determines the position to which to scroll a panel in order for an option to be into view.\n * @param optionOffset Offset of the option from the top of the panel.\n * @param optionHeight Height of the options.\n * @param currentScrollPosition Current scroll position of the panel.\n * @param panelHeight Height of the panel.\n * @docs-private\n */\nexport function _getOptionScrollPosition(\n  optionOffset: number,\n  optionHeight: number,\n  currentScrollPosition: number,\n  panelHeight: number,\n): number {\n  if (optionOffset < currentScrollPosition) {\n    return optionOffset;\n  }\n\n  if (optionOffset + optionHeight > currentScrollPosition + panelHeight) {\n    return Math.max(0, optionOffset - panelHeight + optionHeight);\n  }\n\n  return currentScrollPosition;\n}\n","<novo-pseudo-checkbox *ngIf=\"selectable && multiple\" class=\"novo-option-pseudo-checkbox\"\n  [state]=\"selected ? 'checked' : 'unchecked'\" [disabled]=\"disabled\"></novo-pseudo-checkbox>\n\n<span class=\"novo-option-text\">\n  <ng-content></ng-content>\n</span>\n\n<novo-pseudo-checkbox *ngIf=\"selectable && !multiple && selected\" class=\"novo-option-pseudo-checkbox\" state=\"checked\"\n  shape=\"line\"\n  [disabled]=\"disabled\"></novo-pseudo-checkbox>\n\n<ng-content select=\"[novoSuffix]\"></ng-content>\n<!-- See a11y notes inside optgroup.ts for context behind this element. -->\n<span class=\"cdk-visually-hidden\" *ngIf=\"group && group._novoInert\">({{ group.label }})</span>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { NovoPseudoCheckboxModule } from '../selection/index';\nimport { NovoOptgroup } from './optgroup.component';\nimport { NovoOption } from './option.component';\n\n@NgModule({\n  imports: [CommonModule, NovoPseudoCheckboxModule],\n  exports: [NovoOption, NovoOptgroup],\n  declarations: [NovoOption, NovoOptgroup],\n})\nexport class NovoOptionModule {}\n\nexport * from './optgroup.component';\nexport * from './option-parent';\nexport * from './option.component';\n","import { Directive, ElementRef, HostBinding, Input } from '@angular/core';\nimport { BooleanInput } from 'novo-elements/utils';\nimport { TypographyLength, TypographySize, TypographyWeight } from '../text.types';\n\n@Directive()\nexport class NovoBaseTextElement {\n  @Input()\n  size: TypographySize;\n  @Input()\n  weight: TypographyWeight;\n  @Input()\n  lineLength: TypographyLength;\n  @Input()\n  color: string;\n\n  @HostBinding('class')\n  get hb_classBinding(): string {\n    return [\n      this.color ? `text-color-${this.color}` : null,\n      this.lineLength ? `text-length-${this.lineLength}` : null,\n      this.size ? `text-size-${this.size}` : null,\n      this.weight ? `text-weight-${this.weight}` : null,\n    ]\n      .filter(Boolean)\n      .join(' ');\n  }\n\n  @HostBinding('class.text-disabled')\n  @Input()\n  @BooleanInput()\n  disabled: boolean;\n\n  @HostBinding('class.text-color-empty')\n  @Input()\n  @BooleanInput()\n  muted: boolean;\n\n  @HostBinding('class.text-color-negative')\n  @Input()\n  @BooleanInput()\n  error: boolean;\n\n  @HostBinding('class.margin-before')\n  @Input()\n  @BooleanInput()\n  marginBefore: boolean;\n\n  @HostBinding('class.margin-after')\n  @Input()\n  @BooleanInput()\n  marginAfter: boolean;\n\n  @HostBinding('class.text-capitialize')\n  @Input()\n  @BooleanInput()\n  capitialize: boolean;\n\n  @HostBinding('class.text-uppercase')\n  @Input()\n  @BooleanInput()\n  uppercase: boolean;\n\n  @HostBinding('class.text-nowrap')\n  @Input()\n  @BooleanInput()\n  nowrap: boolean;\n\n  @HostBinding('class.text-ellipsis')\n  @Input()\n  @BooleanInput()\n  ellipsis: boolean;\n\n  @HostBinding('class.text-size-smaller')\n  @Input()\n  @BooleanInput()\n  smaller: boolean;\n\n  @HostBinding('class.text-size-larger')\n  @Input()\n  @BooleanInput()\n  larger: boolean;\n\n  @HostBinding('class.text-weight-thin')\n  @Input()\n  @BooleanInput()\n  thin: boolean;\n\n  @HostBinding('class.text-weight-lighter')\n  @Input()\n  @BooleanInput()\n  lighter: boolean;\n\n  @HostBinding('class.text-weight-light')\n  @Input()\n  @BooleanInput()\n  light: boolean;\n\n  @HostBinding('class.text-weight-medium')\n  @Input()\n  @BooleanInput()\n  medium: boolean;\n\n  @HostBinding('class.text-weight-bold')\n  @Input()\n  @BooleanInput()\n  bold: boolean;\n\n  @HostBinding('class.text-weight-bolder')\n  @Input()\n  @BooleanInput()\n  bolder: boolean;\n\n  @HostBinding('class.text-weight-extrabold')\n  @Input()\n  @BooleanInput()\n  extrabold: boolean;\n\n  constructor(public element: ElementRef) {}\n\n  get nativeElement() {\n    return this.element.nativeElement;\n  }\n}\n","// NG2\nimport { Component } from '@angular/core';\nimport { NovoBaseTextElement } from '../base/base-text.component';\n\n/**\n * Tag Example\n * <novo-title size=\"sm\" disabled>Label</novo-title\n * <novo-title small disabled>Label</novo-title>\n * <novo-title large disabled>Label</novo-title>\n * <novo-title error>Label</novo-title>\n * <novo-title muted>Label</novo-title>\n * <novo-title class=\"tc-grapefruit\">Label</novo-title>\n * <novo-title color=\"grapefruit\">Label</novo-title>\n */\n\n@Component({\n    selector: 'novo-caption,[novo-caption]',\n    template: ' <ng-content></ng-content> ',\n    styleUrls: ['./caption.scss'],\n    host: {\n        class: 'novo-caption',\n    },\n    standalone: false,\n})\nexport class NovoCaption extends NovoBaseTextElement {}\n","// NG2\nimport { Component, HostBinding, input, OnInit } from '@angular/core';\nimport { NovoBaseTextElement } from '../base/base-text.component';\n\n/**\n * Tag Example\n * <novo-label size=\"sm\" disabled>Label</novo-label\n * <novo-label small disabled>Label</novo-label>\n * <novo-label large disabled>Label</novo-label>\n * <novo-label error>Label</novo-label>\n * <novo-label muted>Label</novo-label>\n * <novo-label class=\"tc-grapefruit\">Label</novo-label>\n * <novo-label color=\"grapefruit\">Label</novo-label>\n */\n\nlet nextId = 0;\n\n@Component({\n    selector: 'novo-label,[novo-label]',\n    template: ' <ng-content></ng-content> ',\n    styleUrls: ['./label.scss'],\n    host: {\n        class: 'novo-label',\n    },\n    standalone: false,\n})\nexport class NovoLabel extends NovoBaseTextElement implements OnInit{\n  @HostBinding('attr.id')\n  public id: string;\n\n  inputId = input(null, { alias: 'id' });\n\n  ngOnInit() {\n    this.id = this.inputId() || `novo-label-${++nextId}`;\n  }\n}\n\n","// NG2\nimport { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { NovoBaseTextElement } from '../base/base-text.component';\n\n/**\n * Tag Example\n * <novo-text size=\"small\" disabled>Label</novo-text\n * <novo-text small disabled>Label</novo-text>\n * <novo-text large disabled>Label</novo-text>\n * <novo-text error>Label</novo-text>\n * <novo-text muted>Label</novo-text>\n * <novo-text class=\"tc-grapefruit\">Label</novo-text>\n * <novo-text color=\"grapefruit\">Label</novo-text>\n */\n\n@Component({\n    selector: 'novo-link',\n    template: '<a [attr.href]=\"href\"><ng-content></ng-content></a>',\n    styleUrls: ['./link.scss'],\n    encapsulation: ViewEncapsulation.None,\n    host: {\n        class: 'novo-link',\n    },\n    standalone: false,\n})\nexport class NovoLink extends NovoBaseTextElement {\n  @Input()\n  href: string;\n}\n","// NG2\nimport { Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';\nimport { BooleanInput } from 'novo-elements/utils';\nimport { NovoBaseTextElement } from '../base/base-text.component';\n\n/**\n * Tag Example\n * <novo-text size=\"small\" disabled>Label</novo-text\n * <novo-text small disabled>Label</novo-text>\n * <novo-text large disabled>Label</novo-text>\n * <novo-text error>Label</novo-text>\n * <novo-text muted>Label</novo-text>\n * <novo-text class=\"tc-grapefruit\">Label</novo-text>\n * <novo-text color=\"grapefruit\">Label</novo-text>\n */\n\n@Component({\n    selector: 'novo-text,[novo-text]',\n    template: ' <ng-content></ng-content> ',\n    styleUrls: ['./text.scss'],\n    encapsulation: ViewEncapsulation.None,\n    host: {\n        class: 'novo-text',\n    },\n    standalone: false,\n})\nexport class NovoText extends NovoBaseTextElement {\n  @HostBinding('class.text-block')\n  @Input()\n  @BooleanInput()\n  block: boolean;\n}\n","// NG2\nimport { Component } from '@angular/core';\nimport { NovoBaseTextElement } from '../base/base-text.component';\nimport { TypographyWeight } from '../text.types';\n\n/**\n * Tag Example\n * <novo-title size=\"sm\" disabled>Label</novo-title\n * <novo-title small disabled>Label</novo-title>\n * <novo-title large disabled>Label</novo-title>\n * <novo-title error>Label</novo-title>\n * <novo-title muted>Label</novo-title>\n * <novo-title class=\"tc-grapefruit\">Label</novo-title>\n * <novo-title color=\"grapefruit\">Label</novo-title>\n */\n\n@Component({\n    selector: 'novo-title,[novo-title]',\n    template: ' <ng-content></ng-content> ',\n    styleUrls: ['./title.scss'],\n    host: {\n        class: 'novo-title',\n    },\n    standalone: false,\n})\nexport class NovoTitle extends NovoBaseTextElement {\n  weight: TypographyWeight = 'medium';\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AccentColorDirective } from './directives/accent.directive';\nimport { BackgroundColorDirective } from './directives/bg.directive';\nimport { BorderDirective } from './directives/border.directive';\nimport { TextColorDirective } from './directives/color.directive';\nimport { FillColorDirective } from './directives/fill.directive';\nimport { FlexDirective } from './directives/flex.directive';\nimport { GapDirective, MarginDirective, PaddingDirective } from './directives/space.directive';\nimport { SwitchCasesDirective } from './directives/switch-cases.directive';\nimport { ThemeColorDirective } from './directives/theme.directive';\nimport { VisibleDirective } from './directives/visible.directive';\nimport { NovoTemplate } from './novo-template/novo-template.directive';\nimport { NovoOptionModule } from './option';\nimport { NovoCaption } from './typography/caption/caption.component';\nimport { NovoLabel } from './typography/label/label.component';\nimport { NovoLink } from './typography/link/link.component';\nimport { NovoText } from './typography/text/text.component';\nimport { NovoTitle } from './typography/title/title.component';\n\n@NgModule({\n  imports: [CommonModule, NovoOptionModule],\n  exports: [\n    NovoTemplate,\n    NovoText,\n    NovoTitle,\n    NovoCaption,\n    NovoLabel,\n    NovoLink,\n    MarginDirective,\n    PaddingDirective,\n    BackgroundColorDirective,\n    TextColorDirective,\n    BorderDirective,\n    GapDirective,\n    AccentColorDirective,\n    FillColorDirective,\n    FlexDirective,\n    ThemeColorDirective,\n    SwitchCasesDirective,\n    VisibleDirective,\n  ],\n  declarations: [\n    NovoTemplate,\n    NovoText,\n    NovoTitle,\n    NovoCaption,\n    NovoLabel,\n    NovoLink,\n    MarginDirective,\n    PaddingDirective,\n    BackgroundColorDirective,\n    TextColorDirective,\n    BorderDirective,\n    GapDirective,\n    AccentColorDirective,\n    FillColorDirective,\n    FlexDirective,\n    ThemeColorDirective,\n    SwitchCasesDirective,\n    VisibleDirective,\n  ],\n})\nexport class NovoCommonModule {}\n","import { Injectable } from '@angular/core';\nimport { FormControl, FormGroupDirective, NgForm } from '@angular/forms';\n\n/** Error state matcher that matches when a control is invalid and dirty. */\n@Injectable()\nexport class ShowOnDirtyErrorStateMatcher implements ErrorStateMatcher {\n  isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\n    return !!(control && control.invalid && (control.dirty || (form && form.submitted)));\n  }\n}\n\n/** Provider that defines how form controls behave with regards to displaying error messages. */\n@Injectable({ providedIn: 'root' })\nexport class ErrorStateMatcher {\n  isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\n    return !!(control && control.invalid && (control.touched || (form && form.submitted)));\n  }\n}\n","import { Constructor } from './constructor';\nimport { HasElementRef } from './types';\n\n/** @docs-private */\nexport interface CanColor {\n  /** Theme color palette for the component. */\n  color: ThemePalette;\n\n  /** Default color to fall back to if no value is set. */\n  defaultColor: ThemePalette | undefined;\n}\n\n/** @docs-private */\nexport type CanColorCtor = Constructor<CanColor>;\n\n/** Possible color palette values. */\nexport type ThemePalette = 'primary' | 'accent' | 'warn' | undefined;\n\n/** Mixin to augment a directive with a `color` property. */\nexport function mixinColor<T extends Constructor<HasElementRef>>(base: T, defaultColor?: ThemePalette): CanColorCtor & T {\n  return class extends base {\n    private _color: ThemePalette;\n    defaultColor = defaultColor;\n\n    get color(): ThemePalette {\n      return this._color;\n    }\n    set color(value: ThemePalette) {\n      const colorPalette = value || this.defaultColor;\n\n      if (colorPalette !== this._color) {\n        if (this._color) {\n          this._elementRef.nativeElement.classList.remove(`novo-color-${this._color}`);\n        }\n        if (colorPalette) {\n          this._elementRef.nativeElement.classList.add(`novo-color-${colorPalette}`);\n        }\n\n        this._color = colorPalette;\n      }\n    }\n\n    constructor(...args: any[]) {\n      super(...args);\n\n      // Set the default color that can be specified from the mixin.\n      this.color = defaultColor;\n    }\n  };\n}\n","import { FormControl, FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { ErrorStateMatcher } from '../error/error-options';\nimport { Constructor } from './constructor';\n\n/** @docs-private */\nexport interface CanUpdateErrorState {\n  updateErrorState(): void;\n  readonly stateChanges: Subject<void>;\n  errorState: boolean;\n  errorStateMatcher: ErrorStateMatcher;\n}\n\n/** @docs-private */\nexport type CanUpdateErrorStateCtor = Constructor<CanUpdateErrorState>;\n\n/** @docs-private */\nexport interface HasErrorState {\n  _parentFormGroup: FormGroupDirective;\n  _parentForm: NgForm;\n  _defaultErrorStateMatcher: ErrorStateMatcher;\n  ngControl: NgControl;\n}\n\n/**\n * Mixin to augment a directive with updateErrorState method.\n * For component with `errorState` and need to update `errorState`.\n */\nexport function mixinErrorState<T extends Constructor<HasErrorState>>(base: T): CanUpdateErrorStateCtor & T {\n  return class extends base {\n    /** Whether the component is in an error state. */\n    errorState: boolean = false;\n\n    /**\n     * Stream that emits whenever the state of the input changes such that the wrapping\n     * `MatFormField` needs to run change detection.\n     */\n    readonly stateChanges = new Subject<void>();\n\n    errorStateMatcher: ErrorStateMatcher;\n\n    updateErrorState() {\n      const oldState = this.errorState;\n      const parent = this._parentFormGroup || this._parentForm;\n      const matcher = this.errorStateMatcher || this._defaultErrorStateMatcher;\n      const control = this.ngControl ? (this.ngControl.control as FormControl) : null;\n      const newState = matcher.isErrorState(control, parent);\n\n      if (newState !== oldState) {\n        this.errorState = newState;\n        this.stateChanges.next();\n      }\n    }\n\n    constructor(...args: any[]) {\n      super(...args);\n    }\n  };\n}\n","import { InjectionToken } from '@angular/core';\nimport { NovoOverlayTemplateComponent } from '../overlay';\nimport { AbstractConstructor, Constructor } from './constructor';\nimport { CanDisable } from './disabled.mixin';\n\n/** @docs-private */\nexport interface HasOverlay {\n  overlay: NovoOverlayTemplateComponent;\n  readonly panelOpen: boolean;\n\n  openPanel(): void;\n  closePanel(): void;\n  togglePanel(): void;\n}\n\nexport const NOVO_OVERLAY_CONTAINER = new InjectionToken<HasOverlay>('NovoOverlayContainer');\n\n/** @docs-private */\nexport type HasOverlayCtor = Constructor<HasOverlay>;\n\n/** Mixin to augment a directive with a `overlay` property. */\nexport function mixinOverlay<T extends AbstractConstructor<CanDisable>>(base: T): HasOverlayCtor & T {\n  // Note: We cast `base` to `unknown` and then `Constructor`. It could be an abstract class,\n  // but given we `extend` it from another class, we can assume a constructor being accessible.\n  abstract class Mixin extends (base as unknown as Constructor<CanDisable>) {\n    abstract overlay: NovoOverlayTemplateComponent;\n\n    constructor(...args: any[]) {\n      super(...args); // eslint-disable-line\n    }\n\n    openPanel(): void {\n      if (!this.disabled) {\n        this.overlay.openPanel();\n      }\n    }\n\n    closePanel(): void {\n      this.overlay.closePanel();\n    }\n\n    togglePanel(): void {\n      if (this.panelOpen) {\n        this.closePanel();\n      } else {\n        this.openPanel();\n      }\n    }\n\n    get panelOpen(): boolean {\n      return this.overlay && this.overlay.panelOpen;\n    }\n  }\n\n  // Since we don't directly extend from `base` with it's original types, and we instruct\n  // TypeScript that `T` actually is instantiatable through `new`, the types don't overlap.\n  // This is a limitation in TS as abstract classes cannot be typed properly dynamically.\n  return Mixin as unknown as T & Constructor<HasOverlay>;\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Constructor } from './constructor';\n\n/** @docs-private */\nexport interface CanRequire {\n  /** Whether the component is required. */\n  required: boolean;\n}\n\n/** @docs-private */\nexport type CanRequireCtor = Constructor<CanRequire>;\n\n/** Mixin to augment a directive with a `required` property. */\nexport function mixinRequired<T extends Constructor<{}>>(base: T): CanRequireCtor & T {\n  return class extends base {\n    private _required: boolean = false;\n\n    get required() {\n      return this._required;\n    }\n    set required(value: any) {\n      this._required = coerceBooleanProperty(value);\n    }\n\n    constructor(...args: any[]) {\n      super(...args);\n    }\n  };\n}\n","import { Constructor } from './constructor';\nimport { HasElementRef } from './types';\n\n/** Possible size palette values. */\nexport type ElementSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'body' | undefined;\n\n/** @docs-private */\nexport interface CanSize {\n  /** Theme size palette for the component. */\n  size: ElementSize;\n\n  /** Default size to fall back to if no value is set. */\n  defaultSize: ElementSize | undefined;\n}\n\n/** @docs-private */\nexport type CanSizeCtor = Constructor<CanSize>;\n\n/** Mixin to augment a directive with a `size` property. */\nexport function mixinSize<T extends Constructor<HasElementRef>>(base: T, defaultSize?: ElementSize): CanSizeCtor & T {\n  return class extends base {\n    private _size: ElementSize;\n    defaultSize = defaultSize;\n\n    get size(): ElementSize {\n      return this._size;\n    }\n    set size(value: ElementSize) {\n      const size = value || this.defaultSize;\n      if (size !== this._size) {\n        if (this._size) {\n          this._elementRef.nativeElement.classList.remove(`novo-size-${this._size}`);\n        }\n        if (size) {\n          this._elementRef.nativeElement.classList.add(`novo-size-${size}`);\n        }\n\n        this._size = size;\n      }\n    }\n\n    constructor(...args: any[]) {\n      super(...args);\n      // Set the default size that can be specified from the mixin.\n      this.size = defaultSize;\n    }\n  };\n}\n","import { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { AbstractConstructor, Constructor } from './constructor';\nimport { CanDisable } from './disabled.mixin';\n\n/** @docs-private */\nexport interface HasTabIndex {\n  /** Tabindex of the component. */\n  tabIndex: number;\n\n  /** Tabindex to which to fall back to if no value is set. */\n  defaultTabIndex: number;\n}\n\n/** @docs-private */\nexport type HasTabIndexCtor = Constructor<HasTabIndex>;\n\n/** Mixin to augment a directive with a `tabIndex` property. */\nexport function mixinTabIndex<T extends AbstractConstructor<CanDisable>>(base: T, defaultTabIndex = 0): HasTabIndexCtor & T {\n  // Note: We cast `base` to `unknown` and then `Constructor`. It could be an abstract class,\n  // but given we `extend` it from another class, we can assume a constructor being accessible.\n  abstract class Mixin extends (base as unknown as Constructor<CanDisable>) {\n    private _tabIndex: number = defaultTabIndex;\n    defaultTabIndex = defaultTabIndex;\n\n    get tabIndex(): number {\n      return this.disabled ? -1 : this._tabIndex;\n    }\n    set tabIndex(value: number) {\n      // If the specified tabIndex value is null or undefined, fall back to the default value.\n      this._tabIndex = value != null ? coerceNumberProperty(value) : this.defaultTabIndex;\n    }\n\n    constructor(...args: any[]) {\n      super(...args); // eslint-disable-line\n    }\n  }\n\n  // Since we don't directly extend from `base` with it's original types, and we instruct\n  // TypeScript that `T` actually is instantiatable through `new`, the types don't overlap.\n  // This is a limitation in TS as abstract classes cannot be typed properly dynamically.\n  return Mixin as unknown as T & Constructor<HasTabIndex>;\n}\n","// Angular\nimport {\n  ConnectedPosition,\n  FlexibleConnectedPositionStrategy,\n  HorizontalConnectionPos,\n  Overlay,\n  OverlayConfig,\n  OverlayContainer,\n  OverlayRef,\n  ScrollStrategy,\n  VerticalConnectionPos,\n} from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\n\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  DestroyRef,\n  ElementRef,\n  EventEmitter,\n  inject,\n  Inject,\n  Input,\n  NgZone,\n  OnDestroy,\n  Optional,\n  Output,\n  TemplateRef,\n  ViewChild,\n  ViewContainerRef,\n  DOCUMENT,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n// Vendor\nimport { Helpers } from 'novo-elements/utils';\nimport { fromEvent, merge, Observable, of as observableOf, Subscription } from 'rxjs';\nimport { filter, first, switchMap } from 'rxjs/operators';\n\n@Component({\n    selector: 'novo-overlay-template',\n    styleUrls: ['Overlay.scss'],\n    template: `\n    <ng-template>\n      <div class=\"novo-overlay-panel\" role=\"listbox\" [id]=\"id\" #panel><ng-content></ng-content></div>\n    </ng-template>\n  `,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false,\n})\nexport class NovoOverlayTemplateComponent implements OnDestroy {\n  public id: string = `novo-overlay-${Date.now()}`;\n\n  @ViewChild(TemplateRef)\n  public template: TemplateRef<any>;\n  @ViewChild('panel')\n  public panel: ElementRef;\n\n  @Input()\n  public position:\n    | 'default'\n    | 'right'\n    | 'above-below'\n    | 'right-above-below'\n    | 'center'\n    | 'bottom'\n    | 'bottom-left'\n    | 'bottom-right'\n    | 'top-left'\n    | 'top-right' = 'default';\n  @Input()\n  public scrollStrategy: 'reposition' | 'block' | 'close' = 'reposition';\n  @Input()\n  public width: number;\n  @Input()\n  public minWidth: number;\n  @Input()\n  public height: number;\n  @Input()\n  public closeOnSelect: boolean = true;\n  @Input()\n  public hasBackdrop: boolean = false;\n\n  @Output()\n  public select: EventEmitter<any> = new EventEmitter();\n  @Output()\n  public opening: EventEmitter<any> = new EventEmitter();\n  @Output()\n  public closing: EventEmitter<any> = new EventEmitter();\n  @Output()\n  public backDropClicked: EventEmitter<any> = new EventEmitter();\n\n  public overlayRef: OverlayRef | null;\n  public portal: TemplatePortal<any>;\n\n  // The subscription for closing actions (some are bound to document)\n  protected closingActionsSubscription: Subscription;\n  private _parent: ElementRef;\n  private overlayContainer: OverlayContainer = inject(OverlayContainer);\n  private destroyRef = inject(DestroyRef);\n  private overlayContext: string;\n\n  constructor(\n    protected overlay: Overlay,\n    protected viewContainerRef: ViewContainerRef,\n    protected zone: NgZone,\n    protected changeDetectorRef: ChangeDetectorRef,\n    @Optional()\n    @Inject(DOCUMENT)\n    protected document: any,\n  ) {}\n\n  public ngOnDestroy(): void {\n    this.destroyOverlay();\n  }\n\n  get panelOpen(): boolean {\n    return this.overlayRef?.hasAttached();\n  }\n\n  @Input()\n  public set parent(value: ElementRef) {\n    this._parent = value;\n    this.checkSizes();\n  }\n\n  public get parent(): ElementRef {\n    return this._parent;\n  }\n\n  public openPanel(): void {\n    if (!this.parent?.nativeElement) {\n      return;\n    }\n    if (!this.overlayRef) {\n      this.createOverlay(this.template);\n    } else {\n      this.checkSizes();\n    }\n    if (this.overlayRef && !this.overlayRef.hasAttached()) {\n      this.overlayRef.attach(this.portal);\n      this.closingActionsSubscription = this.subscribeToClosingActions();\n    }\n    this.changeDetectorRef.markForCheck();\n    setTimeout(() => {\n      if (this.overlayRef) {\n        if (this.overlayContainer.getContainerElement()?.attributes.getNamedItem('novoContext')) {\n            this.overlayContext = this.overlayContainer.getContainerElement().attributes.getNamedItem('novoContext').value;\n        }\n        this.overlayRef.updatePosition();\n        this.opening.emit(true);\n        setTimeout(() => {\n          // TODO: @charlesabarnes Remove this once we remove table\n          if (this.overlayRef) {\n            this.overlayRef.updatePosition();\n          }\n        });\n      }\n    });\n  }\n\n  public closePanel(): void {\n    this.zone.run(() => {\n      if (this.overlayRef?.hasAttached()) {\n        this.overlayRef.detach();\n        this.closingActionsSubscription.unsubscribe();\n      }\n      this.closing.emit(false);\n      if (this.panelOpen) {\n        this.changeDetectorRef.markForCheck();\n      }\n    });\n  }\n\n  public onClosingAction(event: any): void {\n    this.closePanel();\n  }\n\n  /**\n   * A stream of actions that should close the panel, including\n   * when an option is selected, on blur, and when TAB is pressed.\n   */\n  public get panelClosingActions(): Observable<any> {\n    return merge(\n      this.outsideClickStream,\n    );\n  }\n\n  /** Stream of clicks outside of the panel. */\n  protected get outsideClickStream(): Observable<any> {\n    if (!this.document) {\n      return observableOf();\n    }\n\n    return merge(fromEvent(this.document, 'mouseup'), fromEvent(this.document, 'touchend')).pipe(\n      filter((event: MouseEvent | TouchEvent) => {\n        const clickTarget: HTMLElement = event.target as HTMLElement;\n        const connectedElement = this.getConnectedElement();\n        const clickedOutside: boolean =\n          this.panelOpen &&\n          connectedElement &&\n          clickTarget !== connectedElement.nativeElement &&\n          this.isInDocument(clickTarget) &&\n          !connectedElement.nativeElement.contains(clickTarget) &&\n          (!!this.overlayRef && !this.overlayRef.overlayElement.contains(clickTarget)) &&\n          this.elementIsInContext(clickTarget) &&\n          !this.elementIsInNestedOverlay(clickTarget);\n        if (this.panelOpen && !!this.overlayRef && this.overlayRef.overlayElement.contains(clickTarget) && this.closeOnSelect) {\n          this.select.emit(event);\n        }\n        return clickedOutside;\n      }),\n    );\n  }\n\n  private isInDocument(node: Node): boolean {\n    return node.getRootNode().nodeType === Node.DOCUMENT_NODE;\n  }\n\n  /**\n   * This method listens to a stream of panel closing actions and resets the\n   * stream every time the option list changes.\n   */\n  protected subscribeToClosingActions(): Subscription {\n    const firstStable: Observable<any> = this.zone.onStable.asObservable().pipe(first());\n    // When the zone is stable initially, and when the option list changes...\n    return (\n      merge(firstStable)\n        .pipe(\n          // create a new stream of panelClosingActions, replacing any previous streams\n          // that were created, and flatten it so our stream only emits closing events...\n          switchMap(() => {\n            return this.panelClosingActions;\n          }),\n          // when the first closing event occurs...\n          first(),\n        )\n        // set the value, close the panel, and complete.\n        .subscribe((event: any) => this.onClosingAction(event))\n    );\n  }\n\n  protected createOverlay(template: TemplateRef<any>): void {\n    this.portal = new TemplatePortal(template, this.viewContainerRef);\n    this.overlayRef = this.overlay.create(this.getOverlayConfig());\n    this.overlayRef.backdropClick().pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n      this.backDropClicked.emit(true);\n      this.closePanel();\n    });\n  }\n\n  protected destroyOverlay(): void {\n    if (this.overlayRef) {\n      this.closePanel();\n      this.overlayRef.dispose();\n      this.overlayRef = undefined;\n    }\n  }\n\n  protected getOverlayConfig(): OverlayConfig {\n    const config: OverlayConfig = new OverlayConfig();\n\n    if (!this.width) {\n      config.width = this.getHostWidth();\n    } else {\n      config.width = this.width;\n    }\n\n    if (this.minWidth) {\n      config.minWidth = this.minWidth;\n    }\n\n    if (this.height) {\n      config.height = this.height;\n    }\n\n    config.positionStrategy = this.getPosition();\n    config.hasBackdrop = this.hasBackdrop;\n    config.direction = 'ltr';\n    config.scrollStrategy = this.getScrollStrategy();\n\n    return config;\n  }\n\n  /**\n   * Supports the following position strategies:\n   * 'default', 'right', 'bottom', 'center', 'bottom-left', 'bottom-right', 'top-left', 'top-right'\n   */\n  protected getPosition(): FlexibleConnectedPositionStrategy {\n    if (this.position === 'center') {\n      return this.overlay\n        .position()\n        .flexibleConnectedTo(this.getConnectedElement())\n        .withFlexibleDimensions(false)\n        .withPositions([\n          { originX: 'start', originY: 'center', overlayX: 'start', overlayY: 'center' },\n          { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'top' },\n          { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'bottom' },\n        ]);\n    }\n\n    const [originX, fallbackX]: HorizontalConnectionPos[] = this.position.includes('right') ? ['end', 'start'] : ['start', 'end'];\n    const [originY, overlayY]: VerticalConnectionPos[] = this.position.includes('top') ? ['top', 'bottom'] : ['bottom', 'top'];\n    const defaultPosition: ConnectedPosition = { originX, originY, overlayX: originX, overlayY };\n    let strategy: FlexibleConnectedPositionStrategy = this.overlay\n      .position()\n      .flexibleConnectedTo(this.getConnectedElement())\n      .withFlexibleDimensions(false)\n      .withPositions([defaultPosition]);\n    if (this.position === 'bottom') {\n      strategy = strategy.withPositions([defaultPosition, { originX: fallbackX, originY: 'bottom', overlayX: fallbackX, overlayY: 'top' }]);\n    } else if (this.position === 'right' || this.position === 'default' || this.position.includes('above-below')) {\n      strategy = strategy.withPositions([\n        defaultPosition,\n        { originX, originY: 'top', overlayX: originX, overlayY: 'bottom' },\n        { originX: fallbackX, originY: 'bottom', overlayX: fallbackX, overlayY: 'top' },\n        { originX: fallbackX, originY: 'top', overlayX: fallbackX, overlayY: 'bottom' },\n      ]);\n      if (!this.position.includes('above-below')) {\n        strategy = strategy.withPositions([\n          defaultPosition,\n          { originX, originY: 'center', overlayX: originX, overlayY: 'center' },\n          { originX: fallbackX, originY: 'center', overlayX: fallbackX, overlayY: 'center' },\n        ]);\n      }\n    }\n    return strategy;\n  }\n\n  protected getScrollStrategy(): ScrollStrategy {\n    switch (this.scrollStrategy) {\n      case 'block':\n        return this.overlay.scrollStrategies.block();\n      case 'reposition':\n        return this.overlay.scrollStrategies.reposition();\n      default:\n        return this.overlay.scrollStrategies.close();\n    }\n  }\n\n  protected checkSizes(): void {\n    if (this.overlayRef) {\n      if (!this.width) {\n        this.overlayRef.getConfig().width = this.getHostWidth();\n      }\n      if (this.minWidth) {\n        this.overlayRef.getConfig().minWidth = this.minWidth;\n      }\n      if (this.height) {\n        this.overlayRef.getConfig().height = this.height;\n      }\n      this.overlayRef.updateSize(this.overlayRef.getConfig());\n      this.overlayRef.updatePosition();\n      this.changeDetectorRef.markForCheck();\n    }\n  }\n\n  protected getConnectedElement(): ElementRef {\n    return this.parent;\n  }\n\n  private elementIsInContext(el) {\n    // this is to support multiple overlay contexts\n    if (this.overlayContext) {\n      while (el.parentNode) {\n        if (el.localName === this.overlayContext) {\n          return true;\n        }\n        el = el.parentNode;\n      }\n      return false;\n    }\n    return true;\n  }\n\n  protected elementIsInNestedOverlay(el): boolean {\n    while (el.parentNode) {\n      if (Helpers.isString(el.id) &&\n        (el.id?.includes('novo-overlay-') || el.id?.includes('modal-container-'))) {\n        // checking to see if the current overlay is newer (in front of the parent overlay)\n        // example text novo-overlay-1666291728835\n        return this.id.split('-')[2] < el.id.split('-')[2];\n      }\n      el = el.parentNode;\n    }\n    return false;\n  }\n\n  protected getHostWidth(): number {\n    const element = this.getConnectedElement();\n    if (!element?.nativeElement) {\n      return 0;\n    }\n    return element.nativeElement.getBoundingClientRect().width;\n  }\n\n  public isBlurRecipient(event: FocusEvent): boolean {\n    if (!this.overlayRef || !event.relatedTarget) {\n      return false;\n    }\n    return this.overlayRef.overlayElement.contains(event.relatedTarget as HTMLElement);\n  }\n}\n","// NG2\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n// APP\nimport { NovoOverlayTemplateComponent } from './Overlay';\n\n@NgModule({\n  imports: [CommonModule, FormsModule, OverlayModule, ScrollingModule],\n  declarations: [NovoOverlayTemplateComponent],\n  exports: [NovoOverlayTemplateComponent, ScrollingModule],\n})\nexport class NovoOverlayModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.NovoTheme","isValidColor","__decorate","i2","i3.NovoPseudoCheckbox","observableOf"],"mappings":"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"}