@tailng-ui/primitives 0.42.0 → 0.44.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/package.json +2 -2
  2. package/src/lib/form/_shared/select/tng-select.overlay.shared.d.ts +1 -0
  3. package/src/lib/form/_shared/select/tng-select.overlay.shared.d.ts.map +1 -1
  4. package/src/lib/form/_shared/select/tng-select.overlay.shared.js +8 -1
  5. package/src/lib/form/_shared/select/tng-select.overlay.shared.js.map +1 -1
  6. package/src/lib/form/autocomplete/tng-autocomplete.d.ts +2 -2
  7. package/src/lib/form/autocomplete/tng-autocomplete.d.ts.map +1 -1
  8. package/src/lib/form/autocomplete/tng-autocomplete.js.map +1 -1
  9. package/src/lib/form/autocomplete/tng-autocomplete.listbox.d.ts.map +1 -1
  10. package/src/lib/form/autocomplete/tng-autocomplete.listbox.js +5 -3
  11. package/src/lib/form/autocomplete/tng-autocomplete.listbox.js.map +1 -1
  12. package/src/lib/form/autocomplete/tng-autocomplete.overlay.d.ts +1 -0
  13. package/src/lib/form/autocomplete/tng-autocomplete.overlay.d.ts.map +1 -1
  14. package/src/lib/form/autocomplete/tng-autocomplete.overlay.js +25 -5
  15. package/src/lib/form/autocomplete/tng-autocomplete.overlay.js.map +1 -1
  16. package/src/lib/form/datepicker/tng-datepicker.overlay.d.ts +2 -1
  17. package/src/lib/form/datepicker/tng-datepicker.overlay.d.ts.map +1 -1
  18. package/src/lib/form/datepicker/tng-datepicker.overlay.js +13 -5
  19. package/src/lib/form/datepicker/tng-datepicker.overlay.js.map +1 -1
  20. package/src/lib/form/index.d.ts +0 -1
  21. package/src/lib/form/index.d.ts.map +1 -1
  22. package/src/lib/form/index.js +0 -1
  23. package/src/lib/form/index.js.map +1 -1
  24. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.overlay.d.ts +1 -0
  25. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.overlay.d.ts.map +1 -1
  26. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.overlay.js +8 -1
  27. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.overlay.js.map +1 -1
  28. package/src/lib/layout/index.d.ts +1 -2
  29. package/src/lib/layout/index.d.ts.map +1 -1
  30. package/src/lib/layout/index.js +1 -2
  31. package/src/lib/layout/index.js.map +1 -1
  32. package/src/lib/layout/stepper/__tests__/tng-stepper.test-harness.d.ts +44 -0
  33. package/src/lib/layout/stepper/__tests__/tng-stepper.test-harness.d.ts.map +1 -0
  34. package/src/lib/layout/stepper/__tests__/tng-stepper.test-harness.js +149 -0
  35. package/src/lib/layout/stepper/__tests__/tng-stepper.test-harness.js.map +1 -0
  36. package/src/lib/layout/stepper/index.d.ts +2 -0
  37. package/src/lib/layout/stepper/index.d.ts.map +1 -0
  38. package/src/lib/layout/stepper/index.js +2 -0
  39. package/src/lib/layout/stepper/index.js.map +1 -0
  40. package/src/lib/layout/stepper/tng-stepper.d.ts +198 -2
  41. package/src/lib/layout/stepper/tng-stepper.d.ts.map +1 -1
  42. package/src/lib/layout/stepper/tng-stepper.js +898 -2
  43. package/src/lib/layout/stepper/tng-stepper.js.map +1 -1
  44. package/src/lib/navigation/index.d.ts +0 -3
  45. package/src/lib/navigation/index.d.ts.map +1 -1
  46. package/src/lib/navigation/index.js +0 -3
  47. package/src/lib/navigation/index.js.map +1 -1
  48. package/src/lib/form/multiselect/tng-multiselect.d.ts +0 -7
  49. package/src/lib/form/multiselect/tng-multiselect.d.ts.map +0 -1
  50. package/src/lib/form/multiselect/tng-multiselect.js +0 -18
  51. package/src/lib/form/multiselect/tng-multiselect.js.map +0 -1
  52. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.d.ts +0 -7
  53. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.d.ts.map +0 -1
  54. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.js +0 -18
  55. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.js.map +0 -1
  56. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.d.ts +0 -7
  57. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.d.ts.map +0 -1
  58. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.js +0 -18
  59. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.js.map +0 -1
  60. package/src/lib/navigation/navigation-menu/tng-navigation-menu.d.ts +0 -7
  61. package/src/lib/navigation/navigation-menu/tng-navigation-menu.d.ts.map +0 -1
  62. package/src/lib/navigation/navigation-menu/tng-navigation-menu.js +0 -18
  63. package/src/lib/navigation/navigation-menu/tng-navigation-menu.js.map +0 -1
  64. package/src/lib/navigation/toolbar/tng-toolbar.d.ts +0 -7
  65. package/src/lib/navigation/toolbar/tng-toolbar.d.ts.map +0 -1
  66. package/src/lib/navigation/toolbar/tng-toolbar.js +0 -18
  67. package/src/lib/navigation/toolbar/tng-toolbar.js.map +0 -1
@@ -0,0 +1,149 @@
1
+ import { Component, ViewChild, signal } from '@angular/core';
2
+ import { expect } from 'vitest';
3
+ import { TngStepper, TngStepperConnector, TngStepperDescription, TngStepperItem, TngStepperLabel, TngStepperPanel, TngStepperTrigger, } from '../tng-stepper';
4
+ import * as i0 from "@angular/core";
5
+ export function getByTestId(fixture, id) {
6
+ const element = fixture.nativeElement.querySelector(`[data-testid="${id}"]`);
7
+ expect(element).not.toBeNull();
8
+ return element;
9
+ }
10
+ export function getTriggers(fixture) {
11
+ return Array.from(fixture.nativeElement.querySelectorAll('[data-slot="stepper-trigger"]'));
12
+ }
13
+ export function getCurrentTrigger(fixture) {
14
+ return fixture.nativeElement.querySelector('[data-slot="stepper-trigger"][aria-current="step"]');
15
+ }
16
+ export function keydown(el, key, init = {}) {
17
+ const event = new KeyboardEvent('keydown', {
18
+ key,
19
+ bubbles: true,
20
+ cancelable: true,
21
+ ...init,
22
+ });
23
+ el.dispatchEvent(event);
24
+ return event;
25
+ }
26
+ export function click(el) {
27
+ const event = new MouseEvent('click', { bubbles: true, cancelable: true });
28
+ el.dispatchEvent(event);
29
+ return event;
30
+ }
31
+ export class StepperHostComponent {
32
+ steps = signal([
33
+ { value: 'cart', label: 'Cart', completed: true },
34
+ { value: 'shipping', label: 'Shipping' },
35
+ { value: 'payment', label: 'Payment', optional: true },
36
+ { value: 'review', label: 'Review', disabled: true },
37
+ ], ...(ngDevMode ? [{ debugName: "steps" }] : []));
38
+ value = signal(undefined, ...(ngDevMode ? [{ debugName: "value" }] : []));
39
+ defaultValue = signal(undefined, ...(ngDevMode ? [{ debugName: "defaultValue" }] : []));
40
+ orientation = signal('horizontal', ...(ngDevMode ? [{ debugName: "orientation" }] : []));
41
+ linear = signal(false, ...(ngDevMode ? [{ debugName: "linear" }] : []));
42
+ loopFocus = signal(true, ...(ngDevMode ? [{ debugName: "loopFocus" }] : []));
43
+ ariaLabel = signal('Checkout progress', ...(ngDevMode ? [{ debugName: "ariaLabel" }] : []));
44
+ ariaLabelledby = signal(undefined, ...(ngDevMode ? [{ debugName: "ariaLabelledby" }] : []));
45
+ valueChanges = [];
46
+ stepChanges = [];
47
+ stepperRef;
48
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: StepperHostComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
49
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.1", type: StepperHostComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "stepperRef", first: true, predicate: ["stepperRef"], descendants: true, static: true }], ngImport: i0, template: `
50
+ <section
51
+ tngStepper
52
+ #stepperRef="tngStepper"
53
+ data-testid="stepper"
54
+ [ariaLabel]="ariaLabel()"
55
+ [ariaLabelledby]="ariaLabelledby()"
56
+ [value]="value()"
57
+ [defaultValue]="defaultValue()"
58
+ [orientation]="orientation()"
59
+ [linear]="linear()"
60
+ [loopFocus]="loopFocus()"
61
+ (valueChange)="valueChanges.push($event)"
62
+ (stepChange)="stepChanges.push($event)"
63
+ >
64
+ <ol>
65
+ @for (step of steps(); track step.trackBy ?? step.value) {
66
+ <li
67
+ tngStepperItem
68
+ [attr.data-testid]="'item-' + step.value"
69
+ [value]="step.value"
70
+ [label]="step.label"
71
+ [description]="step.label + ' details'"
72
+ [completed]="step.completed ?? false"
73
+ [optional]="step.optional ?? false"
74
+ [disabled]="step.disabled ?? false"
75
+ [error]="step.error ?? false"
76
+ >
77
+ <button tngStepperTrigger [attr.data-testid]="'trigger-' + step.value">
78
+ <span tngStepperLabel>{{ step.label }}</span>
79
+ <small tngStepperDescription>{{ step.label }} details</small>
80
+ </button>
81
+ <span tngStepperConnector [attr.data-testid]="'connector-' + step.value"></span>
82
+ <section tngStepperPanel [attr.data-testid]="'panel-' + step.value">
83
+ {{ step.label }} panel
84
+ </section>
85
+ </li>
86
+ }
87
+ </ol>
88
+ </section>
89
+ `, isInline: true, dependencies: [{ kind: "directive", type: TngStepper, selector: "[tngStepper]", inputs: ["value", "defaultValue", "orientation", "linear", "loopFocus", "ariaLabel", "ariaLabelledby"], outputs: ["valueChange", "stepChange"], exportAs: ["tngStepper"] }, { kind: "directive", type: TngStepperConnector, selector: "[tngStepperConnector]", exportAs: ["tngStepperConnector"] }, { kind: "directive", type: TngStepperDescription, selector: "[tngStepperDescription]", exportAs: ["tngStepperDescription"] }, { kind: "directive", type: TngStepperItem, selector: "[tngStepperItem]", inputs: ["value", "completed", "optional", "disabled", "error", "label", "description"], exportAs: ["tngStepperItem"] }, { kind: "directive", type: TngStepperLabel, selector: "[tngStepperLabel]", exportAs: ["tngStepperLabel"] }, { kind: "directive", type: TngStepperPanel, selector: "[tngStepperPanel]", exportAs: ["tngStepperPanel"] }, { kind: "directive", type: TngStepperTrigger, selector: "[tngStepperTrigger]", exportAs: ["tngStepperTrigger"] }] });
90
+ }
91
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: StepperHostComponent, decorators: [{
92
+ type: Component,
93
+ args: [{
94
+ imports: [
95
+ TngStepper,
96
+ TngStepperConnector,
97
+ TngStepperDescription,
98
+ TngStepperItem,
99
+ TngStepperLabel,
100
+ TngStepperPanel,
101
+ TngStepperTrigger,
102
+ ],
103
+ template: `
104
+ <section
105
+ tngStepper
106
+ #stepperRef="tngStepper"
107
+ data-testid="stepper"
108
+ [ariaLabel]="ariaLabel()"
109
+ [ariaLabelledby]="ariaLabelledby()"
110
+ [value]="value()"
111
+ [defaultValue]="defaultValue()"
112
+ [orientation]="orientation()"
113
+ [linear]="linear()"
114
+ [loopFocus]="loopFocus()"
115
+ (valueChange)="valueChanges.push($event)"
116
+ (stepChange)="stepChanges.push($event)"
117
+ >
118
+ <ol>
119
+ @for (step of steps(); track step.trackBy ?? step.value) {
120
+ <li
121
+ tngStepperItem
122
+ [attr.data-testid]="'item-' + step.value"
123
+ [value]="step.value"
124
+ [label]="step.label"
125
+ [description]="step.label + ' details'"
126
+ [completed]="step.completed ?? false"
127
+ [optional]="step.optional ?? false"
128
+ [disabled]="step.disabled ?? false"
129
+ [error]="step.error ?? false"
130
+ >
131
+ <button tngStepperTrigger [attr.data-testid]="'trigger-' + step.value">
132
+ <span tngStepperLabel>{{ step.label }}</span>
133
+ <small tngStepperDescription>{{ step.label }} details</small>
134
+ </button>
135
+ <span tngStepperConnector [attr.data-testid]="'connector-' + step.value"></span>
136
+ <section tngStepperPanel [attr.data-testid]="'panel-' + step.value">
137
+ {{ step.label }} panel
138
+ </section>
139
+ </li>
140
+ }
141
+ </ol>
142
+ </section>
143
+ `,
144
+ }]
145
+ }], propDecorators: { stepperRef: [{
146
+ type: ViewChild,
147
+ args: ['stepperRef', { static: true }]
148
+ }] } });
149
+ //# sourceMappingURL=tng-stepper.test-harness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tng-stepper.test-harness.js","sourceRoot":"","sources":["../../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/stepper/__tests__/tng-stepper.test-harness.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, ViewChild, signal } from '@angular/core';\nimport { expect } from 'vitest';\n\nimport {\n TngStepper,\n TngStepperConnector,\n TngStepperDescription,\n TngStepperItem,\n TngStepperLabel,\n TngStepperPanel,\n TngStepperTrigger,\n} from '../tng-stepper';\n\nexport type StepConfig = Readonly<{\n readonly value: string;\n readonly label: string;\n readonly completed?: boolean;\n readonly optional?: boolean;\n readonly disabled?: boolean;\n readonly error?: boolean;\n readonly trackBy?: string;\n}>;\n\ntype TestFixtureLike = Readonly<{\n nativeElement: HTMLElement;\n}>;\n\nexport function getByTestId<T extends HTMLElement>(fixture: TestFixtureLike, id: string): T {\n const element = fixture.nativeElement.querySelector<T>(`[data-testid=\"${id}\"]`);\n expect(element).not.toBeNull();\n return element!;\n}\n\nexport function getTriggers(fixture: TestFixtureLike): readonly HTMLElement[] {\n return Array.from(fixture.nativeElement.querySelectorAll<HTMLElement>('[data-slot=\"stepper-trigger\"]'));\n}\n\nexport function getCurrentTrigger(fixture: TestFixtureLike): HTMLElement | null {\n return fixture.nativeElement.querySelector<HTMLElement>('[data-slot=\"stepper-trigger\"][aria-current=\"step\"]');\n}\n\nexport function keydown(el: HTMLElement, key: string, init: KeyboardEventInit = {}): KeyboardEvent {\n const event = new KeyboardEvent('keydown', {\n key,\n bubbles: true,\n cancelable: true,\n ...init,\n });\n el.dispatchEvent(event);\n return event;\n}\n\nexport function click(el: HTMLElement): MouseEvent {\n const event = new MouseEvent('click', { bubbles: true, cancelable: true });\n el.dispatchEvent(event);\n return event;\n}\n\n@Component({\n imports: [\n TngStepper,\n TngStepperConnector,\n TngStepperDescription,\n TngStepperItem,\n TngStepperLabel,\n TngStepperPanel,\n TngStepperTrigger,\n ],\n template: `\n <section\n tngStepper\n #stepperRef=\"tngStepper\"\n data-testid=\"stepper\"\n [ariaLabel]=\"ariaLabel()\"\n [ariaLabelledby]=\"ariaLabelledby()\"\n [value]=\"value()\"\n [defaultValue]=\"defaultValue()\"\n [orientation]=\"orientation()\"\n [linear]=\"linear()\"\n [loopFocus]=\"loopFocus()\"\n (valueChange)=\"valueChanges.push($event)\"\n (stepChange)=\"stepChanges.push($event)\"\n >\n <ol>\n @for (step of steps(); track step.trackBy ?? step.value) {\n <li\n tngStepperItem\n [attr.data-testid]=\"'item-' + step.value\"\n [value]=\"step.value\"\n [label]=\"step.label\"\n [description]=\"step.label + ' details'\"\n [completed]=\"step.completed ?? false\"\n [optional]=\"step.optional ?? false\"\n [disabled]=\"step.disabled ?? false\"\n [error]=\"step.error ?? false\"\n >\n <button tngStepperTrigger [attr.data-testid]=\"'trigger-' + step.value\">\n <span tngStepperLabel>{{ step.label }}</span>\n <small tngStepperDescription>{{ step.label }} details</small>\n </button>\n <span tngStepperConnector [attr.data-testid]=\"'connector-' + step.value\"></span>\n <section tngStepperPanel [attr.data-testid]=\"'panel-' + step.value\">\n {{ step.label }} panel\n </section>\n </li>\n }\n </ol>\n </section>\n `,\n})\nexport class StepperHostComponent {\n public readonly steps = signal<readonly StepConfig[]>([\n { value: 'cart', label: 'Cart', completed: true },\n { value: 'shipping', label: 'Shipping' },\n { value: 'payment', label: 'Payment', optional: true },\n { value: 'review', label: 'Review', disabled: true },\n ]);\n public readonly value = signal<string | null | undefined>(undefined);\n public readonly defaultValue = signal<string | null | undefined>(undefined);\n public readonly orientation = signal<'horizontal' | 'vertical'>('horizontal');\n public readonly linear = signal(false);\n public readonly loopFocus = signal(true);\n public readonly ariaLabel = signal<string | null | undefined>('Checkout progress');\n public readonly ariaLabelledby = signal<string | null | undefined>(undefined);\n public readonly valueChanges: unknown[] = [];\n public readonly stepChanges: unknown[] = [];\n\n @ViewChild('stepperRef', { static: true }) public stepperRef!: TngStepper;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export * from './tng-stepper';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/stepper/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './tng-stepper';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/stepper/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC","sourcesContent":["export * from './tng-stepper';\n"]}
@@ -1,7 +1,203 @@
1
+ import type { DoCheck, OnDestroy, OnInit } from '@angular/core';
1
2
  import * as i0 from "@angular/core";
2
- export declare class TngStepper {
3
+ export type TngStepperOrientation = 'horizontal' | 'vertical';
4
+ export type TngStepperValue = string | number;
5
+ export type TngStepperDataState = 'completed' | 'current' | 'disabled' | 'error' | 'upcoming';
6
+ export type TngStepperActivationSource = 'keyboard' | 'pointer' | 'programmatic';
7
+ export type TngStepperValueChangeEvent = Readonly<{
8
+ value: TngStepperValue;
9
+ previousValue: TngStepperValue | null;
10
+ trigger: TngStepperActivationSource;
11
+ }>;
12
+ export declare class TngStepper implements DoCheck, OnDestroy {
13
+ private readonly hostRef;
14
+ private readonly items;
15
+ private uncontrolledValue;
16
+ private focusedValue;
17
+ private lastSelectedValue;
18
+ private lastSelectedIndex;
19
+ private initialized;
20
+ private hasUserSelection;
21
+ private hasExplicitFocus;
22
+ private readonly duplicateWarnings;
23
+ readonly value: import("@angular/core").InputSignalWithTransform<TngStepperValue | null | undefined, unknown>;
24
+ readonly defaultValue: import("@angular/core").InputSignalWithTransform<TngStepperValue | null | undefined, unknown>;
25
+ readonly orientation: import("@angular/core").InputSignalWithTransform<TngStepperOrientation, unknown>;
26
+ readonly linear: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
27
+ readonly loopFocus: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
28
+ readonly ariaLabel: import("@angular/core").InputSignalWithTransform<string | null | undefined, unknown>;
29
+ readonly ariaLabelledby: import("@angular/core").InputSignalWithTransform<string | null | undefined, unknown>;
30
+ readonly valueChange: import("@angular/core").OutputEmitterRef<TngStepperValue>;
31
+ readonly stepChange: import("@angular/core").OutputEmitterRef<Readonly<{
32
+ value: TngStepperValue;
33
+ previousValue: TngStepperValue | null;
34
+ trigger: TngStepperActivationSource;
35
+ }>>;
36
+ protected get ariaLabelAttr(): string | null;
37
+ protected get ariaLabelledbyAttr(): string | null;
38
+ protected get dataLinear(): '' | null;
39
+ protected get dataOrientation(): TngStepperOrientation;
3
40
  protected readonly dataSlot: "stepper";
41
+ ngDoCheck(): void;
42
+ ngOnDestroy(): void;
43
+ registerItem(item: TngStepperItem): void;
44
+ unregisterItem(item: TngStepperItem): void;
45
+ notifyItemMutated(item: TngStepperItem): void;
46
+ select(value: TngStepperValue): void;
47
+ focus(value: TngStepperValue): void;
48
+ next(): void;
49
+ prev(): void;
50
+ getItemIndex(item: TngStepperItem): number;
51
+ getItemCount(): number;
52
+ isItemSelected(item: TngStepperItem): boolean;
53
+ isItemActivatable(item: TngStepperItem): boolean;
54
+ getItemState(item: TngStepperItem): TngStepperDataState;
55
+ getTriggerTabIndex(item: TngStepperItem): string;
56
+ onTriggerFocused(item: TngStepperItem): void;
57
+ onTriggerClicked(item: TngStepperItem, event: MouseEvent): void;
58
+ onTriggerKeydown(item: TngStepperItem, event: KeyboardEvent): void;
59
+ private requestActivation;
60
+ private syncStateFromRegistry;
61
+ private warnForDuplicateValues;
62
+ private clearSelectionState;
63
+ private initializeSelection;
64
+ private normalizeSelectionForCurrentItems;
65
+ private restoreDefaultSelectionIfNeeded;
66
+ private restoreRemovedDefaultSelectionIfNeeded;
67
+ private normalizeFocusForCurrentItems;
68
+ private syncDomAttributes;
69
+ private applyLifecycleSelection;
70
+ private handleFocusKey;
71
+ private isActivationKey;
72
+ private resolveFocusMove;
73
+ private resolveVerticalFocusMove;
74
+ private resolveHorizontalFocusMove;
75
+ private moveFocusFromCurrent;
76
+ private moveFocus;
77
+ private resolveFocusTargetIndex;
78
+ private resolveRelativeFocusTargetIndex;
79
+ private focusItem;
80
+ private getEffectiveValue;
81
+ private getControlledEffectiveValue;
82
+ private getUncontrolledEffectiveValue;
83
+ private isControlled;
84
+ private getSelectedIndex;
85
+ private resolveCurrentTabStopValue;
86
+ private resolveNeighborForItem;
87
+ private resolveNearestEnabledValue;
88
+ private resolveNearestEnabledValueForMissingSelection;
89
+ private findItemByValue;
90
+ private findEnabledItemByValue;
91
+ private getEnabledItems;
92
+ private getOrderedItems;
93
+ private resolveDirection;
4
94
  static ɵfac: i0.ɵɵFactoryDeclaration<TngStepper, never>;
5
- static ɵdir: i0.ɵɵDirectiveDeclaration<TngStepper, "[tngStepper]", ["tngStepper"], {}, {}, never, never, true, never>;
95
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TngStepper, "[tngStepper]", ["tngStepper"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "defaultValue": { "alias": "defaultValue"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "linear": { "alias": "linear"; "required": false; "isSignal": true; }; "loopFocus": { "alias": "loopFocus"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "ariaLabelledby": { "alias": "ariaLabelledby"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "stepChange": "stepChange"; }, never, never, true, never>;
96
+ }
97
+ export declare class TngStepperItem implements DoCheck, OnDestroy, OnInit {
98
+ private readonly hostRef;
99
+ private readonly stepper;
100
+ private readonly registrationOrder;
101
+ private lastKnownIndex;
102
+ private trigger;
103
+ private readonly connectors;
104
+ private readonly panels;
105
+ private readonly triggerId;
106
+ readonly value: import("@angular/core").InputSignalWithTransform<TngStepperValue, unknown>;
107
+ readonly completed: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
108
+ readonly optional: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
109
+ readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
110
+ readonly error: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
111
+ readonly label: import("@angular/core").InputSignalWithTransform<string | null | undefined, unknown>;
112
+ readonly description: import("@angular/core").InputSignalWithTransform<string | null | undefined, unknown>;
113
+ protected readonly dataSlot: "stepper-item";
114
+ ngOnInit(): void;
115
+ ngDoCheck(): void;
116
+ ngOnDestroy(): void;
117
+ registerTrigger(trigger: TngStepperTrigger): void;
118
+ unregisterTrigger(trigger: TngStepperTrigger): void;
119
+ registerConnector(connector: TngStepperConnector): void;
120
+ unregisterConnector(connector: TngStepperConnector): void;
121
+ registerPanel(panel: TngStepperPanel): void;
122
+ unregisterPanel(panel: TngStepperPanel): void;
123
+ getValue(): TngStepperValue;
124
+ getHostElement(): HTMLElement;
125
+ getRegistrationOrder(): number;
126
+ getLastKnownIndex(): number;
127
+ getTriggerId(): string;
128
+ getPanelId(): string | null;
129
+ focusTrigger(): void;
130
+ syncDomAttributes(state: {
131
+ readonly activatable: boolean;
132
+ readonly current: boolean;
133
+ readonly index: number;
134
+ readonly state: TngStepperDataState;
135
+ readonly tabIndex: string;
136
+ readonly total: number;
137
+ }): void;
138
+ private setBooleanAttribute;
139
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngStepperItem, never>;
140
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TngStepperItem, "[tngStepperItem]", ["tngStepperItem"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "completed": { "alias": "completed"; "required": false; "isSignal": true; }; "optional": { "alias": "optional"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
141
+ }
142
+ export declare class TngStepperTrigger implements OnDestroy, OnInit {
143
+ private readonly hostRef;
144
+ private readonly item;
145
+ private readonly stepper;
146
+ private readonly id;
147
+ protected readonly dataSlot: "stepper-trigger";
148
+ protected get idAttr(): string;
149
+ protected get typeAttr(): 'button' | null;
150
+ ngOnInit(): void;
151
+ ngOnDestroy(): void;
152
+ getId(): string;
153
+ focusSelf(): void;
154
+ syncDomAttributes(state: {
155
+ readonly activatable: boolean;
156
+ readonly current: boolean;
157
+ readonly index: number;
158
+ readonly state: TngStepperDataState;
159
+ readonly tabIndex: string;
160
+ readonly total: number;
161
+ }): void;
162
+ protected onClick(event: MouseEvent): void;
163
+ protected onFocus(): void;
164
+ protected onKeydown(event: KeyboardEvent): void;
165
+ private resolveAriaLabel;
166
+ private resolveStateText;
167
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngStepperTrigger, never>;
168
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TngStepperTrigger, "[tngStepperTrigger]", ["tngStepperTrigger"], {}, {}, never, never, true, never>;
169
+ }
170
+ export declare class TngStepperLabel {
171
+ protected readonly dataSlot: "stepper-label";
172
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngStepperLabel, never>;
173
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TngStepperLabel, "[tngStepperLabel]", ["tngStepperLabel"], {}, {}, never, never, true, never>;
174
+ }
175
+ export declare class TngStepperDescription {
176
+ protected readonly dataSlot: "stepper-description";
177
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngStepperDescription, never>;
178
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TngStepperDescription, "[tngStepperDescription]", ["tngStepperDescription"], {}, {}, never, never, true, never>;
179
+ }
180
+ export declare class TngStepperPanel implements OnDestroy {
181
+ private readonly hostRef;
182
+ private readonly item;
183
+ private readonly panelId;
184
+ protected readonly dataSlot: "stepper-panel";
185
+ protected get id(): string;
186
+ constructor();
187
+ ngOnDestroy(): void;
188
+ getId(): string;
189
+ syncDomAttributes(current: boolean, triggerId: string): void;
190
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngStepperPanel, never>;
191
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TngStepperPanel, "[tngStepperPanel]", ["tngStepperPanel"], {}, {}, never, never, true, never>;
192
+ }
193
+ export declare class TngStepperConnector implements OnDestroy {
194
+ private readonly hostRef;
195
+ private readonly item;
196
+ protected readonly dataSlot: "stepper-connector";
197
+ constructor();
198
+ ngOnDestroy(): void;
199
+ syncDomAttributes(state: TngStepperDataState): void;
200
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngStepperConnector, never>;
201
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TngStepperConnector, "[tngStepperConnector]", ["tngStepperConnector"], {}, {}, never, never, true, never>;
6
202
  }
7
203
  //# sourceMappingURL=tng-stepper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-stepper.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/stepper/tng-stepper.ts"],"names":[],"mappings":";AAEA,qBAIa,UAAU;IAErB,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,SAAS,CAAU;yCAFtC,UAAU;2CAAV,UAAU;CAGtB"}
1
+ {"version":3,"file":"tng-stepper.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/stepper/tng-stepper.ts"],"names":[],"mappings":"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"}