forty-cdk 0.2.0 → 0.3.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.
- package/accordion/README.md +122 -0
- package/aspect-ratio/README.md +76 -0
- package/avatar/README.md +100 -0
- package/breadcrumbs/README.md +49 -0
- package/breakpoints/README.md +81 -0
- package/button/README.md +49 -0
- package/calendar/README.md +458 -0
- package/carousel/README.md +358 -0
- package/checkbox/README.md +146 -0
- package/combobox/README.md +535 -0
- package/context-menu/README.md +139 -0
- package/date-field/README.md +184 -0
- package/date-picker/README.md +338 -0
- package/dialog/README.md +388 -0
- package/disclosure/README.md +114 -0
- package/drag-drop/README.md +359 -0
- package/drawer/README.md +560 -0
- package/dropdown-menu/README.md +176 -0
- package/fesm2022/forty-cdk-accordion.mjs +348 -0
- package/fesm2022/forty-cdk-accordion.mjs.map +1 -0
- package/fesm2022/forty-cdk-aspect-ratio.mjs +74 -0
- package/fesm2022/forty-cdk-aspect-ratio.mjs.map +1 -0
- package/fesm2022/forty-cdk-avatar.mjs +308 -0
- package/fesm2022/forty-cdk-avatar.mjs.map +1 -0
- package/fesm2022/forty-cdk-breadcrumbs.mjs +125 -0
- package/fesm2022/forty-cdk-breadcrumbs.mjs.map +1 -0
- package/fesm2022/forty-cdk-breakpoints.mjs +117 -0
- package/fesm2022/forty-cdk-breakpoints.mjs.map +1 -0
- package/fesm2022/forty-cdk-button.mjs +134 -0
- package/fesm2022/forty-cdk-button.mjs.map +1 -0
- package/fesm2022/forty-cdk-calendar.mjs +2034 -0
- package/fesm2022/forty-cdk-calendar.mjs.map +1 -0
- package/fesm2022/forty-cdk-carousel.mjs +968 -0
- package/fesm2022/forty-cdk-carousel.mjs.map +1 -0
- package/fesm2022/forty-cdk-checkbox.mjs +226 -0
- package/fesm2022/forty-cdk-checkbox.mjs.map +1 -0
- package/fesm2022/forty-cdk-combobox.mjs +2596 -0
- package/fesm2022/forty-cdk-combobox.mjs.map +1 -0
- package/fesm2022/forty-cdk-context-menu.mjs +413 -0
- package/fesm2022/forty-cdk-context-menu.mjs.map +1 -0
- package/fesm2022/forty-cdk-core.mjs +9022 -0
- package/fesm2022/forty-cdk-core.mjs.map +1 -0
- package/fesm2022/forty-cdk-date-field.mjs +744 -0
- package/fesm2022/forty-cdk-date-field.mjs.map +1 -0
- package/fesm2022/forty-cdk-date-picker.mjs +1011 -0
- package/fesm2022/forty-cdk-date-picker.mjs.map +1 -0
- package/fesm2022/forty-cdk-dialog.mjs +707 -0
- package/fesm2022/forty-cdk-dialog.mjs.map +1 -0
- package/fesm2022/forty-cdk-disclosure.mjs +190 -0
- package/fesm2022/forty-cdk-disclosure.mjs.map +1 -0
- package/fesm2022/forty-cdk-drag-drop.mjs +1180 -0
- package/fesm2022/forty-cdk-drag-drop.mjs.map +1 -0
- package/fesm2022/forty-cdk-drawer.mjs +1641 -0
- package/fesm2022/forty-cdk-drawer.mjs.map +1 -0
- package/fesm2022/forty-cdk-dropdown-menu.mjs +350 -0
- package/fesm2022/forty-cdk-dropdown-menu.mjs.map +1 -0
- package/fesm2022/forty-cdk-field.mjs +425 -0
- package/fesm2022/forty-cdk-field.mjs.map +1 -0
- package/fesm2022/forty-cdk-fieldset.mjs +164 -0
- package/fesm2022/forty-cdk-fieldset.mjs.map +1 -0
- package/fesm2022/forty-cdk-file-upload.mjs +221 -0
- package/fesm2022/forty-cdk-file-upload.mjs.map +1 -0
- package/fesm2022/forty-cdk-hover-card.mjs +496 -0
- package/fesm2022/forty-cdk-hover-card.mjs.map +1 -0
- package/fesm2022/forty-cdk-input.mjs +274 -0
- package/fesm2022/forty-cdk-input.mjs.map +1 -0
- package/fesm2022/forty-cdk-internationalized-date.mjs +1 -1
- package/fesm2022/forty-cdk-internationalized-date.mjs.map +1 -1
- package/fesm2022/forty-cdk-listbox.mjs +1279 -0
- package/fesm2022/forty-cdk-listbox.mjs.map +1 -0
- package/fesm2022/forty-cdk-menu.mjs +1439 -0
- package/fesm2022/forty-cdk-menu.mjs.map +1 -0
- package/fesm2022/forty-cdk-menubar.mjs +787 -0
- package/fesm2022/forty-cdk-menubar.mjs.map +1 -0
- package/fesm2022/forty-cdk-meter.mjs +211 -0
- package/fesm2022/forty-cdk-meter.mjs.map +1 -0
- package/fesm2022/forty-cdk-navigation-menu.mjs +1145 -0
- package/fesm2022/forty-cdk-navigation-menu.mjs.map +1 -0
- package/fesm2022/forty-cdk-number-input.mjs +559 -0
- package/fesm2022/forty-cdk-number-input.mjs.map +1 -0
- package/fesm2022/forty-cdk-otp-input.mjs +527 -0
- package/fesm2022/forty-cdk-otp-input.mjs.map +1 -0
- package/fesm2022/forty-cdk-pagination.mjs +323 -0
- package/fesm2022/forty-cdk-pagination.mjs.map +1 -0
- package/fesm2022/forty-cdk-pane-resizer.mjs +297 -0
- package/fesm2022/forty-cdk-pane-resizer.mjs.map +1 -0
- package/fesm2022/forty-cdk-popover.mjs +698 -0
- package/fesm2022/forty-cdk-popover.mjs.map +1 -0
- package/fesm2022/forty-cdk-progress.mjs +226 -0
- package/fesm2022/forty-cdk-progress.mjs.map +1 -0
- package/fesm2022/forty-cdk-radio-group.mjs +378 -0
- package/fesm2022/forty-cdk-radio-group.mjs.map +1 -0
- package/fesm2022/forty-cdk-scroll-area.mjs +640 -0
- package/fesm2022/forty-cdk-scroll-area.mjs.map +1 -0
- package/fesm2022/forty-cdk-search.mjs +205 -0
- package/fesm2022/forty-cdk-search.mjs.map +1 -0
- package/fesm2022/forty-cdk-select.mjs +1661 -0
- package/fesm2022/forty-cdk-select.mjs.map +1 -0
- package/fesm2022/forty-cdk-separator.mjs +82 -0
- package/fesm2022/forty-cdk-separator.mjs.map +1 -0
- package/fesm2022/forty-cdk-signal-forms.mjs +97 -0
- package/fesm2022/forty-cdk-signal-forms.mjs.map +1 -0
- package/fesm2022/forty-cdk-slider.mjs +803 -0
- package/fesm2022/forty-cdk-slider.mjs.map +1 -0
- package/fesm2022/forty-cdk-stepper.mjs +886 -0
- package/fesm2022/forty-cdk-stepper.mjs.map +1 -0
- package/fesm2022/forty-cdk-switch.mjs +137 -0
- package/fesm2022/forty-cdk-switch.mjs.map +1 -0
- package/fesm2022/forty-cdk-table.mjs +1518 -0
- package/fesm2022/forty-cdk-table.mjs.map +1 -0
- package/fesm2022/forty-cdk-tabs.mjs +400 -0
- package/fesm2022/forty-cdk-tabs.mjs.map +1 -0
- package/fesm2022/forty-cdk-time-field.mjs +593 -0
- package/fesm2022/forty-cdk-time-field.mjs.map +1 -0
- package/fesm2022/forty-cdk-time-picker.mjs +1013 -0
- package/fesm2022/forty-cdk-time-picker.mjs.map +1 -0
- package/fesm2022/forty-cdk-toast.mjs +1153 -0
- package/fesm2022/forty-cdk-toast.mjs.map +1 -0
- package/fesm2022/forty-cdk-toggle.mjs +516 -0
- package/fesm2022/forty-cdk-toggle.mjs.map +1 -0
- package/fesm2022/forty-cdk-toolbar.mjs +374 -0
- package/fesm2022/forty-cdk-toolbar.mjs.map +1 -0
- package/fesm2022/forty-cdk-tooltip.mjs +672 -0
- package/fesm2022/forty-cdk-tooltip.mjs.map +1 -0
- package/fesm2022/forty-cdk-tree.mjs +2007 -0
- package/fesm2022/forty-cdk-tree.mjs.map +1 -0
- package/fesm2022/forty-cdk-virtualization.mjs +1 -1
- package/fesm2022/forty-cdk-virtualization.mjs.map +1 -1
- package/fesm2022/forty-cdk.mjs +0 -43310
- package/fesm2022/forty-cdk.mjs.map +1 -1
- package/field/README.md +97 -0
- package/fieldset/README.md +86 -0
- package/file-upload/README.md +73 -0
- package/hover-card/README.md +171 -0
- package/input/README.md +156 -0
- package/listbox/README.md +424 -0
- package/menu/README.md +181 -0
- package/menubar/README.md +140 -0
- package/meter/README.md +128 -0
- package/navigation-menu/README.md +253 -0
- package/number-input/README.md +171 -0
- package/otp-input/README.md +198 -0
- package/package.json +213 -1
- package/pagination/README.md +61 -0
- package/pane-resizer/README.md +136 -0
- package/popover/README.md +262 -0
- package/progress/README.md +115 -0
- package/radio-group/README.md +129 -0
- package/scroll-area/README.md +184 -0
- package/search/README.md +42 -0
- package/select/README.md +488 -0
- package/separator/README.md +84 -0
- package/signal-forms/README.md +72 -0
- package/slider/README.md +152 -0
- package/stepper/README.md +292 -0
- package/switch/README.md +116 -0
- package/table/README.md +769 -0
- package/tabs/README.md +130 -0
- package/time-field/README.md +157 -0
- package/time-picker/README.md +172 -0
- package/toast/README.md +398 -0
- package/toggle/README.md +224 -0
- package/toolbar/README.md +109 -0
- package/tooltip/README.md +274 -0
- package/tree/README.md +708 -0
- package/types/forty-cdk-accordion.d.ts +242 -0
- package/types/forty-cdk-aspect-ratio.d.ts +59 -0
- package/types/forty-cdk-avatar.d.ts +133 -0
- package/types/forty-cdk-breadcrumbs.d.ts +92 -0
- package/types/forty-cdk-breakpoints.d.ts +141 -0
- package/types/forty-cdk-button.d.ts +80 -0
- package/types/forty-cdk-calendar.d.ts +914 -0
- package/types/forty-cdk-carousel.d.ts +530 -0
- package/types/forty-cdk-checkbox.d.ts +141 -0
- package/types/forty-cdk-combobox.d.ts +1259 -0
- package/types/forty-cdk-context-menu.d.ts +313 -0
- package/types/forty-cdk-core.d.ts +5774 -0
- package/types/forty-cdk-date-field.d.ts +307 -0
- package/types/forty-cdk-date-picker.d.ts +622 -0
- package/types/forty-cdk-dialog.d.ts +546 -0
- package/types/forty-cdk-disclosure.d.ts +127 -0
- package/types/forty-cdk-drag-drop.d.ts +456 -0
- package/types/forty-cdk-drawer.d.ts +871 -0
- package/types/forty-cdk-dropdown-menu.d.ts +242 -0
- package/types/forty-cdk-field.d.ts +236 -0
- package/types/forty-cdk-fieldset.d.ts +119 -0
- package/types/forty-cdk-file-upload.d.ts +124 -0
- package/types/forty-cdk-hover-card.d.ts +320 -0
- package/types/forty-cdk-input.d.ts +169 -0
- package/types/forty-cdk-internationalized-date.d.ts +1 -1
- package/types/forty-cdk-listbox.d.ts +513 -0
- package/types/forty-cdk-menu.d.ts +629 -0
- package/types/forty-cdk-menubar.d.ts +451 -0
- package/types/forty-cdk-meter.d.ts +122 -0
- package/types/forty-cdk-navigation-menu.d.ts +514 -0
- package/types/forty-cdk-number-input.d.ts +319 -0
- package/types/forty-cdk-otp-input.d.ts +248 -0
- package/types/forty-cdk-pagination.d.ts +214 -0
- package/types/forty-cdk-pane-resizer.d.ts +145 -0
- package/types/forty-cdk-popover.d.ts +509 -0
- package/types/forty-cdk-progress.d.ts +143 -0
- package/types/forty-cdk-radio-group.d.ts +222 -0
- package/types/forty-cdk-scroll-area.d.ts +258 -0
- package/types/forty-cdk-search.d.ts +142 -0
- package/types/forty-cdk-select.d.ts +899 -0
- package/types/forty-cdk-separator.d.ts +59 -0
- package/types/forty-cdk-signal-forms.d.ts +58 -0
- package/types/forty-cdk-slider.d.ts +379 -0
- package/types/forty-cdk-stepper.d.ts +650 -0
- package/types/forty-cdk-switch.d.ts +87 -0
- package/types/forty-cdk-table.d.ts +723 -0
- package/types/forty-cdk-tabs.d.ts +235 -0
- package/types/forty-cdk-time-field.d.ts +307 -0
- package/types/forty-cdk-time-picker.d.ts +578 -0
- package/types/forty-cdk-toast.d.ts +598 -0
- package/types/forty-cdk-toggle.d.ts +310 -0
- package/types/forty-cdk-toolbar.d.ts +217 -0
- package/types/forty-cdk-tooltip.d.ts +436 -0
- package/types/forty-cdk-tree.d.ts +688 -0
- package/types/forty-cdk.d.ts +1 -19743
|
@@ -0,0 +1,650 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { InjectionToken, Signal, Provider } from '@angular/core';
|
|
3
|
+
import { WritingDirection, RovingTabindex, ListNavigationAction } from 'forty-cdk/core';
|
|
4
|
+
import * as forty_cdk_stepper from 'forty-cdk/stepper';
|
|
5
|
+
import { FieldTree } from '@angular/forms/signals';
|
|
6
|
+
|
|
7
|
+
/** Activation timing for interactive-mode arrow navigation. */
|
|
8
|
+
type StepperActivationMode = 'automatic' | 'manual';
|
|
9
|
+
/** Accessibility model: interactive Tabs pattern vs display-only progress list. */
|
|
10
|
+
type StepperMode = 'interactive' | 'progress';
|
|
11
|
+
/**
|
|
12
|
+
* Registry entry for one step, owned by `ForStepperItem`. Drives index
|
|
13
|
+
* derivation and linear gating.
|
|
14
|
+
*/
|
|
15
|
+
interface ForStepperItemHandle {
|
|
16
|
+
/** Host element, used for DOM-order sorting in the collection. */
|
|
17
|
+
readonly host: HTMLElement;
|
|
18
|
+
/** Whether this step has been marked as completed by the consumer. */
|
|
19
|
+
readonly completed: Signal<boolean>;
|
|
20
|
+
/** Whether this step can be skipped when the stepper is in linear mode. */
|
|
21
|
+
readonly optional: Signal<boolean>;
|
|
22
|
+
/** Whether this step is disabled (own `disabled` OR root `disabled`). */
|
|
23
|
+
readonly effectiveDisabled: Signal<boolean>;
|
|
24
|
+
/** Whether this step has an error condition. */
|
|
25
|
+
readonly hasError: Signal<boolean>;
|
|
26
|
+
/** The resolved `data-state` string for this step. */
|
|
27
|
+
readonly resolvedState: Signal<string>;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Registry entry for one trigger (roving participant and id source). Used by
|
|
31
|
+
* the root to wire roving tabindex, id lookups, and navigation.
|
|
32
|
+
*/
|
|
33
|
+
interface ForStepperTriggerHandle {
|
|
34
|
+
/** Host element, used for DOM-order sorting and focus moves. */
|
|
35
|
+
readonly host: HTMLElement;
|
|
36
|
+
/** The trigger's own host id, for `aria-labelledby` on content panels. */
|
|
37
|
+
readonly id: Signal<string>;
|
|
38
|
+
/**
|
|
39
|
+
* Whether this trigger can be focused and activated. `false` when the step
|
|
40
|
+
* is disabled or not yet reachable in linear mode.
|
|
41
|
+
*/
|
|
42
|
+
readonly selectable: Signal<boolean>;
|
|
43
|
+
/**
|
|
44
|
+
* Inverse of `selectable`. Required by `firstEnabledHost` and
|
|
45
|
+
* `reconcileRovingActive`, which read a `disabled` signal per handle.
|
|
46
|
+
*/
|
|
47
|
+
readonly disabled: Signal<boolean>;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Registry entry for one content panel (id source; positional). The content's
|
|
51
|
+
* position in this collection determines its associated step index.
|
|
52
|
+
*/
|
|
53
|
+
interface ForStepperContentHandle {
|
|
54
|
+
/** Host element, used for DOM-order sorting and index derivation. */
|
|
55
|
+
readonly host: HTMLElement;
|
|
56
|
+
/** The panel's own host id, for `aria-controls` on triggers. */
|
|
57
|
+
readonly id: Signal<string>;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Coordination contract owned by `ForStepper`. Triggers, items, and content
|
|
61
|
+
* panels register here; navigation and selection flow back through these
|
|
62
|
+
* methods.
|
|
63
|
+
*
|
|
64
|
+
* Implements the [WAI-ARIA Tabs pattern](https://www.w3.org/WAI/ARIA/apg/patterns/tabs/)
|
|
65
|
+
* in `mode="interactive"` and a `<ol>`-based progress list with
|
|
66
|
+
* `aria-current="step"` in `mode="progress"`.
|
|
67
|
+
*/
|
|
68
|
+
interface ForStepperContext {
|
|
69
|
+
/** Two-way bindable selected step index. */
|
|
70
|
+
readonly selectedIndex: Signal<number>;
|
|
71
|
+
/** When true, steps are only reachable after all preceding steps are completed or optional. */
|
|
72
|
+
readonly linear: Signal<boolean>;
|
|
73
|
+
/** Accessibility model — `'interactive'` (Tabs APG) or `'progress'` (progress list). */
|
|
74
|
+
readonly mode: Signal<StepperMode>;
|
|
75
|
+
/** Layout axis for the step list. */
|
|
76
|
+
readonly orientation: Signal<'horizontal' | 'vertical'>;
|
|
77
|
+
/** Arrow-key activation timing when in interactive mode. */
|
|
78
|
+
readonly activationMode: Signal<StepperActivationMode>;
|
|
79
|
+
/** Resolved writing direction (`'ltr'` or `'rtl'`). */
|
|
80
|
+
readonly dir: Signal<WritingDirection>;
|
|
81
|
+
/** Whether the entire stepper is disabled. */
|
|
82
|
+
readonly disabled: Signal<boolean>;
|
|
83
|
+
/** Total number of registered step items. */
|
|
84
|
+
readonly count: Signal<number>;
|
|
85
|
+
/**
|
|
86
|
+
* True when the stepper has reached the terminal completed state
|
|
87
|
+
* (`selectedIndex()` >= `count()`).
|
|
88
|
+
*/
|
|
89
|
+
readonly isCompleted: Signal<boolean>;
|
|
90
|
+
/** Roving tabindex tracker for interactive-mode triggers. */
|
|
91
|
+
readonly roving: RovingTabindex;
|
|
92
|
+
/** Returns the DOM-order index of `item` in the item collection, or -1 if not found. */
|
|
93
|
+
indexOf(item: ForStepperItemHandle): number;
|
|
94
|
+
/** Returns true when `index` matches the currently selected step. */
|
|
95
|
+
isCurrent(index: number): boolean;
|
|
96
|
+
/**
|
|
97
|
+
* Returns true when step `index` can be navigated to in linear mode. Index 0
|
|
98
|
+
* is always reachable; subsequent steps require all preceding steps to be
|
|
99
|
+
* completed or optional.
|
|
100
|
+
*/
|
|
101
|
+
isReachable(index: number): boolean;
|
|
102
|
+
/** Returns the resolved `data-state` string for step at `index`. */
|
|
103
|
+
resolvedStateFor(index: number): string;
|
|
104
|
+
/**
|
|
105
|
+
* Selects step `index`. No-op when the root is disabled, when `index` is
|
|
106
|
+
* out of range, or when the step is not reachable in linear mode.
|
|
107
|
+
*/
|
|
108
|
+
select(index: number): void;
|
|
109
|
+
/**
|
|
110
|
+
* Advances to the next step, or into the terminal completed state when on
|
|
111
|
+
* the last step. No-op when the root is disabled, when already in the terminal state, or
|
|
112
|
+
* (in linear mode) when the current step is neither completed nor optional.
|
|
113
|
+
*/
|
|
114
|
+
next(): void;
|
|
115
|
+
/**
|
|
116
|
+
* Retreats to the previous step. No-op when the root is disabled or the
|
|
117
|
+
* first step is already selected. Bypasses the linear reachability gate —
|
|
118
|
+
* going back always works.
|
|
119
|
+
*/
|
|
120
|
+
previous(): void;
|
|
121
|
+
/**
|
|
122
|
+
* Returns true when the Next button can advance — including advancing the last
|
|
123
|
+
* step into the terminal completed state. False when disabled, already in the
|
|
124
|
+
* terminal state, or (in linear mode) the current step is not completed/optional.
|
|
125
|
+
*/
|
|
126
|
+
canAdvance(): boolean;
|
|
127
|
+
/** Returns true when the Previous button can retreat. False when disabled or at the first step. */
|
|
128
|
+
canRetreat(): boolean;
|
|
129
|
+
/**
|
|
130
|
+
* Moves focus from `currentTrigger` according to `action` (interactive mode
|
|
131
|
+
* only). In automatic activation mode, also selects the target step.
|
|
132
|
+
* Disabled / unreachable triggers are skipped.
|
|
133
|
+
*/
|
|
134
|
+
navigate(currentTrigger: HTMLElement, action: ListNavigationAction): void;
|
|
135
|
+
/** Registers a step item handle into the item collection. */
|
|
136
|
+
registerItem(h: ForStepperItemHandle): void;
|
|
137
|
+
/** Unregisters a step item handle from the item collection. */
|
|
138
|
+
unregisterItem(h: ForStepperItemHandle): void;
|
|
139
|
+
/** Registers a trigger handle into the trigger collection. */
|
|
140
|
+
registerTrigger(h: ForStepperTriggerHandle): void;
|
|
141
|
+
/** Unregisters a trigger handle from the trigger collection and the roving tracker. */
|
|
142
|
+
unregisterTrigger(h: ForStepperTriggerHandle): void;
|
|
143
|
+
/** Registers a content panel handle into the content collection. */
|
|
144
|
+
registerContent(h: ForStepperContentHandle): void;
|
|
145
|
+
/** Unregisters a content panel handle from the content collection. */
|
|
146
|
+
unregisterContent(h: ForStepperContentHandle): void;
|
|
147
|
+
/**
|
|
148
|
+
* Returns the id of the trigger at `index`, or `null` if there is no
|
|
149
|
+
* registered trigger at that position.
|
|
150
|
+
*/
|
|
151
|
+
triggerIdFor(index: number): string | null;
|
|
152
|
+
/**
|
|
153
|
+
* Returns the id of the content panel at `index`, or `null` if there is no
|
|
154
|
+
* registered panel at that position.
|
|
155
|
+
*/
|
|
156
|
+
contentIdFor(index: number): string | null;
|
|
157
|
+
/**
|
|
158
|
+
* Returns the DOM-order index of the content panel whose host is `host`, or
|
|
159
|
+
* -1 if not registered. Used by `ForStepperContent` to derive its step index
|
|
160
|
+
* reactively.
|
|
161
|
+
*/
|
|
162
|
+
indexOfContent(host: HTMLElement): number;
|
|
163
|
+
/**
|
|
164
|
+
* True when `el` is the first selectable trigger (the roving entry-point
|
|
165
|
+
* fallback when no step is selected or the roving pointer is stale).
|
|
166
|
+
*/
|
|
167
|
+
isFirstSelectableTrigger(el: HTMLElement): boolean;
|
|
168
|
+
/**
|
|
169
|
+
* True when some registered trigger corresponds to the currently selected
|
|
170
|
+
* step. Distinguishes "the current step owns the tab stop" from "the selected
|
|
171
|
+
* index points at a missing or unreachable trigger" so the per-trigger
|
|
172
|
+
* tabindex fallback can re-engage the first-selectable entry point.
|
|
173
|
+
*/
|
|
174
|
+
hasCurrentTrigger(): boolean;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Per-step state contract. Provided by `ForStepperItem`; consumed by
|
|
178
|
+
* `ForStepperTrigger`, `ForStepperIndicator`, and `ForStepperSeparator`.
|
|
179
|
+
*/
|
|
180
|
+
interface ForStepperItemContext {
|
|
181
|
+
/** DOM-order index of this step within the stepper. */
|
|
182
|
+
readonly index: Signal<number>;
|
|
183
|
+
/** True when this step is the currently selected step. */
|
|
184
|
+
readonly current: Signal<boolean>;
|
|
185
|
+
/**
|
|
186
|
+
* True when this step can be focused and activated (reachable and not
|
|
187
|
+
* effectively disabled).
|
|
188
|
+
*/
|
|
189
|
+
readonly selectable: Signal<boolean>;
|
|
190
|
+
/** Whether this step has been marked as completed. */
|
|
191
|
+
readonly completed: Signal<boolean>;
|
|
192
|
+
/** Whether this step can be skipped when the stepper is in linear mode. */
|
|
193
|
+
readonly optional: Signal<boolean>;
|
|
194
|
+
/** Whether this step is disabled (own `disabled` OR root `disabled`). */
|
|
195
|
+
readonly effectiveDisabled: Signal<boolean>;
|
|
196
|
+
/** Whether this step has an error condition. */
|
|
197
|
+
readonly hasError: Signal<boolean>;
|
|
198
|
+
/** Resolved `data-state` string (precedence: custom state > error > active > completed > pending). */
|
|
199
|
+
readonly resolvedState: Signal<string>;
|
|
200
|
+
/**
|
|
201
|
+
* Selects this step. Delegates to `ForStepperContext.select(index)` — the
|
|
202
|
+
* linear reachability and disabled guards apply.
|
|
203
|
+
*/
|
|
204
|
+
select(): void;
|
|
205
|
+
}
|
|
206
|
+
/** Injection token for the root stepper context (`ForStepper`). */
|
|
207
|
+
declare const FOR_STEPPER_CONTEXT: InjectionToken<ForStepperContext>;
|
|
208
|
+
/** Injection token for the per-step item context (`ForStepperItem`). */
|
|
209
|
+
declare const FOR_STEPPER_ITEM_CONTEXT: InjectionToken<ForStepperItemContext>;
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* Root of the Stepper primitive. Owns the selected step index, linear
|
|
213
|
+
* progression, accessibility mode, orientation, and disabled state. Provides
|
|
214
|
+
* the shared context to descendant directives.
|
|
215
|
+
*
|
|
216
|
+
* Implements the [WAI-ARIA Tabs pattern](https://www.w3.org/WAI/ARIA/apg/patterns/tabs/)
|
|
217
|
+
* in `mode="interactive"` (roving tabindex, `role="tablist"`, `aria-selected`)
|
|
218
|
+
* and an ordered-list progress pattern with `aria-current="step"` in
|
|
219
|
+
* `mode="progress"`.
|
|
220
|
+
*
|
|
221
|
+
* `activationMode='manual'` (default): arrow navigation only moves focus;
|
|
222
|
+
* Space / Enter activates. Recommended for wizards where step activation
|
|
223
|
+
* triggers validation. `activationMode='automatic'`: arrow navigation moves
|
|
224
|
+
* focus AND selects the step.
|
|
225
|
+
*/
|
|
226
|
+
declare class ForStepper implements ForStepperContext {
|
|
227
|
+
#private;
|
|
228
|
+
/**
|
|
229
|
+
* Two-way bindable selected step index in the inclusive range `0 … count`.
|
|
230
|
+
* Defaults to `0`. The terminal value `=== count()` (one past the last step) is
|
|
231
|
+
* the **completed** state (see `isCompleted` / `complete`). The `model()` change
|
|
232
|
+
* emitter (`(selectedIndexChange)`) fires only on internal selection changes
|
|
233
|
+
* (trigger click, Next/Previous, automatic-mode arrow navigation), never on
|
|
234
|
+
* consumer writes via `[(selectedIndex)]`.
|
|
235
|
+
*/
|
|
236
|
+
readonly selectedIndex: _angular_core.ModelSignal<number>;
|
|
237
|
+
/**
|
|
238
|
+
* Emits once each time the stepper transitions **into** the completed terminal
|
|
239
|
+
* state — i.e. when `selectedIndex()` reaches `count()`. Does not re-emit while
|
|
240
|
+
* it stays completed; retreating via `previous()` and re-entering emits again.
|
|
241
|
+
*/
|
|
242
|
+
readonly complete: _angular_core.OutputEmitterRef<void>;
|
|
243
|
+
/**
|
|
244
|
+
* When true, steps are only reachable after all preceding steps are completed
|
|
245
|
+
* or optional. Navigating back (`previous()`) always works regardless of this
|
|
246
|
+
* flag.
|
|
247
|
+
*/
|
|
248
|
+
readonly linear: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
249
|
+
/**
|
|
250
|
+
* Accessibility model. `'interactive'` (default): full WAI-ARIA Tabs pattern
|
|
251
|
+
* — `role="tablist"`, `role="tab"`, `role="tabpanel"`, roving tabindex, arrow
|
|
252
|
+
* navigation. `'progress'`: ordered list with `aria-current="step"` on the
|
|
253
|
+
* active trigger — no tab stop manipulation.
|
|
254
|
+
*/
|
|
255
|
+
readonly mode: _angular_core.InputSignal<StepperMode>;
|
|
256
|
+
/**
|
|
257
|
+
* Layout axis for the step list. Affects `aria-orientation` on the list and
|
|
258
|
+
* which arrow keys navigate in interactive mode.
|
|
259
|
+
*/
|
|
260
|
+
readonly orientation: _angular_core.InputSignal<"horizontal" | "vertical">;
|
|
261
|
+
/**
|
|
262
|
+
* Arrow-key activation timing in interactive mode. Defaults to the value from
|
|
263
|
+
* `provideForStepperDefaults` for the surrounding scope (library default:
|
|
264
|
+
* `'manual'`).
|
|
265
|
+
*/
|
|
266
|
+
readonly activationMode: _angular_core.InputSignal<StepperActivationMode>;
|
|
267
|
+
/**
|
|
268
|
+
* Whether arrow navigation wraps around past the first / last selectable
|
|
269
|
+
* trigger. Defaults to the value from `provideForStepperDefaults` for the
|
|
270
|
+
* surrounding scope (library default: `true`).
|
|
271
|
+
*/
|
|
272
|
+
readonly loop: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
273
|
+
/**
|
|
274
|
+
* When true, all step triggers are non-interactive and the root carries
|
|
275
|
+
* `data-disabled`.
|
|
276
|
+
*/
|
|
277
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
278
|
+
/**
|
|
279
|
+
* Writing direction. When unset (default `null`), the inherited ambient
|
|
280
|
+
* direction is resolved from the nearest ancestor carrying a `dir` attribute
|
|
281
|
+
* (or `<html dir>`), defaulting to `'ltr'`. An explicit `[dir]` always wins.
|
|
282
|
+
* The resolved value is reflected to the host `dir` attribute and swaps
|
|
283
|
+
* ArrowLeft / ArrowRight semantics in RTL.
|
|
284
|
+
*/
|
|
285
|
+
readonly _dirInput: _angular_core.InputSignal<WritingDirection | null>;
|
|
286
|
+
readonly dir: _angular_core.Signal<WritingDirection>;
|
|
287
|
+
readonly roving: RovingTabindex;
|
|
288
|
+
/** Total number of registered step items. */
|
|
289
|
+
readonly count: _angular_core.Signal<number>;
|
|
290
|
+
/**
|
|
291
|
+
* True when the stepper is in the terminal **completed** state: `selectedIndex()`
|
|
292
|
+
* has reached `count()` (one past the last step). No step is current and every
|
|
293
|
+
* `[forStepperContent]` panel is inactive while this holds.
|
|
294
|
+
*/
|
|
295
|
+
readonly isCompleted: _angular_core.Signal<boolean>;
|
|
296
|
+
constructor();
|
|
297
|
+
indexOf(item: ForStepperItemHandle): number;
|
|
298
|
+
isCurrent(index: number): boolean;
|
|
299
|
+
isReachable(index: number): boolean;
|
|
300
|
+
resolvedStateFor(index: number): string;
|
|
301
|
+
select(index: number): void;
|
|
302
|
+
next(): void;
|
|
303
|
+
previous(): void;
|
|
304
|
+
canAdvance(): boolean;
|
|
305
|
+
canRetreat(): boolean;
|
|
306
|
+
navigate(currentTrigger: HTMLElement, action: ListNavigationAction): void;
|
|
307
|
+
registerItem(h: ForStepperItemHandle): void;
|
|
308
|
+
unregisterItem(h: ForStepperItemHandle): void;
|
|
309
|
+
registerTrigger(h: ForStepperTriggerHandle): void;
|
|
310
|
+
unregisterTrigger(h: ForStepperTriggerHandle): void;
|
|
311
|
+
registerContent(h: ForStepperContentHandle): void;
|
|
312
|
+
unregisterContent(h: ForStepperContentHandle): void;
|
|
313
|
+
triggerIdFor(index: number): string | null;
|
|
314
|
+
contentIdFor(index: number): string | null;
|
|
315
|
+
indexOfContent(host: HTMLElement): number;
|
|
316
|
+
isFirstSelectableTrigger(el: HTMLElement): boolean;
|
|
317
|
+
hasCurrentTrigger(): boolean;
|
|
318
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForStepper, never>;
|
|
319
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForStepper, "[forStepper]", ["forStepper"], { "selectedIndex": { "alias": "selectedIndex"; "required": false; "isSignal": true; }; "linear": { "alias": "linear"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "activationMode": { "alias": "activationMode"; "required": false; "isSignal": true; }; "loop": { "alias": "loop"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "_dirInput": { "alias": "dir"; "required": false; "isSignal": true; }; }, { "selectedIndex": "selectedIndexChange"; "complete": "complete"; }, never, never, true, never>;
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
/**
|
|
323
|
+
* The step-list container. In `mode="interactive"` renders as `role="tablist"`
|
|
324
|
+
* with `aria-orientation`; in `mode="progress"` renders as `role="list"`.
|
|
325
|
+
*
|
|
326
|
+
* Apply on an `<ol>` (recommended for semantic list markup) wrapping the
|
|
327
|
+
* `[forStepperItem]` elements. The `[forStepperContent]` panels live as
|
|
328
|
+
* siblings of the list.
|
|
329
|
+
*/
|
|
330
|
+
declare class ForStepperList {
|
|
331
|
+
protected readonly ctx: forty_cdk_stepper.ForStepperContext;
|
|
332
|
+
/** Accessible name for the step list. Defers to a consumer `aria-labelledby`. */
|
|
333
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
334
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForStepperList, never>;
|
|
335
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForStepperList, "[forStepperList]", ["forStepperList"], { "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
/**
|
|
339
|
+
* One step within a `ForStepper`. Owns per-step state (`completed`, `optional`,
|
|
340
|
+
* `disabled`, `hasError`, `state`) and exposes the `ForStepperItemContext` that
|
|
341
|
+
* child `[forStepperTrigger]`, `[forStepperIndicator]`, and
|
|
342
|
+
* `[forStepperSeparator]` directives consume.
|
|
343
|
+
*
|
|
344
|
+
* Apply on a list item element (e.g. `<li forStepperItem>`). The step's index
|
|
345
|
+
* is derived reactively from its DOM position within the stepper via the root's
|
|
346
|
+
* item collection.
|
|
347
|
+
*/
|
|
348
|
+
declare class ForStepperItem implements ForStepperItemContext, ForStepperItemHandle {
|
|
349
|
+
protected readonly ctx: forty_cdk_stepper.ForStepperContext;
|
|
350
|
+
/** Host element — satisfies `ForStepperItemHandle.host` for collection registration. */
|
|
351
|
+
readonly host: HTMLElement;
|
|
352
|
+
/**
|
|
353
|
+
* Manual completion flag. When `true`, the step is completed regardless of any
|
|
354
|
+
* bound `field()`. Bind via `[completed]`.
|
|
355
|
+
*/
|
|
356
|
+
readonly _completedInput: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
357
|
+
/** Marks this step as optional (can be skipped in linear mode). */
|
|
358
|
+
readonly optional: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
359
|
+
/** When true, this step's trigger ignores clicks and the step is unreachable by keyboard. */
|
|
360
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
361
|
+
/**
|
|
362
|
+
* Manual error flag. When `true`, the step reflects the `'error'` resolved state
|
|
363
|
+
* (unless current) regardless of any bound `field()`. Bind via `[hasError]`.
|
|
364
|
+
*/
|
|
365
|
+
readonly _hasErrorInput: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
366
|
+
/**
|
|
367
|
+
* Optional Signal Forms field. When bound, the step's `completed` and
|
|
368
|
+
* `hasError` derive from the field's reactive validity: `completed` is `true`
|
|
369
|
+
* when the field is valid and touched; `hasError` is `true` when the field is
|
|
370
|
+
* touched and invalid. A manual `[completed]` / `[hasError]` input always wins
|
|
371
|
+
* when set. Leave unset to drive completion manually.
|
|
372
|
+
*
|
|
373
|
+
* The `@angular/forms` peer is optional: the field *type* is imported with
|
|
374
|
+
* `import type`, so binding `[field]` requires the peer but the primitive
|
|
375
|
+
* compiles and tree-shakes without it for consumers who never use it.
|
|
376
|
+
*/
|
|
377
|
+
readonly field: _angular_core.InputSignal<FieldTree<unknown> | null>;
|
|
378
|
+
/**
|
|
379
|
+
* Whether this step is completed. A manual `[completed]` input wins; otherwise,
|
|
380
|
+
* when a `field()` is bound, derives `true` from `field` valid + touched.
|
|
381
|
+
*/
|
|
382
|
+
readonly completed: _angular_core.Signal<boolean>;
|
|
383
|
+
/**
|
|
384
|
+
* Whether this step has an error. A manual `[hasError]` input wins; otherwise,
|
|
385
|
+
* when a `field()` is bound, derives `true` from `field` touched + invalid.
|
|
386
|
+
*/
|
|
387
|
+
readonly hasError: _angular_core.Signal<boolean>;
|
|
388
|
+
/**
|
|
389
|
+
* Custom state string override. When non-empty, wins over the derived resolved
|
|
390
|
+
* state (`error`, `active`, `completed`, `pending`) and drives every
|
|
391
|
+
* `data-state` attribute on this step.
|
|
392
|
+
*/
|
|
393
|
+
readonly state: _angular_core.InputSignal<string | null>;
|
|
394
|
+
/** Whether this step is disabled — own `disabled` OR the root stepper's `disabled`. */
|
|
395
|
+
readonly effectiveDisabled: _angular_core.Signal<boolean>;
|
|
396
|
+
/** DOM-order index of this step within the stepper. */
|
|
397
|
+
readonly index: _angular_core.Signal<number>;
|
|
398
|
+
/** True when this step is the currently selected step. */
|
|
399
|
+
readonly current: _angular_core.Signal<boolean>;
|
|
400
|
+
/**
|
|
401
|
+
* True when this step can be focused and activated. False when the step is
|
|
402
|
+
* effectively disabled or not yet reachable in linear mode.
|
|
403
|
+
*/
|
|
404
|
+
readonly selectable: _angular_core.Signal<boolean>;
|
|
405
|
+
/**
|
|
406
|
+
* Resolved `data-state` string. Precedence:
|
|
407
|
+
* 1. Custom `state()` when non-empty.
|
|
408
|
+
* 2. `'error'` when `hasError()` and not current.
|
|
409
|
+
* 3. `'active'` when current.
|
|
410
|
+
* 4. `'completed'` when `completed()`.
|
|
411
|
+
* 5. `'pending'` otherwise.
|
|
412
|
+
*/
|
|
413
|
+
readonly resolvedState: _angular_core.Signal<string>;
|
|
414
|
+
constructor();
|
|
415
|
+
/** Selects this step. Delegates to `ForStepperContext.select(index)`. */
|
|
416
|
+
select(): void;
|
|
417
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForStepperItem, never>;
|
|
418
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForStepperItem, "[forStepperItem]", ["forStepperItem"], { "_completedInput": { "alias": "completed"; "required": false; "isSignal": true; }; "optional": { "alias": "optional"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "_hasErrorInput": { "alias": "hasError"; "required": false; "isSignal": true; }; "field": { "alias": "field"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
/**
|
|
422
|
+
* Header for one step. In `mode="interactive"` carries `role="tab"`, participates
|
|
423
|
+
* in the roving tabindex, and wires `aria-selected` / `aria-controls` /
|
|
424
|
+
* `aria-disabled`. In `mode="progress"` carries `aria-current="step"` on the
|
|
425
|
+
* active step only and is a static element (no tab-stop manipulation).
|
|
426
|
+
*
|
|
427
|
+
* Apply on a `<button type="button">` for interactive mode so Enter / Space
|
|
428
|
+
* activation is native. A static element (`<span>`) is acceptable for progress
|
|
429
|
+
* mode.
|
|
430
|
+
*
|
|
431
|
+
* Disabled triggers in interactive mode keep their tab stop (`aria-disabled`
|
|
432
|
+
* instead of native `disabled`) so assistive tech can announce them.
|
|
433
|
+
*/
|
|
434
|
+
declare class ForStepperTrigger {
|
|
435
|
+
#private;
|
|
436
|
+
protected readonly ctx: forty_cdk_stepper.ForStepperContext;
|
|
437
|
+
protected readonly item: forty_cdk_stepper.ForStepperItemContext;
|
|
438
|
+
/** Generated (or consumer-set static) id for this trigger. Used by content panels for `aria-labelledby`. */
|
|
439
|
+
readonly id: _angular_core.Signal<string>;
|
|
440
|
+
/** Id of the content panel this trigger controls (the matching panel by step index). */
|
|
441
|
+
protected readonly controlsId: _angular_core.Signal<string | null>;
|
|
442
|
+
/**
|
|
443
|
+
* APG tabindex cascade (interactive mode only). In progress mode returns
|
|
444
|
+
* `null` so no tab-stop attribute is emitted. In interactive mode:
|
|
445
|
+
* - `null` when not selectable (disabled or unreachable in linear mode).
|
|
446
|
+
* - Roving-tracker value once any trigger has been focused.
|
|
447
|
+
* - `0` when this step is current.
|
|
448
|
+
* - `-1` when another trigger owns the current step.
|
|
449
|
+
* - `0` if this is the first selectable trigger (fallback entry point).
|
|
450
|
+
* - `-1` otherwise.
|
|
451
|
+
*/
|
|
452
|
+
protected readonly tabindex: _angular_core.Signal<0 | -1 | null>;
|
|
453
|
+
constructor();
|
|
454
|
+
protected onClick(): void;
|
|
455
|
+
protected onFocus(): void;
|
|
456
|
+
protected onKeyDown(event: KeyboardEvent): void;
|
|
457
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForStepperTrigger, never>;
|
|
458
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForStepperTrigger, "[forStepperTrigger]", ["forStepperTrigger"], {}, {}, never, never, true, never>;
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
/**
|
|
462
|
+
* Decorative icon slot for a step. Hidden from the accessibility tree
|
|
463
|
+
* (`aria-hidden="true"`). Reflects the step's resolved `data-state` so
|
|
464
|
+
* consumers can swap icons via CSS `[data-state="completed"]`,
|
|
465
|
+
* `[data-state="error"]`, etc., or with `@if` keyed on the exported
|
|
466
|
+
* `#indicator="forStepperIndicator"` reference.
|
|
467
|
+
*
|
|
468
|
+
* Must be used inside a `[forStepperItem]` element.
|
|
469
|
+
*/
|
|
470
|
+
declare class ForStepperIndicator {
|
|
471
|
+
protected readonly item: forty_cdk_stepper.ForStepperItemContext;
|
|
472
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForStepperIndicator, never>;
|
|
473
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForStepperIndicator, "[forStepperIndicator]", ["forStepperIndicator"], {}, {}, never, never, true, never>;
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
/**
|
|
477
|
+
* Decorative connector between steps. Hidden from the accessibility tree
|
|
478
|
+
* (`aria-hidden="true"`). Reflects `data-state="completed"` when the preceding
|
|
479
|
+
* step is marked completed, `data-state="pending"` otherwise. Also reflects
|
|
480
|
+
* `data-orientation` so consumers can style horizontal vs vertical separators
|
|
481
|
+
* differently.
|
|
482
|
+
*
|
|
483
|
+
* Must be used inside a `[forStepperItem]` element.
|
|
484
|
+
*/
|
|
485
|
+
declare class ForStepperSeparator {
|
|
486
|
+
protected readonly ctx: forty_cdk_stepper.ForStepperContext;
|
|
487
|
+
protected readonly item: forty_cdk_stepper.ForStepperItemContext;
|
|
488
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForStepperSeparator, never>;
|
|
489
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForStepperSeparator, "[forStepperSeparator]", ["forStepperSeparator"], {}, {}, never, never, true, never>;
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
/**
|
|
493
|
+
* Panel for one step. Correlates to a step by **position** — the Nth
|
|
494
|
+
* `[forStepperContent]` panel in registration (DOM document) order corresponds
|
|
495
|
+
* to the Nth step.
|
|
496
|
+
*
|
|
497
|
+
* In `mode="interactive"` the panel carries `role="tabpanel"` and is a tab
|
|
498
|
+
* stop (`tabindex="0"`) only when it has no focusable content of its own
|
|
499
|
+
* (WAI-ARIA Tabs APG rule). In `mode="progress"` the panel carries
|
|
500
|
+
* `role="group"` and is never a tab stop.
|
|
501
|
+
*
|
|
502
|
+
* While inactive the directive reflects `aria-hidden="true"` and `inert` so
|
|
503
|
+
* mounted-but-inactive panels are removed from the accessibility tree and focus
|
|
504
|
+
* order automatically. DOM presence is the consumer's responsibility — wrap
|
|
505
|
+
* with `@if (current())` to unmount or leave mounted and toggle visibility with
|
|
506
|
+
* CSS via `[data-state="inactive"]`.
|
|
507
|
+
*/
|
|
508
|
+
declare class ForStepperContent {
|
|
509
|
+
#private;
|
|
510
|
+
protected readonly ctx: forty_cdk_stepper.ForStepperContext;
|
|
511
|
+
/** Generated (or consumer-set static) id for this panel. Used by triggers for `aria-controls`. */
|
|
512
|
+
readonly id: _angular_core.Signal<string>;
|
|
513
|
+
/** True when this panel corresponds to the currently selected step. */
|
|
514
|
+
readonly current: _angular_core.Signal<boolean>;
|
|
515
|
+
/** Id of the trigger that labels this panel (`aria-labelledby`). */
|
|
516
|
+
protected readonly labelledBy: _angular_core.Signal<string | null>;
|
|
517
|
+
/**
|
|
518
|
+
* APG tabindex: `'0'` only when in interactive mode and the panel has no
|
|
519
|
+
* focusable content of its own, so screen-reader users can reach the panel
|
|
520
|
+
* itself. A panel containing buttons / links / form controls gets no
|
|
521
|
+
* `tabindex`, avoiding a redundant tab stop.
|
|
522
|
+
*/
|
|
523
|
+
protected readonly tabindex: _angular_core.Signal<"0" | null>;
|
|
524
|
+
constructor();
|
|
525
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForStepperContent, never>;
|
|
526
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForStepperContent, "[forStepperContent]", ["forStepperContent"], {}, {}, never, never, true, never>;
|
|
527
|
+
}
|
|
528
|
+
|
|
529
|
+
/**
|
|
530
|
+
* Terminal "all steps complete" panel. Shown (active) only while the stepper is in
|
|
531
|
+
* the completed state (`selectedIndex` has reached `count`); gated the same way as
|
|
532
|
+
* `[forStepperContent]` — `aria-hidden` / `inert` / `data-state` flip with
|
|
533
|
+
* `isCompleted()`. The natural place for a wizard's final success panel.
|
|
534
|
+
*
|
|
535
|
+
* DOM presence is the consumer's responsibility — wrap with `@if` driven by the same
|
|
536
|
+
* completed condition, or leave it mounted and toggle visibility with CSS via
|
|
537
|
+
* `[data-state="active"]`.
|
|
538
|
+
*/
|
|
539
|
+
declare class ForStepperCompletedContent {
|
|
540
|
+
protected readonly ctx: forty_cdk_stepper.ForStepperContext;
|
|
541
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForStepperCompletedContent, never>;
|
|
542
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForStepperCompletedContent, "[forStepperCompletedContent]", ["forStepperCompletedContent"], {}, {}, never, never, true, never>;
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
/**
|
|
546
|
+
* "Next" button for the stepper. Apply on a `<button>` element. Reflects
|
|
547
|
+
* `aria-disabled="true"` when `canAdvance()` is false (last step reached, root
|
|
548
|
+
* disabled, or in linear mode the current step is not completed / optional).
|
|
549
|
+
*
|
|
550
|
+
* The button retains its native `type="button"` attribute via the `type` host
|
|
551
|
+
* binding to prevent accidental form submission.
|
|
552
|
+
*
|
|
553
|
+
* Clicking while `aria-disabled` is a no-op because `next()` guards internally.
|
|
554
|
+
*/
|
|
555
|
+
declare class ForStepperNext {
|
|
556
|
+
protected readonly ctx: forty_cdk_stepper.ForStepperContext;
|
|
557
|
+
protected onClick(): void;
|
|
558
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForStepperNext, never>;
|
|
559
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForStepperNext, "button[forStepperNext]", ["forStepperNext"], {}, {}, never, never, true, never>;
|
|
560
|
+
}
|
|
561
|
+
|
|
562
|
+
/**
|
|
563
|
+
* "Previous" button for the stepper. Apply on a `<button>` element. Reflects
|
|
564
|
+
* `aria-disabled="true"` when `canRetreat()` is false (first step reached or
|
|
565
|
+
* root disabled).
|
|
566
|
+
*
|
|
567
|
+
* The button retains its native `type="button"` attribute via the `type` host
|
|
568
|
+
* binding to prevent accidental form submission.
|
|
569
|
+
*
|
|
570
|
+
* Clicking while `aria-disabled` is a no-op because `previous()` guards
|
|
571
|
+
* internally.
|
|
572
|
+
*/
|
|
573
|
+
declare class ForStepperPrevious {
|
|
574
|
+
protected readonly ctx: forty_cdk_stepper.ForStepperContext;
|
|
575
|
+
protected onClick(): void;
|
|
576
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForStepperPrevious, never>;
|
|
577
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForStepperPrevious, "button[forStepperPrevious]", ["forStepperPrevious"], {}, {}, never, never, true, never>;
|
|
578
|
+
}
|
|
579
|
+
|
|
580
|
+
/**
|
|
581
|
+
* Optional progress indicator for the Stepper. Reads the stepper context and
|
|
582
|
+
* reflects how far through the steps the user is as a WAI-ARIA
|
|
583
|
+
* [`progressbar`](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Reference/Roles/progressbar_role):
|
|
584
|
+
* `aria-valuemin="0"`, `aria-valuemax="100"`, `aria-valuenow` = the computed
|
|
585
|
+
* percent, and an `aria-valuetext` describing the position. Publishes a
|
|
586
|
+
* `--for-stepper-progress` (0–1) custom property for styling; ships no visuals.
|
|
587
|
+
*
|
|
588
|
+
* Must be used inside a `[forStepper]` element.
|
|
589
|
+
*/
|
|
590
|
+
declare class ForStepperProgress {
|
|
591
|
+
#private;
|
|
592
|
+
protected readonly ctx: forty_cdk_stepper.ForStepperContext;
|
|
593
|
+
/**
|
|
594
|
+
* Basis for the reported percent. `'index'` (default) derives progress from
|
|
595
|
+
* the current step index; `'completed'`
|
|
596
|
+
* derives it from the count of steps whose resolved state is `completed`.
|
|
597
|
+
*/
|
|
598
|
+
readonly valueBy: _angular_core.InputSignal<"completed" | "index">;
|
|
599
|
+
/**
|
|
600
|
+
* Accessible name for the progressbar. Defaults to `null`, emitting no
|
|
601
|
+
* `aria-label`; prefer a visible label referenced via `aria-labelledby` when
|
|
602
|
+
* one exists.
|
|
603
|
+
*/
|
|
604
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
605
|
+
/**
|
|
606
|
+
* Progress as a whole-number percent in `[0, 100]`, reflected to
|
|
607
|
+
* `aria-valuenow` and (divided by 100) to the `--for-stepper-progress`
|
|
608
|
+
* custom property.
|
|
609
|
+
*/
|
|
610
|
+
readonly percent: _angular_core.Signal<number>;
|
|
611
|
+
/**
|
|
612
|
+
* Human-readable position string reflected to `aria-valuetext`: `"Step X of N"`
|
|
613
|
+
* on the `'index'` basis, `"P% complete"` on the `'completed'` basis.
|
|
614
|
+
*/
|
|
615
|
+
readonly valueText: _angular_core.Signal<string>;
|
|
616
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForStepperProgress, never>;
|
|
617
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForStepperProgress, "[forStepperProgress]", ["forStepperProgress"], { "valueBy": { "alias": "valueBy"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
618
|
+
}
|
|
619
|
+
|
|
620
|
+
/**
|
|
621
|
+
* Defaults inherited by descendant steppers in the surrounding injector scope.
|
|
622
|
+
* Configure with `provideForStepperDefaults` either at the application root or
|
|
623
|
+
* in any component's `providers` array; partial overrides merge with the parent
|
|
624
|
+
* scope.
|
|
625
|
+
*/
|
|
626
|
+
interface ForStepperDefaults {
|
|
627
|
+
/**
|
|
628
|
+
* `'manual'` (default): arrow navigation only moves focus; the user must
|
|
629
|
+
* press Space / Enter to activate. Recommended for wizards where step
|
|
630
|
+
* activation often triggers validation. `'automatic'`: arrow navigation moves
|
|
631
|
+
* focus AND selects the step.
|
|
632
|
+
*/
|
|
633
|
+
activationMode: StepperActivationMode;
|
|
634
|
+
/**
|
|
635
|
+
* Whether arrow navigation wraps around past the first / last selectable
|
|
636
|
+
* trigger.
|
|
637
|
+
*/
|
|
638
|
+
loop: boolean;
|
|
639
|
+
}
|
|
640
|
+
/** Token holding the resolved stepper defaults for the current scope. */
|
|
641
|
+
declare const FOR_STEPPER_DEFAULTS: _angular_core.InjectionToken<ForStepperDefaults>;
|
|
642
|
+
/**
|
|
643
|
+
* Configures forty-cdk stepper defaults for this injector scope. Partial
|
|
644
|
+
* overrides inherit unspecified keys from the parent scope (or library defaults
|
|
645
|
+
* at the root).
|
|
646
|
+
*/
|
|
647
|
+
declare function provideForStepperDefaults(defaults?: Partial<ForStepperDefaults>): Provider[];
|
|
648
|
+
|
|
649
|
+
export { FOR_STEPPER_CONTEXT, FOR_STEPPER_DEFAULTS, FOR_STEPPER_ITEM_CONTEXT, ForStepper, ForStepperCompletedContent, ForStepperContent, ForStepperIndicator, ForStepperItem, ForStepperList, ForStepperNext, ForStepperPrevious, ForStepperProgress, ForStepperSeparator, ForStepperTrigger, provideForStepperDefaults };
|
|
650
|
+
export type { ForStepperContentHandle, ForStepperContext, ForStepperDefaults, ForStepperItemContext, ForStepperItemHandle, ForStepperTriggerHandle, StepperActivationMode, StepperMode };
|