@visa/nova-angular
Version:
Visa Product Design System Nova Angular library. Compatible with Angular ^19.0.0 || ^20.0.0 || ^21.0.0.
1,013 lines (972 loc) • 214 kB
TypeScript
import * as i0 from '@angular/core';
import { Signal, InputSignalWithTransform, InputSignal, ElementRef, ModelSignal, WritableSignal, AfterContentInit, OnInit, OutputEmitterRef, EventEmitter } from '@angular/core';
import { CheckboxControlValueAccessor, DefaultValueAccessor, RadioControlValueAccessor, ControlValueAccessor } from '@angular/forms';
import { Middleware } from '@floating-ui/dom';
declare class AddArrowKeysDirective {
private readonly items;
private readonly renderer;
ngAfterContentInit(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<AddArrowKeysDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<AddArrowKeysDirective, "[vAddArrowKeys]", never, {}, {}, ["items"], never, true, never>;
}
/**
* Directive to add alternate surface class, <code>class="v-alternate"</code>, to the host element.
*/
declare class AlternateDirective {
static ɵfac: i0.ɵɵFactoryDeclaration<AlternateDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<AlternateDirective, "[vAlternate]", never, {}, {}, never, never, true, never>;
}
/**
* © 2025-2026 Visa
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
**/
declare const BreakpointType: {
readonly XS: "xs";
readonly SM: "sm";
readonly MD: "md";
readonly LG: "lg";
readonly XL: "xl";
readonly XXL: "xxl";
readonly MOBILE: "mobile";
readonly DESKTOP: "desktop";
};
type BreakpointType = (typeof BreakpointType)[keyof typeof BreakpointType];
declare const coerceBreakpoint: (type: "container" | "media", classes: BreakpointType | BreakpointType[] | null) => string | null;
declare class BreakpointsDirective {
protected readonly classes: Signal<string>;
/**
* Hides element when within given _container_ breakpoint.
*/
readonly vContainerHide: InputSignalWithTransform<string | null, BreakpointType | BreakpointType[] | null>;
/**
* Hides element when true.
*/
readonly vHide: InputSignalWithTransform<boolean | null, unknown>;
/**
* Hides element when within given _media_ breakpoint.
*/
readonly vMediaHide: InputSignalWithTransform<string | null, BreakpointType | BreakpointType[] | null>;
static ɵfac: i0.ɵɵFactoryDeclaration<BreakpointsDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<BreakpointsDirective, "[vContainerHide], [vMediaHide], [vHide]", never, { "vContainerHide": { "alias": "vContainerHide"; "required": false; "isSignal": true; }; "vHide": { "alias": "vHide"; "required": false; "isSignal": true; }; "vMediaHide": { "alias": "vMediaHide"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}
/**
* The class, <code>class="v-icon-tow-color"</code>, applied by this directive only changes Visa Library icons.
*/
declare class DualIconDirective {
static ɵfac: i0.ɵɵFactoryDeclaration<DualIconDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<DualIconDirective, "[v-icon-two-color], ", never, {}, {}, never, never, true, never>;
}
/**
* © 2025-2026 Visa
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
**/
declare const ElevationType: {
readonly NONE: "none";
readonly INSET: "inset";
readonly XS: "xs";
readonly SM: "sm";
readonly MD: "md";
readonly LG: "lg";
readonly XL: "xl";
readonly XXL: "xxl";
};
type ElevationType = (typeof ElevationType)[keyof typeof ElevationType];
declare class ElevationDirective {
/**
* Applies elevation given.
*/
readonly vElevation: InputSignal<ElevationType | undefined>;
static ɵfac: i0.ɵɵFactoryDeclaration<ElevationDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<ElevationDirective, "[vElevation]", never, { "vElevation": { "alias": "vElevation"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}
/**
* © 2025-2026 Visa
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
**/
declare const DOWN_ARROW_KEY = "ArrowDown";
declare const END_KEY = "End";
declare const ESCAPE_KEY = "Escape";
declare const HOME_KEY = "Home";
declare const LEFT_ARROW_KEY = "ArrowLeft";
declare const RIGHT_ARROW_KEY = "ArrowRight";
declare const SPACE_KEY = " ";
declare const SPACE_CODE = "Space";
declare const TAB_KEY = "Tab";
declare const UP_ARROW_KEY = "ArrowUp";
declare const ENTER_KEY = "Enter";
declare const BACKSPACE_KEY = "Backspace";
declare const SpacingProperties: {
readonly INHERIT: "inherit";
readonly NORMAL: "normal";
readonly AUTO: "auto";
};
type SpacingProperties = (typeof SpacingProperties)[keyof typeof SpacingProperties] | number;
/**
* © 2025-2026 Visa
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
**/
declare class FlexDirective {
protected readonly classes: Signal<string>;
/**
/**
* Sets property <code>align-content: space-around</code>. <br>
* This property should be used alongside a FlexDirective selector (see selectors above).
*/
readonly vAlignContentAround: InputSignalWithTransform<boolean, unknown>;
/**
* Sets property <code>align-content: space-between</code>. <br>
* This property should be used alongside a FlexDirective selector (see selectors above).
*/
readonly vAlignContentBetween: InputSignalWithTransform<boolean, unknown>;
/**
* Sets property <code>align-content: center</code>. <br>
* This property should be used alongside a FlexDirective selector (see selectors above)
*/
readonly vAlignContentCenter: InputSignalWithTransform<boolean, unknown>;
/**
* Sets property <code>align-content: end</code>. <br>
* This property should be used alongside a FlexDirective selector (see selectors above).
*/
readonly vAlignContentEnd: InputSignalWithTransform<boolean, unknown>;
/**
* Sets property <code>align-content: start</code>. <br>
* This property should be used alongside a FlexDirective selector (see selectors above)
*/
readonly vAlignContentStart: InputSignalWithTransform<boolean, unknown>;
/**
* Sets property <code>align-content: space-evenly</code>. <br>
* This property should be used alongside a FlexDirective selector (see selectors above).
*/
readonly vAlignContentEvenly: InputSignalWithTransform<boolean, unknown>;
/**
* Sets property <code>align-items: baseline</code>. <br>
* This property should be used alongside a FlexDirective selector (see selectors above).
*/
readonly vAlignItemsBaseline: InputSignalWithTransform<boolean, unknown>;
/**
* Sets property <code>align-content: center</code>. <br>
* This property should be used alongside a FlexDirective selector (see selectors above).
*/
readonly vAlignItemsCenter: InputSignalWithTransform<boolean, unknown>;
/**
* Sets property <code>align-content: end</code>. <br>
* This property should be used alongside a FlexDirective selector (see selectors above).
*/
readonly vAlignItemsEnd: InputSignalWithTransform<boolean, unknown>;
/**
* Sets property <code>align-content: start</code>. <br>
* This property should be used alongside a FlexDirective selector (see selectors above).
*/
readonly vAlignItemsStart: InputSignalWithTransform<boolean, unknown>;
/**
* Sets property <code>align-items: stretch</code>. <br>
* This property should be used alongside a FlexDirective selector (see selectors above).
*/
readonly vAlignItemsStretch: InputSignalWithTransform<boolean, unknown>;
/**
* Sets property <code>align-self: auto</code>. <br>
* This property is also a selector and can be used by itself on the <i>child</i> of a flex element.
*/
readonly vAlignSelfAuto: InputSignalWithTransform<boolean, unknown>;
/**
* Sets property <code>align-self: baseline</code>. <br>
* This property is also a selector and can be used by itself on the <i>child</i> of a flex element.
*/
readonly vAlignSelfBaseline: InputSignalWithTransform<boolean, unknown>;
/**
* Sets property <code>align-self: center</code>. <br>
* This property is also a selector and can be used by itself on the <i>child</i> of a flex element.
*/
readonly vAlignSelfCenter: InputSignalWithTransform<boolean, unknown>;
/**
* Sets property <code>align-self: end</code>. <br>
* This property is also a selector and can be used by itself on the <i>child</i> of a flex element.
*/
readonly vAlignSelfEnd: InputSignalWithTransform<boolean, unknown>;
/**
* Sets property <code>align-self: start</code>. <br>
* This property is also a selector and can be used by itself on the <i>child</i> of a flex element.
*/
readonly vAlignSelfStart: InputSignalWithTransform<boolean, unknown>;
/**
* Sets property <code>align-self: stretch</code>. <br>
* This property is also a selector and can be used by itself on the <i>child</i> of a flex element.
*/
readonly vAlignSelfStretch: InputSignalWithTransform<boolean, unknown>;
/**
* Sets property <code>column-gap</code>. <br>Accepts gap: 0 - 48 and SpacingProperties.
*/
readonly vColGap: InputSignal<null | number | SpacingProperties | string | undefined>;
/**
* Sets property <code>display: flex</code>. <br>
* This property is also a selector and can be used by itself on a flex element.
*/
readonly vFlex: InputSignalWithTransform<boolean, unknown>;
/**
* Sets property <code>flex-basis: <value></code>. <br>
* Accepts a string that should be in the form of a percentage or CSS unit. <br />
* This property is also a selector and can be used by itself on the <i>child</i> of a flex element.
*/
readonly vFlexBasis: InputSignal<null | string>;
/**
* Sets property <code>flex-direction: column</code>. <br>
* This property should be used alongside a FlexDirective selector (see selectors above).
*/
readonly vFlexCol: InputSignalWithTransform<boolean, unknown>;
/**
* Sets property <code>flex-direction: column-reverse</code>. <br>
* This property should be used alongside a FlexDirective selector (see selectors above).
*/
readonly vFlexColReverse: InputSignalWithTransform<boolean, unknown>;
/**
* Sets property <code>flex-grow: 1</code>. <br>
* This property is also a selector and can be used by itself on the <i>child</i> of a flex element.
*/
readonly vFlexGrow: InputSignalWithTransform<boolean, unknown>;
/**
* Sets property <code>flex-grow: 0</code>. <br>
* This property is also a selector and can be used by itself on the <i>child</i> of a flex element.
*/
readonly vFlexGrow0: InputSignalWithTransform<boolean, unknown>;
/**
* Sets property <code>display: inline-flex</code>. <br>
* This property is also a selector and can be used by itself on a flex element.
*/
readonly vFlexInline: InputSignalWithTransform<boolean, unknown>;
/**
* Sets property <code>flex-wrap: no-wrap</code>. <br>
* This property should be used alongside a FlexDirective selector (see selectors above).
*/
readonly vFlexNoWrap: InputSignalWithTransform<boolean, unknown>;
/**
* Sets property <code>flex-direction: row</code>. <br>
* This property should be used alongside a FlexDirective selector (see selectors above).
*/
readonly vFlexRow: InputSignalWithTransform<boolean, unknown>;
/**
* Sets property <code>flex-direction: row-reverse</code>. <br>
* This property should be used alongside a FlexDirective selector (see selectors above).
*/
readonly vFlexRowReverse: InputSignalWithTransform<boolean, unknown>;
/**
* Sets property <code>flex-shrink: 1</code>. <br>
* This property is also a selector and can be used by itself on the <i>child</i> of a flex element.
*/
readonly vFlexShrink: InputSignalWithTransform<boolean, unknown>;
/**
* Sets property <code>flex-shrink: 0</code>. <br>
* This property is also a selector and can be used by itself on the <i>child</i> of a flex element.
*/
readonly vFlexShrink0: InputSignalWithTransform<boolean, unknown>;
/**
* Sets property <code>flex-wrap: wrap</code>. <br>
* This property should be used alongside a FlexDirective selector (see selectors above).
*/
readonly vFlexWrap: InputSignalWithTransform<boolean, unknown>;
/**
* Sets property <code>flex-wrap: wrap-reverse</code>. <br>
* This property should be used alongside a FlexDirective selector (see selectors above).
*/
readonly vFlexWrapReverse: InputSignalWithTransform<boolean, unknown>;
/**
* Sets property <code>gap</code>. <br>Accepts gap: 0 - 48 and SpacingProperties.
*/
readonly vGap: InputSignal<null | number | SpacingProperties | string | undefined>;
/**
* Sets property <code>justify-content: space-around</code>. <br>
* This property should be used alongside a FlexDirective selector (see selectors above).
*/
readonly vJustifyContentAround: InputSignalWithTransform<boolean, unknown>;
/**
* Sets property <code>justify-content: space-between</code>. <br>
* This property should be used alongside a FlexDirective selector (see selectors above).
*/
readonly vJustifyContentBetween: InputSignalWithTransform<boolean, unknown>;
/**
* Sets property <code>justify-content: center</code>. <br>
* This property should be used alongside a FlexDirective selector (see selectors above).
*/
readonly vJustifyContentCenter: InputSignalWithTransform<boolean, unknown>;
/**
* Sets property <code>justify-content: end</code>. <br>
* This property should be used alongside a FlexDirective selector (see selectors above).
*/
readonly vJustifyContentEnd: InputSignalWithTransform<boolean, unknown>;
/**
* Sets property <code>justify-content: space-evenly</code>. <br>
* This property should be used alongside a FlexDirective selector (see selectors above).
*/
readonly vJustifyContentEvenly: InputSignalWithTransform<boolean, unknown>;
/**
* Sets property <code>justify-content: start</code>. <br>
* This property should be used alongside a FlexDirective selector (see selectors above).
*/
readonly vJustifyContentStart: InputSignalWithTransform<boolean, unknown>;
/**
* Sets property <code>row-gap</code>. <br>Accepts gap: 0 - 48 and SpacingProperties.
*/
readonly vRowGap: InputSignal<null | number | SpacingProperties | string | undefined>;
static ɵfac: i0.ɵɵFactoryDeclaration<FlexDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<FlexDirective, "[vFlex], [vFlexInline], [vGap], [vFlexGrow], [vFlexGrow0], [vFlexShrink], [vFlexShrink0], [vFlexBasis], [vAlignSelfStart], [vAlignSelfEnd], [vAlignSelfCenter], [vAlignSelfStretch], [vAlignSelfAuto], [vAlignSelfBaseline],", never, { "vAlignContentAround": { "alias": "vAlignContentAround"; "required": false; "isSignal": true; }; "vAlignContentBetween": { "alias": "vAlignContentBetween"; "required": false; "isSignal": true; }; "vAlignContentCenter": { "alias": "vAlignContentCenter"; "required": false; "isSignal": true; }; "vAlignContentEnd": { "alias": "vAlignContentEnd"; "required": false; "isSignal": true; }; "vAlignContentStart": { "alias": "vAlignContentStart"; "required": false; "isSignal": true; }; "vAlignContentEvenly": { "alias": "vAlignContentEvenly"; "required": false; "isSignal": true; }; "vAlignItemsBaseline": { "alias": "vAlignItemsBaseline"; "required": false; "isSignal": true; }; "vAlignItemsCenter": { "alias": "vAlignItemsCenter"; "required": false; "isSignal": true; }; "vAlignItemsEnd": { "alias": "vAlignItemsEnd"; "required": false; "isSignal": true; }; "vAlignItemsStart": { "alias": "vAlignItemsStart"; "required": false; "isSignal": true; }; "vAlignItemsStretch": { "alias": "vAlignItemsStretch"; "required": false; "isSignal": true; }; "vAlignSelfAuto": { "alias": "vAlignSelfAuto"; "required": false; "isSignal": true; }; "vAlignSelfBaseline": { "alias": "vAlignSelfBaseline"; "required": false; "isSignal": true; }; "vAlignSelfCenter": { "alias": "vAlignSelfCenter"; "required": false; "isSignal": true; }; "vAlignSelfEnd": { "alias": "vAlignSelfEnd"; "required": false; "isSignal": true; }; "vAlignSelfStart": { "alias": "vAlignSelfStart"; "required": false; "isSignal": true; }; "vAlignSelfStretch": { "alias": "vAlignSelfStretch"; "required": false; "isSignal": true; }; "vColGap": { "alias": "vColGap"; "required": false; "isSignal": true; }; "vFlex": { "alias": "vFlex"; "required": false; "isSignal": true; }; "vFlexBasis": { "alias": "vFlexBasis"; "required": false; "isSignal": true; }; "vFlexCol": { "alias": "vFlexCol"; "required": false; "isSignal": true; }; "vFlexColReverse": { "alias": "vFlexColReverse"; "required": false; "isSignal": true; }; "vFlexGrow": { "alias": "vFlexGrow"; "required": false; "isSignal": true; }; "vFlexGrow0": { "alias": "vFlexGrow0"; "required": false; "isSignal": true; }; "vFlexInline": { "alias": "vFlexInline"; "required": false; "isSignal": true; }; "vFlexNoWrap": { "alias": "vFlexNoWrap"; "required": false; "isSignal": true; }; "vFlexRow": { "alias": "vFlexRow"; "required": false; "isSignal": true; }; "vFlexRowReverse": { "alias": "vFlexRowReverse"; "required": false; "isSignal": true; }; "vFlexShrink": { "alias": "vFlexShrink"; "required": false; "isSignal": true; }; "vFlexShrink0": { "alias": "vFlexShrink0"; "required": false; "isSignal": true; }; "vFlexWrap": { "alias": "vFlexWrap"; "required": false; "isSignal": true; }; "vFlexWrapReverse": { "alias": "vFlexWrapReverse"; "required": false; "isSignal": true; }; "vGap": { "alias": "vGap"; "required": false; "isSignal": true; }; "vJustifyContentAround": { "alias": "vJustifyContentAround"; "required": false; "isSignal": true; }; "vJustifyContentBetween": { "alias": "vJustifyContentBetween"; "required": false; "isSignal": true; }; "vJustifyContentCenter": { "alias": "vJustifyContentCenter"; "required": false; "isSignal": true; }; "vJustifyContentEnd": { "alias": "vJustifyContentEnd"; "required": false; "isSignal": true; }; "vJustifyContentEvenly": { "alias": "vJustifyContentEvenly"; "required": false; "isSignal": true; }; "vJustifyContentStart": { "alias": "vJustifyContentStart"; "required": false; "isSignal": true; }; "vRowGap": { "alias": "vRowGap"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}
/**
* © 2025-2026 Visa
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
**/
declare class MarginDirective {
protected readonly classes: Signal<string>;
/**
* Sets margin-block-start property. <br>
* Accepts: 0 - 48 or <code>SpacingProperties</code>.
*/
readonly vM: InputSignalWithTransform<string | null, SpacingProperties | string | undefined>;
/**
* Sets margin-inline-end property. <br>
* Accepts: 0 - 48 or <code>SpacingProperties</code>.
*/
readonly vMB: InputSignalWithTransform<string | null, SpacingProperties | string | undefined>;
/**
* Sets margin-block-end property. <br>
* Accepts: 0 - 48 or <code>SpacingProperties</code>.
*/
readonly vML: InputSignalWithTransform<string | null, SpacingProperties | string | undefined>;
/**
* Sets margin-inline-start property. <br>
* Accepts: 0 - 48 or <code>SpacingProperties</code>.
*/
readonly vMR: InputSignalWithTransform<string | null, SpacingProperties | string | undefined>;
/**
* Sets margin-inline property. <br>
* Accepts: 0 - 48 or <code>SpacingProperties</code>.
*/
readonly vMT: InputSignalWithTransform<string | null, SpacingProperties | string | undefined>;
/**
* Sets margin-block property. <br>
* Accepts: 0 - 48 or <code>SpacingProperties</code>.
*/
readonly vMX: InputSignalWithTransform<string | null, SpacingProperties | string | undefined>;
/**
* Sets margin property. <br>
* Accepts: 0 - 48 or <code>SpacingProperties</code>.
*/
readonly vMY: InputSignalWithTransform<string | null, SpacingProperties | string | undefined>;
static ɵfac: i0.ɵɵFactoryDeclaration<MarginDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<MarginDirective, "[vM], [vMB], [vML], [vMR], [vMT], [vMX], [vMY], ", never, { "vM": { "alias": "vM"; "required": false; "isSignal": true; }; "vMB": { "alias": "vMB"; "required": false; "isSignal": true; }; "vML": { "alias": "vML"; "required": false; "isSignal": true; }; "vMR": { "alias": "vMR"; "required": false; "isSignal": true; }; "vMT": { "alias": "vMT"; "required": false; "isSignal": true; }; "vMX": { "alias": "vMX"; "required": false; "isSignal": true; }; "vMY": { "alias": "vMY"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}
/**
* © 2025-2026 Visa
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
**/
declare class OpensInNewTabDirective {
constructor();
private readonly el;
private readonly textContent;
/**
* Allows user to set custom aria-label attribute.
* @default '<inner-text-of-link> (opens in new tab)'
*/
readonly ariaLabelInput: InputSignal<string | null>;
readonly ariaLabel: Signal<string | null>;
static ɵfac: i0.ɵɵFactoryDeclaration<OpensInNewTabDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<OpensInNewTabDirective, "[vOpensInNewTab], ", never, { "ariaLabelInput": { "alias": "aria-label"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}
/**
* © 2025-2026 Visa
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
**/
declare class PaddingDirective {
protected readonly classes: Signal<string>;
/**
* Sets padding-block-start property. <br>
* Accepts: 0 - 48 or <code>SpacingProperties</code>.
*/
readonly vP: InputSignalWithTransform<string | null, SpacingProperties | string | undefined>;
/**
* Sets padding-inline-end property. <br>
* Accepts: 0 - 48 or <code>SpacingProperties</code>.
*/
readonly vPB: InputSignalWithTransform<string | null, SpacingProperties | string | undefined>;
/**
* Sets padding-block-end property. <br>
* Accepts: 0 - 48 or <code>SpacingProperties</code>.
*/
readonly vPL: InputSignalWithTransform<string | null, SpacingProperties | string | undefined>;
/**
* Sets padding-inline-start property. <br>
* Accepts: 0 - 48 or <code>SpacingProperties</code>.
*/
readonly vPR: InputSignalWithTransform<string | null, SpacingProperties | string | undefined>;
/**
* Sets padding-inline property. <br>
* Accepts: 0 - 48 or <code>SpacingProperties</code>.
*/
readonly vPT: InputSignalWithTransform<string | null, SpacingProperties | string | undefined>;
/**
* Sets padding-block property. <br>
* Accepts: 0 - 48 or <code>SpacingProperties</code>.
*/
readonly vPX: InputSignalWithTransform<string | null, SpacingProperties | string | undefined>;
/**
* Sets padding property. <br>
* Accepts: 0 - 48 or <code>SpacingProperties</code>.
*/
readonly vPY: InputSignalWithTransform<string | null, SpacingProperties | string | undefined>;
static ɵfac: i0.ɵɵFactoryDeclaration<PaddingDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<PaddingDirective, "[vP], [vPB], [vPL], [vPR], [vPT], [vPX], [vPY], ", never, { "vP": { "alias": "vP"; "required": false; "isSignal": true; }; "vPB": { "alias": "vPB"; "required": false; "isSignal": true; }; "vPL": { "alias": "vPL"; "required": false; "isSignal": true; }; "vPR": { "alias": "vPR"; "required": false; "isSignal": true; }; "vPT": { "alias": "vPT"; "required": false; "isSignal": true; }; "vPX": { "alias": "vPX"; "required": false; "isSignal": true; }; "vPY": { "alias": "vPY"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}
declare class ScreenreaderOnlyDirective {
static ɵfac: i0.ɵɵFactoryDeclaration<ScreenreaderOnlyDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<ScreenreaderOnlyDirective, "[vSr], [vSR], [vScreenreader], [vScreenReader]", never, {}, {}, never, never, true, never>;
}
/**
* © 2025-2026 Visa
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
**/
/**
* I don't love having 'surface' in the key names,
* but using just numbers does not work as expected.
*/
declare const SurfaceType: {
readonly Surface1: "1";
readonly Surface2: "2";
readonly Surface3: "3";
};
type SurfaceType = (typeof SurfaceType)[keyof typeof SurfaceType];
/**
* Directive to add default surface class, <code>class="v-surface"</code>, to the host element.
*/
declare class SurfaceDirective {
/**
* Applies given surface class. <br>
*/
readonly vSurface: InputSignal<'' | SurfaceType | null>;
static ɵfac: i0.ɵɵFactoryDeclaration<SurfaceDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<SurfaceDirective, "[vSurface]", never, { "vSurface": { "alias": "vSurface"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}
declare class NovaCommonModule {
static ɵfac: i0.ɵɵFactoryDeclaration<NovaCommonModule, never>;
static ɵmod: i0.ɵɵNgModuleDeclaration<NovaCommonModule, never, [typeof AddArrowKeysDirective, typeof AlternateDirective, typeof BreakpointsDirective, typeof DualIconDirective, typeof ElevationDirective, typeof FlexDirective, typeof MarginDirective, typeof OpensInNewTabDirective, typeof PaddingDirective, typeof ScreenreaderOnlyDirective, typeof SurfaceDirective], [typeof AddArrowKeysDirective, typeof AlternateDirective, typeof BreakpointsDirective, typeof DualIconDirective, typeof ElevationDirective, typeof FlexDirective, typeof MarginDirective, typeof OpensInNewTabDirective, typeof PaddingDirective, typeof ScreenreaderOnlyDirective, typeof SurfaceDirective]>;
static ɵinj: i0.ɵɵInjectorDeclaration<NovaCommonModule>;
}
/**
* © 2025-2026 Visa
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
**/
type Unsubscribable = {
unsubscribe: () => void;
};
declare class ListenerService {
listeners: (() => void)[];
navListeners: (() => void)[];
navSubscriptions: (Unsubscribable | undefined)[];
subscriptions: (Unsubscribable | undefined)[];
cleanupEffect: i0.EffectRef;
cleanup(): void;
cleanupNavListeners(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<ListenerService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<ListenerService>;
}
/**
* © 2025-2026 Visa
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
**/
declare class CheckboxDirective extends CheckboxControlValueAccessor {
constructor();
readonly el: ElementRef<HTMLInputElement>;
private readonly idGenerator;
readonly listenerService: ListenerService;
/**
* Sets checked state of component. <br />
* Because 'checked' is a native attribute of input[type="checkbox"], it can only be set false by using [checked]="false", not checked="false" <br />
* Use [checked] when you want to handle the checked state of the checkbox.
* Use (checkedChange) when you want the library to handle the checked state of the checkbox, but get notified of changes.
* Use [(checked)] when you want the checked state to reflect changes by both you and the library.
*/
readonly checked: ModelSignal<boolean | null | string>;
private readonly checkedEffect;
/**
* Sets checkbox to disabled when true
* @default false
*/
readonly disabledInput: InputSignalWithTransform<boolean | null, unknown>;
private readonly disabledInternal;
readonly disabled: Signal<boolean | null>;
/** Fires when a formControl's disabled state updates */
setDisabledState(isDisabled: boolean | null): void;
/**
* Sets custom id.
* @default idGenerator.newId('v-checkbox')
* @builtin true
*/
readonly id: InputSignal<string>;
/**
* Marks checkbox as invalid when true.
* @default false
*/
readonly invalid: InputSignalWithTransform<boolean | null, unknown>;
/**
* Sets checkbox to indeterminate when true.
* @default false
*/
readonly indeterminate: InputSignalWithTransform<boolean | null, unknown>;
private readonly indeterminateEffect;
/**
* Marks checkbox as required when true.
* @default false
*/
readonly required: InputSignalWithTransform<boolean | null, unknown>;
handleChange(event: Event): void;
writeValue(value: any): void;
static ɵfac: i0.ɵɵFactoryDeclaration<CheckboxDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<CheckboxDirective, "[v-checkbox]", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabledInput": { "alias": "disabled"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; }, never, never, true, never>;
}
/**
* © 2025-2026 Visa
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
**/
/**
* This directive is used to group radio buttons together and manage their state. <br />
* Typically used for a required group to relay that one of the group is required to be selected.
*/
declare class RadioGroupDirective extends DefaultValueAccessor {
private readonly idGenerator;
readonly radios: Signal<readonly RadioDirective[]>;
/**
* Sets radio group as disabled when true.
* @default false
*/
readonly disabledInput: InputSignalWithTransform<boolean | null, unknown>;
readonly disabledInternal: WritableSignal<boolean | null>;
readonly disabled: Signal<boolean | null>;
/** Fires when a formControl's disabled state updates */
setDisabledState(disabled: boolean): void;
/**
* Marks radio group as invalid when true.
* @default false
*/
readonly invalid: InputSignalWithTransform<boolean | null, unknown>;
/**
* Shared name of radio group.
* @default this.uuidService.getUUID('v-radio-group-');
* @builtin true
*/
readonly name: InputSignal<string>;
/**
* Marks radio group as required when true.
* @default false
*/
readonly required: InputSignalWithTransform<boolean | null, unknown>;
/**
* Value of radio group.
* Use [value] when you want to handle the value of the toggle container.
* Use (valuedChange) when you want the library to handle the value of the toggle container, but get notified of changes.
* Use [(value)] when you want the value to reflect changes by both you and the library.
*/
readonly value: ModelSignal<string | number | null | undefined>;
private readonly valueEffect;
private readonly activeRadio;
private readonly activeRadioEffect;
writeValue(value: string | number): void;
static ɵfac: i0.ɵɵFactoryDeclaration<RadioGroupDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<RadioGroupDirective, "[v-radio-group]", never, { "disabledInput": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, ["radios"], never, true, never>;
}
declare class RadioDirective extends RadioControlValueAccessor {
ngOnInit(): void;
private _control;
private readonly injector;
readonly el: ElementRef;
private readonly idGenerator;
protected readonly radioGroup: RadioGroupDirective | null;
private readonly toggle;
private readonly toggleContainer;
/**
* Sets checked state of component. <br />
* Because 'checked' is a native attribute of input[type="checkbox"], it can only be set false by using [checked]="false", not checked="false" <br />
* Use [checked] when you want to handle the checked state of the checkbox.
* Use (checkedChange) when you want the library to handle the checked state of the checkbox, but get notified of changes.
* Use [(checked)] when you want the checked state to reflect changes by both you and the library.
*/
readonly checked: ModelSignal<boolean | null | string>;
readonly checkedEffect: i0.EffectRef;
private checkName;
private readonly radioGroupValueEffect;
/**
* Sets radio as disabled when true.
* @default false
*/
readonly disabledInput: InputSignalWithTransform<boolean | null, unknown>;
readonly disabledInternal: WritableSignal<boolean | null>;
readonly disabled: Signal<boolean | null>;
/** Fires when a formControl's disabled state updates */
setDisabledState(disabled: boolean | null): void;
/**
* @ignore
*/
readonly formName: InputSignal<string | null>;
/**
* Sets custom id.
* @default idGenerator.newId('v-radio')
* @builtin true
*/
readonly id: InputSignal<string>;
/**
* Marks radio as invalid when true.
* @default false
*/
readonly invalidInput: InputSignalWithTransform<boolean | null, unknown>;
protected readonly invalid: Signal<boolean | null>;
/**
* @ignore
*/
readonly nameInput: InputSignal<string | null>;
readonly nameSignal: Signal<string | null>;
private readonly namesEffect;
/**
* Marks component as required when true.
* @default false
*/
readonly requiredInput: InputSignalWithTransform<boolean | null, unknown>;
protected readonly required: Signal<boolean | null>;
/**
* Value of radio input.
* @default idGenerator.newId('v-radio') when toggle is true, otherwise null
*/
readonly valueInput: InputSignal<string | number | null>;
readonly valueSignal: Signal<string | number | null>;
private readonly valueEffect;
handleChange(event: Event): void;
writeValue(value: string | number | null): void;
static ɵfac: i0.ɵɵFactoryDeclaration<RadioDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<RadioDirective, "[v-radio]", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabledInput": { "alias": "disabled"; "required": false; "isSignal": true; }; "formName": { "alias": "formControlName"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "invalidInput": { "alias": "invalid"; "required": false; "isSignal": true; }; "nameInput": { "alias": "name"; "required": false; "isSignal": true; }; "requiredInput": { "alias": "required"; "required": false; "isSignal": true; }; "valueInput": { "alias": "value"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; }, never, never, true, never>;
}
declare class CheckboxPanelDirective {
private readonly appReadyService;
private readonly checkbox;
private readonly radio;
handleClick(event: Event): void;
/**
* Toggles checkbox or radio programmatically.
* @param control Checkbox or Radio item to toggle.
* @param event Event to check if target is the control.
*/
toggleControl(control: RadioDirective | CheckboxDirective, event: Event): void;
static ɵfac: i0.ɵɵFactoryDeclaration<CheckboxPanelDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<CheckboxPanelDirective, "[v-checkbox-panel], [v-radio-panel]", never, {}, {}, ["checkbox", "radio"], never, true, never>;
}
/**
* © 2025-2026 Visa
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
**/
declare class AccordionDirective {
private readonly flex;
private readonly idGenerator;
readonly singleSelectItemsName: WritableSignal<string>;
protected readonly removeDefaultFlex: Signal<boolean | undefined>;
protected readonly removeDefaultGap: Signal<boolean | undefined | null | any>;
/**
* Allows multiple accordion items to be expanded when true.
* @default false
*/
readonly multiselect: InputSignalWithTransform<boolean, unknown>;
/**
* Applies subtle accordion styling when true.
* @default false
*/
readonly subtle: InputSignalWithTransform<boolean, unknown>;
static ɵfac: i0.ɵɵFactoryDeclaration<AccordionDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<AccordionDirective, "[v-accordion]", never, { "multiselect": { "alias": "multiselect"; "required": false; "isSignal": true; }; "subtle": { "alias": "subtle"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}
/**
* © 2025-2026 Visa
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
**/
declare class AccordionHeadingDirective implements AfterContentInit {
readonly accordion: AccordionDirective | null;
readonly hostButton: ButtonDirective | null;
ngAfterContentInit(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<AccordionHeadingDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<AccordionHeadingDirective, "[v-accordion-heading]", never, {}, {}, never, never, true, never>;
}
/**
* © 2025-2026 Visa
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
**/
declare class AccordionDetailsDirective implements OnInit {
ngOnInit(): void;
private readonly el;
private readonly accordion;
protected readonly heading: Signal<AccordionHeadingDirective>;
/**
*
* Sets expanded state ('open' or 'closed') of component. <br />
* Because 'open' is a native attribute of <details>, it can only be set false by using [open]="false", not open="false" <br />
* Use [open] when you want to handle the expanded state of the accordion item.
* Use (openChange) when you want the library to handle the expanded state of the accordion item, but get notified of changes.
* Use [(open)] when you want the expanded state to reflect changes by both you and the library.
*/
readonly expanded: ModelSignal<boolean | null | string>;
/** @ignore */
readonly nameInput: InputSignal<string | null>;
readonly name: Signal<string | null>;
/**
* Emits expanded state of item when toggled.
*/
readonly toggled: OutputEmitterRef<boolean>;
toggle(event: Event): void;
static ɵfac: i0.ɵɵFactoryDeclaration<AccordionDetailsDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<AccordionDetailsDirective, "[v-accordion-item]", never, { "expanded": { "alias": "open"; "required": false; "isSignal": true; }; "nameInput": { "alias": "name"; "required": false; "isSignal": true; }; }, { "expanded": "openChange"; "toggled": "toggled"; }, ["heading"], never, true, never>;
}
/**
* © 2025-2026 Visa
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
**/
declare class FloatingUITriggerDirective {
readonly el: ElementRef;
readonly button: ButtonDirective | null;
private readonly floatingUIContainer;
protected readonly floatingElemID: Signal<string | null>;
protected readonly triggersDropdownMenu: Signal<boolean | null>;
protected readonly triggersTooltip: Signal<boolean | null>;
readonly isShown: WritableSignal<boolean>;
static ɵfac: i0.ɵɵFactoryDeclaration<FloatingUITriggerDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<FloatingUITriggerDirective, "[v-floating-ui-trigger]", never, {}, {}, never, never, true, never>;
}
/**
* © 2025-2026 Visa
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
**/
declare class NavDirective {
/**
* Sets navigation to drawer variation when true.
* @default false
*/
readonly drawer: InputSignalWithTransform<boolean, unknown>;
/**
* Sets navigation to vertical orientation when true.
* @default false
*/
readonly vertical: InputSignalWithTransform<boolean, unknown>;
static ɵfac: i0.ɵɵFactoryDeclaration<NavDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<NavDirective, "[v-nav]", never, { "drawer": { "alias": "drawer"; "required": false; "isSignal": true; }; "vertical": { "alias": "vertical"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}
declare class PanelContentDirective {
static ɵfac: i0.ɵɵFactoryDeclaration<PanelContentDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<PanelContentDirective, "[v-panel-content]", never, {}, {}, never, never, true, never>;
}
/**
* © 2025-2026 Visa
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
**/
declare class TabListDirective implements AfterContentInit {
prevTabs: WritableSignal<TabItemDirective[] | undefined>;
constructor();
ngAfterContentInit(): void;
readonly tabListParent: TabListDirective | null;
readonly navParent: NavDirective | null;
protected readonly panelParent: PanelContentDirective | null;
private readonly el;
private readonly