forty-cdk 0.0.4 → 0.2.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/LICENSE +21 -21
- package/README.md +2 -1
- package/fesm2022/forty-cdk-internationalized-date.mjs +2 -2
- package/fesm2022/forty-cdk-internationalized-date.mjs.map +1 -1
- package/fesm2022/forty-cdk-virtualization.mjs +647 -0
- package/fesm2022/forty-cdk-virtualization.mjs.map +1 -0
- package/fesm2022/forty-cdk.mjs +8312 -6096
- package/fesm2022/forty-cdk.mjs.map +1 -1
- package/internationalized-date/README.md +23 -23
- package/package.json +5 -1
- package/types/forty-cdk-internationalized-date.d.ts +2 -2
- package/types/forty-cdk-virtualization.d.ts +305 -0
- package/types/forty-cdk.d.ts +1792 -771
- package/virtualization/README.md +255 -0
package/types/forty-cdk.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { InjectionToken, Provider, Signal, Type,
|
|
2
|
+
import { InjectionToken, Provider, ModelSignal, Signal, EnvironmentInjector, ComponentRef, Type, Injector, OutputEmitterRef, TemplateRef, ElementRef } from '@angular/core';
|
|
3
3
|
import * as forty_cdk from 'forty-cdk';
|
|
4
4
|
import { ValidationError, FormValueControl, FormCheckboxControl, FieldTree } from '@angular/forms/signals';
|
|
5
|
+
import * as _floating_ui_dom from '@floating-ui/dom';
|
|
5
6
|
import { ReferenceElement } from '@floating-ui/dom';
|
|
6
7
|
|
|
7
8
|
/**
|
|
@@ -10,7 +11,7 @@ import { ReferenceElement } from '@floating-ui/dom';
|
|
|
10
11
|
* (close, focus move, etc.) when set.
|
|
11
12
|
*
|
|
12
13
|
* Replaces the prior pattern of passing a real DOM `CustomEvent`, which
|
|
13
|
-
* was a
|
|
14
|
+
* was a poor fit: Angular `output()` is a synchronous in-process
|
|
14
15
|
* emitter — events don't bubble, don't propagate, and have no `target` /
|
|
15
16
|
* `currentTarget`. `CustomEvent` cost an allocation per emit and gave
|
|
16
17
|
* consumers a misleading "looks like a DOM event" surface.
|
|
@@ -63,6 +64,260 @@ declare const FOR_ID_SALT: InjectionToken<string>;
|
|
|
63
64
|
* @param salt A stable, app-unique salt.
|
|
64
65
|
*/
|
|
65
66
|
declare function provideForIdSalt(salt: string): Provider;
|
|
67
|
+
/**
|
|
68
|
+
* Generates unique string IDs scoped to the application instance.
|
|
69
|
+
*
|
|
70
|
+
* Used by primitives that need to wire `aria-controls` / `aria-labelledby`
|
|
71
|
+
* relationships between pieces — the IDs are stable for the lifetime of the
|
|
72
|
+
* primitive instance.
|
|
73
|
+
*
|
|
74
|
+
* SSR: the generator is `providedIn: 'root'`, so a fresh instance is
|
|
75
|
+
* created for each Angular application bootstrap (one per SSR request).
|
|
76
|
+
* The IDs are salted with {@link FOR_ID_SALT} (which defaults to the
|
|
77
|
+
* application's `APP_ID`) so the server and the client produce identical
|
|
78
|
+
* strings for the same render order — the property hydration relies on.
|
|
79
|
+
*
|
|
80
|
+
* IMPORTANT — multiple apps on one page need distinct salts. The default salt
|
|
81
|
+
* is `APP_ID`, and Angular's default `APP_ID` is the literal `'ng'`. Two
|
|
82
|
+
* forty-cdk apps mounted side-by-side that both keep the default salt
|
|
83
|
+
* therefore start from the same salt and the same counter, emitting identical
|
|
84
|
+
* id sequences — duplicate DOM ids that mis-resolve `aria-labelledby` /
|
|
85
|
+
* `aria-controls` across apps. A per-instance random nonce is deliberately
|
|
86
|
+
* NOT mixed in: it would diverge the salt but break SSR hydration (the server
|
|
87
|
+
* and client renders would no longer agree). When running more than one
|
|
88
|
+
* forty-cdk app on a single page, give each a distinct salt via
|
|
89
|
+
* {@link provideForIdSalt} (the per-app knob that leaves the global `APP_ID`
|
|
90
|
+
* untouched). Overriding the global `APP_ID` works too, but it also drives
|
|
91
|
+
* Angular's hydration store and event replay, so `provideForIdSalt` is the
|
|
92
|
+
* narrower choice.
|
|
93
|
+
*/
|
|
94
|
+
declare class IdGenerator {
|
|
95
|
+
#private;
|
|
96
|
+
/**
|
|
97
|
+
* Returns a fresh, unique ID with the given prefix.
|
|
98
|
+
*
|
|
99
|
+
* @param prefix Optional prefix for the generated ID. Defaults to `for`.
|
|
100
|
+
*/
|
|
101
|
+
next(prefix?: string): string;
|
|
102
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<IdGenerator, never>;
|
|
103
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<IdGenerator>;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Pluggable, date-library-agnostic seam for `ForCalendar`. Every internal
|
|
108
|
+
* algorithm (paging, the day matrix, comparison, formatting) goes through a
|
|
109
|
+
* `DateAdapter<D>`, so the primitive never hard-depends on a date library.
|
|
110
|
+
*
|
|
111
|
+
* The library ships two adapters behind {@link FOR_DATE_ADAPTER}:
|
|
112
|
+
*
|
|
113
|
+
* - `provideInternationalizedDateAdapter()` — over `@internationalized/date`'s
|
|
114
|
+
* immutable `CalendarDate`. Recommended for correct date-math and locale-aware
|
|
115
|
+
* formatting; `@internationalized/date` is an optional peer dependency. Both
|
|
116
|
+
* `@internationalized/date` adapters operate on the **Gregorian** calendar
|
|
117
|
+
* today — non-Gregorian calendar systems are deferred to the Temporal adapter
|
|
118
|
+
* track (#354).
|
|
119
|
+
* - `provideNativeDateAdapter()` — over the built-in `Date`. Zero-dependency
|
|
120
|
+
* fallback.
|
|
121
|
+
*
|
|
122
|
+
* A `Temporal.PlainDate` adapter is a planned non-breaking addition once the
|
|
123
|
+
* Temporal API is broadly available across browsers (#354).
|
|
124
|
+
*
|
|
125
|
+
* Implementations must be pure with respect to their date type: every
|
|
126
|
+
* operation returns a value and never mutates its inputs. The `D` produced by
|
|
127
|
+
* mutating operations (`add*`, `createDate`) is a fresh value, which keeps it
|
|
128
|
+
* signal-friendly (reference equality changes on every change).
|
|
129
|
+
*
|
|
130
|
+
* @typeParam D The immutable date representation the adapter operates on.
|
|
131
|
+
*/
|
|
132
|
+
interface DateAdapter<D> {
|
|
133
|
+
/**
|
|
134
|
+
* Today's date in the runtime time zone.
|
|
135
|
+
*
|
|
136
|
+
* **SSR / hydration caveat.** The result depends on the runtime time zone, so
|
|
137
|
+
* a server render and a client hydration can disagree by up to a day near
|
|
138
|
+
* midnight — the server may compute a different calendar day than the
|
|
139
|
+
* browser. `ForCalendar` reads this once to mark the `data-today` /
|
|
140
|
+
* `aria-current="date"` cell, so a mismatch surfaces there as a hydration
|
|
141
|
+
* error and a flicker on the highlighted "today" cell.
|
|
142
|
+
*
|
|
143
|
+
* **SSR-safe pattern.** Have the consumer supply a fixed "today" (or pin a
|
|
144
|
+
* time zone) for the server render, or defer the today-highlight to
|
|
145
|
+
* `afterNextRender` so `today()` is only computed client-side. See the
|
|
146
|
+
* calendar README's "SSR / hydration" section.
|
|
147
|
+
*/
|
|
148
|
+
today(): D;
|
|
149
|
+
/**
|
|
150
|
+
* Creates a date from its parts.
|
|
151
|
+
*
|
|
152
|
+
* @param year Full year (e.g. `2026`).
|
|
153
|
+
* @param month Month of year, **1-12**.
|
|
154
|
+
* @param day Day of month, **1-31** (constrained to the month's length).
|
|
155
|
+
*/
|
|
156
|
+
createDate(year: number, month: number, day: number): D;
|
|
157
|
+
/** The full year of `date` (e.g. `2026`). */
|
|
158
|
+
getYear(date: D): number;
|
|
159
|
+
/** The month of `date`, **1-12**. */
|
|
160
|
+
getMonth(date: D): number;
|
|
161
|
+
/** The day of month of `date`, **1-31**. */
|
|
162
|
+
getDate(date: D): number;
|
|
163
|
+
/** The day of week of `date`, **0-6** where `0` is Sunday and `6` is Saturday. */
|
|
164
|
+
getDayOfWeek(date: D): number;
|
|
165
|
+
/** The number of days in `date`'s month. */
|
|
166
|
+
getDaysInMonth(date: D): number;
|
|
167
|
+
/**
|
|
168
|
+
* The first day of the week as a **0-6** index (`0` = Sunday). Used as the
|
|
169
|
+
* default when `ForCalendar`'s `firstDayOfWeek` input is `null`. Adapters
|
|
170
|
+
* return a locale-independent default (`0`); consumers localise it through
|
|
171
|
+
* the `firstDayOfWeek` input or `provideForCalendarDefaults`.
|
|
172
|
+
*/
|
|
173
|
+
getFirstDayOfWeek(): number;
|
|
174
|
+
/** Returns a new date `n` days after `date` (negative goes backwards). */
|
|
175
|
+
addDays(date: D, n: number): D;
|
|
176
|
+
/**
|
|
177
|
+
* Returns a new date `n` months after `date` (negative goes backwards). The
|
|
178
|
+
* day of month is constrained to the target month's length (e.g. Jan 31 + 1
|
|
179
|
+
* month is Feb 28/29, never Mar 3).
|
|
180
|
+
*/
|
|
181
|
+
addMonths(date: D, n: number): D;
|
|
182
|
+
/**
|
|
183
|
+
* Returns a new date `n` years after `date` (negative goes backwards). The
|
|
184
|
+
* day of month is constrained (e.g. Feb 29 + 1 year is Feb 28 in a common
|
|
185
|
+
* year).
|
|
186
|
+
*/
|
|
187
|
+
addYears(date: D, n: number): D;
|
|
188
|
+
/**
|
|
189
|
+
* Compares two dates by their natural ordering — **the full instant**,
|
|
190
|
+
* including any time component the adapter's `D` carries. Returns a negative
|
|
191
|
+
* number when `a` is before `b`, `0` when they are equal, and a positive
|
|
192
|
+
* number when `a` is after `b`.
|
|
193
|
+
*
|
|
194
|
+
* This is the canonical comparator and the only one an adapter must
|
|
195
|
+
* implement. Time-capable adapters (`Date`, `@internationalized/date`'s
|
|
196
|
+
* `CalendarDateTime`) order by day *and* time; day-only adapters
|
|
197
|
+
* (`CalendarDate`) order by day alone because that is all their `D` carries.
|
|
198
|
+
*
|
|
199
|
+
* **Bounds granularity.** `minDate` / `maxDate` clamping in the date
|
|
200
|
+
* primitives compares the full instant through `compare`, so a date-time
|
|
201
|
+
* `min`/`max` clamps identically on every time-capable adapter (e.g. native
|
|
202
|
+
* `Date` and `CalendarDateTime` produce the same result for the same input).
|
|
203
|
+
* For the *calendar grid*, where availability is day-granular so the boundary
|
|
204
|
+
* day of a date-time `min`/`max` stays selectable, use {@link compareDateOf}
|
|
205
|
+
* (which honours {@link compareDate} when present and otherwise derives a
|
|
206
|
+
* day-only comparison from the y/m/d getters).
|
|
207
|
+
*/
|
|
208
|
+
compare(a: D, b: D): number;
|
|
209
|
+
/**
|
|
210
|
+
* Optionally compares two dates by calendar day only, ignoring any time
|
|
211
|
+
* component. Returns a negative number when `a`'s day is before `b`'s, `0`
|
|
212
|
+
* when they fall on the same calendar day, and a positive number when `a`'s
|
|
213
|
+
* day is after `b`'s.
|
|
214
|
+
*
|
|
215
|
+
* Adapters may **omit** this method: {@link compareDateOf} then derives the
|
|
216
|
+
* day-only comparison from the {@link getYear} / {@link getMonth} /
|
|
217
|
+
* {@link getDate} getters, which is correct for any adapter. Implement it only
|
|
218
|
+
* to override that default (e.g. for a non-Gregorian ordering). Day-only
|
|
219
|
+
* adapters whose {@link compare} already ignores time need not implement it.
|
|
220
|
+
*/
|
|
221
|
+
compareDate?(a: D, b: D): number;
|
|
222
|
+
/** Whether `a` and `b` fall on the same calendar day. */
|
|
223
|
+
isSameDay(a: D, b: D): boolean;
|
|
224
|
+
/** Whether `date` is a valid date of this adapter's type. */
|
|
225
|
+
isValid(date: D): boolean;
|
|
226
|
+
/**
|
|
227
|
+
* Formats `date` for display using the runtime's default locale.
|
|
228
|
+
*
|
|
229
|
+
* **SSR / hydration caveat.** The result resolves against the runtime's
|
|
230
|
+
* default locale, so a server render and a client hydration can produce
|
|
231
|
+
* different strings when the server and browser locales differ — surfacing as
|
|
232
|
+
* a hydration mismatch on every formatted value (heading, weekday headers,
|
|
233
|
+
* cell labels). The runtime time zone applies too for adapters that format
|
|
234
|
+
* through a wall-clock instant.
|
|
235
|
+
*
|
|
236
|
+
* **SSR-safe pattern.** Pin a locale (or format client-side) for the server
|
|
237
|
+
* render so both environments resolve the same locale. See the calendar
|
|
238
|
+
* README's "SSR / hydration" section.
|
|
239
|
+
*
|
|
240
|
+
* @param options Standard `Intl.DateTimeFormat` options (e.g.
|
|
241
|
+
* `{ month: 'long', year: 'numeric' }` for a calendar heading,
|
|
242
|
+
* `{ weekday: 'short' }` for a column header).
|
|
243
|
+
*/
|
|
244
|
+
format(date: D, options: Intl.DateTimeFormatOptions): string;
|
|
245
|
+
/**
|
|
246
|
+
* Whether this adapter's `D` can carry a wall-clock time component (hour /
|
|
247
|
+
* minute / second). Day-only adapters omit the optional time accessors below
|
|
248
|
+
* and return `false` (or omit this method); time-capable adapters implement
|
|
249
|
+
* them and return `true`. `ForTimeField` — and the time granularity of the
|
|
250
|
+
* date primitives — require a time-capable adapter.
|
|
251
|
+
*/
|
|
252
|
+
supportsTime?(): boolean;
|
|
253
|
+
/** The hour of `date`, **0-23** (24-hour clock). Time-capable adapters only. */
|
|
254
|
+
getHours?(date: D): number;
|
|
255
|
+
/** The minute of `date`, **0-59**. Time-capable adapters only. */
|
|
256
|
+
getMinutes?(date: D): number;
|
|
257
|
+
/** The second of `date`, **0-59**. Time-capable adapters only. */
|
|
258
|
+
getSeconds?(date: D): number;
|
|
259
|
+
/**
|
|
260
|
+
* Returns a new date with its time set to the given parts, preserving the
|
|
261
|
+
* calendar day. Time-capable adapters only.
|
|
262
|
+
*
|
|
263
|
+
* @param hours Hour of day, **0-23**.
|
|
264
|
+
* @param minutes Minute of hour, **0-59**.
|
|
265
|
+
* @param seconds Second of minute, **0-59**.
|
|
266
|
+
*/
|
|
267
|
+
setTime?(date: D, hours: number, minutes: number, seconds: number): D;
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* A {@link DateAdapter} narrowed to one that implements the optional time
|
|
271
|
+
* accessors. Produced by {@link assertTimeCapable} so time primitives can call
|
|
272
|
+
* `getHours` / `setTime` / etc. without optional-chaining.
|
|
273
|
+
*
|
|
274
|
+
* @typeParam D The adapter's immutable date-time representation.
|
|
275
|
+
*/
|
|
276
|
+
type TimeCapableDateAdapter<D> = DateAdapter<D> & Required<Pick<DateAdapter<D>, 'getHours' | 'getMinutes' | 'getSeconds' | 'setTime'>>;
|
|
277
|
+
/**
|
|
278
|
+
* Injection token holding the active {@link DateAdapter}. Provide it with
|
|
279
|
+
* `provideInternationalizedDateAdapter()` or `provideNativeDateAdapter()`.
|
|
280
|
+
* There is no application-wide default — a calendar with no adapter in scope
|
|
281
|
+
* throws a descriptive error.
|
|
282
|
+
*/
|
|
283
|
+
declare const FOR_DATE_ADAPTER: InjectionToken<DateAdapter<unknown>>;
|
|
284
|
+
/**
|
|
285
|
+
* Injects the active {@link DateAdapter}, throwing a descriptive,
|
|
286
|
+
* primitive-prefixed error when no adapter has been provided.
|
|
287
|
+
*
|
|
288
|
+
* @param piece Name of the calling directive, used in the error message.
|
|
289
|
+
*/
|
|
290
|
+
declare function injectDateAdapter<D>(piece: string): DateAdapter<D>;
|
|
291
|
+
/**
|
|
292
|
+
* Asserts that `adapter` implements the optional time accessors, returning it
|
|
293
|
+
* narrowed to {@link TimeCapableDateAdapter}. Throws a descriptive,
|
|
294
|
+
* primitive-prefixed error when the active adapter is day-only — the
|
|
295
|
+
* zero-dependency `provideNativeDateAdapter()` is time-capable, as is
|
|
296
|
+
* `provideInternationalizedDateTimeAdapter()`, but the day-pure
|
|
297
|
+
* `provideInternationalizedDateAdapter()` (`CalendarDate`) is not.
|
|
298
|
+
*
|
|
299
|
+
* @param adapter The active adapter, typically from {@link injectDateAdapter}.
|
|
300
|
+
* @param piece Name of the calling directive, used in the error message.
|
|
301
|
+
*/
|
|
302
|
+
declare function assertTimeCapable<D>(adapter: DateAdapter<D>, piece: string): TimeCapableDateAdapter<D>;
|
|
303
|
+
|
|
304
|
+
/**
|
|
305
|
+
* Shared contract implemented by both `ForTimeField` and `ForTimePicker`. The
|
|
306
|
+
* `ForDatePicker` time bridge queries this token via `contentChild` so it can
|
|
307
|
+
* observe whichever time-editing primitive the consumer projects — without a
|
|
308
|
+
* hard import of either, keeping date-picker tree-shaking intact.
|
|
309
|
+
*
|
|
310
|
+
* @typeParam D The adapter's date-time type.
|
|
311
|
+
*/
|
|
312
|
+
interface TimeValueSource<D> {
|
|
313
|
+
readonly value: ModelSignal<D | null>;
|
|
314
|
+
readonly adapter: DateAdapter<D>;
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* Token provided by `ForTimeField` and `ForTimePicker`. `ForDatePicker`
|
|
318
|
+
* queries descendants for this token to locate the projected time source.
|
|
319
|
+
*/
|
|
320
|
+
declare const FOR_TIME_VALUE_SOURCE: InjectionToken<TimeValueSource<unknown>>;
|
|
66
321
|
|
|
67
322
|
/**
|
|
68
323
|
* Shared state contract between the pieces of a Disclosure primitive.
|
|
@@ -322,7 +577,13 @@ declare class ForAccordionItem implements ForAccordionItemContext {
|
|
|
322
577
|
protected readonly parent: forty_cdk.ForAccordionContext;
|
|
323
578
|
/** Unique identifier of this item within the accordion. Required. */
|
|
324
579
|
readonly value: _angular_core.InputSignal<string>;
|
|
325
|
-
/**
|
|
580
|
+
/**
|
|
581
|
+
* When true, the trigger ignores clicks and reflects the native `disabled`
|
|
582
|
+
* attribute (not `aria-disabled`). The trigger is therefore dropped from the
|
|
583
|
+
* Tab order and skipped by arrow-key navigation, but stays in the
|
|
584
|
+
* accessibility tree so screen readers still announce it. See
|
|
585
|
+
* `ForAccordionTrigger` for the rationale (rule #561 D2).
|
|
586
|
+
*/
|
|
326
587
|
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
327
588
|
readonly triggerId: _angular_core.Signal<string>;
|
|
328
589
|
readonly contentId: _angular_core.Signal<string>;
|
|
@@ -360,7 +621,16 @@ declare class ForAccordionTrigger {
|
|
|
360
621
|
/**
|
|
361
622
|
* APG: aria-disabled is true only when the panel is open AND the accordion
|
|
362
623
|
* disallows collapse. A real `disabled` item is reflected via the native
|
|
363
|
-
* `disabled` attribute instead
|
|
624
|
+
* `disabled` attribute instead — the sanctioned exception in rule #561 (D2):
|
|
625
|
+
* the trigger is a real single-purpose `<button>`, not a roving collection
|
|
626
|
+
* item (every trigger stays independently in the Tab order; the arrow-key
|
|
627
|
+
* navigation is an APG-optional enhancement layered on top, not a
|
|
628
|
+
* roving-tabindex collection), so native `disabled` is correct here. The
|
|
629
|
+
* button stays in the accessibility tree — screen readers still announce it
|
|
630
|
+
* as unavailable in browse mode — while being dropped from the Tab order and
|
|
631
|
+
* the arrow-key navigation (which `focusByOffset` already skips), keeping
|
|
632
|
+
* disabled triggers uniformly unreachable. The APG Accordion pattern does not
|
|
633
|
+
* require disabled headers to remain focusable.
|
|
364
634
|
*/
|
|
365
635
|
protected readonly ariaDisabled: _angular_core.Signal<boolean>;
|
|
366
636
|
constructor();
|
|
@@ -544,8 +814,7 @@ declare function injectFieldWiring(handle?: Omit<FieldControlHandle, 'host'>): v
|
|
|
544
814
|
|
|
545
815
|
/**
|
|
546
816
|
* Headless form-field container that wires accessible labelling, description,
|
|
547
|
-
* and error association for a single control
|
|
548
|
-
* Radix `Label` + `Form` / Base UI `Field`. It renders nothing and imposes no
|
|
817
|
+
* and error association for a single control. It renders nothing and imposes no
|
|
549
818
|
* layout: its only job is to connect a `[forLabel]`, `[forFieldDescription]`,
|
|
550
819
|
* and `[forFieldError]` to the control via `id` / `aria-labelledby` /
|
|
551
820
|
* `aria-describedby` / `aria-errormessage`, and to reflect the control's
|
|
@@ -651,7 +920,7 @@ declare class ForField implements ForFieldContext {
|
|
|
651
920
|
* is not re-forwarded, so a label-wrapping layout toggles once, matching native
|
|
652
921
|
* `<label>` semantics.
|
|
653
922
|
*
|
|
654
|
-
* Usable standalone
|
|
923
|
+
* Usable standalone outside a field — there it is an inert
|
|
655
924
|
* marker and the consumer wires native `for` themselves.
|
|
656
925
|
*
|
|
657
926
|
* @example
|
|
@@ -799,8 +1068,7 @@ declare const FOR_FIELDSET_CONTEXT: InjectionToken<ForFieldsetContext>;
|
|
|
799
1068
|
/**
|
|
800
1069
|
* Headless grouping container that gives a set of related fields a shared
|
|
801
1070
|
* accessible name — the styleless counterpart to a native `<fieldset>` +
|
|
802
|
-
* `<legend>`, and the grouping companion to `ForField`.
|
|
803
|
-
* `Fieldset`.
|
|
1071
|
+
* `<legend>`, and the grouping companion to `ForField`.
|
|
804
1072
|
*
|
|
805
1073
|
* On a native `<fieldset>` it relies on the implicit grouping and emits no
|
|
806
1074
|
* role; on any other element it emits `role="group"` + `aria-labelledby`
|
|
@@ -1010,6 +1278,16 @@ declare abstract class FormUiControlBase {
|
|
|
1010
1278
|
* `touched` directly, so both channels always fire together.
|
|
1011
1279
|
*/
|
|
1012
1280
|
protected markTouched(): void;
|
|
1281
|
+
/**
|
|
1282
|
+
* The element the four form-state `data-*` booleans (`data-touched` /
|
|
1283
|
+
* `data-dirty` / `data-pending` / `data-invalid`) are reflected onto. Defaults
|
|
1284
|
+
* to the directive host — correct when the host carries the control's styling
|
|
1285
|
+
* surface. Override (returning `null` until it exists) when the reflected
|
|
1286
|
+
* element is a child the directive injects, e.g. `ForOtpInput`'s real
|
|
1287
|
+
* `<input>` rather than its `role="group"` host. Read reactively inside the
|
|
1288
|
+
* reflection effect, so a returned signal re-targets once the element appears.
|
|
1289
|
+
*/
|
|
1290
|
+
protected fieldStateReflectionTarget(): HTMLElement | null;
|
|
1013
1291
|
constructor();
|
|
1014
1292
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormUiControlBase, never>;
|
|
1015
1293
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FormUiControlBase, never, never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "pending": { "alias": "pending"; "required": false; "isSignal": true; }; "dirty": { "alias": "dirty"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; }, { "touched": "touchedChange"; "touch": "touch"; }, never, never, true, never>;
|
|
@@ -1097,15 +1375,23 @@ declare class ForInput extends TextValueControlBase implements FormValueControl<
|
|
|
1097
1375
|
* Apply on a native `<textarea>`. The element keeps its own caret, wrapping,
|
|
1098
1376
|
* IME composition, and native form submission — the directive only bridges the
|
|
1099
1377
|
* value to a signal and reflects validation state. The string-valued sibling
|
|
1100
|
-
* of `[forInput]
|
|
1378
|
+
* of `[forInput]`.
|
|
1101
1379
|
*
|
|
1102
1380
|
* The host gets `data-empty` (while the value is `''`), `data-disabled`, and
|
|
1103
1381
|
* `data-readonly` for CSS hooks.
|
|
1104
1382
|
*
|
|
1383
|
+
* With `[autosize]` the host grows and shrinks its height to fit the content on
|
|
1384
|
+
* every edit, programmatic value change, and width reflow, and reflects
|
|
1385
|
+
* `data-autosize` for styling (pair it with `resize: none; overflow: hidden;`).
|
|
1386
|
+
* Autosize is a DOM side effect gated to the browser, so it is inert under SSR.
|
|
1387
|
+
*
|
|
1105
1388
|
* @example
|
|
1106
1389
|
* ```html
|
|
1107
1390
|
* <textarea forTextarea [(value)]="bio" placeholder="About you"></textarea>
|
|
1108
1391
|
*
|
|
1392
|
+
* <!-- Grow to content: -->
|
|
1393
|
+
* <textarea forTextarea autosize [(value)]="bio"></textarea>
|
|
1394
|
+
*
|
|
1109
1395
|
* <!-- With Signal Forms + Field (auto-wired): -->
|
|
1110
1396
|
* <div forField>
|
|
1111
1397
|
* <label forLabel>Bio</label>
|
|
@@ -1114,8 +1400,17 @@ declare class ForInput extends TextValueControlBase implements FormValueControl<
|
|
|
1114
1400
|
* ```
|
|
1115
1401
|
*/
|
|
1116
1402
|
declare class ForTextarea extends TextValueControlBase implements FormValueControl<string> {
|
|
1403
|
+
#private;
|
|
1404
|
+
/**
|
|
1405
|
+
* Opt into height auto-sizing. When `true` the textarea's height tracks its
|
|
1406
|
+
* content: it grows as the value gets taller and shrinks back as it gets
|
|
1407
|
+
* shorter, recomputed on every edit, on programmatic `value` writes, and on
|
|
1408
|
+
* width reflow. Defaults to `false`, leaving the element's height to CSS.
|
|
1409
|
+
*/
|
|
1410
|
+
readonly autosize: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1411
|
+
constructor();
|
|
1117
1412
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForTextarea, never>;
|
|
1118
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForTextarea, "[forTextarea]", ["forTextarea"], {}, {}, never, never, true, never>;
|
|
1413
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForTextarea, "[forTextarea]", ["forTextarea"], { "autosize": { "alias": "autosize"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1119
1414
|
}
|
|
1120
1415
|
|
|
1121
1416
|
/**
|
|
@@ -1195,7 +1490,7 @@ declare const FOR_INPUT_HOST_DIRECTIVE_OUTPUTS: readonly ["valueChange", "touche
|
|
|
1195
1490
|
* export class MyTextarea {}
|
|
1196
1491
|
* ```
|
|
1197
1492
|
*/
|
|
1198
|
-
declare const FOR_TEXTAREA_HOST_DIRECTIVE_INPUTS: readonly ["value", "dirty", "disabled", "errors", "invalid", "name", "pending", "readonly", "required", "touched"];
|
|
1493
|
+
declare const FOR_TEXTAREA_HOST_DIRECTIVE_INPUTS: readonly ["value", "autosize", "dirty", "disabled", "errors", "invalid", "name", "pending", "readonly", "required", "touched"];
|
|
1199
1494
|
/**
|
|
1200
1495
|
* Exact public names of every `ForTextarea` output, the Signal Forms `touch` output
|
|
1201
1496
|
* included. Spread it into the `outputs` array of the same `hostDirectives` entry as
|
|
@@ -1203,6 +1498,141 @@ declare const FOR_TEXTAREA_HOST_DIRECTIVE_INPUTS: readonly ["value", "dirty", "d
|
|
|
1203
1498
|
*/
|
|
1204
1499
|
declare const FOR_TEXTAREA_HOST_DIRECTIVE_OUTPUTS: readonly ["valueChange", "touchedChange", "touch"];
|
|
1205
1500
|
|
|
1501
|
+
/**
|
|
1502
|
+
* Headless `role="searchbox"` text input implementing Angular's
|
|
1503
|
+
* `FormValueControl<string>` from `@angular/forms/signals`, so it auto-wires
|
|
1504
|
+
* with `[formField]` and auto-associates inside a `[forField]` (label /
|
|
1505
|
+
* description / error) with no extra markup. Reuses the exact form-value
|
|
1506
|
+
* wiring of `[forInput]` — same IME handling, same value mirror, same
|
|
1507
|
+
* validation reflection.
|
|
1508
|
+
*
|
|
1509
|
+
* Apply on a native `<input>`. The element keeps its own `type`, caret, IME
|
|
1510
|
+
* composition, and native form submission — the directive only bridges the
|
|
1511
|
+
* value to a signal, reflects validation state, and emits `role="searchbox"`.
|
|
1512
|
+
*
|
|
1513
|
+
* Pair with `[forSearchClear]` (passing the exported instance) for an inline
|
|
1514
|
+
* clear-button affordance that hides itself while the value is empty.
|
|
1515
|
+
*
|
|
1516
|
+
* @example
|
|
1517
|
+
* ```html
|
|
1518
|
+
* <input forSearch #s="forSearch" [(value)]="q" />
|
|
1519
|
+
* <button [forSearchClear]="s">×</button>
|
|
1520
|
+
*
|
|
1521
|
+
* <!-- With Signal Forms + Field (auto-wired): -->
|
|
1522
|
+
* <div forField>
|
|
1523
|
+
* <label forLabel>Search</label>
|
|
1524
|
+
* <input forSearch [formField]="search.query" />
|
|
1525
|
+
* </div>
|
|
1526
|
+
* ```
|
|
1527
|
+
*/
|
|
1528
|
+
declare class ForSearch extends TextValueControlBase implements FormValueControl<string> {
|
|
1529
|
+
#private;
|
|
1530
|
+
/**
|
|
1531
|
+
* Resets the value to `''`. Typically called by `[forSearchClear]` when the
|
|
1532
|
+
* user activates the clear button, but can also be called programmatically.
|
|
1533
|
+
*/
|
|
1534
|
+
clear(): void;
|
|
1535
|
+
/**
|
|
1536
|
+
* Moves focus to the native input element. Called by `[forSearchClear]`
|
|
1537
|
+
* after clearing so the user can continue typing without chasing the caret.
|
|
1538
|
+
*/
|
|
1539
|
+
focusInput(): void;
|
|
1540
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForSearch, never>;
|
|
1541
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForSearch, "input[forSearch]", ["forSearch"], {}, {}, never, never, true, never>;
|
|
1542
|
+
}
|
|
1543
|
+
|
|
1544
|
+
/**
|
|
1545
|
+
* Optional clear button for `[forSearch]`. Apply on a `<button>` element and
|
|
1546
|
+
* pass the exported search instance through the selector input:
|
|
1547
|
+
* `[forSearchClear]="s"` where `#s="forSearch"` is on the `<input>`.
|
|
1548
|
+
*
|
|
1549
|
+
* The button self-hides while the value is `''`, so consumers can leave it
|
|
1550
|
+
* inline in the template without an extra `@if`. Visibility is enforced with
|
|
1551
|
+
* an inline `display: none` (which beats any author `display` rule applied via
|
|
1552
|
+
* a class) in addition to the `hidden` attribute that removes the element from
|
|
1553
|
+
* the accessibility tree. This mirrors `[forComboboxClear]`'s approach.
|
|
1554
|
+
*
|
|
1555
|
+
* On activation (click) the button clears the value to `''` and refocuses the
|
|
1556
|
+
* input so the user can continue typing without chasing the caret.
|
|
1557
|
+
*
|
|
1558
|
+
* The `aria-label="Clear"` default is set as a static host attribute. Consumers
|
|
1559
|
+
* who want a different label can override it with their own `aria-label` on the
|
|
1560
|
+
* same element — the consumer's attribute wins per Angular's host-binding
|
|
1561
|
+
* precedence rules.
|
|
1562
|
+
*
|
|
1563
|
+
* The button stays in the natural tab order (no `tabindex="-1"`) unlike
|
|
1564
|
+
* `[forComboboxClear]`, which lives inside an `aria-activedescendant` flow.
|
|
1565
|
+
*/
|
|
1566
|
+
declare class ForSearchClear {
|
|
1567
|
+
/**
|
|
1568
|
+
* The `[forSearch]` instance to operate on. Pass the exported reference:
|
|
1569
|
+
* `<input forSearch #s="forSearch" /> <button [forSearchClear]="s">`.
|
|
1570
|
+
*/
|
|
1571
|
+
readonly search: _angular_core.InputSignal<ForSearch>;
|
|
1572
|
+
/** `true` while there is text to clear; drives the self-hide logic. */
|
|
1573
|
+
protected readonly hasContent: _angular_core.Signal<boolean>;
|
|
1574
|
+
/**
|
|
1575
|
+
* Disabled when the search field is disabled or read-only — the clear action
|
|
1576
|
+
* is unavailable in those states.
|
|
1577
|
+
*/
|
|
1578
|
+
protected readonly isDisabled: _angular_core.Signal<boolean>;
|
|
1579
|
+
constructor();
|
|
1580
|
+
protected onClick(): void;
|
|
1581
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForSearchClear, never>;
|
|
1582
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForSearchClear, "[forSearchClear]", ["forSearchClear"], { "search": { "alias": "forSearchClear"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1583
|
+
}
|
|
1584
|
+
|
|
1585
|
+
/**
|
|
1586
|
+
* Defaults inherited by descendant `[forSearch]` controls in the surrounding
|
|
1587
|
+
* injector scope. Configure with `provideForSearchDefaults`. The shape is a
|
|
1588
|
+
* stub today — present so future per-scope tuning can land without churning
|
|
1589
|
+
* the public surface.
|
|
1590
|
+
*/
|
|
1591
|
+
interface ForSearchDefaults {
|
|
1592
|
+
}
|
|
1593
|
+
/** Token holding the resolved search-field defaults for the current scope. */
|
|
1594
|
+
declare const FOR_SEARCH_DEFAULTS: _angular_core.InjectionToken<ForSearchDefaults>;
|
|
1595
|
+
/**
|
|
1596
|
+
* Configures forty-cdk search-field defaults for this injector scope. Partial
|
|
1597
|
+
* overrides inherit unspecified keys from the parent scope (or library
|
|
1598
|
+
* defaults at the root).
|
|
1599
|
+
*/
|
|
1600
|
+
declare function provideForSearchDefaults(defaults?: Partial<ForSearchDefaults>): Provider[];
|
|
1601
|
+
|
|
1602
|
+
/**
|
|
1603
|
+
* Exact public names of every `ForSearch` input, its models included. Spread it into the
|
|
1604
|
+
* `inputs` array of a `hostDirectives` entry so a wrapper component re-exposes the
|
|
1605
|
+
* primitive's full surface — the Signal Forms members `[formField]` binds among them —
|
|
1606
|
+
* without hand-maintaining the list. Always spread into an inline object literal as shown
|
|
1607
|
+
* below: the literal is what keeps the entry statically analyzable for consumers compiling
|
|
1608
|
+
* against the published package. An anti-drift spec fails when this list no longer matches
|
|
1609
|
+
* the directive's actual API. See `docs/wrapping-form-primitives.md` for both supported
|
|
1610
|
+
* wrapping patterns.
|
|
1611
|
+
*
|
|
1612
|
+
* @example
|
|
1613
|
+
* ```ts
|
|
1614
|
+
* @Component({
|
|
1615
|
+
* selector: 'input[mySearch]',
|
|
1616
|
+
* template: '',
|
|
1617
|
+
* hostDirectives: [
|
|
1618
|
+
* {
|
|
1619
|
+
* directive: ForSearch,
|
|
1620
|
+
* inputs: [...FOR_SEARCH_HOST_DIRECTIVE_INPUTS],
|
|
1621
|
+
* outputs: [...FOR_SEARCH_HOST_DIRECTIVE_OUTPUTS],
|
|
1622
|
+
* },
|
|
1623
|
+
* ],
|
|
1624
|
+
* })
|
|
1625
|
+
* export class MySearch {}
|
|
1626
|
+
* ```
|
|
1627
|
+
*/
|
|
1628
|
+
declare const FOR_SEARCH_HOST_DIRECTIVE_INPUTS: readonly ["value", "dirty", "disabled", "errors", "invalid", "name", "pending", "readonly", "required", "touched"];
|
|
1629
|
+
/**
|
|
1630
|
+
* Exact public names of every `ForSearch` output, the Signal Forms `touch` output
|
|
1631
|
+
* included. Spread it into the `outputs` array of the same `hostDirectives` entry as
|
|
1632
|
+
* {@link FOR_SEARCH_HOST_DIRECTIVE_INPUTS}.
|
|
1633
|
+
*/
|
|
1634
|
+
declare const FOR_SEARCH_HOST_DIRECTIVE_OUTPUTS: readonly ["valueChange", "touchedChange", "touch"];
|
|
1635
|
+
|
|
1206
1636
|
/**
|
|
1207
1637
|
* Headless on/off switch implementing the
|
|
1208
1638
|
* [WAI-ARIA Switch pattern](https://www.w3.org/WAI/ARIA/apg/patterns/switch/)
|
|
@@ -1335,7 +1765,7 @@ declare class ForCheckbox extends FormUiControlBase implements FormCheckboxContr
|
|
|
1335
1765
|
* children with mixed selection).
|
|
1336
1766
|
*/
|
|
1337
1767
|
readonly indeterminate: _angular_core.ModelSignal<boolean>;
|
|
1338
|
-
protected readonly ariaChecked: _angular_core.Signal<"
|
|
1768
|
+
protected readonly ariaChecked: _angular_core.Signal<"mixed" | "true" | "false">;
|
|
1339
1769
|
/**
|
|
1340
1770
|
* Logical state reflected on `data-state`: `'checked'`, `'unchecked'`, or
|
|
1341
1771
|
* `'indeterminate'`. Exposed so `ForCheckboxIndicator` can mirror it without
|
|
@@ -2362,16 +2792,46 @@ type FloatingSide = 'top' | 'right' | 'bottom' | 'left';
|
|
|
2362
2792
|
/** Alignment along the side axis: at the start edge, centered, or at the end edge. */
|
|
2363
2793
|
type FloatingAlign = 'start' | 'center' | 'end';
|
|
2364
2794
|
|
|
2365
|
-
/** Reason a show / hide was scheduled — escape bypasses the close delay. */
|
|
2366
|
-
type TooltipScheduleReason = 'hover' | 'focus' | 'escape';
|
|
2367
2795
|
/**
|
|
2368
|
-
*
|
|
2369
|
-
*
|
|
2370
|
-
*
|
|
2796
|
+
* Pointer-grace ("safe triangle") helper.
|
|
2797
|
+
*
|
|
2798
|
+
* When a mouse leaves a submenu trigger heading toward the submenu content,
|
|
2799
|
+
* a naive "close on pointer-leave" would dismiss the submenu the moment the
|
|
2800
|
+
* cursor crosses the gap between the trigger and the content. The fix native
|
|
2801
|
+
* desktop menus use is a *safe triangle*: a polygon drawn
|
|
2802
|
+
* from the cursor's exit point to the near edge of the submenu content. While
|
|
2803
|
+
* the pointer stays inside that polygon it is assumed to be travelling toward
|
|
2804
|
+
* the submenu, so the close is held off.
|
|
2805
|
+
*
|
|
2806
|
+
* This module keeps no Angular DI surface — the geometry is pure functions
|
|
2807
|
+
* (unit-tested in `pointer-grace.spec.ts`) and {@link attachPointerGrace} is a
|
|
2808
|
+
* plain `addEventListener` wrapper returning a cleanup, wired by the directive
|
|
2809
|
+
* through its `DestroyRef`. The DOM-measured inputs (cursor position, content
|
|
2810
|
+
* rect, resolved side) are supplied by the caller, so the geometry stays
|
|
2811
|
+
* testable without faking layout.
|
|
2812
|
+
*/
|
|
2813
|
+
/** A point in client (viewport) coordinates. */
|
|
2814
|
+
interface Point {
|
|
2815
|
+
readonly x: number;
|
|
2816
|
+
readonly y: number;
|
|
2817
|
+
}
|
|
2818
|
+
|
|
2819
|
+
/**
|
|
2820
|
+
* The resolved floating-ui positioning surface every trigger-anchored overlay
|
|
2821
|
+
* root publishes on its context. `ForPopoverContext`, `ForTooltipContext`, and
|
|
2822
|
+
* `ForHoverCardContext` all `extends` this so the 12-member positioning half of
|
|
2823
|
+
* each context interface is single-sourced rather than copied verbatim.
|
|
2824
|
+
*
|
|
2825
|
+
* Each member is the *effective* value — the per-instance input merged with the
|
|
2826
|
+
* scope default — so a content directive forwards it straight into
|
|
2827
|
+
* `injectOverlayShell` via `toFloatingPositioner` without re-resolving defaults.
|
|
2828
|
+
*
|
|
2829
|
+
* `open` is included because the floating positioner gates `autoUpdate` on it;
|
|
2830
|
+
* it is published by every root's open `model()` (a `ModelSignal` is a
|
|
2831
|
+
* `Signal`), so a single `extends` covers the whole positioner surface.
|
|
2371
2832
|
*/
|
|
2372
|
-
interface
|
|
2833
|
+
interface AnchoredPositioningContext {
|
|
2373
2834
|
readonly open: Signal<boolean>;
|
|
2374
|
-
readonly disabled: Signal<boolean>;
|
|
2375
2835
|
readonly side: Signal<FloatingSide>;
|
|
2376
2836
|
readonly align: Signal<FloatingAlign>;
|
|
2377
2837
|
readonly sideOffset: Signal<number>;
|
|
@@ -2382,18 +2842,55 @@ interface ForTooltipContext {
|
|
|
2382
2842
|
readonly sticky: Signal<'partial' | 'always' | false>;
|
|
2383
2843
|
readonly hideWhenDetached: Signal<boolean>;
|
|
2384
2844
|
readonly clipUntilPositioned: Signal<boolean>;
|
|
2845
|
+
readonly arrow: Signal<HTMLElement | null>;
|
|
2846
|
+
}
|
|
2847
|
+
|
|
2848
|
+
/** Reason a show / hide was scheduled — escape bypasses the close delay. */
|
|
2849
|
+
type TooltipScheduleReason = 'hover' | 'focus' | 'escape';
|
|
2850
|
+
/**
|
|
2851
|
+
* Coordination contract owned by `ForTooltip`. Trigger and content register
|
|
2852
|
+
* their host elements so floating-ui can compute position; the optional arrow
|
|
2853
|
+
* registers itself so the `arrow` middleware can offset it inside the bubble.
|
|
2854
|
+
*
|
|
2855
|
+
* The trigger and content forward their host hover / focus events through the
|
|
2856
|
+
* `pointerEnter*` / `pointerLeave*` / `focusTrigger` / `blurTrigger` methods;
|
|
2857
|
+
* the root owns the single open / close decision so all keep-alive sources
|
|
2858
|
+
* (trigger hover, trigger focus, and — under `hoverableContent` — content
|
|
2859
|
+
* hover) are reconciled in one place.
|
|
2860
|
+
*/
|
|
2861
|
+
interface ForTooltipContext extends AnchoredPositioningContext {
|
|
2862
|
+
readonly open: Signal<boolean>;
|
|
2863
|
+
readonly disabled: Signal<boolean>;
|
|
2864
|
+
/** Whether the pointer may move into the content without dismissing the tooltip. */
|
|
2865
|
+
readonly hoverableContent: Signal<boolean>;
|
|
2866
|
+
/** Whether `prefers-reduced-motion: reduce` is active — reflected as `data-reduced-motion`. */
|
|
2867
|
+
readonly reducedMotion: Signal<boolean>;
|
|
2385
2868
|
/** Trigger element id — a consumer-set host `id` is adopted, else a generated one. */
|
|
2386
2869
|
readonly triggerId: Signal<string>;
|
|
2387
2870
|
/** Content element id — a consumer-set host `id` is adopted, else a generated one. Referenced by the trigger's `aria-describedby` while open. */
|
|
2388
2871
|
readonly contentId: Signal<string>;
|
|
2389
2872
|
readonly trigger: Signal<HTMLElement | null>;
|
|
2390
|
-
readonly arrow: Signal<HTMLElement | null>;
|
|
2391
2873
|
registerTrigger(el: HTMLElement): void;
|
|
2392
2874
|
unregisterTrigger(el: HTMLElement): void;
|
|
2875
|
+
/** Registers the content host element so the hoverable-content grace polygon can measure it. */
|
|
2876
|
+
registerContent(el: HTMLElement): void;
|
|
2877
|
+
unregisterContent(el: HTMLElement): void;
|
|
2393
2878
|
/** Adopts a consumer-set static `id` on the content host into `contentId`. */
|
|
2394
2879
|
adoptContentId(el: HTMLElement): void;
|
|
2395
2880
|
registerArrow(el: HTMLElement): void;
|
|
2396
2881
|
unregisterArrow(el: HTMLElement): void;
|
|
2882
|
+
/** The pointer entered the trigger; opens after the resolved open delay (gated by `showOnOverflow`). */
|
|
2883
|
+
pointerEnterTrigger(): void;
|
|
2884
|
+
/** The pointer left the trigger; closes, or arms the hoverable-content bridge from `cursor`. */
|
|
2885
|
+
pointerLeaveTrigger(cursor: Point): void;
|
|
2886
|
+
/** The trigger received focus; opens after the resolved open delay (gated by `showOnOverflow`). */
|
|
2887
|
+
focusTrigger(): void;
|
|
2888
|
+
/** The trigger lost focus; closes when nothing else keeps the tooltip alive. */
|
|
2889
|
+
blurTrigger(): void;
|
|
2890
|
+
/** The pointer entered the content (`hoverableContent`); holds the tooltip open. */
|
|
2891
|
+
pointerEnterContent(): void;
|
|
2892
|
+
/** The pointer left the content (`hoverableContent`); closes when nothing else keeps it alive. */
|
|
2893
|
+
pointerLeaveContent(): void;
|
|
2397
2894
|
/** Schedule the tooltip to open after `openDelay` ms (instant when delay is 0). */
|
|
2398
2895
|
scheduleOpen(reason: TooltipScheduleReason): void;
|
|
2399
2896
|
/** Schedule the tooltip to close after `closeDelay` ms (instant on `escape`). */
|
|
@@ -2450,7 +2947,7 @@ declare class ForTooltip implements ForTooltipContext {
|
|
|
2450
2947
|
readonly align: _angular_core.Signal<FloatingAlign>;
|
|
2451
2948
|
/**
|
|
2452
2949
|
* Per-tooltip override for the gap (px) between trigger and content along
|
|
2453
|
-
* the main axis.
|
|
2950
|
+
* the main axis. When `undefined` (default),
|
|
2454
2951
|
* falls back to `ForTooltipDefaults.sideOffset` from the surrounding
|
|
2455
2952
|
* `provideForTooltipDefaults` scope (`8` unless configured).
|
|
2456
2953
|
*
|
|
@@ -2516,6 +3013,50 @@ declare class ForTooltip implements ForTooltipContext {
|
|
|
2516
3013
|
readonly closeDelay: _angular_core.InputSignal<number | undefined>;
|
|
2517
3014
|
/** When true, all hover / focus interaction is ignored and any open tooltip is forced closed. */
|
|
2518
3015
|
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
3016
|
+
/**
|
|
3017
|
+
* Per-tooltip override for whether the tooltip shows only when the
|
|
3018
|
+
* trigger's own text is truncated (`scrollWidth > clientWidth`) — the
|
|
3019
|
+
* common pattern for ellipsized labels where the tooltip adds nothing once
|
|
3020
|
+
* the full text is visible. When `undefined` (default), falls back to
|
|
3021
|
+
* `ForTooltipDefaults.showOnOverflow` from the surrounding
|
|
3022
|
+
* `provideForTooltipDefaults` scope (`false` unless configured).
|
|
3023
|
+
*
|
|
3024
|
+
* The input is aliased to `showOnOverflow`; consumers bind
|
|
3025
|
+
* `[showOnOverflow]="..."` (or the bare attribute) and read the effective
|
|
3026
|
+
* value via the public `showOnOverflow` computed below.
|
|
3027
|
+
*/
|
|
3028
|
+
readonly _showOnOverflowInput: _angular_core.InputSignalWithTransform<boolean | undefined, unknown>;
|
|
3029
|
+
/** Effective overflow gate: the `showOnOverflow` input when set, else the scope default. */
|
|
3030
|
+
readonly showOnOverflow: _angular_core.Signal<boolean>;
|
|
3031
|
+
/**
|
|
3032
|
+
* Per-tooltip override for whether the pointer may move into the content
|
|
3033
|
+
* without dismissing the tooltip. When `true`, the content drops its
|
|
3034
|
+
* default `pointer-events: none` while open and a pointer-grace "safe
|
|
3035
|
+
* triangle" bridges the gap between trigger and content so a slow diagonal
|
|
3036
|
+
* traversal doesn't close it. When `undefined` (default), falls back to
|
|
3037
|
+
* `ForTooltipDefaults.hoverableContent` from the surrounding
|
|
3038
|
+
* `provideForTooltipDefaults` scope (`false` unless configured).
|
|
3039
|
+
*
|
|
3040
|
+
* Per APG the content must stay non-interactive; this only allows the
|
|
3041
|
+
* pointer to rest over descriptive text (e.g. to select it).
|
|
3042
|
+
*
|
|
3043
|
+
* The input is aliased to `hoverableContent`; consumers bind
|
|
3044
|
+
* `[hoverableContent]="..."` (or the bare attribute) and read the effective
|
|
3045
|
+
* value via the public `hoverableContent` computed below.
|
|
3046
|
+
*/
|
|
3047
|
+
readonly _hoverableContentInput: _angular_core.InputSignalWithTransform<boolean | undefined, unknown>;
|
|
3048
|
+
/** Effective hoverable-content flag: the `hoverableContent` input when set, else the scope default. */
|
|
3049
|
+
readonly hoverableContent: _angular_core.Signal<boolean>;
|
|
3050
|
+
/**
|
|
3051
|
+
* Whether the user has requested reduced motion via the OS
|
|
3052
|
+
* `prefers-reduced-motion: reduce` media query. Reflected as the boolean
|
|
3053
|
+
* `data-reduced-motion` attribute on the root and content so consumers can
|
|
3054
|
+
* disable their own `animate.enter` / `animate.leave` and CSS transitions
|
|
3055
|
+
* without re-deriving the media query. Tooltip's JS-coordinated timing (the
|
|
3056
|
+
* open / close hover-intent delays) is intent debouncing, not motion, so it
|
|
3057
|
+
* is deliberately unchanged under reduced motion.
|
|
3058
|
+
*/
|
|
3059
|
+
readonly reducedMotion: _angular_core.Signal<boolean>;
|
|
2519
3060
|
/**
|
|
2520
3061
|
* Id of the trigger element. A consumer-set `id` on the trigger host is
|
|
2521
3062
|
* adopted at registration and preserved; the generated
|
|
@@ -2534,21 +3075,55 @@ declare class ForTooltip implements ForTooltipContext {
|
|
|
2534
3075
|
*/
|
|
2535
3076
|
registerTrigger(el: HTMLElement): void;
|
|
2536
3077
|
unregisterTrigger(el: HTMLElement): void;
|
|
3078
|
+
/** Registers the content host element so the hoverable-content grace polygon can measure it. */
|
|
3079
|
+
registerContent(el: HTMLElement): void;
|
|
3080
|
+
unregisterContent(el: HTMLElement): void;
|
|
2537
3081
|
/** Adopts a consumer-set static `id` on the content host into `contentId`. */
|
|
2538
3082
|
adoptContentId(el: HTMLElement): void;
|
|
2539
3083
|
registerArrow(el: HTMLElement): void;
|
|
2540
3084
|
unregisterArrow(el: HTMLElement): void;
|
|
3085
|
+
pointerEnterTrigger(): void;
|
|
3086
|
+
pointerLeaveTrigger(cursor: Point): void;
|
|
3087
|
+
focusTrigger(): void;
|
|
3088
|
+
blurTrigger(): void;
|
|
3089
|
+
pointerEnterContent(): void;
|
|
3090
|
+
pointerLeaveContent(): void;
|
|
2541
3091
|
scheduleOpen(_reason: TooltipScheduleReason): void;
|
|
2542
3092
|
scheduleClose(reason: TooltipScheduleReason): void;
|
|
2543
3093
|
cancelPending(): void;
|
|
3094
|
+
/**
|
|
3095
|
+
* Imperatively opens the tooltip — for programmatic control beyond hover and
|
|
3096
|
+
* focus (e.g. a design-system wrapper driving the tooltip from a
|
|
3097
|
+
* text-truncation observer). Schedules the show after the resolved
|
|
3098
|
+
* `openDelay` (instant when the delay is `0` or the scope's skip-delay window
|
|
3099
|
+
* is active) and applies the same gates as a hover / focus open: a no-op
|
|
3100
|
+
* while `disabled`, and a no-op under `showOnOverflow` when the trigger's own
|
|
3101
|
+
* text is not truncated. For an instant, unconditional open that bypasses the
|
|
3102
|
+
* delay and both gates, write the `[(open)]` model directly (`open.set(true)`).
|
|
3103
|
+
*/
|
|
3104
|
+
show(): void;
|
|
3105
|
+
/**
|
|
3106
|
+
* Imperatively closes the tooltip, mirroring a hover-leave / blur close:
|
|
3107
|
+
* schedules the hide after the resolved `closeDelay` (instant when the delay
|
|
3108
|
+
* is `0`) and disarms the hoverable-content grace bridge. For an instant
|
|
3109
|
+
* close that ignores `closeDelay`, write the `[(open)]` model directly
|
|
3110
|
+
* (`open.set(false)`).
|
|
3111
|
+
*/
|
|
3112
|
+
hide(): void;
|
|
2544
3113
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForTooltip, never>;
|
|
2545
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForTooltip, "[forTooltip]", ["forTooltip"], { "open": { "alias": "open"; "required": false; "isSignal": true; }; "_sideInput": { "alias": "side"; "required": false; "isSignal": true; }; "_alignInput": { "alias": "align"; "required": false; "isSignal": true; }; "_sideOffsetInput": { "alias": "sideOffset"; "required": false; "isSignal": true; }; "alignOffset": { "alias": "alignOffset"; "required": false; "isSignal": true; }; "avoidCollisions": { "alias": "avoidCollisions"; "required": false; "isSignal": true; }; "_collisionPaddingInput": { "alias": "collisionPadding"; "required": false; "isSignal": true; }; "arrowPadding": { "alias": "arrowPadding"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "hideWhenDetached": { "alias": "hideWhenDetached"; "required": false; "isSignal": true; }; "clipUntilPositioned": { "alias": "clipUntilPositioned"; "required": false; "isSignal": true; }; "openDelay": { "alias": "openDelay"; "required": false; "isSignal": true; }; "closeDelay": { "alias": "closeDelay"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "open": "openChange"; }, never, never, true, never>;
|
|
3114
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForTooltip, "[forTooltip]", ["forTooltip"], { "open": { "alias": "open"; "required": false; "isSignal": true; }; "_sideInput": { "alias": "side"; "required": false; "isSignal": true; }; "_alignInput": { "alias": "align"; "required": false; "isSignal": true; }; "_sideOffsetInput": { "alias": "sideOffset"; "required": false; "isSignal": true; }; "alignOffset": { "alias": "alignOffset"; "required": false; "isSignal": true; }; "avoidCollisions": { "alias": "avoidCollisions"; "required": false; "isSignal": true; }; "_collisionPaddingInput": { "alias": "collisionPadding"; "required": false; "isSignal": true; }; "arrowPadding": { "alias": "arrowPadding"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "hideWhenDetached": { "alias": "hideWhenDetached"; "required": false; "isSignal": true; }; "clipUntilPositioned": { "alias": "clipUntilPositioned"; "required": false; "isSignal": true; }; "openDelay": { "alias": "openDelay"; "required": false; "isSignal": true; }; "closeDelay": { "alias": "closeDelay"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "_showOnOverflowInput": { "alias": "showOnOverflow"; "required": false; "isSignal": true; }; "_hoverableContentInput": { "alias": "hoverableContent"; "required": false; "isSignal": true; }; }, { "open": "openChange"; }, never, never, true, never>;
|
|
2546
3115
|
}
|
|
2547
3116
|
|
|
2548
3117
|
/**
|
|
2549
|
-
* Element that activates the tooltip on hover or focus. Apply on
|
|
2550
|
-
* element — preferably a `<button>` so keyboard users can reach it.
|
|
2551
|
-
* `aria-describedby` only while the tooltip is open, per APG.
|
|
3118
|
+
* Element that activates the tooltip on mouse hover or keyboard focus. Apply on
|
|
3119
|
+
* a focusable element — preferably a `<button>` so keyboard users can reach it.
|
|
3120
|
+
* Receives `aria-describedby` only while the tooltip is open, per APG.
|
|
3121
|
+
*
|
|
3122
|
+
* A touch tap does NOT open the tooltip: touch pointers are filtered out of
|
|
3123
|
+
* both the hover-open path and the focus-open path, because a tap is not a
|
|
3124
|
+
* hover and the APG flags hover-tooltips as problematic on touch (no hover, no
|
|
3125
|
+
* separate focus affordance, no obvious dismiss). Keyboard focus stays the
|
|
3126
|
+
* touch-accessible fallback for descriptive content.
|
|
2552
3127
|
*
|
|
2553
3128
|
* The root is normally resolved via DI from the enclosing `[forTooltip]`.
|
|
2554
3129
|
* When the trigger is declared inside an `ng-template` stamped into the root
|
|
@@ -2570,8 +3145,9 @@ declare class ForTooltipTrigger {
|
|
|
2570
3145
|
readonly forTooltipTrigger: _angular_core.InputSignal<"" | ForTooltipContext>;
|
|
2571
3146
|
protected readonly ctx: _angular_core.Signal<ForTooltipContext>;
|
|
2572
3147
|
constructor();
|
|
2573
|
-
protected onPointerEnter(): void;
|
|
2574
|
-
protected
|
|
3148
|
+
protected onPointerEnter(event: PointerEvent): void;
|
|
3149
|
+
protected onPointerDown(event: PointerEvent): void;
|
|
3150
|
+
protected onPointerLeave(event: PointerEvent): void;
|
|
2575
3151
|
protected onFocus(): void;
|
|
2576
3152
|
protected onBlur(): void;
|
|
2577
3153
|
protected onEscape(event: Event): void;
|
|
@@ -2585,8 +3161,10 @@ declare class ForTooltipTrigger {
|
|
|
2585
3161
|
* `injectOverlayShell` helper) while mounted.
|
|
2586
3162
|
*
|
|
2587
3163
|
* Default `pointer-events: none` is applied via host styles so the bubble
|
|
2588
|
-
* layers above content without intercepting hover.
|
|
2589
|
-
*
|
|
3164
|
+
* layers above content without intercepting hover. When the root opts in with
|
|
3165
|
+
* `hoverableContent`, `pointer-events` is dropped while open so the pointer
|
|
3166
|
+
* can rest over the bubble without dismissing it. Override with your own CSS
|
|
3167
|
+
* if needed — but per APG, do not put interactive elements inside.
|
|
2590
3168
|
*
|
|
2591
3169
|
* The directive does not manage DOM presence — wrap with
|
|
2592
3170
|
* `@if (tip.open())` (using a template ref on `[forTooltip]`) so the
|
|
@@ -2647,7 +3225,7 @@ interface ForTooltipDefaults {
|
|
|
2647
3225
|
align: FloatingAlign;
|
|
2648
3226
|
/**
|
|
2649
3227
|
* Gap (px) between trigger and content along the main axis for tooltips
|
|
2650
|
-
* that don't override `sideOffset` locally.
|
|
3228
|
+
* that don't override `sideOffset` locally.
|
|
2651
3229
|
* Library fallback `8`.
|
|
2652
3230
|
*/
|
|
2653
3231
|
sideOffset: number;
|
|
@@ -2657,6 +3235,18 @@ interface ForTooltipDefaults {
|
|
|
2657
3235
|
* locally. Library fallback `8`.
|
|
2658
3236
|
*/
|
|
2659
3237
|
collisionPadding: number;
|
|
3238
|
+
/**
|
|
3239
|
+
* Whether tooltips show only when the trigger's own text is truncated
|
|
3240
|
+
* (`scrollWidth > clientWidth`), for tooltips that don't override
|
|
3241
|
+
* `showOnOverflow` locally. Library fallback `false`.
|
|
3242
|
+
*/
|
|
3243
|
+
showOnOverflow: boolean;
|
|
3244
|
+
/**
|
|
3245
|
+
* Whether the pointer may move into the content without dismissing the
|
|
3246
|
+
* tooltip, for tooltips that don't override `hoverableContent` locally.
|
|
3247
|
+
* Library fallback `false`.
|
|
3248
|
+
*/
|
|
3249
|
+
hoverableContent: boolean;
|
|
2660
3250
|
}
|
|
2661
3251
|
/** Token holding the resolved tooltip defaults for the current scope. */
|
|
2662
3252
|
declare const FOR_TOOLTIP_DEFAULTS: _angular_core.InjectionToken<ForTooltipDefaults>;
|
|
@@ -2757,8 +3347,8 @@ declare const FOR_DIALOG_CONTEXT: InjectionToken<ForDialogContext>;
|
|
|
2757
3347
|
* `data-state` is a static `"open"`: because mount is the consumer's
|
|
2758
3348
|
* responsibility (the host only exists inside `@if (open())`), the element is
|
|
2759
3349
|
* present iff the dialog is open, so the attribute can never be `"closed"`.
|
|
2760
|
-
* This
|
|
2761
|
-
*
|
|
3350
|
+
* This is a deliberate choice: rather than keeping the node mounted and
|
|
3351
|
+
* flipping `data-state="closed"` to drive an exit transition, exit styling
|
|
2762
3352
|
* is the consumer's `animate.leave` (see the usage example above), not a
|
|
2763
3353
|
* `data-state="closed"` selector — so a `[data-state="closed"]` rule would
|
|
2764
3354
|
* never match and is not a bug.
|
|
@@ -2985,14 +3575,17 @@ declare class ForDialogBackdrop {
|
|
|
2985
3575
|
}
|
|
2986
3576
|
|
|
2987
3577
|
/**
|
|
2988
|
-
*
|
|
2989
|
-
*
|
|
2990
|
-
*
|
|
3578
|
+
* Shared handle returned by an imperative overlay manager's `open()`.
|
|
3579
|
+
* `ForDialogRef` / `ForDrawerRef` extend this verbatim to keep their public
|
|
3580
|
+
* class identity (and DI token) while the close engine lives here once.
|
|
2991
3581
|
*
|
|
2992
|
-
*
|
|
2993
|
-
*
|
|
3582
|
+
* Both reactive (`isClosed`, `result`) and awaitable (`closed`) APIs are
|
|
3583
|
+
* exposed — pick what fits the call site. `R` is the close-result type.
|
|
3584
|
+
*
|
|
3585
|
+
* Internal — not re-exported from `public-api.ts`; the public surface is
|
|
3586
|
+
* `ForDialogRef` / `ForDrawerRef`.
|
|
2994
3587
|
*/
|
|
2995
|
-
declare class
|
|
3588
|
+
declare class OverlayRef<R = unknown> {
|
|
2996
3589
|
#private;
|
|
2997
3590
|
/** Reactive: `true` once `close()` has been called. */
|
|
2998
3591
|
readonly isClosed: _angular_core.Signal<boolean>;
|
|
@@ -3001,12 +3594,124 @@ declare class ForDialogRef<R = unknown> {
|
|
|
3001
3594
|
/** Awaitable: resolves with the close result the first time `close()` runs. */
|
|
3002
3595
|
readonly closed: Promise<R | undefined>;
|
|
3003
3596
|
/**
|
|
3004
|
-
* Close the
|
|
3597
|
+
* Close the overlay, optionally returning a result. Idempotent — calling
|
|
3005
3598
|
* twice is a no-op.
|
|
3006
3599
|
*/
|
|
3007
3600
|
close(result?: R): void;
|
|
3008
3601
|
}
|
|
3009
3602
|
|
|
3603
|
+
/**
|
|
3604
|
+
* Handle returned by `ForDialogManager.open()`. Inject inside the opened
|
|
3605
|
+
* component to drive close imperatively. Both reactive (`isClosed`, `result`)
|
|
3606
|
+
* and awaitable (`closed`) APIs are exposed — pick what fits the call site.
|
|
3607
|
+
*
|
|
3608
|
+
* `R` is the close-result type. Default `unknown`; specify it on
|
|
3609
|
+
* `manager.open<C, R>(...)` to get type safety.
|
|
3610
|
+
*/
|
|
3611
|
+
declare class ForDialogRef<R = unknown> extends OverlayRef<R> {
|
|
3612
|
+
}
|
|
3613
|
+
|
|
3614
|
+
/**
|
|
3615
|
+
* Minimal shape every overlay entry must satisfy so the shared core can index,
|
|
3616
|
+
* render, and tear it down. Per-primitive entries (`ForDialogEntry`,
|
|
3617
|
+
* `ForDrawerEntry`) extend this with their own directive-input fields.
|
|
3618
|
+
*
|
|
3619
|
+
* Internal — not re-exported from `public-api.ts`.
|
|
3620
|
+
*/
|
|
3621
|
+
interface OverlayManagerEntry {
|
|
3622
|
+
readonly id: string;
|
|
3623
|
+
readonly ref: OverlayRef<unknown>;
|
|
3624
|
+
}
|
|
3625
|
+
/**
|
|
3626
|
+
* The reactive surface a manager's outlet component is wired with on first
|
|
3627
|
+
* `open()`. Mirrors `ForDialogOutletHost` / `ForDrawerOutletHost`.
|
|
3628
|
+
*
|
|
3629
|
+
* Internal — not re-exported from `public-api.ts`.
|
|
3630
|
+
*/
|
|
3631
|
+
interface OverlayManagerOutletHost<TEntry extends OverlayManagerEntry> {
|
|
3632
|
+
readonly entries: Signal<readonly TEntry[]>;
|
|
3633
|
+
closeAllForDestroy(): void;
|
|
3634
|
+
}
|
|
3635
|
+
/**
|
|
3636
|
+
* The minimal surface a manager's outlet component exposes so the core can
|
|
3637
|
+
* wire it on first `open()`. Mirrors `ForDialogOutlet` / `ForDrawerOutlet`.
|
|
3638
|
+
*
|
|
3639
|
+
* Internal — not re-exported from `public-api.ts`.
|
|
3640
|
+
*/
|
|
3641
|
+
interface OverlayManagerOutlet<TEntry extends OverlayManagerEntry> {
|
|
3642
|
+
init(host: OverlayManagerOutletHost<TEntry>): void;
|
|
3643
|
+
}
|
|
3644
|
+
/**
|
|
3645
|
+
* Per-primitive bindings the shared core needs: how to name ids and the
|
|
3646
|
+
* exit-animation host / backdrop attributes, and how to create the outlet
|
|
3647
|
+
* component that renders the entries.
|
|
3648
|
+
*
|
|
3649
|
+
* Internal — not re-exported from `public-api.ts`.
|
|
3650
|
+
*/
|
|
3651
|
+
interface OverlayManagerConfig<TEntry extends OverlayManagerEntry> {
|
|
3652
|
+
/**
|
|
3653
|
+
* Per-instance id prefix passed to `IdGenerator.next` (e.g.
|
|
3654
|
+
* `'for-dialog-instance'`).
|
|
3655
|
+
*/
|
|
3656
|
+
readonly idPrefix: string;
|
|
3657
|
+
/**
|
|
3658
|
+
* Attribute the overlay root + backdrop reflect their per-instance id on
|
|
3659
|
+
* (e.g. `'data-for-dialog-id'`), matched during exit animation.
|
|
3660
|
+
*/
|
|
3661
|
+
readonly idAttribute: string;
|
|
3662
|
+
/**
|
|
3663
|
+
* Attribute marking the portaled backdrop element (e.g.
|
|
3664
|
+
* `'data-for-dialog-backdrop'`), matched during exit animation.
|
|
3665
|
+
*/
|
|
3666
|
+
readonly backdropAttribute: string;
|
|
3667
|
+
/** Creates the manager-owned outlet component (e.g. `ForDialogOutlet`). */
|
|
3668
|
+
createOutlet(environmentInjector: EnvironmentInjector): ComponentRef<OverlayManagerOutlet<TEntry>>;
|
|
3669
|
+
}
|
|
3670
|
+
/**
|
|
3671
|
+
* Shared imperative-overlay engine behind `ForDialogManager` and
|
|
3672
|
+
* `ForDrawerManager`. Owns the entries signal, the reactive `openCount`, the
|
|
3673
|
+
* lazily-created outlet, the destroy-time close-all sweep, the exit-animation
|
|
3674
|
+
* `beginLeave` driver, and the parent-cached per-component `Injector` factory.
|
|
3675
|
+
* The two managers differ only in their entry shape and directive-input
|
|
3676
|
+
* mapping; everything structural lives here once.
|
|
3677
|
+
*
|
|
3678
|
+
* Internal — not re-exported from `public-api.ts`; the public surface is
|
|
3679
|
+
* `ForDialogManager` / `ForDrawerManager`.
|
|
3680
|
+
*/
|
|
3681
|
+
declare class OverlayManagerCore<TEntry extends OverlayManagerEntry> {
|
|
3682
|
+
#private;
|
|
3683
|
+
protected readonly idGen: IdGenerator;
|
|
3684
|
+
/** Reactive count of currently open programmatic overlays. */
|
|
3685
|
+
readonly openCount: Signal<number>;
|
|
3686
|
+
constructor(config: OverlayManagerConfig<TEntry>);
|
|
3687
|
+
}
|
|
3688
|
+
|
|
3689
|
+
/**
|
|
3690
|
+
* Shape of a single open dialog entry stored in the manager.
|
|
3691
|
+
*
|
|
3692
|
+
* Internal — not re-exported from `public-api.ts`.
|
|
3693
|
+
*/
|
|
3694
|
+
interface ForDialogEntry extends OverlayManagerEntry {
|
|
3695
|
+
readonly component: Type<unknown>;
|
|
3696
|
+
readonly hostClass: string;
|
|
3697
|
+
readonly dismissible: boolean | undefined;
|
|
3698
|
+
readonly modal: boolean | undefined;
|
|
3699
|
+
readonly alert: boolean | undefined;
|
|
3700
|
+
readonly returnFocus: boolean | undefined;
|
|
3701
|
+
readonly initialFocus: 'first' | 'container' | undefined;
|
|
3702
|
+
readonly ariaLabel: string | undefined;
|
|
3703
|
+
readonly container: HTMLElement | null | undefined;
|
|
3704
|
+
readonly animateEnter: string | undefined;
|
|
3705
|
+
readonly autoFocusOnOpen: ((e: VetoableEvent) => void) | undefined;
|
|
3706
|
+
readonly autoFocusOnClose: ((e: VetoableEvent) => void) | undefined;
|
|
3707
|
+
readonly escapeKeyDown: ((e: VetoableNativeEvent<KeyboardEvent>) => void) | undefined;
|
|
3708
|
+
readonly pointerDownOutside: ((e: VetoableNativeEvent<PointerEvent>) => void) | undefined;
|
|
3709
|
+
readonly focusOutside: ((e: VetoableNativeEvent<FocusEvent>) => void) | undefined;
|
|
3710
|
+
readonly interactOutside: ((e: VetoableNativeEvent<PointerEvent | FocusEvent>) => void) | undefined;
|
|
3711
|
+
handleClose(value: unknown): void;
|
|
3712
|
+
injectorFor(parent: Injector): Injector;
|
|
3713
|
+
}
|
|
3714
|
+
|
|
3010
3715
|
/**
|
|
3011
3716
|
* Injection token for the `data` payload passed to `ForDialogManager.open(component, { data })`.
|
|
3012
3717
|
* The manager always provides this token, falling back to `null` when no `data`
|
|
@@ -3147,8 +3852,8 @@ interface ForDialogOpenConfig<D = unknown> {
|
|
|
3147
3852
|
interactOutside?: (event: VetoableNativeEvent<PointerEvent | FocusEvent>) => void;
|
|
3148
3853
|
}
|
|
3149
3854
|
/**
|
|
3150
|
-
* Programmatic dialog opener —
|
|
3151
|
-
* Inject anywhere, call `open(MyComponent, { data, ... })` and get a
|
|
3855
|
+
* Programmatic dialog opener — open a component as a modal dialog from
|
|
3856
|
+
* TypeScript. Inject anywhere, call `open(MyComponent, { data, ... })` and get a
|
|
3152
3857
|
* `ForDialogRef<R>` back. Internally the manager renders the user component
|
|
3153
3858
|
* inside a manager-owned `@for` outlet, so Angular's control-flow unmount
|
|
3154
3859
|
* fires `animate.leave` before the node leaves the DOM — identical to the
|
|
@@ -3162,10 +3867,9 @@ interface ForDialogOpenConfig<D = unknown> {
|
|
|
3162
3867
|
* Inject `ForDialogRef` to drive close imperatively and `FOR_DIALOG_DATA` (or
|
|
3163
3868
|
* `injectDialogData<T>()`) for the payload.
|
|
3164
3869
|
*/
|
|
3165
|
-
declare class ForDialogManager {
|
|
3870
|
+
declare class ForDialogManager extends OverlayManagerCore<ForDialogEntry> {
|
|
3166
3871
|
#private;
|
|
3167
|
-
|
|
3168
|
-
readonly openCount: _angular_core.Signal<number>;
|
|
3872
|
+
constructor();
|
|
3169
3873
|
open<C, R = unknown, D = unknown>(component: Type<C>, config?: ForDialogOpenConfig<D>): ForDialogRef<R>;
|
|
3170
3874
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForDialogManager, never>;
|
|
3171
3875
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ForDialogManager>;
|
|
@@ -3226,7 +3930,7 @@ declare function provideForDialogDefaults(defaults?: Partial<ForDialogDefaults>)
|
|
|
3226
3930
|
type ForDrawerSide = 'top' | 'right' | 'bottom' | 'left';
|
|
3227
3931
|
|
|
3228
3932
|
/**
|
|
3229
|
-
* A snap point. Three accepted shapes
|
|
3933
|
+
* A snap point. Three accepted shapes:
|
|
3230
3934
|
*
|
|
3231
3935
|
* - `number ∈ [0, 1]` — fraction of the dimension along the dismissal axis.
|
|
3232
3936
|
* - `'NN%'` — equivalent to a fraction, e.g. `'50%' === 0.5`.
|
|
@@ -3346,7 +4050,7 @@ interface ForDrawerReleaseEvent {
|
|
|
3346
4050
|
/**
|
|
3347
4051
|
* Headless implementation of the [WAI-ARIA Modal Dialog pattern](https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/),
|
|
3348
4052
|
* specialised as a side / bottom-sheet drawer with optional swipe-to-dismiss
|
|
3349
|
-
* and
|
|
4053
|
+
* and snap points.
|
|
3350
4054
|
*
|
|
3351
4055
|
* Apply `[forDrawer]` on the drawer surface itself — not on a wrapper. The
|
|
3352
4056
|
* directive moves the host to `document.body` (portal), traps focus, locks
|
|
@@ -3421,7 +4125,7 @@ declare class ForDrawer implements ForDrawerContext {
|
|
|
3421
4125
|
readonly swipeToDismiss: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
3422
4126
|
/**
|
|
3423
4127
|
* Fraction past which a release dismisses instead of snapping back.
|
|
3424
|
-
*
|
|
4128
|
+
* Default `0.25`. Without `snapPoints` it is a fraction of the
|
|
3425
4129
|
* full drawer dimension along the dismissal axis (dragged > 25% of the
|
|
3426
4130
|
* surface size toward the edge dismisses); with `snapPoints` it is a
|
|
3427
4131
|
* fraction of the **lowest snap's** extent, so a small "peek" snap stays
|
|
@@ -3436,7 +4140,7 @@ declare class ForDrawer implements ForDrawerContext {
|
|
|
3436
4140
|
readonly handleOnly: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
3437
4141
|
/**
|
|
3438
4142
|
* When true, asks the registered `[forDrawerWrapper]` to scale and
|
|
3439
|
-
* translate behind this drawer (
|
|
4143
|
+
* translate behind this drawer (the "scale background" effect). No
|
|
3440
4144
|
* effect under `prefers-reduced-motion: reduce`, and a no-op if no
|
|
3441
4145
|
* wrapper is mounted. Default `false` so existing consumers are
|
|
3442
4146
|
* untouched.
|
|
@@ -3450,7 +4154,7 @@ declare class ForDrawer implements ForDrawerContext {
|
|
|
3450
4154
|
*/
|
|
3451
4155
|
readonly setBackgroundColorOnScale: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
3452
4156
|
/**
|
|
3453
|
-
* Snap points
|
|
4157
|
+
* Snap points: each entry is a `number ∈ [0, 1]`,
|
|
3454
4158
|
* a `'NN%'` string, or a `'NNpx'` string. Strictly increasing
|
|
3455
4159
|
* (closest-to-edge first). The surface settles at the nearest snap on
|
|
3456
4160
|
* release; dragging past the lowest snap by `closeThreshold` of that
|
|
@@ -3495,30 +4199,38 @@ declare class ForDrawer implements ForDrawerContext {
|
|
|
3495
4199
|
readonly release: _angular_core.OutputEmitterRef<ForDrawerReleaseEvent>;
|
|
3496
4200
|
readonly labelledBy: _angular_core.Signal<string | null>;
|
|
3497
4201
|
readonly describedBy: _angular_core.Signal<string | null>;
|
|
4202
|
+
readonly activeSnapPointAttr: _angular_core.Signal<string | null>;
|
|
4203
|
+
readonly fadeFromActive: _angular_core.Signal<boolean>;
|
|
4204
|
+
/**
|
|
4205
|
+
* `true` while a pointer drag gesture is in flight. Mirrors the host's
|
|
4206
|
+
* `data-dragging` attribute; surfaced through `ForDrawerContext` so pieces
|
|
4207
|
+
* portaled away from the surface (the backdrop) can suppress their own
|
|
4208
|
+
* transitions during the gesture.
|
|
4209
|
+
*/
|
|
3498
4210
|
readonly dragging: _angular_core.Signal<boolean>;
|
|
4211
|
+
/**
|
|
4212
|
+
* Progress of the current drag toward the anchored edge, `∈ [0, 1]`.
|
|
4213
|
+
* Surfaced through `ForDrawerContext` so the backdrop can publish it as the
|
|
4214
|
+
* `--for-drawer-drag-progress` custom property.
|
|
4215
|
+
*/
|
|
3499
4216
|
readonly dragProgress: _angular_core.Signal<number>;
|
|
3500
|
-
readonly activeSnapPointAttr: _angular_core.Signal<string | null>;
|
|
3501
4217
|
/**
|
|
3502
4218
|
* Live drag displacement as a CSS `translate` value (`"<x> <y>"`),
|
|
3503
4219
|
* published on the host as the `--for-drawer-translate` custom property by
|
|
3504
|
-
*
|
|
3505
|
-
*
|
|
4220
|
+
* the gesture engine. The consumer composes it on the surface with
|
|
4221
|
+
* `translate: var(--for-drawer-translate, 0px 0px)`.
|
|
3506
4222
|
*
|
|
3507
|
-
* A **custom property** is used (rather than writing
|
|
3508
|
-
* `transform`
|
|
3509
|
-
*
|
|
3510
|
-
*
|
|
3511
|
-
*
|
|
3512
|
-
*
|
|
3513
|
-
*
|
|
3514
|
-
*
|
|
3515
|
-
*
|
|
3516
|
-
* the drag delta back to zero in lockstep with the snap-position
|
|
3517
|
-
* transition, instead of the surface jumping to the old rest position
|
|
3518
|
-
* before sliding to the new snap.
|
|
4223
|
+
* A **custom property** is used (rather than writing `translate` /
|
|
4224
|
+
* `transform` directly) because `transform` is reserved for
|
|
4225
|
+
* `ForDrawerScaleCoordinator` and a directly-written inline `translate` is
|
|
4226
|
+
* dropped by Angular when the consumer also binds a template `[style.*]` on
|
|
4227
|
+
* the same host. `"0px 0px"` at rest; the write rides the same change-
|
|
4228
|
+
* detection pass as the `data-dragging` / `data-active-snap-point` changes
|
|
4229
|
+
* on release so the consumer's `transition: translate` animates back in
|
|
4230
|
+
* lockstep with the snap transition rather than jumping to the old rest
|
|
4231
|
+
* position first.
|
|
3519
4232
|
*/
|
|
3520
4233
|
readonly dragTranslate: _angular_core.Signal<string>;
|
|
3521
|
-
readonly fadeFromActive: _angular_core.Signal<boolean>;
|
|
3522
4234
|
/** Host element of this drawer surface — exposed via `ForDrawerContext`. */
|
|
3523
4235
|
get hostElement(): HTMLElement;
|
|
3524
4236
|
readonly depthAttr: _angular_core.Signal<string>;
|
|
@@ -3607,13 +4319,13 @@ declare class ForDrawerTrigger {
|
|
|
3607
4319
|
*
|
|
3608
4320
|
* Reflects `data-fade-from-active` when `fadeFromIndex` on the drawer root
|
|
3609
4321
|
* is set and the active snap point is at or past that index — consumers
|
|
3610
|
-
* tie this to a CSS opacity transition for the
|
|
4322
|
+
* tie this to a CSS opacity transition for the "backdrop fades
|
|
3611
4323
|
* in once you snap up past N" effect.
|
|
3612
4324
|
*
|
|
3613
4325
|
* Publishes the live drag progress toward the anchored edge as the
|
|
3614
4326
|
* `--for-drawer-drag-progress` custom property (`0` at rest → `1` fully
|
|
3615
4327
|
* dragged off-screen) and mirrors the surface's `data-dragging` attribute.
|
|
3616
|
-
* Together these drive the
|
|
4328
|
+
* Together these drive the "backdrop fades out as you swipe to
|
|
3617
4329
|
* dismiss" effect with pure CSS:
|
|
3618
4330
|
*
|
|
3619
4331
|
* ```css
|
|
@@ -3705,9 +4417,7 @@ declare class ForDrawerClose {
|
|
|
3705
4417
|
/**
|
|
3706
4418
|
* Marks the consumer's app-shell wrapper so {@link ForDrawer}'s
|
|
3707
4419
|
* `scaleBackground` effect can transform the rest of the page when a
|
|
3708
|
-
* drawer opens —
|
|
3709
|
-
* Base UI's `Drawer.Indent`, but wired through Angular DI instead of a
|
|
3710
|
-
* global selector.
|
|
4420
|
+
* drawer opens — applied through Angular DI rather than a global selector.
|
|
3711
4421
|
*
|
|
3712
4422
|
* Apply on the element that contains everything the drawer should appear
|
|
3713
4423
|
* to recede behind (typically the root shell). Reflects
|
|
@@ -3737,19 +4447,45 @@ declare class ForDrawerWrapper {
|
|
|
3737
4447
|
* `R` is the close-result type. Default `unknown`; specify it on
|
|
3738
4448
|
* `manager.open<C, R>(...)` to get type safety.
|
|
3739
4449
|
*/
|
|
3740
|
-
declare class ForDrawerRef<R = unknown> {
|
|
3741
|
-
|
|
3742
|
-
|
|
3743
|
-
|
|
3744
|
-
|
|
3745
|
-
|
|
3746
|
-
|
|
3747
|
-
|
|
3748
|
-
|
|
3749
|
-
|
|
3750
|
-
|
|
3751
|
-
|
|
3752
|
-
|
|
4450
|
+
declare class ForDrawerRef<R = unknown> extends OverlayRef<R> {
|
|
4451
|
+
}
|
|
4452
|
+
|
|
4453
|
+
/**
|
|
4454
|
+
* Shape of a single open drawer entry stored in the manager.
|
|
4455
|
+
*
|
|
4456
|
+
* Internal — not re-exported from `public-api.ts`.
|
|
4457
|
+
*/
|
|
4458
|
+
interface ForDrawerEntry extends OverlayManagerEntry {
|
|
4459
|
+
readonly component: Type<unknown>;
|
|
4460
|
+
readonly hostClass: string;
|
|
4461
|
+
readonly side: ForDrawerSide | undefined;
|
|
4462
|
+
readonly dismissible: boolean | undefined;
|
|
4463
|
+
readonly modal: boolean | undefined;
|
|
4464
|
+
readonly alert: boolean | undefined;
|
|
4465
|
+
readonly returnFocus: boolean | undefined;
|
|
4466
|
+
readonly initialFocus: 'first' | 'container' | undefined;
|
|
4467
|
+
readonly ariaLabel: string | undefined;
|
|
4468
|
+
readonly container: HTMLElement | null | undefined;
|
|
4469
|
+
readonly animateEnter: string | undefined;
|
|
4470
|
+
readonly autoFocusOnOpen: ((e: VetoableEvent) => void) | undefined;
|
|
4471
|
+
readonly autoFocusOnClose: ((e: VetoableEvent) => void) | undefined;
|
|
4472
|
+
readonly swipeToDismiss: boolean | undefined;
|
|
4473
|
+
readonly closeThreshold: number | undefined;
|
|
4474
|
+
readonly handleOnly: boolean | undefined;
|
|
4475
|
+
readonly scaleBackground: boolean | undefined;
|
|
4476
|
+
readonly setBackgroundColorOnScale: boolean | undefined;
|
|
4477
|
+
readonly snapPoints: ReadonlyArray<ForDrawerSnapPoint> | undefined;
|
|
4478
|
+
readonly activeSnapPoint: ForDrawerSnapPoint | undefined;
|
|
4479
|
+
readonly fadeFromIndex: number | undefined;
|
|
4480
|
+
readonly escapeKeyDown: ((e: VetoableNativeEvent<KeyboardEvent>) => void) | undefined;
|
|
4481
|
+
readonly pointerDownOutside: ((e: VetoableNativeEvent<PointerEvent>) => void) | undefined;
|
|
4482
|
+
readonly focusOutside: ((e: VetoableNativeEvent<FocusEvent>) => void) | undefined;
|
|
4483
|
+
readonly interactOutside: ((e: VetoableNativeEvent<PointerEvent | FocusEvent>) => void) | undefined;
|
|
4484
|
+
readonly onDrag: ((e: ForDrawerDragEvent) => void) | undefined;
|
|
4485
|
+
readonly onRelease: ((e: ForDrawerReleaseEvent) => void) | undefined;
|
|
4486
|
+
readonly onActiveSnapPointChange: ((snap: ForDrawerSnapPoint | null) => void) | undefined;
|
|
4487
|
+
handleClose(value: unknown): void;
|
|
4488
|
+
injectorFor(parent: Injector): Injector;
|
|
3753
4489
|
}
|
|
3754
4490
|
|
|
3755
4491
|
/**
|
|
@@ -3824,13 +4560,13 @@ interface ForDrawerOpenConfig<D = unknown> {
|
|
|
3824
4560
|
backdropAnimateLeave?: string;
|
|
3825
4561
|
/** When true (default), pointer drag past `closeThreshold` dismisses. */
|
|
3826
4562
|
swipeToDismiss?: boolean;
|
|
3827
|
-
/**
|
|
4563
|
+
/** Fraction of dimension past which a release dismisses. Default `0.25`. */
|
|
3828
4564
|
closeThreshold?: number;
|
|
3829
4565
|
/** When true, swipe only arms on a registered handle element. Default `false`. */
|
|
3830
4566
|
handleOnly?: boolean;
|
|
3831
4567
|
/**
|
|
3832
4568
|
* When true, asks the registered `[forDrawerWrapper]` to scale and translate
|
|
3833
|
-
* behind this drawer (
|
|
4569
|
+
* behind this drawer (the "scale background" effect). No effect under
|
|
3834
4570
|
* `prefers-reduced-motion: reduce`, and a no-op if no wrapper is mounted.
|
|
3835
4571
|
*/
|
|
3836
4572
|
scaleBackground?: boolean;
|
|
@@ -3840,7 +4576,7 @@ interface ForDrawerOpenConfig<D = unknown> {
|
|
|
3840
4576
|
* viewport edge does not show through.
|
|
3841
4577
|
*/
|
|
3842
4578
|
setBackgroundColorOnScale?: boolean;
|
|
3843
|
-
/** Snap points
|
|
4579
|
+
/** Snap points. Optional. */
|
|
3844
4580
|
snapPoints?: ReadonlyArray<ForDrawerSnapPoint>;
|
|
3845
4581
|
/** Initial snap point at open time. Defaults to `snapPoints?.[0]`. */
|
|
3846
4582
|
defaultSnapPoint?: ForDrawerSnapPoint;
|
|
@@ -3945,10 +4681,9 @@ interface ForDrawerOpenConfig<D = unknown> {
|
|
|
3945
4681
|
* Inject `ForDrawerRef` to drive close imperatively and `FOR_DRAWER_DATA` (or
|
|
3946
4682
|
* `injectDrawerData<T>()`) for the payload.
|
|
3947
4683
|
*/
|
|
3948
|
-
declare class ForDrawerManager {
|
|
4684
|
+
declare class ForDrawerManager extends OverlayManagerCore<ForDrawerEntry> {
|
|
3949
4685
|
#private;
|
|
3950
|
-
|
|
3951
|
-
readonly openCount: _angular_core.Signal<number>;
|
|
4686
|
+
constructor();
|
|
3952
4687
|
open<C, R = unknown, D = unknown>(component: Type<C>, config?: ForDrawerOpenConfig<D>): ForDrawerRef<R>;
|
|
3953
4688
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForDrawerManager, never>;
|
|
3954
4689
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ForDrawerManager>;
|
|
@@ -3972,8 +4707,8 @@ interface ForDrawerDefaults {
|
|
|
3972
4707
|
/**
|
|
3973
4708
|
* Default `0.25`. Fraction past which a release dismisses instead of
|
|
3974
4709
|
* snapping back: of the full dimension without snap points, of the lowest
|
|
3975
|
-
* snap's extent with them
|
|
3976
|
-
* `_internal/
|
|
4710
|
+
* snap's extent with them (see
|
|
4711
|
+
* `_internal/snap-points/resolveSnapTarget`).
|
|
3977
4712
|
*/
|
|
3978
4713
|
closeThreshold?: number;
|
|
3979
4714
|
/** Default `'first'`. Where to send focus on mount. */
|
|
@@ -3987,8 +4722,8 @@ interface ForDrawerDefaults {
|
|
|
3987
4722
|
handleOnly?: boolean;
|
|
3988
4723
|
/**
|
|
3989
4724
|
* Default `false`. When `true`, an open drawer asks
|
|
3990
|
-
* `[forDrawerWrapper]` to scale + translate behind it (
|
|
3991
|
-
* "
|
|
4725
|
+
* `[forDrawerWrapper]` to scale + translate behind it (the "scale
|
|
4726
|
+
* background" effect). Suppressed under
|
|
3992
4727
|
* `prefers-reduced-motion: reduce`.
|
|
3993
4728
|
*/
|
|
3994
4729
|
scaleBackground?: boolean;
|
|
@@ -4067,25 +4802,17 @@ declare function provideForDrawerDefaults(defaults?: Partial<ForDrawerDefaults>)
|
|
|
4067
4802
|
* is published here so descendant pieces can react without each subscribing
|
|
4068
4803
|
* to the directive instance directly.
|
|
4069
4804
|
*/
|
|
4070
|
-
interface ForPopoverContext {
|
|
4805
|
+
interface ForPopoverContext extends AnchoredPositioningContext {
|
|
4071
4806
|
readonly open: ModelSignal<boolean>;
|
|
4072
4807
|
readonly disabled: Signal<boolean>;
|
|
4073
4808
|
readonly dismissible: Signal<boolean>;
|
|
4074
4809
|
readonly returnFocus: Signal<boolean>;
|
|
4075
4810
|
readonly initialFocus: Signal<'first' | 'container'>;
|
|
4076
|
-
readonly side: Signal<FloatingSide>;
|
|
4077
|
-
readonly align: Signal<FloatingAlign>;
|
|
4078
|
-
readonly sideOffset: Signal<number>;
|
|
4079
|
-
readonly alignOffset: Signal<number>;
|
|
4080
|
-
readonly avoidCollisions: Signal<boolean>;
|
|
4081
|
-
readonly collisionPadding: Signal<number>;
|
|
4082
|
-
readonly arrowPadding: Signal<number>;
|
|
4083
|
-
readonly sticky: Signal<'partial' | 'always' | false>;
|
|
4084
|
-
readonly hideWhenDetached: Signal<boolean>;
|
|
4085
|
-
readonly clipUntilPositioned: Signal<boolean>;
|
|
4086
4811
|
readonly triggerId: Signal<string>;
|
|
4087
4812
|
readonly contentId: Signal<string>;
|
|
4088
4813
|
readonly ariaLabel: Signal<string | null>;
|
|
4814
|
+
/** Whether `prefers-reduced-motion: reduce` is active — reflected as `data-reduced-motion`. */
|
|
4815
|
+
readonly reducedMotion: Signal<boolean>;
|
|
4089
4816
|
readonly labelledBy: Signal<string | null>;
|
|
4090
4817
|
readonly describedBy: Signal<string | null>;
|
|
4091
4818
|
readonly trigger: Signal<HTMLElement | null>;
|
|
@@ -4098,7 +4825,6 @@ interface ForPopoverContext {
|
|
|
4098
4825
|
* the popover paints.
|
|
4099
4826
|
*/
|
|
4100
4827
|
readonly reference: Signal<HTMLElement | null>;
|
|
4101
|
-
readonly arrow: Signal<HTMLElement | null>;
|
|
4102
4828
|
registerTrigger(el: HTMLElement): void;
|
|
4103
4829
|
unregisterTrigger(el: HTMLElement): void;
|
|
4104
4830
|
/** Adopts a consumer-set static `id` on the content host into `contentId`. */
|
|
@@ -4203,7 +4929,7 @@ declare class ForPopover implements ForPopoverContext {
|
|
|
4203
4929
|
/**
|
|
4204
4930
|
* Per-popover override for the gap (px) between trigger and content along
|
|
4205
4931
|
* the *main* axis (perpendicular to `side`). Forwarded to floating-ui's
|
|
4206
|
-
* `offset` middleware.
|
|
4932
|
+
* `offset` middleware. When `undefined`
|
|
4207
4933
|
* (default), falls back to `ForPopoverDefaults.sideOffset` from the
|
|
4208
4934
|
* surrounding `provideForPopoverDefaults` scope (`8` unless configured).
|
|
4209
4935
|
*
|
|
@@ -4222,8 +4948,8 @@ declare class ForPopover implements ForPopoverContext {
|
|
|
4222
4948
|
readonly avoidCollisions: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
4223
4949
|
/**
|
|
4224
4950
|
* Per-popover override for the padding (px) applied uniformly to the
|
|
4225
|
-
* `flip`, `shift`, and `size` middlewares.
|
|
4226
|
-
*
|
|
4951
|
+
* `flip`, `shift`, and `size` middlewares. When `undefined` (default),
|
|
4952
|
+
* falls back to
|
|
4227
4953
|
* `ForPopoverDefaults.collisionPadding` from the surrounding
|
|
4228
4954
|
* `provideForPopoverDefaults` scope (`8` unless configured).
|
|
4229
4955
|
*
|
|
@@ -4282,6 +5008,15 @@ declare class ForPopover implements ForPopoverContext {
|
|
|
4282
5008
|
readonly initialFocus: _angular_core.InputSignal<"first" | "container">;
|
|
4283
5009
|
/** Manual `aria-label` on the content. Use this when no visible title element exists. */
|
|
4284
5010
|
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
5011
|
+
/**
|
|
5012
|
+
* Whether the user has requested reduced motion via the OS
|
|
5013
|
+
* `prefers-reduced-motion: reduce` media query. Reflected as the boolean
|
|
5014
|
+
* `data-reduced-motion` attribute on the root and content so consumers can
|
|
5015
|
+
* disable their own `animate.enter` / `animate.leave` and CSS transitions
|
|
5016
|
+
* without re-deriving the media query. The popover toggles open / closed
|
|
5017
|
+
* synchronously on trigger click, so it has no JS-coordinated timing to skip.
|
|
5018
|
+
*/
|
|
5019
|
+
readonly reducedMotion: _angular_core.Signal<boolean>;
|
|
4285
5020
|
/**
|
|
4286
5021
|
* Fires when the user presses Escape while this popover is the topmost
|
|
4287
5022
|
* dismissable layer. Call `preventDefault()` on the emitted veto to
|
|
@@ -4539,7 +5274,7 @@ interface ForPopoverDefaults {
|
|
|
4539
5274
|
align: FloatingAlign;
|
|
4540
5275
|
/**
|
|
4541
5276
|
* Gap (px) between trigger and content along the main axis for popovers
|
|
4542
|
-
* that don't override `sideOffset` locally.
|
|
5277
|
+
* that don't override `sideOffset` locally.
|
|
4543
5278
|
* Library fallback `8`.
|
|
4544
5279
|
*/
|
|
4545
5280
|
sideOffset: number;
|
|
@@ -4651,7 +5386,7 @@ declare const FOR_TOGGLE_GROUP_CONTEXT: InjectionToken<ForToggleGroupContext>;
|
|
|
4651
5386
|
* Headless group of toggle buttons: a `role="group"` container whose items
|
|
4652
5387
|
* each carry `aria-pressed`, modelled on the
|
|
4653
5388
|
* [WAI-ARIA Button pattern](https://www.w3.org/WAI/ARIA/apg/patterns/button/)
|
|
4654
|
-
* (toggle-button variant)
|
|
5389
|
+
* (toggle-button variant). Owns the
|
|
4655
5390
|
* selected-values set, navigation policy, and the registry of
|
|
4656
5391
|
* `[forToggleGroupItem]` children. Implements
|
|
4657
5392
|
* `FormValueControl<readonly string[]>` from `@angular/forms/signals` for
|
|
@@ -4870,6 +5605,81 @@ declare const FOR_TOGGLE_GROUP_HOST_DIRECTIVE_INPUTS: readonly ["value", "dir",
|
|
|
4870
5605
|
*/
|
|
4871
5606
|
declare const FOR_TOGGLE_GROUP_HOST_DIRECTIVE_OUTPUTS: readonly ["valueChange", "touchedChange", "touch"];
|
|
4872
5607
|
|
|
5608
|
+
/**
|
|
5609
|
+
* Headless implementation of the [WAI-ARIA Button pattern](https://www.w3.org/WAI/ARIA/apg/patterns/button/).
|
|
5610
|
+
*
|
|
5611
|
+
* Works on a native `<button>` host and on any arbitrary host element (e.g. `<div>`, `<span>`).
|
|
5612
|
+
* On a native button the platform handles Enter/Space → click synthesis and no `role` or
|
|
5613
|
+
* `tabindex` is emitted (the platform owns those). On a non-button host, `role="button"` and
|
|
5614
|
+
* `tabindex="0"` are applied, and keydown for Enter/Space synthesizes a click so the directive's
|
|
5615
|
+
* single `onClick` path handles all activations.
|
|
5616
|
+
*
|
|
5617
|
+
* Disabled stays focusable: per the APG a disabled button must remain reachable by assistive
|
|
5618
|
+
* technology, so the native `disabled` attribute is never set. Instead `aria-disabled="true"` and
|
|
5619
|
+
* `data-disabled=""` are reflected and the activation handler becomes a no-op.
|
|
5620
|
+
*
|
|
5621
|
+
* Interaction state is reflected as `data-pressed`, `data-hovered`, and `data-focus-visible`
|
|
5622
|
+
* (present/absent boolean attributes). There is no `data-state` — this primitive has no
|
|
5623
|
+
* open/closed or checked/unchecked logical state.
|
|
5624
|
+
*
|
|
5625
|
+
* @example
|
|
5626
|
+
* ```html
|
|
5627
|
+
* <!-- Native button — platform handles Enter/Space -->
|
|
5628
|
+
* <button forButton (activate)="doSomething()">Click me</button>
|
|
5629
|
+
*
|
|
5630
|
+
* <!-- Non-button host — role, tabindex, and keyboard handling added automatically -->
|
|
5631
|
+
* <div forButton (activate)="doSomething()">Click me</div>
|
|
5632
|
+
*
|
|
5633
|
+
* <!-- Disabled: stays focusable, activation is a no-op -->
|
|
5634
|
+
* <button forButton [disabled]="true" (activate)="doSomething()">Disabled</button>
|
|
5635
|
+
* ```
|
|
5636
|
+
*/
|
|
5637
|
+
declare class ForButton {
|
|
5638
|
+
#private;
|
|
5639
|
+
/**
|
|
5640
|
+
* When `true`, activation (click, Enter, Space) is suppressed and the element
|
|
5641
|
+
* reflects `aria-disabled="true"` + `data-disabled=""`. The element remains
|
|
5642
|
+
* focusable so assistive technology can announce it.
|
|
5643
|
+
*/
|
|
5644
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
5645
|
+
/**
|
|
5646
|
+
* Emitted once per user activation: a pointer click on any host, or Enter / Space
|
|
5647
|
+
* on a non-native-button host (native buttons synthesize click from keyboard). The
|
|
5648
|
+
* name `activate` is chosen deliberately to avoid colliding with the native `click`
|
|
5649
|
+
* event (which would trip `@angular-eslint/no-output-native` on wrapping consumers).
|
|
5650
|
+
*/
|
|
5651
|
+
readonly activate: _angular_core.OutputEmitterRef<void>;
|
|
5652
|
+
protected readonly hovered: _angular_core.Signal<boolean>;
|
|
5653
|
+
protected readonly pressed: _angular_core.Signal<boolean>;
|
|
5654
|
+
protected readonly focusVisible: _angular_core.Signal<boolean>;
|
|
5655
|
+
protected readonly resolvedType: _angular_core.Signal<string | null>;
|
|
5656
|
+
protected readonly resolvedRole: _angular_core.Signal<"button" | null>;
|
|
5657
|
+
protected readonly resolvedTabindex: _angular_core.Signal<"0" | null>;
|
|
5658
|
+
protected onClick(event: MouseEvent): void;
|
|
5659
|
+
protected onKeydown(event: KeyboardEvent): void;
|
|
5660
|
+
protected onFocusIn(): void;
|
|
5661
|
+
protected onFocusOut(): void;
|
|
5662
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForButton, never>;
|
|
5663
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForButton, "[forButton]", ["forButton"], { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "activate": "activate"; }, never, never, true, never>;
|
|
5664
|
+
}
|
|
5665
|
+
|
|
5666
|
+
/**
|
|
5667
|
+
* Defaults inherited by descendant buttons in the surrounding injector
|
|
5668
|
+
* scope. Configure with `provideForButtonDefaults`. The shape is a stub
|
|
5669
|
+
* today — present so future per-scope tuning can land without churning the
|
|
5670
|
+
* public surface.
|
|
5671
|
+
*/
|
|
5672
|
+
interface ForButtonDefaults {
|
|
5673
|
+
}
|
|
5674
|
+
/** Token holding the resolved button defaults for the current scope. */
|
|
5675
|
+
declare const FOR_BUTTON_DEFAULTS: _angular_core.InjectionToken<ForButtonDefaults>;
|
|
5676
|
+
/**
|
|
5677
|
+
* Configures forty-cdk button defaults for this injector scope. Partial
|
|
5678
|
+
* overrides inherit unspecified keys from the parent scope (or library
|
|
5679
|
+
* defaults at the root).
|
|
5680
|
+
*/
|
|
5681
|
+
declare function provideForButtonDefaults(defaults?: Partial<ForButtonDefaults>): Provider[];
|
|
5682
|
+
|
|
4873
5683
|
/**
|
|
4874
5684
|
* The menu surface. Carries `role="menu"`, is portaled to `document.body`,
|
|
4875
5685
|
* and is positioned by `@floating-ui/dom` against the registered anchor —
|
|
@@ -5343,7 +6153,7 @@ declare class MenuOverlay<H extends MenuOverlayItemHandle = MenuOverlayItemHandl
|
|
|
5343
6153
|
/**
|
|
5344
6154
|
* Clears `data-highlighted` from every item without moving focus. The shared
|
|
5345
6155
|
* `[forMenuContent]` calls this on `pointerleave` so the hover highlight
|
|
5346
|
-
* follows the pointer off the surface
|
|
6156
|
+
* follows the pointer off the surface.
|
|
5347
6157
|
*/
|
|
5348
6158
|
clearItemHighlights(): void;
|
|
5349
6159
|
/**
|
|
@@ -5446,30 +6256,6 @@ declare abstract class MenuOverlayHost<H extends MenuOverlayItemHandle = MenuOve
|
|
|
5446
6256
|
emitAutoFocusOnClose(): boolean;
|
|
5447
6257
|
}
|
|
5448
6258
|
|
|
5449
|
-
/**
|
|
5450
|
-
* Pointer-grace ("safe triangle") helper.
|
|
5451
|
-
*
|
|
5452
|
-
* When a mouse leaves a submenu trigger heading toward the submenu content,
|
|
5453
|
-
* a naive "close on pointer-leave" would dismiss the submenu the moment the
|
|
5454
|
-
* cursor crosses the gap between the trigger and the content. Radix, Base UI,
|
|
5455
|
-
* and native desktop menus solve this with a *safe triangle*: a polygon drawn
|
|
5456
|
-
* from the cursor's exit point to the near edge of the submenu content. While
|
|
5457
|
-
* the pointer stays inside that polygon it is assumed to be travelling toward
|
|
5458
|
-
* the submenu, so the close is held off.
|
|
5459
|
-
*
|
|
5460
|
-
* This module keeps no Angular DI surface — the geometry is pure functions
|
|
5461
|
-
* (unit-tested in `pointer-grace.spec.ts`) and {@link attachPointerGrace} is a
|
|
5462
|
-
* plain `addEventListener` wrapper returning a cleanup, wired by the directive
|
|
5463
|
-
* through its `DestroyRef`. The DOM-measured inputs (cursor position, content
|
|
5464
|
-
* rect, resolved side) are supplied by the caller, so the geometry stays
|
|
5465
|
-
* testable without faking layout.
|
|
5466
|
-
*/
|
|
5467
|
-
/** A point in client (viewport) coordinates. */
|
|
5468
|
-
interface Point {
|
|
5469
|
-
readonly x: number;
|
|
5470
|
-
readonly y: number;
|
|
5471
|
-
}
|
|
5472
|
-
|
|
5473
6259
|
/**
|
|
5474
6260
|
* Minimal upward contract a menu uses to move between sibling menus of an
|
|
5475
6261
|
* enclosing menubar. Implemented by the menubar root; keeps the generic menu
|
|
@@ -5480,8 +6266,8 @@ interface MenuSiblingNavigator {
|
|
|
5480
6266
|
switchToSibling(direction: 'next' | 'prev'): void;
|
|
5481
6267
|
}
|
|
5482
6268
|
/**
|
|
5483
|
-
* Why a menu requested close.
|
|
5484
|
-
*
|
|
6269
|
+
* Why a menu requested close. Enumerates the close reasons without the
|
|
6270
|
+
* focus-routing decision baked in. `'programmatic'` also
|
|
5485
6271
|
* covers the user-initiated trigger toggle-close (clicking an open menu's
|
|
5486
6272
|
* trigger): the toggle path reuses this reason by design rather than
|
|
5487
6273
|
* exposing a distinct `'trigger'` reason.
|
|
@@ -5601,7 +6387,7 @@ interface ForMenuContext {
|
|
|
5601
6387
|
/**
|
|
5602
6388
|
* Clear `data-highlighted` from every item without moving focus. Called by
|
|
5603
6389
|
* `[forMenuContent]` on `pointerleave` so the hover highlight follows the
|
|
5604
|
-
* pointer off the surface (
|
|
6390
|
+
* pointer off the surface (hover-follows-pointer).
|
|
5605
6391
|
*/
|
|
5606
6392
|
clearItemHighlights(): void;
|
|
5607
6393
|
/** Returns `true` if focus moved; `false` when no enabled items exist. */
|
|
@@ -5959,7 +6745,7 @@ interface ForMenuDefaults {
|
|
|
5959
6745
|
subMenuPointerGraceDuration: number;
|
|
5960
6746
|
/**
|
|
5961
6747
|
* Distance (px) between the sub-trigger and the submenu content along the
|
|
5962
|
-
* resolved `side` axis.
|
|
6748
|
+
* resolved `side` axis. Default `0` — a
|
|
5963
6749
|
* submenu sits flush against its parent item.
|
|
5964
6750
|
*/
|
|
5965
6751
|
sideOffset: number;
|
|
@@ -6033,7 +6819,7 @@ declare class ForDropdownMenu extends MenuOverlayHost implements ForMenuContext
|
|
|
6033
6819
|
readonly align: _angular_core.InputSignal<FloatingAlign | undefined>;
|
|
6034
6820
|
/**
|
|
6035
6821
|
* Gap (px) between trigger and menu along the main axis. Default `4`.
|
|
6036
|
-
*
|
|
6822
|
+
* The default is read from
|
|
6037
6823
|
* `provideForDropdownMenuDefaults` for the surrounding scope.
|
|
6038
6824
|
*/
|
|
6039
6825
|
readonly sideOffset: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
@@ -6194,7 +6980,7 @@ declare class ForDropdownMenuTrigger {
|
|
|
6194
6980
|
interface ForDropdownMenuDefaults {
|
|
6195
6981
|
/**
|
|
6196
6982
|
* Distance (px) between the dropdown trigger and the floating content
|
|
6197
|
-
* along the resolved `side` axis.
|
|
6983
|
+
* along the resolved `side` axis.
|
|
6198
6984
|
*/
|
|
6199
6985
|
sideOffset: number;
|
|
6200
6986
|
/**
|
|
@@ -6498,8 +7284,8 @@ declare class ForContextMenuTrigger {
|
|
|
6498
7284
|
interface ForContextMenuDefaults {
|
|
6499
7285
|
/**
|
|
6500
7286
|
* Distance (px) between the virtual anchor (pointer position) and the
|
|
6501
|
-
* floating content along the resolved `side` axis.
|
|
6502
|
-
*
|
|
7287
|
+
* floating content along the resolved `side` axis. Defaults to `0`
|
|
7288
|
+
* since context menus open at the cursor.
|
|
6503
7289
|
*/
|
|
6504
7290
|
sideOffset: number;
|
|
6505
7291
|
/**
|
|
@@ -6598,7 +7384,7 @@ interface ForMenubarContext extends MenuSiblingNavigator {
|
|
|
6598
7384
|
/**
|
|
6599
7385
|
* Hover-after-open. When some menu is open and pointer enters a sibling
|
|
6600
7386
|
* trigger, that sibling's menu opens immediately. No-op while no menu
|
|
6601
|
-
* is open (
|
|
7387
|
+
* is open (first open requires keyboard / click).
|
|
6602
7388
|
*/
|
|
6603
7389
|
pointerEnterTrigger(value: string): void;
|
|
6604
7390
|
/** Typeahead at the trigger row matches sibling trigger labels. */
|
|
@@ -6641,8 +7427,11 @@ interface MenubarMenuHost extends MenuSiblingNavigator {
|
|
|
6641
7427
|
* context shape transparently covers whichever trigger's menu is mounted.
|
|
6642
7428
|
*
|
|
6643
7429
|
* Item navigation reuses the shared `MenuItemList` (the same item-collection /
|
|
6644
|
-
* typeahead / navigate / focus mechanics that back `MenuOverlay`),
|
|
6645
|
-
*
|
|
7430
|
+
* typeahead / navigate / focus mechanics that back `MenuOverlay`), and the
|
|
7431
|
+
* initial-focus / highlight-consume protocol and the close-reason record reuse
|
|
7432
|
+
* the shared `InitialFocusState` / `CloseReasonState` micro-helpers (also
|
|
7433
|
+
* composed by `MenuOverlay`), so this only has to cover the parts the
|
|
7434
|
+
* single-owner overlay can't — the `activeTrigger`-derived multiplexing.
|
|
6646
7435
|
*
|
|
6647
7436
|
* A bar-level menu has no per-trigger dismiss / auto-focus outputs and no
|
|
6648
7437
|
* per-context trigger registration (triggers register with the bar directly),
|
|
@@ -6802,6 +7591,16 @@ declare class ForMenubar implements ForMenubarContext {
|
|
|
6802
7591
|
* as its return-focus `trigger`.
|
|
6803
7592
|
*/
|
|
6804
7593
|
readonly lastTriggerHost: _angular_core.Signal<HTMLElement | null>;
|
|
7594
|
+
/**
|
|
7595
|
+
* Roving-tabindex tracker shared by every menubar trigger, mirroring
|
|
7596
|
+
* `ForToolbar` / `ForTabs`. Triggers promote themselves to active on
|
|
7597
|
+
* `(focus)` (via {@link setFocusedTrigger}) and read `active()` through
|
|
7598
|
+
* {@link tabindexFor}, so re-entry restores the last focused trigger. Before
|
|
7599
|
+
* any focus — and on every close — `active()` is `null`/stale and the tab
|
|
7600
|
+
* stop falls back to the first enabled trigger. The active pointer is
|
|
7601
|
+
* self-healing (a detached / disabled trigger no longer owns the stop).
|
|
7602
|
+
*/
|
|
7603
|
+
readonly roving: RovingTabindex;
|
|
6805
7604
|
constructor();
|
|
6806
7605
|
/**
|
|
6807
7606
|
* Single `ForMenuContext` provided to descendant `[forMenuContent]` and
|
|
@@ -6875,7 +7674,7 @@ declare class ForMenubar implements ForMenubarContext {
|
|
|
6875
7674
|
* starts with the buffered string.
|
|
6876
7675
|
*
|
|
6877
7676
|
* While some other trigger's menu is open, hovering this trigger opens it
|
|
6878
|
-
* immediately (no delay) —
|
|
7677
|
+
* immediately (no delay) — "first open is intentional, subsequent
|
|
6879
7678
|
* are hover". Keyboard focus alone never opens a menu.
|
|
6880
7679
|
*
|
|
6881
7680
|
* Pointer-driven opens (click — detected by the `pointerdown` preceding it —
|
|
@@ -7304,7 +8103,7 @@ declare class ForSelect<T = string> extends FormUiControlBase implements FormVal
|
|
|
7304
8103
|
readonly align: _angular_core.InputSignal<FloatingAlign | undefined>;
|
|
7305
8104
|
/**
|
|
7306
8105
|
* Gap (px) between trigger and listbox along the main axis. Default `4`.
|
|
7307
|
-
*
|
|
8106
|
+
* The default is read from
|
|
7308
8107
|
* `provideForSelectDefaults` for the surrounding scope.
|
|
7309
8108
|
*/
|
|
7310
8109
|
readonly sideOffset: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
@@ -7403,11 +8202,11 @@ declare class ForSelect<T = string> extends FormUiControlBase implements FormVal
|
|
|
7403
8202
|
* focus return, and its dismissal exemption regardless of where the listbox
|
|
7404
8203
|
* paints.
|
|
7405
8204
|
*/
|
|
7406
|
-
readonly anchor: _angular_core.Signal<ReferenceElement | null>;
|
|
8205
|
+
readonly anchor: _angular_core.Signal<_floating_ui_dom.ReferenceElement | null>;
|
|
7407
8206
|
readonly content: _angular_core.Signal<HTMLElement | null>;
|
|
8207
|
+
readonly options: _angular_core.Signal<readonly ForSelectOptionHandle<T>[]>;
|
|
7408
8208
|
/** The active option's `id` in the virtualized path, `null` in the default path. */
|
|
7409
8209
|
readonly activeDescendantId: _angular_core.Signal<string | null>;
|
|
7410
|
-
readonly options: _angular_core.Signal<readonly ForSelectOptionHandle<T>[]>;
|
|
7411
8210
|
/**
|
|
7412
8211
|
* Trimmed display labels of the selected values, in selection order. Pure
|
|
7413
8212
|
* derivation: when `[itemToLabel]` is supplied it is authoritative; otherwise
|
|
@@ -7606,7 +8405,7 @@ declare class ForSelectValue {
|
|
|
7606
8405
|
* - **non-modal (default)** — `injectOverlayShell` anchors the listbox to the
|
|
7607
8406
|
* trigger and branches on `[forSelect].position`:
|
|
7608
8407
|
* - `'popper'` (default) — standard `injectFloating` path with full
|
|
7609
|
-
*
|
|
8408
|
+
* anchored placement (`side`, `align`, `sideOffset`,
|
|
7610
8409
|
* `alignOffset`, `flip`, `shift`, `arrow`, `hideWhenDetached`).
|
|
7611
8410
|
* - `'item-aligned'` — `injectItemAlignedPositioner` overlays the listbox so
|
|
7612
8411
|
* the selected option's center aligns with the trigger's center. The
|
|
@@ -7783,7 +8582,7 @@ declare class ForSelectSeparator {
|
|
|
7783
8582
|
interface ForSelectDefaults {
|
|
7784
8583
|
/**
|
|
7785
8584
|
* Distance (px) between the select trigger and the floating content
|
|
7786
|
-
* along the resolved `side` axis.
|
|
8585
|
+
* along the resolved `side` axis.
|
|
7787
8586
|
*/
|
|
7788
8587
|
sideOffset: number;
|
|
7789
8588
|
/**
|
|
@@ -8037,6 +8836,15 @@ interface ForComboboxContext<T = unknown> {
|
|
|
8037
8836
|
isSelected(value: T): boolean;
|
|
8038
8837
|
/** True when `id` is the activedescendant. */
|
|
8039
8838
|
isActive(id: string): boolean;
|
|
8839
|
+
/**
|
|
8840
|
+
* Whether a pointer-suppression window is currently open. Opened whenever the
|
|
8841
|
+
* directive scrolls the active option into view during keyboard navigation,
|
|
8842
|
+
* so a synthetic `pointermove` fired because the scroll slid a different
|
|
8843
|
+
* option under a stationary cursor does not hijack the activedescendant.
|
|
8844
|
+
* Options consult this from their hover handler and skip the move while it
|
|
8845
|
+
* returns `true`.
|
|
8846
|
+
*/
|
|
8847
|
+
isPointerSuppressed(): boolean;
|
|
8040
8848
|
/**
|
|
8041
8849
|
* Activate by handle. Single mode replaces + closes + commits label. Multi
|
|
8042
8850
|
* mode toggles in/out + stays open + (when `commitOnSelect`) clears the
|
|
@@ -8224,9 +9032,8 @@ declare class ForCombobox<T = string> extends FormUiControlBase implements FormV
|
|
|
8224
9032
|
/**
|
|
8225
9033
|
* Auto-highlight the first enabled option whenever the listbox is open
|
|
8226
9034
|
* and no activedescendant is set (e.g. after the consumer's filter
|
|
8227
|
-
* removed the previously-active option). On by default
|
|
8228
|
-
*
|
|
8229
|
-
* Radix-style "user must arrow before anything is highlighted".
|
|
9035
|
+
* removed the previously-active option). On by default. Set `false` for
|
|
9036
|
+
* "user must arrow before anything is highlighted" behavior.
|
|
8230
9037
|
*/
|
|
8231
9038
|
readonly autoHighlight: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8232
9039
|
/**
|
|
@@ -8394,6 +9201,7 @@ declare class ForCombobox<T = string> extends FormUiControlBase implements FormV
|
|
|
8394
9201
|
unregisterChip(handle: ForComboboxChipHandle<T>): void;
|
|
8395
9202
|
isSelected(v: T): boolean;
|
|
8396
9203
|
isActive(id: string): boolean;
|
|
9204
|
+
isPointerSuppressed(): boolean;
|
|
8397
9205
|
activate(handle: ForComboboxOptionHandle<T>): void;
|
|
8398
9206
|
removeValue(v: T): void;
|
|
8399
9207
|
activateActive(): boolean;
|
|
@@ -8475,7 +9283,7 @@ declare class ForComboboxAnchor {
|
|
|
8475
9283
|
/**
|
|
8476
9284
|
* Button that opens the listbox and keeps showing the committed selection
|
|
8477
9285
|
* (label + icon) while the search input lives **inside** the panel — the
|
|
8478
|
-
* "combobox with trigger" / picker anatomy
|
|
9286
|
+
* "combobox with trigger" / picker anatomy. Apply on
|
|
8479
9287
|
* a real `<button>` so Space / Enter dispatch native click events that toggle
|
|
8480
9288
|
* via `(click)`.
|
|
8481
9289
|
*
|
|
@@ -8538,6 +9346,7 @@ declare class ForComboboxTrigger<T = unknown> {
|
|
|
8538
9346
|
* Keyboard:
|
|
8539
9347
|
* - **ArrowDown / ArrowUp** — open + move activedescendant.
|
|
8540
9348
|
* - **Home / End** (when open) — first / last enabled option.
|
|
9349
|
+
* - **PageUp / PageDown** (when open) — first / last enabled option.
|
|
8541
9350
|
* - **Enter** (when open) — activate the activedescendant; no-op otherwise.
|
|
8542
9351
|
* - **Escape** (when open) — close (focus stays in input). On the
|
|
8543
9352
|
* open→closed transition the input value is re-synced to `query()` even
|
|
@@ -8685,7 +9494,7 @@ declare const FOR_COMBOBOX_OPTION: InjectionToken<ForComboboxOption<string>>;
|
|
|
8685
9494
|
* `data-state="checked" | "unchecked"` always reflects membership in
|
|
8686
9495
|
* `value()` regardless of mode, so consumers can paint a checkmark with
|
|
8687
9496
|
* pure CSS in either mode. `data-highlighted` marks the option that is
|
|
8688
|
-
* the current activedescendant —
|
|
9497
|
+
* the current activedescendant — shared across the
|
|
8689
9498
|
* library's roving / activedescendant primitives.
|
|
8690
9499
|
*
|
|
8691
9500
|
* Hovering an option also makes it the activedescendant, mirroring native
|
|
@@ -9289,8 +10098,8 @@ declare class ForSlider extends FormUiControlBase implements Omit<FormValueContr
|
|
|
9289
10098
|
/**
|
|
9290
10099
|
* Emitted at the end of a value-changing interaction — pointerup /
|
|
9291
10100
|
* pointercancel after a drag, or keyup after one or more keyboard
|
|
9292
|
-
* adjustments — with the final value array.
|
|
9293
|
-
*
|
|
10101
|
+
* adjustments — with the final value array. Use it to defer expensive work
|
|
10102
|
+
* (network calls,
|
|
9294
10103
|
* history entries) to the trailing edge of the interaction instead of
|
|
9295
10104
|
* running it per step. Stays silent when nothing changed (e.g. press +
|
|
9296
10105
|
* release without movement, or a non-navigation key on a focused thumb).
|
|
@@ -9491,8 +10300,8 @@ declare const FOR_SLIDER_HOST_DIRECTIVE_OUTPUTS: readonly ["valueChange", "value
|
|
|
9491
10300
|
/**
|
|
9492
10301
|
* Pointer-based swipe-to-dismiss helper.
|
|
9493
10302
|
*
|
|
9494
|
-
* Used by `ForToast` (and any future primitive that wants
|
|
9495
|
-
*
|
|
10303
|
+
* Used by `ForToast` (and any future primitive that wants swipe-to-dismiss
|
|
10304
|
+
* semantics: a horizontal/vertical drag that, when released past
|
|
9496
10305
|
* the configured threshold, triggers a dismissal).
|
|
9497
10306
|
*
|
|
9498
10307
|
* The helper keeps no Angular DI surface — it's a plain function that
|
|
@@ -9634,6 +10443,27 @@ interface ForToastConfig<D = unknown> {
|
|
|
9634
10443
|
* {@link class} and with the directive's own host attributes.
|
|
9635
10444
|
*/
|
|
9636
10445
|
classList?: string | readonly string[];
|
|
10446
|
+
/**
|
|
10447
|
+
* CSS class applied via `animate.enter` to the rendered toast root, so it
|
|
10448
|
+
* plays an enter animation on mount. Optional and symmetric with
|
|
10449
|
+
* {@link animateLeave}: a plain CSS `@keyframes` / `animation` declared on
|
|
10450
|
+
* `[forToast]` already plays on mount without this, so this is only needed
|
|
10451
|
+
* for class-applied entrances. When unset, falls through to the
|
|
10452
|
+
* viewport-level `[animateEnter]`.
|
|
10453
|
+
*/
|
|
10454
|
+
animateEnter?: string;
|
|
10455
|
+
/**
|
|
10456
|
+
* CSS class applied via `animate.leave` to the rendered toast root, so it
|
|
10457
|
+
* plays an exit animation before the toast leaves the DOM on dismiss. When
|
|
10458
|
+
* unset, falls through to the viewport-level `[animateLeave]`.
|
|
10459
|
+
*
|
|
10460
|
+
* This is the only way to express a toast exit animation on the programmatic
|
|
10461
|
+
* path: the viewport renders the toast inside its own `@for`, and a pure-CSS
|
|
10462
|
+
* exit cannot defer the unmount — Angular needs `animate.leave` on the node to
|
|
10463
|
+
* keep it mounted until the animation settles. Leaving it unset keeps the
|
|
10464
|
+
* existing synchronous unmount on dismiss.
|
|
10465
|
+
*/
|
|
10466
|
+
animateLeave?: string;
|
|
9637
10467
|
/** Arbitrary payload passed to `template` context as `data`. */
|
|
9638
10468
|
data?: D;
|
|
9639
10469
|
/** Override the default rendering with a `TemplateRef`. */
|
|
@@ -9767,7 +10597,7 @@ declare class ForToast implements ForToastContext {
|
|
|
9767
10597
|
readonly swipeDirection: _angular_core.InputSignal<ForToastSwipeDirection>;
|
|
9768
10598
|
/**
|
|
9769
10599
|
* Pixels of pointer travel along the active swipe direction needed
|
|
9770
|
-
* to commit a dismissal. Defaults to `50
|
|
10600
|
+
* to commit a dismissal. Defaults to `50`.
|
|
9771
10601
|
*/
|
|
9772
10602
|
readonly swipeThreshold: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
9773
10603
|
/** Emitted when the toast wants to be unmounted. The consumer reacts by removing it from the rendered list. */
|
|
@@ -9780,15 +10610,15 @@ declare class ForToast implements ForToastContext {
|
|
|
9780
10610
|
readonly swipeEnd: _angular_core.OutputEmitterRef<SwipeEventDetail>;
|
|
9781
10611
|
/** Fired on pointer-up before the threshold, or on `pointercancel`. */
|
|
9782
10612
|
readonly swipeCancel: _angular_core.OutputEmitterRef<SwipeEventDetail>;
|
|
9783
|
-
readonly paused:
|
|
9784
|
-
protected readonly swipeState:
|
|
9785
|
-
protected readonly swipeActiveDirection:
|
|
9786
|
-
protected readonly swipeMovementX:
|
|
9787
|
-
protected readonly swipeMovementY:
|
|
9788
|
-
readonly labelledBy:
|
|
9789
|
-
readonly describedBy:
|
|
9790
|
-
protected readonly computedRole:
|
|
9791
|
-
protected readonly ariaLive:
|
|
10613
|
+
readonly paused: Signal<boolean>;
|
|
10614
|
+
protected readonly swipeState: Signal<SwipeState | null>;
|
|
10615
|
+
protected readonly swipeActiveDirection: Signal<SwipeDirection | null>;
|
|
10616
|
+
protected readonly swipeMovementX: Signal<number>;
|
|
10617
|
+
protected readonly swipeMovementY: Signal<number>;
|
|
10618
|
+
readonly labelledBy: Signal<string | null>;
|
|
10619
|
+
readonly describedBy: Signal<string | null>;
|
|
10620
|
+
protected readonly computedRole: Signal<"alert" | "status">;
|
|
10621
|
+
protected readonly ariaLive: Signal<"off" | "polite" | "assertive">;
|
|
9792
10622
|
constructor();
|
|
9793
10623
|
registerLabel(handle: ForToastTextHandle): void;
|
|
9794
10624
|
unregisterLabel(handle: ForToastTextHandle): void;
|
|
@@ -9832,6 +10662,12 @@ declare class ForToast implements ForToastContext {
|
|
|
9832
10662
|
* Per-toast classes: a config's `class` / `classList` is applied to the
|
|
9833
10663
|
* rendered toast root, merged with the directive's own host attributes.
|
|
9834
10664
|
*
|
|
10665
|
+
* Enter / exit animations: a toast renders inside this viewport's `@for`, so a
|
|
10666
|
+
* `[animate.leave]` on the row defers the unmount natively — the toast stays
|
|
10667
|
+
* mounted until its exit animation settles. Supply the class per-toast with
|
|
10668
|
+
* `show({ animateLeave })` or set a viewport-wide default with `[animateLeave]`
|
|
10669
|
+
* (per-toast wins); `[animateEnter]` mirrors it for class-applied entrances.
|
|
10670
|
+
*
|
|
9835
10671
|
* Hotkey: pressing the configured `hotkey` (default `F6`) anywhere in the
|
|
9836
10672
|
* document focuses the first toast. Override per-viewport with `[hotkey]`
|
|
9837
10673
|
* or globally with `provideForToastDefaults({ hotkey: '…' })`. The listener
|
|
@@ -9892,6 +10728,21 @@ declare class ForToastViewport {
|
|
|
9892
10728
|
* that doesn't override `swipeThreshold` in its own config.
|
|
9893
10729
|
*/
|
|
9894
10730
|
readonly swipeThreshold: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
10731
|
+
/**
|
|
10732
|
+
* Default `animate.enter` class applied to every programmatic toast that
|
|
10733
|
+
* doesn't set `animateEnter` in its own config. Empty (default) plays no
|
|
10734
|
+
* class-applied enter animation — a plain CSS `@keyframes` on `[forToast]`
|
|
10735
|
+
* already runs on mount without it.
|
|
10736
|
+
*/
|
|
10737
|
+
readonly animateEnter: _angular_core.InputSignal<string>;
|
|
10738
|
+
/**
|
|
10739
|
+
* Default `animate.leave` class applied to every programmatic toast that
|
|
10740
|
+
* doesn't set `animateLeave` in its own config. Empty (default) unmounts the
|
|
10741
|
+
* toast synchronously on dismiss; set it (or per-toast `animateLeave`) to
|
|
10742
|
+
* keep the toast mounted until its exit animation settles before it leaves
|
|
10743
|
+
* the DOM.
|
|
10744
|
+
*/
|
|
10745
|
+
readonly animateLeave: _angular_core.InputSignal<string>;
|
|
9895
10746
|
protected readonly defaultDuration: Signal<number>;
|
|
9896
10747
|
/**
|
|
9897
10748
|
* Resolved `maxVisible` limit: the per-viewport `[maxVisible]` when set,
|
|
@@ -9908,8 +10759,20 @@ declare class ForToastViewport {
|
|
|
9908
10759
|
* attributes untouched.
|
|
9909
10760
|
*/
|
|
9910
10761
|
protected toastClass(toast: ForToastInstance): string;
|
|
10762
|
+
/**
|
|
10763
|
+
* `animate.enter` class for a toast row: its per-toast `animateEnter` config
|
|
10764
|
+
* when set, otherwise the viewport-level `[animateEnter]`. Empty when neither
|
|
10765
|
+
* is set.
|
|
10766
|
+
*/
|
|
10767
|
+
protected toastAnimateEnter(toast: ForToastInstance): string;
|
|
10768
|
+
/**
|
|
10769
|
+
* `animate.leave` class for a toast row: its per-toast `animateLeave` config
|
|
10770
|
+
* when set, otherwise the viewport-level `[animateLeave]`. Empty when neither
|
|
10771
|
+
* is set, which keeps the toast's unmount synchronous on dismiss.
|
|
10772
|
+
*/
|
|
10773
|
+
protected toastAnimateLeave(toast: ForToastInstance): string;
|
|
9911
10774
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForToastViewport, never>;
|
|
9912
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ForToastViewport, "for-toast-viewport, [forToastViewport]", ["forToastViewport"], { "label": { "alias": "label"; "required": false; "isSignal": true; }; "region": { "alias": "region"; "required": false; "isSignal": true; }; "hotkey": { "alias": "hotkey"; "required": false; "isSignal": true; }; "maxVisible": { "alias": "maxVisible"; "required": false; "isSignal": true; }; "swipeDirection": { "alias": "swipeDirection"; "required": false; "isSignal": true; }; "swipeThreshold": { "alias": "swipeThreshold"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
10775
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ForToastViewport, "for-toast-viewport, [forToastViewport]", ["forToastViewport"], { "label": { "alias": "label"; "required": false; "isSignal": true; }; "region": { "alias": "region"; "required": false; "isSignal": true; }; "hotkey": { "alias": "hotkey"; "required": false; "isSignal": true; }; "maxVisible": { "alias": "maxVisible"; "required": false; "isSignal": true; }; "swipeDirection": { "alias": "swipeDirection"; "required": false; "isSignal": true; }; "swipeThreshold": { "alias": "swipeThreshold"; "required": false; "isSignal": true; }; "animateEnter": { "alias": "animateEnter"; "required": false; "isSignal": true; }; "animateLeave": { "alias": "animateLeave"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
9913
10776
|
}
|
|
9914
10777
|
|
|
9915
10778
|
/**
|
|
@@ -10028,7 +10891,7 @@ declare class ForToastRef<R = unknown, D = unknown> {
|
|
|
10028
10891
|
}
|
|
10029
10892
|
|
|
10030
10893
|
/**
|
|
10031
|
-
* Programmatic toast opener —
|
|
10894
|
+
* Programmatic toast opener — show a transient notification from TypeScript.
|
|
10032
10895
|
* Inject anywhere, call `show({ title, ... })` and get a `ForToastRef`
|
|
10033
10896
|
* back. Toasts render through `<for-toast-viewport>`, which the consumer
|
|
10034
10897
|
* mounts once near the root of their app.
|
|
@@ -10995,21 +11858,10 @@ declare function provideForToolbarDefaults(defaults?: Partial<ForToolbarDefaults
|
|
|
10995
11858
|
|
|
10996
11859
|
/** Why an open / close was scheduled. */
|
|
10997
11860
|
type HoverCardScheduleReason = 'hover-trigger' | 'hover-content' | 'focus' | 'escape';
|
|
10998
|
-
interface ForHoverCardContext {
|
|
11861
|
+
interface ForHoverCardContext extends AnchoredPositioningContext {
|
|
10999
11862
|
readonly open: Signal<boolean>;
|
|
11000
11863
|
readonly disabled: Signal<boolean>;
|
|
11001
|
-
readonly side: Signal<FloatingSide>;
|
|
11002
|
-
readonly align: Signal<FloatingAlign>;
|
|
11003
|
-
readonly sideOffset: Signal<number>;
|
|
11004
|
-
readonly alignOffset: Signal<number>;
|
|
11005
|
-
readonly avoidCollisions: Signal<boolean>;
|
|
11006
|
-
readonly collisionPadding: Signal<number>;
|
|
11007
|
-
readonly arrowPadding: Signal<number>;
|
|
11008
|
-
readonly sticky: Signal<'partial' | 'always' | false>;
|
|
11009
|
-
readonly hideWhenDetached: Signal<boolean>;
|
|
11010
|
-
readonly clipUntilPositioned: Signal<boolean>;
|
|
11011
11864
|
readonly trigger: Signal<HTMLElement | null>;
|
|
11012
|
-
readonly arrow: Signal<HTMLElement | null>;
|
|
11013
11865
|
readonly content: Signal<HTMLElement | null>;
|
|
11014
11866
|
registerTrigger(el: HTMLElement): void;
|
|
11015
11867
|
unregisterTrigger(el: HTMLElement): void;
|
|
@@ -11095,7 +11947,7 @@ declare class ForHoverCard implements ForHoverCardContext {
|
|
|
11095
11947
|
readonly align: _angular_core.Signal<FloatingAlign>;
|
|
11096
11948
|
/**
|
|
11097
11949
|
* Per-card override for the gap (px) between trigger and card along the
|
|
11098
|
-
* main axis.
|
|
11950
|
+
* main axis. When `undefined` (default),
|
|
11099
11951
|
* falls back to `ForHoverCardDefaults.sideOffset` from the surrounding
|
|
11100
11952
|
* `provideForHoverCardDefaults` scope (`8` unless configured).
|
|
11101
11953
|
*
|
|
@@ -11185,7 +12037,7 @@ declare class ForHoverCard implements ForHoverCardContext {
|
|
|
11185
12037
|
*
|
|
11186
12038
|
* **Intentional ARIA exception.** The trigger exposes no `aria-controls`,
|
|
11187
12039
|
* `aria-expanded`, or `aria-describedby`, and `[forHoverCardContent]` carries
|
|
11188
|
-
* no role. This is deliberate
|
|
12040
|
+
* no role. This is deliberate: the trigger must already be
|
|
11189
12041
|
* self-meaningful (a link or button that conveys the underlying action on its
|
|
11190
12042
|
* own — the card adds preview, not meaning), and the card is non-essential
|
|
11191
12043
|
* supplementary content that is hover/focus-revealed and not part of the
|
|
@@ -11244,7 +12096,7 @@ declare class ForHoverCardTrigger {
|
|
|
11244
12096
|
*
|
|
11245
12097
|
* **Intentional ARIA exception.** The content carries no role (only
|
|
11246
12098
|
* `data-state` for styling) and the trigger exposes no ARIA linkage — the
|
|
11247
|
-
* card is non-essential supplementary content
|
|
12099
|
+
* card is non-essential supplementary content. See
|
|
11248
12100
|
* `ForHoverCardTrigger` for the full rationale.
|
|
11249
12101
|
*/
|
|
11250
12102
|
declare class ForHoverCardContent {
|
|
@@ -11296,7 +12148,7 @@ interface ForHoverCardDefaults {
|
|
|
11296
12148
|
align: FloatingAlign;
|
|
11297
12149
|
/**
|
|
11298
12150
|
* Gap (px) between trigger and card along the main axis for cards that
|
|
11299
|
-
* don't override `sideOffset` locally.
|
|
12151
|
+
* don't override `sideOffset` locally.
|
|
11300
12152
|
* Library fallback `8`.
|
|
11301
12153
|
*/
|
|
11302
12154
|
sideOffset: number;
|
|
@@ -11333,8 +12185,8 @@ interface ForNavigationMenuContentHandle extends CollectionHandle {
|
|
|
11333
12185
|
readonly id: Signal<string>;
|
|
11334
12186
|
}
|
|
11335
12187
|
/**
|
|
11336
|
-
* Per-viewport handle. Only one viewport is expected per menu
|
|
11337
|
-
*
|
|
12188
|
+
* Per-viewport handle. Only one viewport is expected per menu. The host
|
|
12189
|
+
* element is the destination for re-parented active
|
|
11338
12190
|
* content panels, and the viewport owns their ordering.
|
|
11339
12191
|
*/
|
|
11340
12192
|
interface ForNavigationMenuViewportHandle {
|
|
@@ -11433,7 +12285,7 @@ declare const FOR_NAVIGATION_MENU_ITEM_CONTEXT: InjectionToken<ForNavigationMenu
|
|
|
11433
12285
|
* item's id, or `''` when nothing is open). The `model()` change emitter
|
|
11434
12286
|
* fires only on internal transitions, never on consumer writes.
|
|
11435
12287
|
*
|
|
11436
|
-
* Submenús anidados
|
|
12288
|
+
* Submenús anidados están fuera de scope para v1.
|
|
11437
12289
|
*
|
|
11438
12290
|
* @example
|
|
11439
12291
|
* ```html
|
|
@@ -11544,7 +12396,7 @@ declare class ForNavigationMenu implements ForNavigationMenuContext {
|
|
|
11544
12396
|
/**
|
|
11545
12397
|
* `data-motion` direction for the content with the given `value`.
|
|
11546
12398
|
*
|
|
11547
|
-
*
|
|
12399
|
+
* Sets the slide direction by index comparison: when the user
|
|
11548
12400
|
* moves rightward from A (index 0) to B (index 2), the entering panel
|
|
11549
12401
|
* slides in from the end side (`from-end`) and the leaving panel slides
|
|
11550
12402
|
* out to the start side (`to-start`) — both shift in the same logical
|
|
@@ -11731,7 +12583,7 @@ declare class ForNavigationMenuIndicator {
|
|
|
11731
12583
|
* Optional shared surface for mega-menu style navigation. When present,
|
|
11732
12584
|
* `[forNavigationMenuContent]` re-parents itself into this host on mount,
|
|
11733
12585
|
* so all active content panels live inside a single visual container that
|
|
11734
|
-
* can animate width/height between trigger groups
|
|
12586
|
+
* can animate width/height between trigger groups.
|
|
11735
12587
|
*
|
|
11736
12588
|
* The viewport exposes the active content's natural size as CSS custom
|
|
11737
12589
|
* properties:
|
|
@@ -11889,7 +12741,7 @@ declare class ForScrollArea implements ForScrollAreaContext {
|
|
|
11889
12741
|
* self-hides when the content fits.
|
|
11890
12742
|
* - `always`: the scrollbar (and corner) stay mounted and
|
|
11891
12743
|
* `data-state="visible"` regardless of overflow — a stable, always-painted
|
|
11892
|
-
* track
|
|
12744
|
+
* track. When the axis does not overflow the thumb fills
|
|
11893
12745
|
* the full track and dragging is a no-op. The library is headless and does
|
|
11894
12746
|
* not own layout, so to actually *reserve* the gutter (no content shift
|
|
11895
12747
|
* when crossing the overflow boundary) the consumer lays the scrollbar out
|
|
@@ -11984,7 +12836,7 @@ interface ElementBox {
|
|
|
11984
12836
|
* The element is fully removed (`hidden`) when the corresponding axis has
|
|
11985
12837
|
* no overflow *and* `type` is not `'always'` — there is no scrollbar to
|
|
11986
12838
|
* render. Under `type="always"` the track stays painted regardless of
|
|
11987
|
-
* overflow
|
|
12839
|
+
* overflow, so the consumer's reserved gutter is never empty.
|
|
11988
12840
|
* Visibility is enforced with an inline `display: none` (which beats any
|
|
11989
12841
|
* author `display` rule a consumer applies via a class) in addition to the
|
|
11990
12842
|
* `hidden` attribute that removes it from the a11y tree.
|
|
@@ -12007,7 +12859,7 @@ declare class ForScrollAreaScrollbar {
|
|
|
12007
12859
|
readonly hasOverflow: _angular_core.Signal<boolean>;
|
|
12008
12860
|
/**
|
|
12009
12861
|
* Whether the track is rendered at all. `'always'` keeps it painted
|
|
12010
|
-
* unconditionally (a stable, always-present track
|
|
12862
|
+
* unconditionally (a stable, always-present track); every
|
|
12011
12863
|
* other `type` paints only the axis that actually overflows. An in-flight
|
|
12012
12864
|
* thumb drag also pins it painted so the gesture is never aborted by the
|
|
12013
12865
|
* track self-removing. Gates both the `hidden` attribute and the inline
|
|
@@ -12405,9 +13257,9 @@ declare class ForTree implements ForTreeContext, ForTreeContainerContext {
|
|
|
12405
13257
|
checkState(value: string): 'true' | 'false' | 'mixed';
|
|
12406
13258
|
setExpanded(value: string, open: boolean): void;
|
|
12407
13259
|
select(value: string): void;
|
|
12408
|
-
navigate(
|
|
12409
|
-
expandOrEnter(
|
|
12410
|
-
collapseOrLeave(
|
|
13260
|
+
navigate(_currentItem: HTMLElement, action: ListNavigationAction): void;
|
|
13261
|
+
expandOrEnter(_currentItem: HTMLElement): void;
|
|
13262
|
+
collapseOrLeave(_currentItem: HTMLElement): void;
|
|
12411
13263
|
expandSiblings(currentItem: HTMLElement): void;
|
|
12412
13264
|
extendByArrow(currentItem: HTMLElement, action: 'next' | 'prev'): void;
|
|
12413
13265
|
selectRangeToFocused(currentItem: HTMLElement): void;
|
|
@@ -12480,7 +13332,7 @@ declare class ForTreeItem implements ForTreeItemContext {
|
|
|
12480
13332
|
* when cascade is on and only some descendants are checked. Drives the
|
|
12481
13333
|
* checkbox anatomy; meaningful only in `selectionMode="checkbox"`.
|
|
12482
13334
|
*/
|
|
12483
|
-
readonly checkState: _angular_core.Signal<"
|
|
13335
|
+
readonly checkState: _angular_core.Signal<"mixed" | "true" | "false">;
|
|
12484
13336
|
/**
|
|
12485
13337
|
* True when this node is the current keyboard-focused / active candidate.
|
|
12486
13338
|
* In the roving-tabindex path tracks DOM focus; in the virtualized
|
|
@@ -12489,6 +13341,12 @@ declare class ForTreeItem implements ForTreeItemContext {
|
|
|
12489
13341
|
*/
|
|
12490
13342
|
readonly highlighted: _angular_core.Signal<boolean>;
|
|
12491
13343
|
readonly effectiveDisabled: _angular_core.Signal<boolean>;
|
|
13344
|
+
/**
|
|
13345
|
+
* Drop-indicator hook for `[forTreeNodeDrag]`: `'before'` / `'after'` when a live drag would
|
|
13346
|
+
* land adjacent to this row, `null` otherwise (and always `null` without a drag coordinator).
|
|
13347
|
+
* Reflected as `data-drop-position`.
|
|
13348
|
+
*/
|
|
13349
|
+
protected readonly _dropPosition: _angular_core.Signal<"before" | "after" | null>;
|
|
12492
13350
|
readonly level: _angular_core.Signal<number>;
|
|
12493
13351
|
readonly posinset: _angular_core.Signal<number>;
|
|
12494
13352
|
readonly setsize: _angular_core.Signal<number>;
|
|
@@ -12662,12 +13520,25 @@ interface ForTreeDragDropEvent {
|
|
|
12662
13520
|
readonly currentIndex: number;
|
|
12663
13521
|
}
|
|
12664
13522
|
|
|
13523
|
+
/**
|
|
13524
|
+
* Where the lifted node will land, for rendering an insertion indicator. `null` when idle.
|
|
13525
|
+
*/
|
|
13526
|
+
interface ForTreeDropIndicator {
|
|
13527
|
+
/** The visible row the indicator anchors to (the node value). */
|
|
13528
|
+
readonly anchor: string;
|
|
13529
|
+
/** Whether the line sits just before or just after the anchor row in DOM order. */
|
|
13530
|
+
readonly position: 'before' | 'after';
|
|
13531
|
+
/** Resolved 1-based depth of the drop (mirror of `--for-tree-drop-level`). */
|
|
13532
|
+
readonly level: number;
|
|
13533
|
+
}
|
|
12665
13534
|
/** The coordination contract the handle uses to register with the coordinator. */
|
|
12666
13535
|
interface ForTreeNodeDragContext {
|
|
12667
13536
|
/** Register a drag handle element for the item that contains it. */
|
|
12668
13537
|
registerHandle(el: HTMLElement): void;
|
|
12669
13538
|
/** Unregister a previously registered handle element. */
|
|
12670
13539
|
unregisterHandle(el: HTMLElement): void;
|
|
13540
|
+
/** Resolved drop indicator while a drag is live; `null` when idle. */
|
|
13541
|
+
readonly dropIndicator: Signal<ForTreeDropIndicator | null>;
|
|
12671
13542
|
}
|
|
12672
13543
|
/** InjectionToken for the `[forTreeNodeDrag]` coordinator. */
|
|
12673
13544
|
declare const FOR_TREE_NODE_DRAG_CONTEXT: InjectionToken<ForTreeNodeDragContext>;
|
|
@@ -12698,6 +13569,8 @@ declare class ForTreeNodeDrag implements ForTreeNodeDragContext {
|
|
|
12698
13569
|
protected readonly _dragging: _angular_core.WritableSignal<boolean>;
|
|
12699
13570
|
protected readonly _dropTargetValid: _angular_core.WritableSignal<boolean>;
|
|
12700
13571
|
protected readonly _dropLevel: _angular_core.WritableSignal<number | null>;
|
|
13572
|
+
/** Resolved drop indicator while a drag is live; `null` when idle. */
|
|
13573
|
+
readonly dropIndicator: Signal<ForTreeDropIndicator | null>;
|
|
12701
13574
|
constructor();
|
|
12702
13575
|
registerHandle(el: HTMLElement): void;
|
|
12703
13576
|
unregisterHandle(el: HTMLElement): void;
|
|
@@ -13101,9 +13974,9 @@ declare const OTP_REGEXP_ONLY_CHARS: RegExp;
|
|
|
13101
13974
|
declare const OTP_REGEXP_ONLY_DIGITS_AND_CHARS: RegExp;
|
|
13102
13975
|
|
|
13103
13976
|
/**
|
|
13104
|
-
* Headless OTP / PIN input following the **single-input** model
|
|
13105
|
-
*
|
|
13106
|
-
*
|
|
13977
|
+
* Headless OTP / PIN input following the **single-input** model: one real
|
|
13978
|
+
* `<input maxlength=N>` carries the whole code as a `string`, and the
|
|
13979
|
+
* `[forOtpInputSlot]` pieces are a pure
|
|
13107
13980
|
* styling surface painted over it. There is **no** WAI-ARIA APG pattern for
|
|
13108
13981
|
* OTP; this gives the cleanest screen-reader experience (one ordinary text
|
|
13109
13982
|
* field, not "edit text, 1 of 6" announced N times), native mobile SMS autofill
|
|
@@ -13117,9 +13990,12 @@ declare const OTP_REGEXP_ONLY_DIGITS_AND_CHARS: RegExp;
|
|
|
13117
13990
|
* (label / description / error) with no extra markup.
|
|
13118
13991
|
*
|
|
13119
13992
|
* Because the focusable, submittable control is the injected `<input>` and not
|
|
13120
|
-
* the `role="group"` host, `ForOtpInput`
|
|
13121
|
-
*
|
|
13122
|
-
*
|
|
13993
|
+
* the `role="group"` host, `ForOtpInput` redirects `FormUiControlBase`'s
|
|
13994
|
+
* host-targeted helpers onto that input: it overrides `fieldLabelledElement()`
|
|
13995
|
+
* (so the field association lands on the input) and `fieldStateReflectionTarget()`
|
|
13996
|
+
* (so the form-state `data-*` reflect there), and reflects the OTP-specific input
|
|
13997
|
+
* attributes (`maxLength` / `inputmode` / `autocomplete` / `pattern` / `name`)
|
|
13998
|
+
* and ARIA on the input itself.
|
|
13123
13999
|
*
|
|
13124
14000
|
* The host gets `data-complete` (while every slot is filled) and `data-disabled`
|
|
13125
14001
|
* for CSS hooks; the real input carries `data-disabled` / `data-readonly` plus
|
|
@@ -13143,7 +14019,7 @@ declare const OTP_REGEXP_ONLY_DIGITS_AND_CHARS: RegExp;
|
|
|
13143
14019
|
* </div>
|
|
13144
14020
|
* ```
|
|
13145
14021
|
*/
|
|
13146
|
-
declare class ForOtpInput implements FormValueControl<string>, ForOtpInputContext {
|
|
14022
|
+
declare class ForOtpInput extends FormUiControlBase implements FormValueControl<string>, ForOtpInputContext {
|
|
13147
14023
|
#private;
|
|
13148
14024
|
/**
|
|
13149
14025
|
* The current code. Required by `FormValueControl<string>`. Two-way bindable;
|
|
@@ -13170,47 +14046,9 @@ declare class ForOtpInput implements FormValueControl<string>, ForOtpInputContex
|
|
|
13170
14046
|
* Accessible name for the group, also reflected as `aria-label` on the
|
|
13171
14047
|
* injected real `<input>` whenever no field-provided `aria-labelledby`
|
|
13172
14048
|
* applies (standalone usage, or a `[forField]` without a label). Emits
|
|
13173
|
-
* `aria-label` only when truthy; a field label always wins on the input.
|
|
13174
|
-
*/
|
|
13175
|
-
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
13176
|
-
/**
|
|
13177
|
-
* When true, interaction is ignored and `aria-disabled` / `data-disabled` are
|
|
13178
|
-
* reflected. Behavior and ARIA gate off {@link effectiveDisabled}, which also
|
|
13179
|
-
* folds in a surrounding disabled `[forFieldset]`.
|
|
13180
|
-
*/
|
|
13181
|
-
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
13182
|
-
/**
|
|
13183
|
-
* The control's own {@link disabled} OR'd with a surrounding disabled
|
|
13184
|
-
* `[forFieldset]`. Drives interaction gating and `aria-disabled` /
|
|
13185
|
-
* `data-disabled`, so a disabled group disables the OTP input too.
|
|
13186
|
-
*/
|
|
13187
|
-
readonly effectiveDisabled: _angular_core.Signal<boolean>;
|
|
13188
|
-
/** When true, interaction is ignored but the control stays focusable; `aria-readonly="true"`. */
|
|
13189
|
-
readonly readonly: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
13190
|
-
/** Reflected as `aria-required="true"` when truthy. */
|
|
13191
|
-
readonly required: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
13192
|
-
/** Reflected as `aria-invalid="true"` and `data-invalid` when truthy. */
|
|
13193
|
-
readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
13194
|
-
/** Reflected as `aria-busy="true"` and `data-pending` when truthy. */
|
|
13195
|
-
readonly pending: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
13196
|
-
/** Reflected as `data-dirty` when truthy. */
|
|
13197
|
-
readonly dirty: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
13198
|
-
/** When non-empty, reflected as the real input's `name` for native form submission. */
|
|
13199
|
-
readonly name: _angular_core.InputSignal<string>;
|
|
13200
|
-
/** Validation errors surfaced by Signal Forms. */
|
|
13201
|
-
readonly errors: _angular_core.InputSignal<readonly ValidationError.WithOptionalFieldTree[]>;
|
|
13202
|
-
/**
|
|
13203
|
-
* Set to true on blur. Two-way bindable for standalone consumers; under
|
|
13204
|
-
* `[formField]` the directive pushes the field's touched state down through
|
|
13205
|
-
* this input.
|
|
13206
|
-
*/
|
|
13207
|
-
readonly touched: _angular_core.ModelSignal<boolean>;
|
|
13208
|
-
/**
|
|
13209
|
-
* Emitted on blur alongside the `touched` flip. `[formField]` listens to
|
|
13210
|
-
* this output to mark the field touched — since Signal Forms v22 the
|
|
13211
|
-
* `touched` input is write-only from the form's perspective.
|
|
14049
|
+
* `aria-label` only when truthy; a field label always wins on the input.
|
|
13212
14050
|
*/
|
|
13213
|
-
readonly
|
|
14051
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
13214
14052
|
/** Fires when every slot is filled (by typing or paste). */
|
|
13215
14053
|
readonly valueComplete: _angular_core.OutputEmitterRef<string>;
|
|
13216
14054
|
/** Fires when an entered / pasted character is rejected by `type` / `allowedPattern`. */
|
|
@@ -13222,6 +14060,19 @@ declare class ForOtpInput implements FormValueControl<string>, ForOtpInputContex
|
|
|
13222
14060
|
/** The slot indices, for the consumer's `@for`. */
|
|
13223
14061
|
readonly slots: _angular_core.Signal<readonly number[]>;
|
|
13224
14062
|
constructor();
|
|
14063
|
+
/**
|
|
14064
|
+
* The injected real `<input>` is the focusable, submittable control, so the
|
|
14065
|
+
* surrounding `[forField]` associates with it rather than the `role="group"`
|
|
14066
|
+
* host. Returns `null` until the input is created (after hydration), at which
|
|
14067
|
+
* point the field-wiring effect re-targets it. See the Select precedent.
|
|
14068
|
+
*/
|
|
14069
|
+
protected fieldLabelledElement(): HTMLElement | null;
|
|
14070
|
+
/**
|
|
14071
|
+
* The four form-state `data-*` booleans reflect onto the injected real
|
|
14072
|
+
* `<input>`, alongside the OTP-specific `data-disabled` / `data-readonly`,
|
|
14073
|
+
* rather than the `role="group"` host. `null` until the input exists.
|
|
14074
|
+
*/
|
|
14075
|
+
protected fieldStateReflectionTarget(): HTMLElement | null;
|
|
13225
14076
|
/** Move focus to the real input. Implements `FormUiControl.focus`. */
|
|
13226
14077
|
focus(options?: FocusOptions): void;
|
|
13227
14078
|
/** The character in slot `index` (masked when `mask`), or `null` when empty. */
|
|
@@ -13231,12 +14082,12 @@ declare class ForOtpInput implements FormValueControl<string>, ForOtpInputContex
|
|
|
13231
14082
|
/** Whether slot `index` should render a fake caret. */
|
|
13232
14083
|
hasFakeCaret(index: number): boolean;
|
|
13233
14084
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForOtpInput, never>;
|
|
13234
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForOtpInput, "[forOtpInput]", ["forOtpInput"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "length": { "alias": "length"; "required": true; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "allowedPattern": { "alias": "allowedPattern"; "required": false; "isSignal": true; }; "mask": { "alias": "mask"; "required": false; "isSignal": true; }; "oneTimeCode": { "alias": "oneTimeCode"; "required": false; "isSignal": true; }; "pasteTransformer": { "alias": "pasteTransformer"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; };
|
|
14085
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForOtpInput, "[forOtpInput]", ["forOtpInput"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "length": { "alias": "length"; "required": true; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "allowedPattern": { "alias": "allowedPattern"; "required": false; "isSignal": true; }; "mask": { "alias": "mask"; "required": false; "isSignal": true; }; "oneTimeCode": { "alias": "oneTimeCode"; "required": false; "isSignal": true; }; "pasteTransformer": { "alias": "pasteTransformer"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "valueComplete": "valueComplete"; "valueInvalid": "valueInvalid"; }, never, never, true, never>;
|
|
13235
14086
|
}
|
|
13236
14087
|
|
|
13237
14088
|
/**
|
|
13238
14089
|
* One slot of a `[forOtpInput]` — a pure **styling surface** painted over the
|
|
13239
|
-
* single real input
|
|
14090
|
+
* single real input. Apply one per index
|
|
13240
14091
|
* inside the `[forOtpInput]` wrapper, passing the 0-based `index`. It renders
|
|
13241
14092
|
* nothing structural: it exposes the slot's character and active state, and
|
|
13242
14093
|
* reflects boolean `data-active` / `data-empty` for CSS.
|
|
@@ -13318,204 +14169,6 @@ declare const FOR_OTP_INPUT_HOST_DIRECTIVE_INPUTS: readonly ["value", "allowedPa
|
|
|
13318
14169
|
*/
|
|
13319
14170
|
declare const FOR_OTP_INPUT_HOST_DIRECTIVE_OUTPUTS: readonly ["valueChange", "touchedChange", "touch", "valueComplete", "valueInvalid"];
|
|
13320
14171
|
|
|
13321
|
-
/**
|
|
13322
|
-
* Pluggable, date-library-agnostic seam for `ForCalendar`. Every internal
|
|
13323
|
-
* algorithm (paging, the day matrix, comparison, formatting) goes through a
|
|
13324
|
-
* `DateAdapter<D>`, so the primitive never hard-depends on a date library.
|
|
13325
|
-
*
|
|
13326
|
-
* The library ships two adapters behind {@link FOR_DATE_ADAPTER}:
|
|
13327
|
-
*
|
|
13328
|
-
* - `provideInternationalizedDateAdapter()` — over `@internationalized/date`'s
|
|
13329
|
-
* immutable `CalendarDate`. Recommended for correct date-math and locale-aware
|
|
13330
|
-
* formatting; `@internationalized/date` is an optional peer dependency. Both
|
|
13331
|
-
* `@internationalized/date` adapters operate on the **Gregorian** calendar
|
|
13332
|
-
* today — non-Gregorian calendar systems are deferred to the Temporal adapter
|
|
13333
|
-
* track (#354).
|
|
13334
|
-
* - `provideNativeDateAdapter()` — over the built-in `Date`. Zero-dependency
|
|
13335
|
-
* fallback.
|
|
13336
|
-
*
|
|
13337
|
-
* A `Temporal.PlainDate` adapter is a planned non-breaking addition once the
|
|
13338
|
-
* Temporal API is broadly available across browsers (#354).
|
|
13339
|
-
*
|
|
13340
|
-
* Implementations must be pure with respect to their date type: every
|
|
13341
|
-
* operation returns a value and never mutates its inputs. The `D` produced by
|
|
13342
|
-
* mutating operations (`add*`, `createDate`) is a fresh value, which keeps it
|
|
13343
|
-
* signal-friendly (reference equality changes on every change).
|
|
13344
|
-
*
|
|
13345
|
-
* @typeParam D The immutable date representation the adapter operates on.
|
|
13346
|
-
*/
|
|
13347
|
-
interface DateAdapter<D> {
|
|
13348
|
-
/**
|
|
13349
|
-
* Today's date in the runtime time zone.
|
|
13350
|
-
*
|
|
13351
|
-
* **SSR / hydration caveat.** The result depends on the runtime time zone, so
|
|
13352
|
-
* a server render and a client hydration can disagree by up to a day near
|
|
13353
|
-
* midnight — the server may compute a different calendar day than the
|
|
13354
|
-
* browser. `ForCalendar` reads this once to mark the `data-today` /
|
|
13355
|
-
* `aria-current="date"` cell, so a mismatch surfaces there as a hydration
|
|
13356
|
-
* error and a flicker on the highlighted "today" cell.
|
|
13357
|
-
*
|
|
13358
|
-
* **SSR-safe pattern.** Have the consumer supply a fixed "today" (or pin a
|
|
13359
|
-
* time zone) for the server render, or defer the today-highlight to
|
|
13360
|
-
* `afterNextRender` so `today()` is only computed client-side. See the
|
|
13361
|
-
* calendar README's "SSR / hydration" section.
|
|
13362
|
-
*/
|
|
13363
|
-
today(): D;
|
|
13364
|
-
/**
|
|
13365
|
-
* Creates a date from its parts.
|
|
13366
|
-
*
|
|
13367
|
-
* @param year Full year (e.g. `2026`).
|
|
13368
|
-
* @param month Month of year, **1-12**.
|
|
13369
|
-
* @param day Day of month, **1-31** (constrained to the month's length).
|
|
13370
|
-
*/
|
|
13371
|
-
createDate(year: number, month: number, day: number): D;
|
|
13372
|
-
/** The full year of `date` (e.g. `2026`). */
|
|
13373
|
-
getYear(date: D): number;
|
|
13374
|
-
/** The month of `date`, **1-12**. */
|
|
13375
|
-
getMonth(date: D): number;
|
|
13376
|
-
/** The day of month of `date`, **1-31**. */
|
|
13377
|
-
getDate(date: D): number;
|
|
13378
|
-
/** The day of week of `date`, **0-6** where `0` is Sunday and `6` is Saturday. */
|
|
13379
|
-
getDayOfWeek(date: D): number;
|
|
13380
|
-
/** The number of days in `date`'s month. */
|
|
13381
|
-
getDaysInMonth(date: D): number;
|
|
13382
|
-
/**
|
|
13383
|
-
* The first day of the week as a **0-6** index (`0` = Sunday). Used as the
|
|
13384
|
-
* default when `ForCalendar`'s `firstDayOfWeek` input is `null`. Adapters
|
|
13385
|
-
* return a locale-independent default (`0`); consumers localise it through
|
|
13386
|
-
* the `firstDayOfWeek` input or `provideForCalendarDefaults`.
|
|
13387
|
-
*/
|
|
13388
|
-
getFirstDayOfWeek(): number;
|
|
13389
|
-
/** Returns a new date `n` days after `date` (negative goes backwards). */
|
|
13390
|
-
addDays(date: D, n: number): D;
|
|
13391
|
-
/**
|
|
13392
|
-
* Returns a new date `n` months after `date` (negative goes backwards). The
|
|
13393
|
-
* day of month is constrained to the target month's length (e.g. Jan 31 + 1
|
|
13394
|
-
* month is Feb 28/29, never Mar 3).
|
|
13395
|
-
*/
|
|
13396
|
-
addMonths(date: D, n: number): D;
|
|
13397
|
-
/**
|
|
13398
|
-
* Returns a new date `n` years after `date` (negative goes backwards). The
|
|
13399
|
-
* day of month is constrained (e.g. Feb 29 + 1 year is Feb 28 in a common
|
|
13400
|
-
* year).
|
|
13401
|
-
*/
|
|
13402
|
-
addYears(date: D, n: number): D;
|
|
13403
|
-
/**
|
|
13404
|
-
* Compares two dates by their natural ordering — **the full instant**,
|
|
13405
|
-
* including any time component the adapter's `D` carries. Returns a negative
|
|
13406
|
-
* number when `a` is before `b`, `0` when they are equal, and a positive
|
|
13407
|
-
* number when `a` is after `b`.
|
|
13408
|
-
*
|
|
13409
|
-
* This is the canonical comparator and the only one an adapter must
|
|
13410
|
-
* implement. Time-capable adapters (`Date`, `@internationalized/date`'s
|
|
13411
|
-
* `CalendarDateTime`) order by day *and* time; day-only adapters
|
|
13412
|
-
* (`CalendarDate`) order by day alone because that is all their `D` carries.
|
|
13413
|
-
*
|
|
13414
|
-
* **Bounds granularity.** `minDate` / `maxDate` clamping in the date
|
|
13415
|
-
* primitives compares the full instant through `compare`, so a date-time
|
|
13416
|
-
* `min`/`max` clamps identically on every time-capable adapter (e.g. native
|
|
13417
|
-
* `Date` and `CalendarDateTime` produce the same result for the same input).
|
|
13418
|
-
* For the *calendar grid*, where availability is day-granular so the boundary
|
|
13419
|
-
* day of a date-time `min`/`max` stays selectable, use {@link compareDateOf}
|
|
13420
|
-
* (which honours {@link compareDate} when present and otherwise derives a
|
|
13421
|
-
* day-only comparison from the y/m/d getters).
|
|
13422
|
-
*/
|
|
13423
|
-
compare(a: D, b: D): number;
|
|
13424
|
-
/**
|
|
13425
|
-
* Optionally compares two dates by calendar day only, ignoring any time
|
|
13426
|
-
* component. Returns a negative number when `a`'s day is before `b`'s, `0`
|
|
13427
|
-
* when they fall on the same calendar day, and a positive number when `a`'s
|
|
13428
|
-
* day is after `b`'s.
|
|
13429
|
-
*
|
|
13430
|
-
* Adapters may **omit** this method: {@link compareDateOf} then derives the
|
|
13431
|
-
* day-only comparison from the {@link getYear} / {@link getMonth} /
|
|
13432
|
-
* {@link getDate} getters, which is correct for any adapter. Implement it only
|
|
13433
|
-
* to override that default (e.g. for a non-Gregorian ordering). Day-only
|
|
13434
|
-
* adapters whose {@link compare} already ignores time need not implement it.
|
|
13435
|
-
*/
|
|
13436
|
-
compareDate?(a: D, b: D): number;
|
|
13437
|
-
/** Whether `a` and `b` fall on the same calendar day. */
|
|
13438
|
-
isSameDay(a: D, b: D): boolean;
|
|
13439
|
-
/** Whether `date` is a valid date of this adapter's type. */
|
|
13440
|
-
isValid(date: D): boolean;
|
|
13441
|
-
/**
|
|
13442
|
-
* Formats `date` for display using the runtime's default locale.
|
|
13443
|
-
*
|
|
13444
|
-
* **SSR / hydration caveat.** The result resolves against the runtime's
|
|
13445
|
-
* default locale, so a server render and a client hydration can produce
|
|
13446
|
-
* different strings when the server and browser locales differ — surfacing as
|
|
13447
|
-
* a hydration mismatch on every formatted value (heading, weekday headers,
|
|
13448
|
-
* cell labels). The runtime time zone applies too for adapters that format
|
|
13449
|
-
* through a wall-clock instant.
|
|
13450
|
-
*
|
|
13451
|
-
* **SSR-safe pattern.** Pin a locale (or format client-side) for the server
|
|
13452
|
-
* render so both environments resolve the same locale. See the calendar
|
|
13453
|
-
* README's "SSR / hydration" section.
|
|
13454
|
-
*
|
|
13455
|
-
* @param options Standard `Intl.DateTimeFormat` options (e.g.
|
|
13456
|
-
* `{ month: 'long', year: 'numeric' }` for a calendar heading,
|
|
13457
|
-
* `{ weekday: 'short' }` for a column header).
|
|
13458
|
-
*/
|
|
13459
|
-
format(date: D, options: Intl.DateTimeFormatOptions): string;
|
|
13460
|
-
/**
|
|
13461
|
-
* Whether this adapter's `D` can carry a wall-clock time component (hour /
|
|
13462
|
-
* minute / second). Day-only adapters omit the optional time accessors below
|
|
13463
|
-
* and return `false` (or omit this method); time-capable adapters implement
|
|
13464
|
-
* them and return `true`. `ForTimeField` — and the time granularity of the
|
|
13465
|
-
* date primitives — require a time-capable adapter.
|
|
13466
|
-
*/
|
|
13467
|
-
supportsTime?(): boolean;
|
|
13468
|
-
/** The hour of `date`, **0-23** (24-hour clock). Time-capable adapters only. */
|
|
13469
|
-
getHours?(date: D): number;
|
|
13470
|
-
/** The minute of `date`, **0-59**. Time-capable adapters only. */
|
|
13471
|
-
getMinutes?(date: D): number;
|
|
13472
|
-
/** The second of `date`, **0-59**. Time-capable adapters only. */
|
|
13473
|
-
getSeconds?(date: D): number;
|
|
13474
|
-
/**
|
|
13475
|
-
* Returns a new date with its time set to the given parts, preserving the
|
|
13476
|
-
* calendar day. Time-capable adapters only.
|
|
13477
|
-
*
|
|
13478
|
-
* @param hours Hour of day, **0-23**.
|
|
13479
|
-
* @param minutes Minute of hour, **0-59**.
|
|
13480
|
-
* @param seconds Second of minute, **0-59**.
|
|
13481
|
-
*/
|
|
13482
|
-
setTime?(date: D, hours: number, minutes: number, seconds: number): D;
|
|
13483
|
-
}
|
|
13484
|
-
/**
|
|
13485
|
-
* A {@link DateAdapter} narrowed to one that implements the optional time
|
|
13486
|
-
* accessors. Produced by {@link assertTimeCapable} so time primitives can call
|
|
13487
|
-
* `getHours` / `setTime` / etc. without optional-chaining.
|
|
13488
|
-
*
|
|
13489
|
-
* @typeParam D The adapter's immutable date-time representation.
|
|
13490
|
-
*/
|
|
13491
|
-
type TimeCapableDateAdapter<D> = DateAdapter<D> & Required<Pick<DateAdapter<D>, 'getHours' | 'getMinutes' | 'getSeconds' | 'setTime'>>;
|
|
13492
|
-
/**
|
|
13493
|
-
* Injection token holding the active {@link DateAdapter}. Provide it with
|
|
13494
|
-
* `provideInternationalizedDateAdapter()` or `provideNativeDateAdapter()`.
|
|
13495
|
-
* There is no application-wide default — a calendar with no adapter in scope
|
|
13496
|
-
* throws a descriptive error.
|
|
13497
|
-
*/
|
|
13498
|
-
declare const FOR_DATE_ADAPTER: InjectionToken<DateAdapter<unknown>>;
|
|
13499
|
-
/**
|
|
13500
|
-
* Injects the active {@link DateAdapter}, throwing a descriptive,
|
|
13501
|
-
* primitive-prefixed error when no adapter has been provided.
|
|
13502
|
-
*
|
|
13503
|
-
* @param piece Name of the calling directive, used in the error message.
|
|
13504
|
-
*/
|
|
13505
|
-
declare function injectDateAdapter<D>(piece: string): DateAdapter<D>;
|
|
13506
|
-
/**
|
|
13507
|
-
* Asserts that `adapter` implements the optional time accessors, returning it
|
|
13508
|
-
* narrowed to {@link TimeCapableDateAdapter}. Throws a descriptive,
|
|
13509
|
-
* primitive-prefixed error when the active adapter is day-only — the
|
|
13510
|
-
* zero-dependency `provideNativeDateAdapter()` is time-capable, as is
|
|
13511
|
-
* `provideInternationalizedDateTimeAdapter()`, but the day-pure
|
|
13512
|
-
* `provideInternationalizedDateAdapter()` (`CalendarDate`) is not.
|
|
13513
|
-
*
|
|
13514
|
-
* @param adapter The active adapter, typically from {@link injectDateAdapter}.
|
|
13515
|
-
* @param piece Name of the calling directive, used in the error message.
|
|
13516
|
-
*/
|
|
13517
|
-
declare function assertTimeCapable<D>(adapter: DateAdapter<D>, piece: string): TimeCapableDateAdapter<D>;
|
|
13518
|
-
|
|
13519
14172
|
/** The active display mode of a `ForCalendar`. */
|
|
13520
14173
|
type CalendarView = 'day' | 'month' | 'year';
|
|
13521
14174
|
/**
|
|
@@ -13812,42 +14465,20 @@ declare const FOR_CALENDAR_CONTEXT: InjectionToken<ForCalendarContext<unknown>>;
|
|
|
13812
14465
|
* `Shift+PageUp` / `Shift+PageDown` move the focused date, re-paging the grid
|
|
13813
14466
|
* when crossing a month boundary; `Enter` / `Space` select.
|
|
13814
14467
|
*
|
|
14468
|
+
* The day / month / year views are each backed by a sub-grid collaborator
|
|
14469
|
+
* ({@link CalendarDayNavigator} / {@link CalendarMonthNavigator} /
|
|
14470
|
+
* {@link CalendarYearNavigator}), and range selection by
|
|
14471
|
+
* {@link CalendarRangeSelection}; the root wires them together and exposes the
|
|
14472
|
+
* `[(value)]` / `[(view)]` / `[(range)]` models.
|
|
14473
|
+
*
|
|
13815
14474
|
* `ForCalendar` is the grid widget, not a form value — it exposes `[(value)]`
|
|
13816
14475
|
* as a `model<D | null>` in `selectionMode="single"` (default), and
|
|
13817
14476
|
* `[(range)]` as a `model<CalendarDateRange<D> | null>` in
|
|
13818
14477
|
* `selectionMode="range"`. The `FormValueControl<D>` contract arrives with the
|
|
13819
|
-
* follow-up `ForDatePicker` / `ForDateField`.
|
|
14478
|
+
* follow-up `ForDatePicker` / `ForDateField`. See the primitive's README for a
|
|
14479
|
+
* complete styleless usage example.
|
|
13820
14480
|
*
|
|
13821
14481
|
* @typeParam D The adapter's immutable date type.
|
|
13822
|
-
*
|
|
13823
|
-
* @example
|
|
13824
|
-
* ```html
|
|
13825
|
-
* <div forCalendar [(value)]="date">
|
|
13826
|
-
* <header>
|
|
13827
|
-
* <button forCalendarPrevButton [ariaLabel]="'Previous month'">‹</button>
|
|
13828
|
-
* <h2 forCalendarHeading #heading="forCalendarHeading">{{ heading.label() }}</h2>
|
|
13829
|
-
* <button forCalendarNextButton [ariaLabel]="'Next month'">›</button>
|
|
13830
|
-
* </header>
|
|
13831
|
-
* <table forCalendarGrid #grid="forCalendarGrid">
|
|
13832
|
-
* <thead forCalendarGridHeader>
|
|
13833
|
-
* <tr>
|
|
13834
|
-
* @for (day of grid.weekDays(); track day.key) {
|
|
13835
|
-
* <th scope="col" [attr.aria-label]="day.long">{{ day.short }}</th>
|
|
13836
|
-
* }
|
|
13837
|
-
* </tr>
|
|
13838
|
-
* </thead>
|
|
13839
|
-
* <tbody>
|
|
13840
|
-
* @for (week of grid.weeks(); track week.key) {
|
|
13841
|
-
* <tr>
|
|
13842
|
-
* @for (cell of week.days; track cell.key) {
|
|
13843
|
-
* <td forCalendarCell [date]="cell.date">{{ cell.label }}</td>
|
|
13844
|
-
* }
|
|
13845
|
-
* </tr>
|
|
13846
|
-
* }
|
|
13847
|
-
* </tbody>
|
|
13848
|
-
* </table>
|
|
13849
|
-
* </div>
|
|
13850
|
-
* ```
|
|
13851
14482
|
*/
|
|
13852
14483
|
declare class ForCalendar<D> implements ForCalendarContext<D> {
|
|
13853
14484
|
#private;
|
|
@@ -13963,9 +14594,13 @@ declare class ForCalendar<D> implements ForCalendarContext<D> {
|
|
|
13963
14594
|
readonly viewTriggerLabel: _angular_core.Signal<string>;
|
|
13964
14595
|
readonly isPreviousDisabled: _angular_core.Signal<boolean>;
|
|
13965
14596
|
readonly isNextDisabled: _angular_core.Signal<boolean>;
|
|
13966
|
-
|
|
13967
|
-
readonly
|
|
14597
|
+
/** Weekday column headers for the visible month, starting at `firstDayOfWeek`. */
|
|
14598
|
+
readonly weekDays: _angular_core.Signal<readonly forty_cdk.CalendarWeekday[]>;
|
|
14599
|
+
/** Week rows of the visible month, including outside-month padding days. */
|
|
14600
|
+
readonly weeks: _angular_core.Signal<readonly forty_cdk.CalendarWeek<D>[]>;
|
|
14601
|
+
/** Whether the previous-month button should be disabled (bounded by `min`). */
|
|
13968
14602
|
readonly isPreviousMonthDisabled: _angular_core.Signal<boolean>;
|
|
14603
|
+
/** Whether the next-month button should be disabled (bounded by `max`). */
|
|
13969
14604
|
readonly isNextMonthDisabled: _angular_core.Signal<boolean>;
|
|
13970
14605
|
/**
|
|
13971
14606
|
* Whether every day of `month` (**1-12**) in the visible year falls outside
|
|
@@ -14592,7 +15227,7 @@ declare const FOR_DATE_FIELD_CONTEXT: InjectionToken<SegmentEditorContext>;
|
|
|
14592
15227
|
* counterpart to `ForCalendar`. There is no single WAI-ARIA APG pattern for a
|
|
14593
15228
|
* date field; it is a composition of
|
|
14594
15229
|
* [Spinbuttons](https://www.w3.org/WAI/ARIA/apg/patterns/spinbutton/) inside a
|
|
14595
|
-
* labelled `role="group"
|
|
15230
|
+
* labelled `role="group"`.
|
|
14596
15231
|
* Each day / month / year part is an independent `role="spinbutton"` segment
|
|
14597
15232
|
* (`[forDateFieldSegment]`) so entry is unambiguous and locale-correct — no
|
|
14598
15233
|
* free-text parsing, no `03/04`-is-it-March-4th guesswork.
|
|
@@ -14925,12 +15560,26 @@ interface ForDatePickerContext {
|
|
|
14925
15560
|
readonly formattedValue: Signal<string | null>;
|
|
14926
15561
|
/** Placeholder shown by `[forDatePickerValue]` when no date is selected. */
|
|
14927
15562
|
readonly placeholder: Signal<string>;
|
|
14928
|
-
/**
|
|
15563
|
+
/**
|
|
15564
|
+
* Element floating-ui anchors the surface against. Prefers an optional
|
|
15565
|
+
* `[forDatePickerAnchor]` when registered, otherwise falls back to the
|
|
15566
|
+
* trigger. Decoupled from `trigger` so the trigger keeps driving
|
|
15567
|
+
* `aria-controls`, the click toggle, focus return, and its outside-pointer
|
|
15568
|
+
* exemption regardless of where the surface paints.
|
|
15569
|
+
*/
|
|
14929
15570
|
readonly reference: Signal<ReferenceElement | null>;
|
|
14930
15571
|
/** The trigger button — exempt from outside-pointer checks and the return-focus target. */
|
|
14931
15572
|
readonly trigger: Signal<HTMLElement | null>;
|
|
14932
15573
|
registerTrigger(el: HTMLElement): void;
|
|
14933
15574
|
unregisterTrigger(el: HTMLElement): void;
|
|
15575
|
+
/**
|
|
15576
|
+
* Register / unregister an optional `[forDatePickerAnchor]` positioning
|
|
15577
|
+
* element. At most one anchor per root; a second registration throws.
|
|
15578
|
+
* Reference-based unregister, so an anchor torn down inside `@if` restores
|
|
15579
|
+
* the trigger fallback cleanly.
|
|
15580
|
+
*/
|
|
15581
|
+
registerAnchor(el: HTMLElement): void;
|
|
15582
|
+
unregisterAnchor(el: HTMLElement): void;
|
|
14934
15583
|
/** The mounted `[forDatePickerContent]` element. */
|
|
14935
15584
|
readonly content: Signal<HTMLElement | null>;
|
|
14936
15585
|
registerContent(el: HTMLElement): void;
|
|
@@ -14983,8 +15632,7 @@ declare const FOR_DATE_PICKER_CONTEXT: InjectionToken<ForDatePickerContext>;
|
|
|
14983
15632
|
type DatePickerGranularity = 'day' | 'hour' | 'minute' | 'second';
|
|
14984
15633
|
/**
|
|
14985
15634
|
* Headless date picker — the [WAI-ARIA Date Picker Dialog pattern](https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/examples/datepicker-dialog/)
|
|
14986
|
-
* reinterpreted idiomatically for modern Angular
|
|
14987
|
-
* `DatePicker` and Ark UI's `DatePicker` do it: a focusable trigger that opens
|
|
15635
|
+
* reinterpreted idiomatically for modern Angular: a focusable trigger that opens
|
|
14988
15636
|
* a floating surface wrapping a projected `ForCalendar`.
|
|
14989
15637
|
*
|
|
14990
15638
|
* `ForDatePicker` is the root and the form value: it implements
|
|
@@ -14994,9 +15642,8 @@ type DatePickerGranularity = 'day' | 'hour' | 'minute' | 'second';
|
|
|
14994
15642
|
* state flows root → projected calendar via `[(value)]`.
|
|
14995
15643
|
*
|
|
14996
15644
|
* The surface defaults to a **non-modal popover** (anchored to the trigger,
|
|
14997
|
-
* dismiss on Escape / outside-pointer, return focus on close)
|
|
14998
|
-
*
|
|
14999
|
-
* variant. Mount/unmount of the surface is the consumer's job — wrap
|
|
15645
|
+
* dismiss on Escape / outside-pointer, return focus on close); set `modal`
|
|
15646
|
+
* for the trapped / inert / scroll-locked dialog variant. Mount/unmount of the surface is the consumer's job — wrap
|
|
15000
15647
|
* `[forDatePickerContent]` with `@if (open())`.
|
|
15001
15648
|
*
|
|
15002
15649
|
* The projected `ForCalendar` is two-way bound by the consumer (`[(value)]`)
|
|
@@ -15198,6 +15845,14 @@ declare class ForDatePicker<D> extends FormUiControlBase implements FormValueCon
|
|
|
15198
15845
|
readonly triggerId: _angular_core.WritableSignal<string>;
|
|
15199
15846
|
readonly contentId: _angular_core.WritableSignal<string>;
|
|
15200
15847
|
readonly trigger: _angular_core.Signal<HTMLElement | null>;
|
|
15848
|
+
/**
|
|
15849
|
+
* Element floating-ui anchors the surface against. Prefers an optional
|
|
15850
|
+
* `[forDatePickerAnchor]` when registered, otherwise falls back to the
|
|
15851
|
+
* trigger so existing pickers without an anchor keep their behavior.
|
|
15852
|
+
* Decoupled from `trigger` so the trigger keeps driving `aria-controls`, the
|
|
15853
|
+
* click toggle, focus return, and its dismissal exemption regardless of where
|
|
15854
|
+
* the surface paints.
|
|
15855
|
+
*/
|
|
15201
15856
|
readonly reference: _angular_core.Signal<ReferenceElement | null>;
|
|
15202
15857
|
readonly content: _angular_core.Signal<HTMLElement | null>;
|
|
15203
15858
|
/** Formatted current value via the adapter, or `null` when empty. */
|
|
@@ -15230,6 +15885,8 @@ declare class ForDatePicker<D> extends FormUiControlBase implements FormValueCon
|
|
|
15230
15885
|
constructor();
|
|
15231
15886
|
registerTrigger(el: HTMLElement): void;
|
|
15232
15887
|
unregisterTrigger(el: HTMLElement): void;
|
|
15888
|
+
registerAnchor(el: HTMLElement): void;
|
|
15889
|
+
unregisterAnchor(el: HTMLElement): void;
|
|
15233
15890
|
registerContent(el: HTMLElement): void;
|
|
15234
15891
|
unregisterContent(el: HTMLElement): void;
|
|
15235
15892
|
toggle(): void;
|
|
@@ -15262,6 +15919,45 @@ declare class ForDatePicker<D> extends FormUiControlBase implements FormValueCon
|
|
|
15262
15919
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForDatePicker<any>, "[forDatePicker]", ["forDatePicker"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "isDateUnavailable": { "alias": "isDateUnavailable"; "required": false; "isSignal": true; }; "closeOnSelect": { "alias": "closeOnSelect"; "required": false; "isSignal": true; }; "granularity": { "alias": "granularity"; "required": false; "isSignal": true; }; "hourCycle": { "alias": "hourCycle"; "required": false; "isSignal": true; }; "modal": { "alias": "modal"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "returnFocus": { "alias": "returnFocus"; "required": false; "isSignal": true; }; "formatOptions": { "alias": "formatOptions"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "range": { "alias": "range"; "required": false; "isSignal": true; }; "rangeSeparator": { "alias": "rangeSeparator"; "required": false; "isSignal": true; }; "side": { "alias": "side"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "sideOffset": { "alias": "sideOffset"; "required": false; "isSignal": true; }; "alignOffset": { "alias": "alignOffset"; "required": false; "isSignal": true; }; "avoidCollisions": { "alias": "avoidCollisions"; "required": false; "isSignal": true; }; "collisionPadding": { "alias": "collisionPadding"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "hideWhenDetached": { "alias": "hideWhenDetached"; "required": false; "isSignal": true; }; "clipUntilPositioned": { "alias": "clipUntilPositioned"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "_dirInput": { "alias": "dir"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "open": "openChange"; "range": "rangeChange"; "escapeKeyDown": "escapeKeyDown"; "pointerDownOutside": "pointerDownOutside"; "focusOutside": "focusOutside"; "interactOutside": "interactOutside"; "autoFocusOnOpen": "autoFocusOnOpen"; "autoFocusOnClose": "autoFocusOnClose"; }, ["calendar", "timeSource"], never, true, never>;
|
|
15263
15920
|
}
|
|
15264
15921
|
|
|
15922
|
+
/**
|
|
15923
|
+
* Optional positioning anchor. When present, `[forDatePickerContent]` is
|
|
15924
|
+
* positioned against this element instead of `[forDatePickerTrigger]` — useful
|
|
15925
|
+
* when the trigger lives inside a decorated field box (padding, prefix icon,
|
|
15926
|
+
* clear / chevron buttons) and the surface should align to the visible field
|
|
15927
|
+
* rather than the inner button.
|
|
15928
|
+
*
|
|
15929
|
+
* Only positioning changes: the trigger still owns `aria-controls`,
|
|
15930
|
+
* `aria-expanded`, the click toggle, focus return on close, and its exemption
|
|
15931
|
+
* from outside-pointer dismissal. If no anchor is registered the surface falls
|
|
15932
|
+
* back to anchoring against the trigger, so existing usages are unaffected.
|
|
15933
|
+
*
|
|
15934
|
+
* A date picker's calendar has its own intrinsic width and ignores
|
|
15935
|
+
* `--for-anchor-width`, so the practical effect is mostly start / side
|
|
15936
|
+
* alignment to the box edge.
|
|
15937
|
+
*
|
|
15938
|
+
* At most one `[forDatePickerAnchor]` may be registered per `[forDatePicker]`;
|
|
15939
|
+
* a second one throws.
|
|
15940
|
+
*
|
|
15941
|
+
* ```html
|
|
15942
|
+
* <div forDatePicker [(value)]="date">
|
|
15943
|
+
* <div forDatePickerAnchor class="field-box">
|
|
15944
|
+
* <icon />
|
|
15945
|
+
* <button forDatePickerTrigger><span forDatePickerValue>…</span></button>
|
|
15946
|
+
* <button class="clear">×</button>
|
|
15947
|
+
* </div>
|
|
15948
|
+
* @if (open()) {
|
|
15949
|
+
* <div forDatePickerContent>…</div>
|
|
15950
|
+
* }
|
|
15951
|
+
* </div>
|
|
15952
|
+
* ```
|
|
15953
|
+
*/
|
|
15954
|
+
declare class ForDatePickerAnchor {
|
|
15955
|
+
#private;
|
|
15956
|
+
constructor();
|
|
15957
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForDatePickerAnchor, never>;
|
|
15958
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForDatePickerAnchor, "[forDatePickerAnchor]", ["forDatePickerAnchor"], {}, {}, never, never, true, never>;
|
|
15959
|
+
}
|
|
15960
|
+
|
|
15265
15961
|
/**
|
|
15266
15962
|
* The button that opens the date-picker surface — and the focusable form
|
|
15267
15963
|
* control the picker exposes for `[formField]`. Apply on a `<button>` so
|
|
@@ -15369,7 +16065,7 @@ declare class ForDatePickerValue {
|
|
|
15369
16065
|
interface ForDatePickerDefaults {
|
|
15370
16066
|
/**
|
|
15371
16067
|
* Distance (px) between the trigger and the floating surface along the
|
|
15372
|
-
* resolved `side` axis.
|
|
16068
|
+
* resolved `side` axis. Ignored in `modal`
|
|
15373
16069
|
* mode (the dialog is centered, not anchored).
|
|
15374
16070
|
*/
|
|
15375
16071
|
sideOffset: number;
|
|
@@ -15456,7 +16152,7 @@ declare const FOR_TIME_FIELD_CONTEXT: InjectionToken<SegmentEditorContext>;
|
|
|
15456
16152
|
* to `ForDateField`. There is no single WAI-ARIA APG pattern for a time field;
|
|
15457
16153
|
* it is a composition of
|
|
15458
16154
|
* [Spinbuttons](https://www.w3.org/WAI/ARIA/apg/patterns/spinbutton/) inside a
|
|
15459
|
-
* labelled `role="group"
|
|
16155
|
+
* labelled `role="group"`.
|
|
15460
16156
|
* Each hour / minute / second / AM·PM part is an independent
|
|
15461
16157
|
* `role="spinbutton"` segment (`[forTimeFieldSegment]`) so entry is unambiguous
|
|
15462
16158
|
* and locale-correct.
|
|
@@ -15831,6 +16527,8 @@ interface ForTimePickerContext<D = unknown> {
|
|
|
15831
16527
|
readonly trigger: Signal<HTMLElement | null>;
|
|
15832
16528
|
registerTrigger(el: HTMLElement): void;
|
|
15833
16529
|
unregisterTrigger(el: HTMLElement): void;
|
|
16530
|
+
registerAnchor(el: HTMLElement): void;
|
|
16531
|
+
unregisterAnchor(el: HTMLElement): void;
|
|
15834
16532
|
readonly content: Signal<HTMLElement | null>;
|
|
15835
16533
|
registerContent(el: HTMLElement): void;
|
|
15836
16534
|
unregisterContent(el: HTMLElement): void;
|
|
@@ -16019,7 +16717,15 @@ declare class ForTimePicker<D> extends FormUiControlBase implements FormValueCon
|
|
|
16019
16717
|
readonly initialFocus: _angular_core.Signal<ForTimePickerInitialFocus>;
|
|
16020
16718
|
readonly lastCloseReason: _angular_core.Signal<ForTimePickerCloseReason | null>;
|
|
16021
16719
|
readonly trigger: _angular_core.Signal<HTMLElement | null>;
|
|
16022
|
-
|
|
16720
|
+
/**
|
|
16721
|
+
* Element floating-ui anchors the listbox against. Prefers an optional
|
|
16722
|
+
* `[forTimePickerAnchor]` when registered, otherwise falls back to the
|
|
16723
|
+
* trigger so existing pickers without an anchor keep their behavior.
|
|
16724
|
+
* Decoupled from `trigger` so the trigger keeps driving `aria-controls`, the
|
|
16725
|
+
* click toggle, focus return, and its dismissal exemption regardless of where
|
|
16726
|
+
* the listbox paints.
|
|
16727
|
+
*/
|
|
16728
|
+
readonly anchor: _angular_core.Signal<_floating_ui_dom.ReferenceElement | null>;
|
|
16023
16729
|
readonly content: _angular_core.Signal<HTMLElement | null>;
|
|
16024
16730
|
readonly options: _angular_core.Signal<readonly ForTimePickerOptionHandle[]>;
|
|
16025
16731
|
/**
|
|
@@ -16038,6 +16744,8 @@ declare class ForTimePicker<D> extends FormUiControlBase implements FormValueCon
|
|
|
16038
16744
|
setInitialFocus(target: ForTimePickerInitialFocus): void;
|
|
16039
16745
|
registerTrigger(el: HTMLElement): void;
|
|
16040
16746
|
unregisterTrigger(el: HTMLElement): void;
|
|
16747
|
+
registerAnchor(el: HTMLElement): void;
|
|
16748
|
+
unregisterAnchor(el: HTMLElement): void;
|
|
16041
16749
|
registerContent(el: HTMLElement): void;
|
|
16042
16750
|
unregisterContent(el: HTMLElement): void;
|
|
16043
16751
|
registerOption(handle: ForTimePickerOptionHandle): void;
|
|
@@ -16065,6 +16773,41 @@ declare class ForTimePicker<D> extends FormUiControlBase implements FormValueCon
|
|
|
16065
16773
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForTimePicker<any>, "[forTimePicker]", ["forTimePicker"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "minTime": { "alias": "minTime"; "required": false; "isSignal": true; }; "maxTime": { "alias": "maxTime"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "granularity": { "alias": "granularity"; "required": false; "isSignal": true; }; "hourCycle": { "alias": "hourCycle"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "closeOnSelect": { "alias": "closeOnSelect"; "required": false; "isSignal": true; }; "modal": { "alias": "modal"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "returnFocus": { "alias": "returnFocus"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "formatOptions": { "alias": "formatOptions"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "loop": { "alias": "loop"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "side": { "alias": "side"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "sideOffset": { "alias": "sideOffset"; "required": false; "isSignal": true; }; "alignOffset": { "alias": "alignOffset"; "required": false; "isSignal": true; }; "avoidCollisions": { "alias": "avoidCollisions"; "required": false; "isSignal": true; }; "collisionPadding": { "alias": "collisionPadding"; "required": false; "isSignal": true; }; "arrowPadding": { "alias": "arrowPadding"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "hideWhenDetached": { "alias": "hideWhenDetached"; "required": false; "isSignal": true; }; "clipUntilPositioned": { "alias": "clipUntilPositioned"; "required": false; "isSignal": true; }; "_dirInput": { "alias": "dir"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "open": "openChange"; "escapeKeyDown": "escapeKeyDown"; "pointerDownOutside": "pointerDownOutside"; "focusOutside": "focusOutside"; "interactOutside": "interactOutside"; "autoFocusOnOpen": "autoFocusOnOpen"; "autoFocusOnClose": "autoFocusOnClose"; }, never, never, true, never>;
|
|
16066
16774
|
}
|
|
16067
16775
|
|
|
16776
|
+
/**
|
|
16777
|
+
* Optional positioning anchor. When present, `[forTimePickerContent]` is
|
|
16778
|
+
* positioned against this element instead of `[forTimePickerTrigger]` — useful
|
|
16779
|
+
* when the trigger lives inside a decorated field box (padding, prefix icon,
|
|
16780
|
+
* clear / chevron buttons) and the listbox should align to the visible field
|
|
16781
|
+
* rather than the inner button.
|
|
16782
|
+
*
|
|
16783
|
+
* Only positioning changes: the trigger still owns `aria-controls`,
|
|
16784
|
+
* `aria-expanded`, the click toggle, focus return on close, and its exemption
|
|
16785
|
+
* from outside-pointer dismissal. If no anchor is registered the listbox falls
|
|
16786
|
+
* back to anchoring against the trigger, so existing usages are unaffected.
|
|
16787
|
+
*
|
|
16788
|
+
* At most one `[forTimePickerAnchor]` may be registered per `[forTimePicker]`;
|
|
16789
|
+
* a second one throws.
|
|
16790
|
+
*
|
|
16791
|
+
* ```html
|
|
16792
|
+
* <div forTimePicker [(value)]="time">
|
|
16793
|
+
* <div forTimePickerAnchor class="field-box">
|
|
16794
|
+
* <icon />
|
|
16795
|
+
* <button forTimePickerTrigger><span forTimePickerValue>…</span></button>
|
|
16796
|
+
* <button class="clear">×</button>
|
|
16797
|
+
* </div>
|
|
16798
|
+
* @if (open()) {
|
|
16799
|
+
* <div forTimePickerContent>…</div>
|
|
16800
|
+
* }
|
|
16801
|
+
* </div>
|
|
16802
|
+
* ```
|
|
16803
|
+
*/
|
|
16804
|
+
declare class ForTimePickerAnchor {
|
|
16805
|
+
#private;
|
|
16806
|
+
constructor();
|
|
16807
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForTimePickerAnchor, never>;
|
|
16808
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForTimePickerAnchor, "[forTimePickerAnchor]", ["forTimePickerAnchor"], {}, {}, never, never, true, never>;
|
|
16809
|
+
}
|
|
16810
|
+
|
|
16068
16811
|
/**
|
|
16069
16812
|
* Combobox button that opens the time picker listbox. Apply on a `<button>` so
|
|
16070
16813
|
* Space / Enter dispatch native click events that toggle via `(click)`.
|
|
@@ -16190,7 +16933,7 @@ declare class ForTimePickerOption<D = unknown> {
|
|
|
16190
16933
|
interface ForTimePickerDefaults {
|
|
16191
16934
|
/**
|
|
16192
16935
|
* Distance (px) between the time picker trigger and the floating content
|
|
16193
|
-
* along the resolved `side` axis.
|
|
16936
|
+
* along the resolved `side` axis.
|
|
16194
16937
|
*/
|
|
16195
16938
|
sideOffset: number;
|
|
16196
16939
|
/**
|
|
@@ -16458,6 +17201,10 @@ declare class ForCarousel implements ForCarouselContext {
|
|
|
16458
17201
|
* Returns `true` when at least one registered, non-disabled indicator
|
|
16459
17202
|
* matches the current `activeIndex`. Used by the tabindex ladder to decide
|
|
16460
17203
|
* whether the first-enabled fallback must reclaim the tab stop.
|
|
17204
|
+
*
|
|
17205
|
+
* Assumes the one-indicator-per-slide mapping the rest of the picker is built
|
|
17206
|
+
* on: the indicator at DOM index `i` targets slide `i`. A mismatched indicator
|
|
17207
|
+
* count is dev-guarded by a `console.warn` at construction.
|
|
16461
17208
|
*/
|
|
16462
17209
|
hasCurrentIndicator(): boolean;
|
|
16463
17210
|
/** Start auto-rotation (explicit, sticky). Overrides the reduced-motion auto-start gate. */
|
|
@@ -16761,6 +17508,21 @@ declare const FOR_CAROUSEL_DEFAULTS: _angular_core.InjectionToken<ForCarouselDef
|
|
|
16761
17508
|
*/
|
|
16762
17509
|
declare function provideForCarouselDefaults(defaults?: Partial<ForCarouselDefaults>): Provider[];
|
|
16763
17510
|
|
|
17511
|
+
/** A floating clone of the dragged element that follows the pointer. */
|
|
17512
|
+
interface DragPreview {
|
|
17513
|
+
/** Position the preview's top-left at `(x, y)` in viewport coordinates. */
|
|
17514
|
+
moveTo(x: number, y: number): void;
|
|
17515
|
+
/**
|
|
17516
|
+
* Transition the preview's top-left to `(x, y)`, then `destroy()` it once the transform
|
|
17517
|
+
* transition ends (with a timeout fallback). Marks the element `data-settling` so a consumer
|
|
17518
|
+
* CSS rule keyed on it governs duration / easing. If no transition is configured, destroys
|
|
17519
|
+
* immediately. Caller must pass the browser `Window`.
|
|
17520
|
+
*/
|
|
17521
|
+
settle(x: number, y: number, win: Window): void;
|
|
17522
|
+
/** Remove the preview from the DOM. Idempotent. */
|
|
17523
|
+
destroy(): void;
|
|
17524
|
+
}
|
|
17525
|
+
|
|
16764
17526
|
/** A registered draggable item, as seen by its drop list. */
|
|
16765
17527
|
interface ForDraggableHandle {
|
|
16766
17528
|
readonly host: HTMLElement;
|
|
@@ -16777,7 +17539,7 @@ interface ForDraggableHandle {
|
|
|
16777
17539
|
*/
|
|
16778
17540
|
interface ForDropListContext {
|
|
16779
17541
|
readonly host: HTMLElement;
|
|
16780
|
-
readonly orientation: Signal<'horizontal' | 'vertical'>;
|
|
17542
|
+
readonly orientation: Signal<'horizontal' | 'vertical' | 'mixed'>;
|
|
16781
17543
|
readonly dir: Signal<WritingDirection>;
|
|
16782
17544
|
/** Effective disabled of the whole list. */
|
|
16783
17545
|
readonly disabled: Signal<boolean>;
|
|
@@ -16807,13 +17569,14 @@ interface ForDropListContext {
|
|
|
16807
17569
|
/**
|
|
16808
17570
|
* Begin a pointer drag for `el` at viewport point `point`. Sets up the same session state as a
|
|
16809
17571
|
* keyboard lift. `preview` is the floating element supplied by the draggable (a consumer
|
|
16810
|
-
* `[forDragPreview]` template)
|
|
17572
|
+
* `[forDragPreview]` template) — either a full {@link DragPreview} or the minimal
|
|
17573
|
+
* `{ moveTo, destroy }` shape; when omitted, the list creates the default cloned preview.
|
|
16811
17574
|
* Returns the source index, or `-1` if it could not lift.
|
|
16812
17575
|
*/
|
|
16813
17576
|
pointerLift(el: HTMLElement, point: {
|
|
16814
17577
|
x: number;
|
|
16815
17578
|
y: number;
|
|
16816
|
-
}, preview?: {
|
|
17579
|
+
}, preview?: DragPreview | {
|
|
16817
17580
|
moveTo(x: number, y: number): void;
|
|
16818
17581
|
destroy(): void;
|
|
16819
17582
|
} | null): number;
|
|
@@ -16848,13 +17611,25 @@ interface ForDragEndEvent {
|
|
|
16848
17611
|
/** `true` on a committed drop, `false` on cancel. */
|
|
16849
17612
|
readonly dropped: boolean;
|
|
16850
17613
|
}
|
|
16851
|
-
/**
|
|
17614
|
+
/**
|
|
17615
|
+
* Internal coordination surface a `ForDraggable` / `ForFreeDrag` exposes to its
|
|
17616
|
+
* `[forDragHandle]` children.
|
|
17617
|
+
*/
|
|
16852
17618
|
interface ForDraggableContext {
|
|
16853
17619
|
/** Register a handle element; while any handle is registered, pointer drags may only start on one. */
|
|
16854
17620
|
registerHandle(el: HTMLElement): void;
|
|
16855
17621
|
unregisterHandle(el: HTMLElement): void;
|
|
16856
17622
|
}
|
|
16857
17623
|
|
|
17624
|
+
/**
|
|
17625
|
+
* Optional DI seam overriding the fallback `orientation` of every `[forDropList]` in scope.
|
|
17626
|
+
* `ForDropList`'s `orientation` input falls back to this token's value (`'vertical'` when the
|
|
17627
|
+
* token is not provided); a consumer `orientation` binding always wins over it. Wrappers
|
|
17628
|
+
* compose a horizontal list without leaking `orientation="horizontal"` boilerplate into the
|
|
17629
|
+
* consumer's template — `ForTableColumnReorder` provides `'horizontal'` so column reordering
|
|
17630
|
+
* resolves along the row axis out of the box.
|
|
17631
|
+
*/
|
|
17632
|
+
declare const FOR_DROP_LIST_DEFAULT_ORIENTATION: InjectionToken<"horizontal" | "vertical" | "mixed">;
|
|
16858
17633
|
/**
|
|
16859
17634
|
* Root directive of the drag-drop primitive. Apply on any container element to
|
|
16860
17635
|
* create a reorderable list. Items inside are declared with `[forDraggable]`.
|
|
@@ -16863,8 +17638,19 @@ interface ForDraggableContext {
|
|
|
16863
17638
|
*/
|
|
16864
17639
|
declare class ForDropList implements ForDropListContext {
|
|
16865
17640
|
#private;
|
|
16866
|
-
/**
|
|
16867
|
-
|
|
17641
|
+
/**
|
|
17642
|
+
* Layout orientation of the list. Affects which arrow keys move focus and the lifted item, and
|
|
17643
|
+
* how a pointer drag resolves the live drop index. Defaults to `'vertical'`, or to
|
|
17644
|
+
* `FOR_DROP_LIST_DEFAULT_ORIENTATION` when an in-scope provider sets it (e.g.
|
|
17645
|
+
* `ForTableColumnReorder` defaults it to `'horizontal'`).
|
|
17646
|
+
*
|
|
17647
|
+
* `'mixed'` is for wrapping grids (`flex-wrap` / CSS grid) of uniformly-sized items: the drop
|
|
17648
|
+
* index is resolved in 2D so an item flowing across rows lands in the slot under the pointer's
|
|
17649
|
+
* row and column, and every arrow key steps the lifted item linearly in DOM order. A `'mixed'`
|
|
17650
|
+
* list that happens to render as a single row or single column resolves identically to
|
|
17651
|
+
* `'horizontal'` / `'vertical'`.
|
|
17652
|
+
*/
|
|
17653
|
+
readonly orientation: _angular_core.InputSignal<"horizontal" | "vertical" | "mixed">;
|
|
16868
17654
|
/**
|
|
16869
17655
|
* Writing direction. When unset (default `null`), the inherited ambient direction is
|
|
16870
17656
|
* resolved from the nearest ancestor carrying a `dir` attribute (or `<html dir>`),
|
|
@@ -16892,6 +17678,10 @@ declare class ForDropList implements ForDropListContext {
|
|
|
16892
17678
|
* reveal where the item will land. When false (the default), the placeholder stays in the
|
|
16893
17679
|
* dragged item's source slot (the #806 behaviour). Has no effect without a
|
|
16894
17680
|
* `[forDragPlaceholder]` template, and none on keyboard dragging.
|
|
17681
|
+
*
|
|
17682
|
+
* A `dragDisabled` sibling acts as a hard fence: the placeholder stops at the first
|
|
17683
|
+
* pinned item instead of travelling past it. This is purely visual — the committed drop
|
|
17684
|
+
* index emitted by `dragDrop` is resolved separately and unaffected.
|
|
16895
17685
|
*/
|
|
16896
17686
|
readonly liveSort: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
16897
17687
|
/**
|
|
@@ -16944,7 +17734,7 @@ declare class ForDropList implements ForDropListContext {
|
|
|
16944
17734
|
pointerLift(el: HTMLElement, point: {
|
|
16945
17735
|
x: number;
|
|
16946
17736
|
y: number;
|
|
16947
|
-
}, preview?: {
|
|
17737
|
+
}, preview?: DragPreview | {
|
|
16948
17738
|
moveTo(x: number, y: number): void;
|
|
16949
17739
|
destroy(): void;
|
|
16950
17740
|
} | null): number;
|
|
@@ -17001,7 +17791,11 @@ declare class ForDraggable implements ForDraggableContext {
|
|
|
17001
17791
|
protected readonly placeholderActive: _angular_core.WritableSignal<boolean>;
|
|
17002
17792
|
/** Data payload handed back in the `dragDrop` event when this item is dropped. */
|
|
17003
17793
|
readonly dragData: _angular_core.InputSignal<unknown>;
|
|
17004
|
-
/**
|
|
17794
|
+
/**
|
|
17795
|
+
* When true, this item cannot be lifted. The item remains focusable. It also acts as a
|
|
17796
|
+
* hard fence for the `liveSort` placeholder: a sibling being dragged cannot move its
|
|
17797
|
+
* placeholder across a pinned item (the committed drop index is unaffected).
|
|
17798
|
+
*/
|
|
17005
17799
|
readonly dragDisabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
17006
17800
|
/** Emitted when a drag (keyboard or pointer) starts from this item. */
|
|
17007
17801
|
readonly dragStart: _angular_core.OutputEmitterRef<ForDragStartEvent>;
|
|
@@ -17027,6 +17821,73 @@ declare class ForDraggable implements ForDraggableContext {
|
|
|
17027
17821
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForDraggable, "[forDraggable]", ["forDraggable"], { "dragData": { "alias": "dragData"; "required": true; "isSignal": true; }; "dragDisabled": { "alias": "dragDisabled"; "required": false; "isSignal": true; }; }, { "dragStart": "dragStart"; "dragEnd": "dragEnd"; }, ["previewTpl", "placeholderTpl"], never, true, never>;
|
|
17028
17822
|
}
|
|
17029
17823
|
|
|
17824
|
+
/**
|
|
17825
|
+
* Standalone free-drag directive: repositions its host (or a resolved `rootElement`) by pointer
|
|
17826
|
+
* drag via a CSS `transform: translate(...)`, with **no** `[forDropList]` dependency. Unlike
|
|
17827
|
+
* `[forDraggable]`, it never commits a reorder — it only moves an arbitrary element around,
|
|
17828
|
+
* optionally confined to a `boundary` and locked to one axis. Composes the shared
|
|
17829
|
+
* `createPointerDragSession` transport and accepts `[forDragHandle]` children.
|
|
17830
|
+
*
|
|
17831
|
+
* Pointer-only: there is no WAI-ARIA APG pattern for "freely reposition an element", so this is
|
|
17832
|
+
* a documented headless exception (see `.claude/rules/conventions.md`). It owns no role or ARIA
|
|
17833
|
+
* state and must not destroy the moved element's semantics — the consumer keeps the moved
|
|
17834
|
+
* element operable at its default position (e.g. a repositionable dialog stays usable by
|
|
17835
|
+
* keyboard); dragging is a pointer convenience, not the only way to use it.
|
|
17836
|
+
*/
|
|
17837
|
+
declare class ForFreeDrag implements ForDraggableContext {
|
|
17838
|
+
#private;
|
|
17839
|
+
/** When true, the element can't be dragged (it stays focusable; the transform doesn't change). */
|
|
17840
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
17841
|
+
/**
|
|
17842
|
+
* The element actually moved: an `HTMLElement`, or a selector resolved via `closest()` from the
|
|
17843
|
+
* host. `null` (the default) moves the host itself. Mirrors CDK's `cdkDragRootElement` — drag a
|
|
17844
|
+
* child handle, move an ancestor (e.g. drag a whole dialog by its header).
|
|
17845
|
+
*/
|
|
17846
|
+
readonly rootElement: _angular_core.InputSignal<string | HTMLElement | null>;
|
|
17847
|
+
/**
|
|
17848
|
+
* Confine movement within an `HTMLElement`, a `closest()` selector resolved from the host, or
|
|
17849
|
+
* `null` (the default) for unbounded movement. Unlike `[forDropList]`'s boundary (which clamps a
|
|
17850
|
+
* floating clone), this clamps the **real moved element** so its box stays fully inside.
|
|
17851
|
+
*/
|
|
17852
|
+
readonly boundary: _angular_core.InputSignal<string | HTMLElement | null>;
|
|
17853
|
+
/**
|
|
17854
|
+
* Constrain movement to one axis. `'x'` pins the element at its lift-time `y` (horizontal-only);
|
|
17855
|
+
* `'y'` pins it at its lift-time `x` (vertical-only). `null` (the default) is free.
|
|
17856
|
+
*/
|
|
17857
|
+
readonly lockAxis: _angular_core.InputSignal<"x" | "y" | null>;
|
|
17858
|
+
/** Two-way translate offset (px) from the element's natural position. Controllable / restorable. */
|
|
17859
|
+
readonly position: _angular_core.ModelSignal<{
|
|
17860
|
+
x: number;
|
|
17861
|
+
y: number;
|
|
17862
|
+
}>;
|
|
17863
|
+
/** Emitted when a pointer drag starts, with the lift-time position. */
|
|
17864
|
+
readonly dragStart: _angular_core.OutputEmitterRef<{
|
|
17865
|
+
x: number;
|
|
17866
|
+
y: number;
|
|
17867
|
+
}>;
|
|
17868
|
+
/**
|
|
17869
|
+
* Emitted on every armed move with the live position. (Non-native verb — `dragMove`, not
|
|
17870
|
+
* `drag` / `dragMoved` — so `@angular-eslint/no-output-native` stays clear.)
|
|
17871
|
+
*/
|
|
17872
|
+
readonly dragMove: _angular_core.OutputEmitterRef<{
|
|
17873
|
+
x: number;
|
|
17874
|
+
y: number;
|
|
17875
|
+
}>;
|
|
17876
|
+
/** Emitted when the drag ends, with the final position. */
|
|
17877
|
+
readonly dragEnd: _angular_core.OutputEmitterRef<{
|
|
17878
|
+
x: number;
|
|
17879
|
+
y: number;
|
|
17880
|
+
}>;
|
|
17881
|
+
/** True while a pointer drag is armed. Reflected as `data-dragging`. */
|
|
17882
|
+
readonly dragging: _angular_core.Signal<boolean>;
|
|
17883
|
+
protected readonly touchAction: _angular_core.Signal<"none" | null>;
|
|
17884
|
+
constructor();
|
|
17885
|
+
registerHandle(el: HTMLElement): void;
|
|
17886
|
+
unregisterHandle(el: HTMLElement): void;
|
|
17887
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForFreeDrag, never>;
|
|
17888
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForFreeDrag, "[forFreeDrag]", ["forFreeDrag"], { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "rootElement": { "alias": "rootElement"; "required": false; "isSignal": true; }; "boundary": { "alias": "boundary"; "required": false; "isSignal": true; }; "lockAxis": { "alias": "lockAxis"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; }, { "position": "positionChange"; "dragStart": "dragStart"; "dragMove": "dragMove"; "dragEnd": "dragEnd"; }, never, never, true, never>;
|
|
17889
|
+
}
|
|
17890
|
+
|
|
17030
17891
|
/**
|
|
17031
17892
|
* Optional drag handle inside a `[forDraggable]`. When at least one handle is present on an item, a pointer
|
|
17032
17893
|
* drag may only start from within a handle (keyboard dragging is unaffected). Apply on a child element.
|
|
@@ -17699,7 +18560,7 @@ declare class ForStepperProgress {
|
|
|
17699
18560
|
protected readonly ctx: forty_cdk.ForStepperContext;
|
|
17700
18561
|
/**
|
|
17701
18562
|
* Basis for the reported percent. `'index'` (default) derives progress from
|
|
17702
|
-
* the current step index
|
|
18563
|
+
* the current step index; `'completed'`
|
|
17703
18564
|
* derives it from the count of steps whose resolved state is `completed`.
|
|
17704
18565
|
*/
|
|
17705
18566
|
readonly valueBy: _angular_core.InputSignal<"index" | "completed">;
|
|
@@ -17757,7 +18618,7 @@ declare function provideForStepperDefaults(defaults?: Partial<ForStepperDefaults
|
|
|
17757
18618
|
type TableMode = 'table' | 'grid' | 'treegrid';
|
|
17758
18619
|
/** Row-selection mode for `ForTable`. `'none'` disables selection. */
|
|
17759
18620
|
type TableSelectionMode = 'none' | 'single' | 'multiple';
|
|
17760
|
-
/** How a row click mutates selection. `'toggle'` flips it; `'replace'` replaces (modifier-aware)
|
|
18621
|
+
/** How a row click mutates selection. `'toggle'` flips it; `'replace'` replaces (modifier-aware). */
|
|
17761
18622
|
type TableSelectionBehavior = 'toggle' | 'replace';
|
|
17762
18623
|
/** Aggregate selection state across the table's selectable rows, for the select-all tri-state. */
|
|
17763
18624
|
type TableSelectAllState = 'none' | 'some' | 'all';
|
|
@@ -17803,6 +18664,12 @@ interface TableVirtualRowNavigation {
|
|
|
17803
18664
|
* column)`, scrolling that row into the window first when it is not mounted.
|
|
17804
18665
|
*/
|
|
17805
18666
|
navigateTo(rowIndex: number, column: number): void;
|
|
18667
|
+
/**
|
|
18668
|
+
* Scroll the virtualizer so the row at the absolute `index` is in the window.
|
|
18669
|
+
* Used by `[forTableRowReorder]` to follow a keyboard reorder target across
|
|
18670
|
+
* the rendered window without taking a direct dependency on `ForTableVirtualized`.
|
|
18671
|
+
*/
|
|
18672
|
+
scrollToRow(index: number): void;
|
|
17806
18673
|
}
|
|
17807
18674
|
/** Coordination contract owned by `ForTable`, injected by every descendant piece. */
|
|
17808
18675
|
interface ForTableContext {
|
|
@@ -17873,6 +18740,13 @@ interface ForTableContext {
|
|
|
17873
18740
|
* targeting an unmounted row are handled by the virtualization bridge.
|
|
17874
18741
|
*/
|
|
17875
18742
|
registerVirtualNavigation(navigation: TableVirtualRowNavigation | null): void;
|
|
18743
|
+
/**
|
|
18744
|
+
* The currently registered cross-window row-navigation delegate, or `null`
|
|
18745
|
+
* when the table is not virtualized. `[forTableRowReorder]` reads this to gate
|
|
18746
|
+
* keyboard reordering to virtualized tables and to scroll the reorder target
|
|
18747
|
+
* into view, without taking a direct dependency on `ForTableVirtualized`.
|
|
18748
|
+
*/
|
|
18749
|
+
readonly virtualRowNavigation: Signal<TableVirtualRowNavigation | null>;
|
|
17876
18750
|
/**
|
|
17877
18751
|
* Absolute index of the row currently being pointer-reordered (set by
|
|
17878
18752
|
* `[forTableRowReorder]` on lift, cleared on release), or `null` when no row is
|
|
@@ -17948,7 +18822,7 @@ declare class ForTable implements ForTableContext {
|
|
|
17948
18822
|
* The resolved value is reflected to the host `dir` attribute.
|
|
17949
18823
|
*/
|
|
17950
18824
|
readonly _dirInput: _angular_core.InputSignal<WritingDirection | null>;
|
|
17951
|
-
readonly dir:
|
|
18825
|
+
readonly dir: Signal<WritingDirection>;
|
|
17952
18826
|
/**
|
|
17953
18827
|
* True total number of data rows for `aria-rowcount`, e.g. for a server-paged or
|
|
17954
18828
|
* (later) virtualized table that renders only a window of rows. Defaults to the
|
|
@@ -17993,24 +18867,25 @@ declare class ForTable implements ForTableContext {
|
|
|
17993
18867
|
* consumer writes through `[(expanded)]`. Ignored outside `treegrid` mode.
|
|
17994
18868
|
*/
|
|
17995
18869
|
readonly expanded: _angular_core.ModelSignal<readonly unknown[]>;
|
|
17996
|
-
protected readonly headerSize:
|
|
18870
|
+
protected readonly headerSize: Signal<ElementBox | null>;
|
|
17997
18871
|
/** Live registered data rows, exposed to `[forTableVirtualized]`'s cross-window navigation bridge. */
|
|
17998
|
-
readonly rows:
|
|
18872
|
+
readonly rows: Signal<readonly ForTableRowHandle[]>;
|
|
17999
18873
|
/**
|
|
18000
18874
|
* Absolute index of the row currently being pointer-reordered, or `null`. Set by
|
|
18001
18875
|
* `[forTableRowReorder]` and read by `[forTableVirtualized]` to keep the lifted
|
|
18002
18876
|
* row mounted across recycling during a drag.
|
|
18003
18877
|
*/
|
|
18004
|
-
readonly reorderingRowIndex:
|
|
18005
|
-
readonly
|
|
18878
|
+
readonly reorderingRowIndex: Signal<number | null>;
|
|
18879
|
+
readonly virtualRowNavigation: Signal<TableVirtualRowNavigation | null>;
|
|
18880
|
+
readonly selectAllState: Signal<TableSelectAllState>;
|
|
18006
18881
|
/**
|
|
18007
18882
|
* Absolute index of the row that owns the currently roving-focused cell, or `null`
|
|
18008
18883
|
* when no cell is focused (or the focused row carries no `virtualIndex`). Used by
|
|
18009
18884
|
* `[forTableVirtualized]` to keep the focused row mounted across recycling.
|
|
18010
18885
|
*/
|
|
18011
|
-
readonly focusedRowIndex:
|
|
18012
|
-
protected readonly rowCountAttr:
|
|
18013
|
-
protected readonly colCountAttr:
|
|
18886
|
+
readonly focusedRowIndex: Signal<number | null>;
|
|
18887
|
+
protected readonly rowCountAttr: Signal<number | null>;
|
|
18888
|
+
protected readonly colCountAttr: Signal<number | null>;
|
|
18014
18889
|
constructor();
|
|
18015
18890
|
registerHeaderRow(el: HTMLElement): void;
|
|
18016
18891
|
setColumnWidth(column: string, width: number): void;
|
|
@@ -18186,7 +19061,7 @@ declare class ForTableSelectAll {
|
|
|
18186
19061
|
protected readonly ctx: forty_cdk.ForTableContext;
|
|
18187
19062
|
/** Accessible label for the control (e.g. "Select all rows"). Truthy-only. */
|
|
18188
19063
|
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
18189
|
-
protected readonly ariaChecked: _angular_core.Signal<"
|
|
19064
|
+
protected readonly ariaChecked: _angular_core.Signal<"mixed" | "true" | "false">;
|
|
18190
19065
|
protected readonly dataState: _angular_core.Signal<"checked" | "unchecked" | "indeterminate">;
|
|
18191
19066
|
protected onClick(): void;
|
|
18192
19067
|
protected onKeyDown(event: KeyboardEvent): void;
|
|
@@ -18215,8 +19090,13 @@ interface TableSortDescriptor {
|
|
|
18215
19090
|
* the host attribute; `aria-sort` / `data-sorted` and click / keyboard activation stay
|
|
18216
19091
|
* on the cell.
|
|
18217
19092
|
*
|
|
18218
|
-
* Cycle: `none → ascending → descending → none
|
|
19093
|
+
* Cycle (default `firstClickDirection='ascending'`): `none → ascending → descending → none`.
|
|
18219
19094
|
* With `disableClear`: `none → ascending → descending → ascending`.
|
|
19095
|
+
*
|
|
19096
|
+
* `firstClickDirection='descending'` flips the entry pole, so a freshly activated
|
|
19097
|
+
* column starts descending: `none → descending → ascending → none` (and with
|
|
19098
|
+
* `disableClear`: `none → descending → ascending → descending`) — the descending-first
|
|
19099
|
+
* behavior used by single-always-active sort descriptors.
|
|
18220
19100
|
*/
|
|
18221
19101
|
declare class ForTableSortHeader {
|
|
18222
19102
|
#private;
|
|
@@ -18236,6 +19116,13 @@ declare class ForTableSortHeader {
|
|
|
18236
19116
|
* Useful when clearing the sort is not allowed.
|
|
18237
19117
|
*/
|
|
18238
19118
|
readonly disableClear: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
19119
|
+
/**
|
|
19120
|
+
* Direction a previously-unsorted column enters on its first activation (the
|
|
19121
|
+
* `'none' → ?` step of the cycle). Defaults to `'ascending'`. Set to `'descending'`
|
|
19122
|
+
* for descending-first columns. The toggle between the two sorted directions and the
|
|
19123
|
+
* optional `'none'` step (`disableClear`) are unchanged.
|
|
19124
|
+
*/
|
|
19125
|
+
readonly firstClickDirection: _angular_core.InputSignal<"ascending" | "descending">;
|
|
18239
19126
|
/**
|
|
18240
19127
|
* When `false`, the header is fully inert: no `tabindex`, no `aria-sort`, and click /
|
|
18241
19128
|
* keyboard handlers are no-ops. Defaults to `true`.
|
|
@@ -18257,7 +19144,7 @@ declare class ForTableSortHeader {
|
|
|
18257
19144
|
/** Handles Enter and Space keyboard events, forwarding to `activate()`. */
|
|
18258
19145
|
protected onKeyDown(event: KeyboardEvent): void;
|
|
18259
19146
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForTableSortHeader, never>;
|
|
18260
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForTableSortHeader, "[forTableSortHeader]", ["forTableSortHeader"], { "column": { "alias": "column"; "required": true; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "disableClear": { "alias": "disableClear"; "required": false; "isSignal": true; }; "sortable": { "alias": "sortable"; "required": false; "isSignal": true; }; }, { "direction": "directionChange"; "sortChange": "sortChange"; }, never, never, true, never>;
|
|
19147
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForTableSortHeader, "[forTableSortHeader]", ["forTableSortHeader"], { "column": { "alias": "column"; "required": true; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "disableClear": { "alias": "disableClear"; "required": false; "isSignal": true; }; "firstClickDirection": { "alias": "firstClickDirection"; "required": false; "isSignal": true; }; "sortable": { "alias": "sortable"; "required": false; "isSignal": true; }; }, { "direction": "directionChange"; "sortChange": "sortChange"; }, never, never, true, never>;
|
|
18261
19148
|
}
|
|
18262
19149
|
|
|
18263
19150
|
/** Payload of `resizeCommit`: which column was resized and its committed width (px). */
|
|
@@ -18278,7 +19165,10 @@ interface TableResizeDescriptor {
|
|
|
18278
19165
|
*
|
|
18279
19166
|
* Reflects `data-resizing` (empty string) while a pointer drag is active. Carries
|
|
18280
19167
|
* `role="separator"` with `aria-orientation="vertical"` and live `aria-value*`,
|
|
18281
|
-
* mirroring `[forPaneResizer]`. The consumer supplies `aria-label`.
|
|
19168
|
+
* mirroring `[forPaneResizer]`. The consumer supplies `aria-label`. Before the first
|
|
19169
|
+
* gesture, `aria-valuenow` falls back to the header-cell width measured once on mount
|
|
19170
|
+
* (browser-only), so a separator with no `[width]` is never announced without a
|
|
19171
|
+
* current value; an explicit `[width]` always takes precedence.
|
|
18282
19172
|
*
|
|
18283
19173
|
* @example
|
|
18284
19174
|
* ```html
|
|
@@ -18318,6 +19208,12 @@ declare class ForTableColumnResizer {
|
|
|
18318
19208
|
protected readonly ariaValueMax: _angular_core.Signal<number | null>;
|
|
18319
19209
|
/** Whether a pointer drag is currently active (drives `data-resizing`). */
|
|
18320
19210
|
protected readonly resizing: _angular_core.Signal<boolean>;
|
|
19211
|
+
/**
|
|
19212
|
+
* Header-cell width measured once on mount (browser-only). Backs `aria-valuenow`
|
|
19213
|
+
* before any explicit `[width]` so the focusable separator never ships without a
|
|
19214
|
+
* current value on the measured-fallback path; an explicit `[width]` still wins.
|
|
19215
|
+
*/
|
|
19216
|
+
protected readonly measuredWidth: _angular_core.Signal<number | null>;
|
|
18321
19217
|
constructor();
|
|
18322
19218
|
protected onPointerDown(event: PointerEvent): void;
|
|
18323
19219
|
protected onKeyDown(event: KeyboardEvent): void;
|
|
@@ -18346,18 +19242,13 @@ interface TableColumnReorderDescriptor {
|
|
|
18346
19242
|
* new column-name order; the consumer applies it to their own column array. **It never
|
|
18347
19243
|
* reorders columns itself** (BYO-data).
|
|
18348
19244
|
*
|
|
18349
|
-
*
|
|
18350
|
-
*
|
|
18351
|
-
* the
|
|
19245
|
+
* The wrapped list defaults to `orientation="horizontal"` (a column reorder is always along
|
|
19246
|
+
* the row axis), so no `orientation` binding is needed. Bind `orientation="vertical"` to
|
|
19247
|
+
* override for the rare case.
|
|
18352
19248
|
*
|
|
18353
19249
|
* @example
|
|
18354
19250
|
* ```html
|
|
18355
|
-
* <div
|
|
18356
|
-
* forTableHeaderRow
|
|
18357
|
-
* forTableColumnReorder
|
|
18358
|
-
* orientation="horizontal"
|
|
18359
|
-
* (columnReorder)="columns.set($event.columns)"
|
|
18360
|
-
* >
|
|
19251
|
+
* <div forTableHeaderRow forTableColumnReorder (columnReorder)="columns.set($event.columns)">
|
|
18361
19252
|
* @for (col of columns(); track col) {
|
|
18362
19253
|
* <div forTableHeaderCell [name]="col" forDraggable [dragData]="col">{{ col }}</div>
|
|
18363
19254
|
* }
|
|
@@ -18422,302 +19313,432 @@ declare class ForTableRowReorder {
|
|
|
18422
19313
|
}
|
|
18423
19314
|
|
|
18424
19315
|
/**
|
|
18425
|
-
*
|
|
18426
|
-
*
|
|
19316
|
+
* Defaults inherited by descendant tables in the surrounding injector scope.
|
|
19317
|
+
* Configure with `provideForTableDefaults`. The shape is a stub today — present
|
|
19318
|
+
* so future per-scope tuning can land without churning the public surface.
|
|
18427
19319
|
*/
|
|
18428
|
-
interface
|
|
18429
|
-
/** Reactive total number of items in the list. */
|
|
18430
|
-
readonly count: Signal<number>;
|
|
18431
|
-
/**
|
|
18432
|
-
* Estimated size, in CSS pixels, of the item at `index` along the scroll
|
|
18433
|
-
* axis (height when vertical, width when horizontal). Used until an item is
|
|
18434
|
-
* measured. Should be a stable function reference.
|
|
18435
|
-
*/
|
|
18436
|
-
readonly estimateSize: (index: number) => number;
|
|
18437
|
-
/** Reactive reference to the scroll container element (e.g. a `viewChild`). */
|
|
18438
|
-
readonly scrollElement: Signal<HTMLElement | null>;
|
|
18439
|
-
/** Scroll axis. Defaults to `'vertical'`. */
|
|
18440
|
-
readonly orientation?: 'vertical' | 'horizontal';
|
|
18441
|
-
/**
|
|
18442
|
-
* Number of items to render beyond the visible window on each side, to
|
|
18443
|
-
* reduce blank flashes while scrolling. Defaults to `5`.
|
|
18444
|
-
*/
|
|
18445
|
-
readonly overscan?: number;
|
|
18446
|
-
/** Stable key for the item at `index`. Defaults to the index itself. */
|
|
18447
|
-
readonly getItemKey?: (index: number) => string | number;
|
|
19320
|
+
interface ForTableDefaults {
|
|
18448
19321
|
}
|
|
18449
|
-
/**
|
|
18450
|
-
|
|
18451
|
-
|
|
18452
|
-
|
|
18453
|
-
|
|
18454
|
-
|
|
18455
|
-
|
|
18456
|
-
|
|
18457
|
-
|
|
18458
|
-
|
|
18459
|
-
|
|
18460
|
-
|
|
18461
|
-
|
|
18462
|
-
|
|
18463
|
-
|
|
18464
|
-
|
|
18465
|
-
|
|
18466
|
-
|
|
18467
|
-
* The inclusive-exclusive `[firstIndex, lastIndex + 1)` index window currently
|
|
18468
|
-
* rendered (visible window plus overscan), or `[0, 0]` when nothing is rendered.
|
|
18469
|
-
* Plugs straight into a list primitive's `[visibleRange]`-style input (e.g.
|
|
18470
|
-
* `[forCombobox][visibleRange]`) so windowing composes without the consumer
|
|
18471
|
-
* re-deriving the range from {@link ForVirtualizer.virtualItems}.
|
|
18472
|
-
*/
|
|
18473
|
-
readonly range: Signal<readonly [number, number]>;
|
|
18474
|
-
/** Scroll the container so the item at `index` is in view. */
|
|
18475
|
-
scrollToIndex(index: number, options?: {
|
|
18476
|
-
align?: 'start' | 'center' | 'end' | 'auto';
|
|
18477
|
-
}): void;
|
|
18478
|
-
/** Scroll the container to an absolute pixel offset. */
|
|
18479
|
-
scrollToOffset(offset: number): void;
|
|
18480
|
-
/** Record the measured size of a rendered item element (dynamic sizes). */
|
|
18481
|
-
measureElement(element: HTMLElement): void;
|
|
19322
|
+
/** Token holding the resolved table defaults for the current scope. */
|
|
19323
|
+
declare const FOR_TABLE_DEFAULTS: _angular_core.InjectionToken<ForTableDefaults>;
|
|
19324
|
+
/**
|
|
19325
|
+
* Configures forty-cdk table defaults for this injector scope. Partial
|
|
19326
|
+
* overrides inherit unspecified keys from the parent scope (or library
|
|
19327
|
+
* defaults at the root).
|
|
19328
|
+
*/
|
|
19329
|
+
declare function provideForTableDefaults(defaults?: Partial<ForTableDefaults>): Provider[];
|
|
19330
|
+
|
|
19331
|
+
/**
|
|
19332
|
+
* One entry in the computed visible-page list: either a clickable page number
|
|
19333
|
+
* or an ellipsis gap standing in for a collapsed run of pages.
|
|
19334
|
+
*/
|
|
19335
|
+
interface PaginationItem {
|
|
19336
|
+
/** Discriminator: a real page button, or a non-interactive ellipsis gap. */
|
|
19337
|
+
readonly type: 'page' | 'ellipsis';
|
|
19338
|
+
/** 1-based page number. Present only when `type` is `'page'`. */
|
|
19339
|
+
readonly value?: number;
|
|
18482
19340
|
}
|
|
19341
|
+
|
|
18483
19342
|
/**
|
|
18484
|
-
*
|
|
18485
|
-
*
|
|
18486
|
-
*
|
|
18487
|
-
* consumer renders the items with their own `@for` and applies the position
|
|
18488
|
-
* transform — this primitive owns no DOM.
|
|
18489
|
-
*
|
|
18490
|
-
* Backed by `@tanstack/virtual-core`. SSR-safe: off-browser it returns an empty
|
|
18491
|
-
* window and the estimate-based total without touching `document`/`window`; the
|
|
18492
|
-
* first real window is produced after the first browser render.
|
|
18493
|
-
*
|
|
18494
|
-
* Must be called from an injection context (a component/directive constructor
|
|
18495
|
-
* or field initializer).
|
|
18496
|
-
*
|
|
18497
|
-
* @param options Reactive count, size estimator, scroll element and tuning.
|
|
18498
|
-
* @returns A {@link ForVirtualizer} handle of signals + imperative methods.
|
|
19343
|
+
* Coordination contract owned by `ForPagination`. Page buttons, previous, and
|
|
19344
|
+
* next pieces inject it to read the current page / derived list and drive
|
|
19345
|
+
* navigation from a single source of truth.
|
|
18499
19346
|
*/
|
|
18500
|
-
|
|
19347
|
+
interface ForPaginationContext {
|
|
19348
|
+
/** Current 1-based page. */
|
|
19349
|
+
readonly page: Signal<number>;
|
|
19350
|
+
/** Total number of pages. */
|
|
19351
|
+
readonly count: Signal<number>;
|
|
19352
|
+
/** Whether the whole control is disabled. */
|
|
19353
|
+
readonly disabled: Signal<boolean>;
|
|
19354
|
+
/** The computed visible-page list (page numbers + ellipsis gaps). */
|
|
19355
|
+
readonly items: Signal<readonly PaginationItem[]>;
|
|
19356
|
+
/** Whether the current page is the first (no previous page). */
|
|
19357
|
+
readonly isFirst: Signal<boolean>;
|
|
19358
|
+
/** Whether the current page is the last (no next page). */
|
|
19359
|
+
readonly isLast: Signal<boolean>;
|
|
19360
|
+
/** Navigate to `page`, clamped to `[1, count]`. No-op when disabled. */
|
|
19361
|
+
goToPage(page: number): void;
|
|
19362
|
+
/** Navigate to the previous page. No-op at the first page or when disabled. */
|
|
19363
|
+
previous(): void;
|
|
19364
|
+
/** Navigate to the next page. No-op at the last page or when disabled. */
|
|
19365
|
+
next(): void;
|
|
19366
|
+
}
|
|
19367
|
+
/** DI token providing the pagination context to descendant pieces. */
|
|
19368
|
+
declare const FOR_PAGINATION_CONTEXT: InjectionToken<ForPaginationContext>;
|
|
18501
19369
|
|
|
18502
19370
|
/**
|
|
18503
|
-
*
|
|
18504
|
-
*
|
|
18505
|
-
*
|
|
19371
|
+
* Headless pagination navigation landmark, implementing the
|
|
19372
|
+
* [WAI-ARIA `navigation` landmark](https://www.w3.org/WAI/ARIA/apg/patterns/landmarks/examples/navigation.html)
|
|
19373
|
+
* with [`aria-current="page"`](https://www.w3.org/TR/wai-aria-1.2/#aria-current) on the active page.
|
|
18506
19374
|
*
|
|
18507
|
-
*
|
|
18508
|
-
* `
|
|
19375
|
+
* Derives the visible page list (with ellipsis gaps) from `page`, `count`,
|
|
19376
|
+
* `siblingCount`, and `boundaryCount`. Exposes `items()`, `isFirst()`,
|
|
19377
|
+
* `isLast()`, and navigation methods for the consumer template to render.
|
|
18509
19378
|
*
|
|
18510
|
-
*
|
|
18511
|
-
*
|
|
18512
|
-
*
|
|
19379
|
+
* There is no roving tabindex — each page button, previous, and next are their
|
|
19380
|
+
* own tab stops. RTL is visual-only: the resolved `dir` reflects on the host
|
|
19381
|
+
* for CSS; navigation semantics (previous = decrement, next = increment) never
|
|
19382
|
+
* change based on direction.
|
|
18513
19383
|
*
|
|
18514
|
-
*
|
|
18515
|
-
*
|
|
18516
|
-
*
|
|
18517
|
-
*
|
|
19384
|
+
* @example
|
|
19385
|
+
* ```html
|
|
19386
|
+
* <nav forPagination [(page)]="page" [count]="20" ariaLabel="Pagination" #pg="forPagination">
|
|
19387
|
+
* <button forPaginationPrevious ariaLabel="Previous page">‹</button>
|
|
19388
|
+
* @for (item of pg.items(); track $index) {
|
|
19389
|
+
* @if (item.type === 'page') {
|
|
19390
|
+
* <button forPaginationItem [page]="item.value!">{{ item.value }}</button>
|
|
19391
|
+
* } @else {
|
|
19392
|
+
* <span aria-hidden="true">…</span>
|
|
19393
|
+
* }
|
|
19394
|
+
* }
|
|
19395
|
+
* <button forPaginationNext ariaLabel="Next page">›</button>
|
|
19396
|
+
* </nav>
|
|
19397
|
+
* ```
|
|
18518
19398
|
*/
|
|
18519
|
-
declare class
|
|
19399
|
+
declare class ForPagination implements ForPaginationContext {
|
|
18520
19400
|
#private;
|
|
18521
|
-
/** Estimated row size in px along the scroll axis (the fixed-size fast path). Read for the size estimate. */
|
|
18522
|
-
readonly estimateRowSize: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
18523
|
-
/** Scroll container. Defaults to the table root element (the scroll container in `<div>` grid mode). */
|
|
18524
|
-
readonly scrollElement: _angular_core.InputSignal<HTMLElement | null>;
|
|
18525
|
-
constructor();
|
|
18526
19401
|
/**
|
|
18527
|
-
*
|
|
18528
|
-
*
|
|
18529
|
-
*
|
|
18530
|
-
* `@for (vrow of v.virtualRows(); track vrow.index)` and position each row absolutely with
|
|
18531
|
-
* `transform: translateY(vrow.start + 'px')`. Bind each row's `[virtualIndex]="vrow.index"`.
|
|
19402
|
+
* Current 1-based page number. Two-way bindable via `[(page)]`. The implicit
|
|
19403
|
+
* `pageChange` output emits whenever the directive updates this value (via
|
|
19404
|
+
* clicks, previous, or next). Do not add a separate `pageChange` output.
|
|
18532
19405
|
*/
|
|
18533
|
-
readonly
|
|
18534
|
-
/** Total scroll size of all rows in px. Bind to the body container's height to size the scroll range. */
|
|
18535
|
-
readonly totalSize: _angular_core.Signal<number>;
|
|
19406
|
+
readonly page: _angular_core.ModelSignal<number>;
|
|
18536
19407
|
/**
|
|
18537
|
-
*
|
|
18538
|
-
*
|
|
18539
|
-
* programmatically.
|
|
19408
|
+
* Total number of pages. Always bind as `[count]="n"` (a number, not a
|
|
19409
|
+
* string). Required.
|
|
18540
19410
|
*/
|
|
18541
|
-
|
|
18542
|
-
|
|
18543
|
-
|
|
18544
|
-
|
|
18545
|
-
|
|
18546
|
-
|
|
18547
|
-
|
|
19411
|
+
readonly count: _angular_core.InputSignal<number>;
|
|
19412
|
+
/**
|
|
19413
|
+
* Pages shown on each side of the current page before collapsing to an
|
|
19414
|
+
* ellipsis. Default read from `provideForPaginationDefaults` for the
|
|
19415
|
+
* surrounding scope (library fallback: `1`).
|
|
19416
|
+
*/
|
|
19417
|
+
readonly siblingCount: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
19418
|
+
/**
|
|
19419
|
+
* Pages always shown at each end (first and last). Default read from
|
|
19420
|
+
* `provideForPaginationDefaults` for the surrounding scope (library
|
|
19421
|
+
* fallback: `1`).
|
|
19422
|
+
*/
|
|
19423
|
+
readonly boundaryCount: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
19424
|
+
/** Whether the entire pagination control is disabled. */
|
|
19425
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
19426
|
+
/**
|
|
19427
|
+
* Writing direction. When unset (default `null`), the inherited ambient
|
|
19428
|
+
* direction is resolved from the nearest ancestor carrying a `dir` attribute
|
|
19429
|
+
* (or `<html dir>`), defaulting to `'ltr'`. An explicit `[dir]` always wins.
|
|
19430
|
+
* The resolved value is reflected to the host `dir` attribute. RTL affects
|
|
19431
|
+
* visual layout only — previous/next semantics do not change.
|
|
19432
|
+
*/
|
|
19433
|
+
readonly _dirInput: _angular_core.InputSignal<WritingDirection | null>;
|
|
19434
|
+
readonly dir: _angular_core.Signal<WritingDirection>;
|
|
19435
|
+
/**
|
|
19436
|
+
* Accessible label for the navigation landmark. Supply this (or point
|
|
19437
|
+
* `aria-labelledby` at a visible label element) when the page contains more
|
|
19438
|
+
* than one `<nav>`. A `null` or empty value emits no attribute.
|
|
19439
|
+
*/
|
|
19440
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
19441
|
+
/** The computed visible-page list (page numbers + ellipsis gaps). */
|
|
19442
|
+
readonly items: _angular_core.Signal<readonly PaginationItem[]>;
|
|
19443
|
+
/** Whether the current page is the first (no previous page). */
|
|
19444
|
+
readonly isFirst: _angular_core.Signal<boolean>;
|
|
19445
|
+
/** Whether the current page is the last (no next page). */
|
|
19446
|
+
readonly isLast: _angular_core.Signal<boolean>;
|
|
19447
|
+
/**
|
|
19448
|
+
* Navigate to `page`, clamped to `[1, count]`. No-op when disabled.
|
|
19449
|
+
*/
|
|
19450
|
+
goToPage(page: number): void;
|
|
19451
|
+
/** Navigate to the previous page. No-op at the first page or when disabled. */
|
|
19452
|
+
previous(): void;
|
|
19453
|
+
/** Navigate to the next page. No-op at the last page or when disabled. */
|
|
19454
|
+
next(): void;
|
|
19455
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForPagination, never>;
|
|
19456
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForPagination, "[forPagination]", ["forPagination"], { "page": { "alias": "page"; "required": false; "isSignal": true; }; "count": { "alias": "count"; "required": true; "isSignal": true; }; "siblingCount": { "alias": "siblingCount"; "required": false; "isSignal": true; }; "boundaryCount": { "alias": "boundaryCount"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "_dirInput": { "alias": "dir"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "page": "pageChange"; }, never, never, true, never>;
|
|
18548
19457
|
}
|
|
18549
19458
|
|
|
18550
19459
|
/**
|
|
18551
|
-
*
|
|
18552
|
-
*
|
|
18553
|
-
*
|
|
19460
|
+
* Page number button. Apply on a `<button>` so Enter/Space activation is
|
|
19461
|
+
* native. Reflects `aria-current="page"` when this button represents the
|
|
19462
|
+
* currently active page. Clicking calls `ctx.goToPage(page)`.
|
|
18554
19463
|
*/
|
|
18555
|
-
|
|
19464
|
+
declare class ForPaginationItem {
|
|
19465
|
+
protected readonly ctx: forty_cdk.ForPaginationContext;
|
|
19466
|
+
/** The 1-based page number this button navigates to. */
|
|
19467
|
+
readonly page: _angular_core.InputSignal<number>;
|
|
19468
|
+
/** Per-item disabled override (in addition to the root's `disabled`). */
|
|
19469
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
19470
|
+
/** Whether this item is effectively disabled (own or root disabled). */
|
|
19471
|
+
readonly effectiveDisabled: _angular_core.Signal<boolean>;
|
|
19472
|
+
/** Whether this button represents the currently active page. */
|
|
19473
|
+
readonly isCurrent: _angular_core.Signal<boolean>;
|
|
19474
|
+
constructor();
|
|
19475
|
+
protected activate(): void;
|
|
19476
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForPaginationItem, never>;
|
|
19477
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForPaginationItem, "[forPaginationItem]", ["forPaginationItem"], { "page": { "alias": "page"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
18556
19478
|
}
|
|
18557
|
-
|
|
18558
|
-
declare const FOR_TABLE_DEFAULTS: _angular_core.InjectionToken<ForTableDefaults>;
|
|
19479
|
+
|
|
18559
19480
|
/**
|
|
18560
|
-
*
|
|
18561
|
-
*
|
|
18562
|
-
*
|
|
19481
|
+
* Previous-page button. Apply on a `<button>` so Enter/Space activation is
|
|
19482
|
+
* native. Disabled (via the native `disabled` attribute) when the current page
|
|
19483
|
+
* is the first page or the root is disabled. Clicking calls `ctx.previous()`.
|
|
18563
19484
|
*/
|
|
18564
|
-
declare
|
|
19485
|
+
declare class ForPaginationPrevious {
|
|
19486
|
+
protected readonly ctx: forty_cdk.ForPaginationContext;
|
|
19487
|
+
/**
|
|
19488
|
+
* Accessible label for this button (e.g. "Previous page"). When `null`
|
|
19489
|
+
* (default), no `aria-label` is emitted — the consumer should supply a
|
|
19490
|
+
* visible label or set this input.
|
|
19491
|
+
*/
|
|
19492
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
19493
|
+
protected readonly isDisabled: _angular_core.Signal<boolean>;
|
|
19494
|
+
constructor();
|
|
19495
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForPaginationPrevious, never>;
|
|
19496
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForPaginationPrevious, "[forPaginationPrevious]", ["forPaginationPrevious"], { "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
19497
|
+
}
|
|
18565
19498
|
|
|
18566
19499
|
/**
|
|
18567
|
-
*
|
|
18568
|
-
*
|
|
19500
|
+
* Next-page button. Apply on a `<button>` so Enter/Space activation is
|
|
19501
|
+
* native. Disabled (via the native `disabled` attribute) when the current page
|
|
19502
|
+
* is the last page or the root is disabled. Clicking calls `ctx.next()`.
|
|
18569
19503
|
*/
|
|
18570
|
-
|
|
19504
|
+
declare class ForPaginationNext {
|
|
19505
|
+
protected readonly ctx: forty_cdk.ForPaginationContext;
|
|
18571
19506
|
/**
|
|
18572
|
-
*
|
|
18573
|
-
*
|
|
19507
|
+
* Accessible label for this button (e.g. "Next page"). When `null`
|
|
19508
|
+
* (default), no `aria-label` is emitted — the consumer should supply a
|
|
19509
|
+
* visible label or set this input.
|
|
18574
19510
|
*/
|
|
18575
|
-
readonly
|
|
18576
|
-
|
|
18577
|
-
|
|
19511
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
19512
|
+
protected readonly isDisabled: _angular_core.Signal<boolean>;
|
|
19513
|
+
constructor();
|
|
19514
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForPaginationNext, never>;
|
|
19515
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForPaginationNext, "[forPaginationNext]", ["forPaginationNext"], { "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
19516
|
+
}
|
|
19517
|
+
|
|
19518
|
+
/**
|
|
19519
|
+
* Defaults inherited by descendant paginations in the surrounding injector
|
|
19520
|
+
* scope. Configure with `provideForPaginationDefaults` at the application root
|
|
19521
|
+
* or in any component's `providers`; partial overrides merge with the parent.
|
|
19522
|
+
*/
|
|
19523
|
+
interface ForPaginationDefaults {
|
|
19524
|
+
/** Pages shown on each side of the current page before collapsing to an ellipsis. */
|
|
19525
|
+
siblingCount: number;
|
|
19526
|
+
/** Pages always shown at each end (first/last). */
|
|
19527
|
+
boundaryCount: number;
|
|
19528
|
+
}
|
|
19529
|
+
/** Token holding the resolved pagination defaults for the current scope. */
|
|
19530
|
+
declare const FOR_PAGINATION_DEFAULTS: _angular_core.InjectionToken<ForPaginationDefaults>;
|
|
19531
|
+
/**
|
|
19532
|
+
* Configures forty-cdk pagination defaults for this injector scope. Partial
|
|
19533
|
+
* overrides inherit unspecified keys from the parent scope (or library defaults
|
|
19534
|
+
* at the root).
|
|
19535
|
+
*/
|
|
19536
|
+
declare function provideForPaginationDefaults(defaults?: Partial<ForPaginationDefaults>): Provider[];
|
|
19537
|
+
|
|
19538
|
+
/**
|
|
19539
|
+
* Headless breadcrumb trail implementing the
|
|
19540
|
+
* [WAI-ARIA Breadcrumb pattern](https://www.w3.org/WAI/ARIA/apg/patterns/breadcrumb/):
|
|
19541
|
+
* a `navigation` landmark wrapping a set of links that reveal the page's
|
|
19542
|
+
* position within the site hierarchy.
|
|
19543
|
+
*
|
|
19544
|
+
* The directive contributes only the landmark role + accessible name; the
|
|
19545
|
+
* consumer owns the markup structure (an `<ol>` of `<li>` links is the APG
|
|
19546
|
+
* recommendation) and applies their own styles. Each link decorated with
|
|
19547
|
+
* `[forBreadcrumbItem]` can mark itself the current page via `current`, and
|
|
19548
|
+
* visual dividers decorated with `[forBreadcrumbSeparator]` are hidden from
|
|
19549
|
+
* assistive technology.
|
|
19550
|
+
*
|
|
19551
|
+
* There is no keyboard interaction or focus management beyond what the native
|
|
19552
|
+
* links provide — breadcrumb links are ordinary tab stops.
|
|
19553
|
+
*
|
|
19554
|
+
* @example
|
|
19555
|
+
* ```html
|
|
19556
|
+
* <nav forBreadcrumbs>
|
|
19557
|
+
* <ol>
|
|
19558
|
+
* <li><a forBreadcrumbItem href="/">Home</a></li>
|
|
19559
|
+
* <li forBreadcrumbSeparator aria-hidden="true">/</li>
|
|
19560
|
+
* <li><a forBreadcrumbItem href="/library">Library</a></li>
|
|
19561
|
+
* <li forBreadcrumbSeparator aria-hidden="true">/</li>
|
|
19562
|
+
* <li><a forBreadcrumbItem href="/library/data" current>Data</a></li>
|
|
19563
|
+
* </ol>
|
|
19564
|
+
* </nav>
|
|
19565
|
+
* ```
|
|
19566
|
+
*/
|
|
19567
|
+
declare class ForBreadcrumbs {
|
|
18578
19568
|
/**
|
|
18579
|
-
*
|
|
18580
|
-
*
|
|
19569
|
+
* Accessible label for the navigation landmark. Defaults to `'Breadcrumb'`
|
|
19570
|
+
* so a bare `<nav forBreadcrumbs>` is already a correctly labelled landmark —
|
|
19571
|
+
* the conventional name for this pattern. Override it (or point a native
|
|
19572
|
+
* `aria-labelledby` at a visible heading) when the page hosts more than one
|
|
19573
|
+
* breadcrumb trail and they need to be told apart.
|
|
18581
19574
|
*/
|
|
18582
|
-
readonly
|
|
18583
|
-
|
|
18584
|
-
|
|
19575
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
19576
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForBreadcrumbs, never>;
|
|
19577
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForBreadcrumbs, "[forBreadcrumbs]", ["forBreadcrumbs"], { "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
19578
|
+
}
|
|
19579
|
+
|
|
19580
|
+
/**
|
|
19581
|
+
* A single link within a breadcrumb trail. Apply on an `<a>` so navigation is
|
|
19582
|
+
* native. Set `current` on the link that points to the page the user is on —
|
|
19583
|
+
* it reflects [`aria-current="page"`](https://www.w3.org/TR/wai-aria-1.2/#aria-current)
|
|
19584
|
+
* so assistive technology announces it as the current location.
|
|
19585
|
+
*/
|
|
19586
|
+
declare class ForBreadcrumbItem {
|
|
18585
19587
|
/**
|
|
18586
|
-
*
|
|
18587
|
-
*
|
|
18588
|
-
*
|
|
19588
|
+
* Whether this item represents the page the user is currently on. The
|
|
19589
|
+
* current item reflects `aria-current="page"`; all others emit no
|
|
19590
|
+
* `aria-current` attribute.
|
|
18589
19591
|
*/
|
|
18590
|
-
readonly
|
|
19592
|
+
readonly current: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
19593
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForBreadcrumbItem, never>;
|
|
19594
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForBreadcrumbItem, "[forBreadcrumbItem]", ["forBreadcrumbItem"], { "current": { "alias": "current"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
18591
19595
|
}
|
|
18592
|
-
|
|
18593
|
-
|
|
18594
|
-
|
|
18595
|
-
|
|
19596
|
+
|
|
19597
|
+
/**
|
|
19598
|
+
* Decorative divider rendered between breadcrumb items (a `/`, `>`, chevron,
|
|
19599
|
+
* etc.). Reflects `aria-hidden="true"` so assistive technology skips it — the
|
|
19600
|
+
* trail's structure is already conveyed by the list and the links, making the
|
|
19601
|
+
* visual separator redundant in the accessibility tree.
|
|
19602
|
+
*/
|
|
19603
|
+
declare class ForBreadcrumbSeparator {
|
|
19604
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForBreadcrumbSeparator, never>;
|
|
19605
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForBreadcrumbSeparator, "[forBreadcrumbSeparator]", ["forBreadcrumbSeparator"], {}, {}, never, never, true, never>;
|
|
18596
19606
|
}
|
|
19607
|
+
|
|
18597
19608
|
/**
|
|
18598
|
-
*
|
|
18599
|
-
*
|
|
18600
|
-
*
|
|
18601
|
-
*
|
|
18602
|
-
|
|
18603
|
-
|
|
18604
|
-
|
|
18605
|
-
|
|
18606
|
-
|
|
18607
|
-
|
|
18608
|
-
*
|
|
18609
|
-
*
|
|
18610
|
-
*
|
|
19609
|
+
* Defaults inherited by descendant breadcrumbs in the surrounding injector
|
|
19610
|
+
* scope. Configure with `provideForBreadcrumbsDefaults`. The shape is a stub
|
|
19611
|
+
* today — present so future per-scope tuning can land without churning the
|
|
19612
|
+
* public surface.
|
|
19613
|
+
*/
|
|
19614
|
+
interface ForBreadcrumbsDefaults {
|
|
19615
|
+
}
|
|
19616
|
+
/** Token holding the resolved breadcrumbs defaults for the current scope. */
|
|
19617
|
+
declare const FOR_BREADCRUMBS_DEFAULTS: _angular_core.InjectionToken<ForBreadcrumbsDefaults>;
|
|
19618
|
+
/**
|
|
19619
|
+
* Configures forty-cdk breadcrumbs defaults for this injector scope. Partial
|
|
19620
|
+
* overrides inherit unspecified keys from the parent scope (or library
|
|
19621
|
+
* defaults at the root).
|
|
18611
19622
|
*/
|
|
18612
|
-
declare function
|
|
19623
|
+
declare function provideForBreadcrumbsDefaults(defaults?: Partial<ForBreadcrumbsDefaults>): Provider[];
|
|
18613
19624
|
|
|
18614
19625
|
/**
|
|
18615
|
-
*
|
|
18616
|
-
*
|
|
19626
|
+
* Shared state contract between the pieces of a FileUpload primitive.
|
|
19627
|
+
* Provided by `ForFileUpload`, consumed by `ForFileUploadInput` and
|
|
19628
|
+
* `ForFileUploadTrigger`.
|
|
18617
19629
|
*/
|
|
18618
|
-
interface
|
|
18619
|
-
|
|
18620
|
-
readonly
|
|
18621
|
-
|
|
18622
|
-
readonly
|
|
18623
|
-
/**
|
|
18624
|
-
|
|
19630
|
+
interface ForFileUploadContext {
|
|
19631
|
+
readonly accept: Signal<string | null>;
|
|
19632
|
+
readonly multiple: Signal<boolean>;
|
|
19633
|
+
readonly directory: Signal<boolean>;
|
|
19634
|
+
readonly disabled: Signal<boolean>;
|
|
19635
|
+
/** Registers the native `<input type="file">` so the root can open the dialog and sync dropped files. */
|
|
19636
|
+
registerInput(el: HTMLInputElement): void;
|
|
19637
|
+
/** Opens the native file chooser dialog by programmatically clicking the registered input. */
|
|
19638
|
+
openFileDialog(): void;
|
|
19639
|
+
/** Emits `filesChange` with the given `FileList` if it is non-empty. */
|
|
19640
|
+
emitFiles(files: FileList): void;
|
|
18625
19641
|
}
|
|
18626
|
-
|
|
18627
|
-
declare const FOR_VIRTUAL_VIEWPORT_CONTEXT: InjectionToken<ForVirtualViewportContext>;
|
|
19642
|
+
declare const FOR_FILE_UPLOAD_CONTEXT: InjectionToken<ForFileUploadContext>;
|
|
18628
19643
|
|
|
18629
19644
|
/**
|
|
18630
|
-
*
|
|
18631
|
-
*
|
|
18632
|
-
* `[
|
|
18633
|
-
* owns the scroll container, the total-size sizer, and the windowing core, so
|
|
18634
|
-
* the consumer writes no manual spacer or position transform.
|
|
18635
|
-
*
|
|
18636
|
-
* Built on the headless {@link injectVirtualizer} core; for full manual control
|
|
18637
|
-
* (custom DOM, dynamic measurement, window/document scroller) use that directly.
|
|
19645
|
+
* Root drop zone for the FileUpload primitive. Composes with
|
|
19646
|
+
* `[forFileUploadInput]` (the accessible native file input) and
|
|
19647
|
+
* `[forFileUploadTrigger]` (the button that opens the dialog).
|
|
18638
19648
|
*
|
|
18639
|
-
*
|
|
18640
|
-
*
|
|
18641
|
-
* projects its rows into that sizer and positions each one absolutely.
|
|
19649
|
+
* `filesChange` is a plain `output<FileList>()` — this primitive is not a
|
|
19650
|
+
* Signal Forms control; the native `<input type="file">` is the form participant.
|
|
18642
19651
|
*
|
|
18643
|
-
* `
|
|
18644
|
-
*
|
|
19652
|
+
* Reflects `data-dragging` while files are dragged over the zone and
|
|
19653
|
+
* `data-disabled` when the input is disabled.
|
|
18645
19654
|
*/
|
|
18646
|
-
declare class
|
|
19655
|
+
declare class ForFileUpload implements ForFileUploadContext {
|
|
18647
19656
|
#private;
|
|
18648
|
-
/**
|
|
18649
|
-
readonly
|
|
18650
|
-
/**
|
|
18651
|
-
readonly
|
|
18652
|
-
/**
|
|
18653
|
-
|
|
18654
|
-
|
|
18655
|
-
|
|
18656
|
-
|
|
18657
|
-
readonly
|
|
18658
|
-
/**
|
|
18659
|
-
|
|
18660
|
-
|
|
18661
|
-
|
|
18662
|
-
|
|
18663
|
-
|
|
18664
|
-
|
|
18665
|
-
/**
|
|
18666
|
-
|
|
18667
|
-
/**
|
|
18668
|
-
|
|
18669
|
-
|
|
18670
|
-
|
|
18671
|
-
protected
|
|
18672
|
-
protected
|
|
18673
|
-
|
|
18674
|
-
|
|
18675
|
-
|
|
18676
|
-
|
|
18677
|
-
|
|
18678
|
-
|
|
18679
|
-
|
|
18680
|
-
|
|
18681
|
-
|
|
18682
|
-
|
|
18683
|
-
|
|
18684
|
-
|
|
18685
|
-
|
|
18686
|
-
|
|
18687
|
-
|
|
18688
|
-
|
|
18689
|
-
|
|
18690
|
-
|
|
18691
|
-
|
|
18692
|
-
|
|
18693
|
-
|
|
18694
|
-
|
|
18695
|
-
|
|
18696
|
-
|
|
18697
|
-
|
|
18698
|
-
|
|
18699
|
-
|
|
18700
|
-
|
|
18701
|
-
|
|
18702
|
-
*
|
|
18703
|
-
*
|
|
19657
|
+
/** MIME types or file extensions accepted by the file chooser (e.g. `"image/*,.pdf"`). */
|
|
19658
|
+
readonly accept: _angular_core.InputSignal<string | null>;
|
|
19659
|
+
/** Whether multiple files can be selected at once. */
|
|
19660
|
+
readonly multiple: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
19661
|
+
/**
|
|
19662
|
+
* When `true`, the native picker selects a whole folder; the emitted
|
|
19663
|
+
* `FileList` then contains every file inside it (each carrying a
|
|
19664
|
+
* `webkitRelativePath` so the consumer can reconstruct the tree).
|
|
19665
|
+
*/
|
|
19666
|
+
readonly directory: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
19667
|
+
/** Whether the file upload zone and all its pieces are disabled. */
|
|
19668
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
19669
|
+
/** Emitted when files are chosen via the dialog or dropped onto the zone. */
|
|
19670
|
+
readonly filesChange: _angular_core.OutputEmitterRef<FileList>;
|
|
19671
|
+
protected readonly dragging: _angular_core.Signal<boolean>;
|
|
19672
|
+
/** Registers the native input so the root can open the dialog and sync dropped files. */
|
|
19673
|
+
registerInput(el: HTMLInputElement): void;
|
|
19674
|
+
/** Opens the native file chooser dialog if not disabled. */
|
|
19675
|
+
openFileDialog(): void;
|
|
19676
|
+
/** Emits `filesChange` with the provided `FileList` if it contains at least one file. */
|
|
19677
|
+
emitFiles(files: FileList): void;
|
|
19678
|
+
protected onDragEnter(event: DragEvent): void;
|
|
19679
|
+
protected onDragOver(event: DragEvent): void;
|
|
19680
|
+
protected onDragLeave(): void;
|
|
19681
|
+
protected onDrop(event: DragEvent): void;
|
|
19682
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForFileUpload, never>;
|
|
19683
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForFileUpload, "[forFileUpload]", ["forFileUpload"], { "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "directory": { "alias": "directory"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "filesChange": "filesChange"; }, never, never, true, never>;
|
|
19684
|
+
}
|
|
19685
|
+
|
|
19686
|
+
/**
|
|
19687
|
+
* The native `<input type="file">` piece of the FileUpload primitive.
|
|
19688
|
+
* Apply on a real `<input>` element inside `[forFileUpload]`.
|
|
19689
|
+
*
|
|
19690
|
+
* The directive forces `type="file"` and mirrors `accept`, `multiple`,
|
|
19691
|
+
* `directory` (as `webkitdirectory`), and `disabled` from the root context.
|
|
19692
|
+
* When the user selects files via the native dialog the `change` event emits
|
|
19693
|
+
* `filesChange` on the root.
|
|
19694
|
+
*
|
|
19695
|
+
* Consumers are expected to visually hide this input with their own CSS
|
|
19696
|
+
* (e.g. an `sr-only` / `visually-hidden` utility) while keeping it focusable
|
|
19697
|
+
* so keyboard users and assistive technology can activate it directly. The
|
|
19698
|
+
* directive never sets `hidden`, `display:none`, or `visibility:hidden` — it
|
|
19699
|
+
* remains strictly headless.
|
|
19700
|
+
*/
|
|
19701
|
+
declare class ForFileUploadInput {
|
|
19702
|
+
#private;
|
|
19703
|
+
protected readonly ctx: forty_cdk.ForFileUploadContext;
|
|
19704
|
+
constructor();
|
|
19705
|
+
protected onChange(): void;
|
|
19706
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForFileUploadInput, never>;
|
|
19707
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForFileUploadInput, "input[forFileUploadInput]", ["forFileUploadInput"], {}, {}, never, never, true, never>;
|
|
19708
|
+
}
|
|
19709
|
+
|
|
19710
|
+
/**
|
|
19711
|
+
* Trigger button that opens the native file chooser dialog.
|
|
19712
|
+
* Apply on a native `<button>` inside `[forFileUpload]`.
|
|
18704
19713
|
*
|
|
18705
|
-
*
|
|
18706
|
-
*
|
|
18707
|
-
*
|
|
18708
|
-
* </div>
|
|
18709
|
-
* ```
|
|
19714
|
+
* `type="button"` is forced to prevent accidental form submission.
|
|
19715
|
+
* The native `disabled` attribute is reflected imperatively so the button
|
|
19716
|
+
* is visually and functionally disabled when the root zone is disabled.
|
|
18710
19717
|
*/
|
|
18711
|
-
declare class
|
|
18712
|
-
|
|
18713
|
-
/** The full list of items to virtualize. */
|
|
18714
|
-
readonly forVirtualForOf: _angular_core.InputSignal<readonly T[]>;
|
|
19718
|
+
declare class ForFileUploadTrigger {
|
|
19719
|
+
protected readonly ctx: forty_cdk.ForFileUploadContext;
|
|
18715
19720
|
constructor();
|
|
18716
|
-
|
|
18717
|
-
static
|
|
18718
|
-
static
|
|
18719
|
-
|
|
19721
|
+
protected onClick(): void;
|
|
19722
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForFileUploadTrigger, never>;
|
|
19723
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForFileUploadTrigger, "[forFileUploadTrigger]", ["forFileUploadTrigger"], {}, {}, never, never, true, never>;
|
|
19724
|
+
}
|
|
19725
|
+
|
|
19726
|
+
/**
|
|
19727
|
+
* Defaults inherited by descendant file-upload zones in the surrounding
|
|
19728
|
+
* injector scope. Configure with `provideForFileUploadDefaults`. The shape
|
|
19729
|
+
* is a stub today — present so future per-scope tuning can land without
|
|
19730
|
+
* churning the public surface.
|
|
19731
|
+
*/
|
|
19732
|
+
interface ForFileUploadDefaults {
|
|
18720
19733
|
}
|
|
19734
|
+
/** Token holding the resolved file-upload defaults for the current scope. */
|
|
19735
|
+
declare const FOR_FILE_UPLOAD_DEFAULTS: _angular_core.InjectionToken<ForFileUploadDefaults>;
|
|
19736
|
+
/**
|
|
19737
|
+
* Configures forty-cdk file-upload defaults for this injector scope. Partial
|
|
19738
|
+
* overrides inherit unspecified keys from the parent scope (or library
|
|
19739
|
+
* defaults at the root).
|
|
19740
|
+
*/
|
|
19741
|
+
declare function provideForFileUploadDefaults(defaults?: Partial<ForFileUploadDefaults>): Provider[];
|
|
18721
19742
|
|
|
18722
|
-
export { DEFAULT_DATE_FIELD_SEGMENT_LABELS, DEFAULT_TIME_FIELD_SEGMENT_LABELS, DEFAULT_TOAST_REGION, FOR_ACCORDION_CONTEXT, FOR_ACCORDION_DEFAULTS, FOR_ACCORDION_ITEM_CONTEXT, FOR_ASPECT_RATIO_DEFAULTS, FOR_AVATAR_CONTEXT, FOR_AVATAR_DEFAULTS, FOR_CALENDAR_CONTEXT, FOR_CALENDAR_DEFAULTS, FOR_CAROUSEL_CONTEXT, FOR_CAROUSEL_DEFAULTS, FOR_CHECKBOX, FOR_CHECKBOX_DEFAULTS, FOR_CHECKBOX_HOST_DIRECTIVE_INPUTS, FOR_CHECKBOX_HOST_DIRECTIVE_OUTPUTS, FOR_COMBOBOX_CONTEXT, FOR_COMBOBOX_DEFAULTS, FOR_COMBOBOX_HOST_DIRECTIVE_INPUTS, FOR_COMBOBOX_HOST_DIRECTIVE_OUTPUTS, FOR_COMBOBOX_OPTION, FOR_CONTEXT_MENU_CONTEXT, FOR_CONTEXT_MENU_DEFAULTS, FOR_DATE_ADAPTER, FOR_DATE_FIELD_CONTEXT, FOR_DATE_FIELD_DEFAULTS, FOR_DATE_FIELD_HOST_DIRECTIVE_INPUTS, FOR_DATE_FIELD_HOST_DIRECTIVE_OUTPUTS, FOR_DATE_PICKER_CONTEXT, FOR_DATE_PICKER_DEFAULTS, FOR_DATE_PICKER_HOST_DIRECTIVE_INPUTS, FOR_DATE_PICKER_HOST_DIRECTIVE_OUTPUTS, FOR_DIALOG_CONTEXT, FOR_DIALOG_DATA, FOR_DIALOG_DEFAULTS, FOR_DISCLOSURE_CONTEXT, FOR_DISCLOSURE_DEFAULTS, FOR_DRAG_DROP_CONTEXT, FOR_DRAG_DROP_DEFAULTS, FOR_DRAWER_CONTEXT, FOR_DRAWER_DATA, FOR_DRAWER_DEFAULTS, FOR_DROPDOWN_MENU_DEFAULTS, FOR_DROP_LIST_GROUP, FOR_FIELDSET_CONTEXT, FOR_FIELDSET_DEFAULTS, FOR_FIELD_CONTEXT, FOR_FIELD_DEFAULTS, FOR_HOVER_CARD_CONTEXT, FOR_HOVER_CARD_DEFAULTS, FOR_ID_SALT, FOR_INPUT_DEFAULTS, FOR_INPUT_HOST_DIRECTIVE_INPUTS, FOR_INPUT_HOST_DIRECTIVE_OUTPUTS, FOR_LISTBOX_CONTEXT, FOR_LISTBOX_DEFAULTS, FOR_LISTBOX_HOST_DIRECTIVE_INPUTS, FOR_LISTBOX_HOST_DIRECTIVE_OUTPUTS, FOR_LISTBOX_OPTION, FOR_MENUBAR_CONTEXT, FOR_MENUBAR_DEFAULTS, FOR_MENU_CHECKBOX_ITEM, FOR_MENU_CONTEXT, FOR_MENU_DEFAULTS, FOR_MENU_GROUP_CONTEXT, FOR_MENU_RADIO_GROUP_CONTEXT, FOR_MENU_RADIO_ITEM, FOR_METER_CONTEXT, FOR_METER_DEFAULTS, FOR_NAVIGATION_MENU_CONTEXT, FOR_NAVIGATION_MENU_DEFAULTS, FOR_NAVIGATION_MENU_ITEM_CONTEXT, FOR_NUMBER_INPUT_DEFAULTS, FOR_NUMBER_INPUT_GROUP, FOR_NUMBER_INPUT_HOST_DIRECTIVE_INPUTS, FOR_NUMBER_INPUT_HOST_DIRECTIVE_OUTPUTS, FOR_OTP_INPUT_CONTEXT, FOR_OTP_INPUT_DEFAULTS, FOR_OTP_INPUT_HOST_DIRECTIVE_INPUTS, FOR_OTP_INPUT_HOST_DIRECTIVE_OUTPUTS, FOR_PANE_RESIZER_DEFAULTS, FOR_POPOVER_CONTEXT, FOR_POPOVER_DEFAULTS, FOR_PROGRESS_CONTEXT, FOR_PROGRESS_DEFAULTS, FOR_RADIO, FOR_RADIO_GROUP_CONTEXT, FOR_RADIO_GROUP_DEFAULTS, FOR_RADIO_GROUP_HOST_DIRECTIVE_INPUTS, FOR_RADIO_GROUP_HOST_DIRECTIVE_OUTPUTS, FOR_SCROLL_AREA_CONTEXT, FOR_SCROLL_AREA_DEFAULTS, FOR_SELECT_CONTEXT, FOR_SELECT_DEFAULTS, FOR_SELECT_HOST_DIRECTIVE_INPUTS, FOR_SELECT_HOST_DIRECTIVE_OUTPUTS, FOR_SELECT_OPTION, FOR_SEPARATOR_DEFAULTS, FOR_SLIDER_CONTEXT, FOR_SLIDER_DEFAULTS, FOR_SLIDER_HOST_DIRECTIVE_INPUTS, FOR_SLIDER_HOST_DIRECTIVE_OUTPUTS, FOR_STEPPER_CONTEXT, FOR_STEPPER_DEFAULTS, FOR_STEPPER_ITEM_CONTEXT, FOR_SWITCH_DEFAULTS, FOR_SWITCH_HOST_DIRECTIVE_INPUTS, FOR_SWITCH_HOST_DIRECTIVE_OUTPUTS, FOR_TABLE_CONTEXT, FOR_TABLE_DEFAULTS, FOR_TABS_CONTEXT, FOR_TABS_DEFAULTS, FOR_TEXTAREA_HOST_DIRECTIVE_INPUTS, FOR_TEXTAREA_HOST_DIRECTIVE_OUTPUTS, FOR_TIME_FIELD_CONTEXT, FOR_TIME_FIELD_DEFAULTS, FOR_TIME_FIELD_HOST_DIRECTIVE_INPUTS, FOR_TIME_FIELD_HOST_DIRECTIVE_OUTPUTS, FOR_TIME_PICKER_CONTEXT, FOR_TIME_PICKER_DEFAULTS, FOR_TIME_PICKER_HOST_DIRECTIVE_INPUTS, FOR_TIME_PICKER_HOST_DIRECTIVE_OUTPUTS, FOR_TOAST_CONTEXT, FOR_TOAST_DEFAULTS, FOR_TOGGLE_DEFAULTS, FOR_TOGGLE_GROUP_CONTEXT, FOR_TOGGLE_GROUP_HOST_DIRECTIVE_INPUTS, FOR_TOGGLE_GROUP_HOST_DIRECTIVE_OUTPUTS, FOR_TOGGLE_HOST_DIRECTIVE_INPUTS, FOR_TOGGLE_HOST_DIRECTIVE_OUTPUTS, FOR_TOOLBAR_CONTEXT, FOR_TOOLBAR_DEFAULTS, FOR_TOOLTIP_CONTEXT, FOR_TOOLTIP_DEFAULTS, FOR_TREE_CONTAINER_CONTEXT, FOR_TREE_CONTEXT, FOR_TREE_DEFAULTS, FOR_TREE_ITEM_CONTEXT, FOR_TREE_NODE_DRAG_CONTEXT, FOR_VIRTUAL_VIEWPORT_CONTEXT, ForAccordion, ForAccordionContent, ForAccordionItem, ForAccordionTrigger, ForAspectRatio, ForAvatar, ForAvatarFallback, ForAvatarImage, ForCalendar, ForCalendarCell, ForCalendarGrid, ForCalendarGridHeader, ForCalendarHeading, ForCalendarMonthCell, ForCalendarMonthGrid, ForCalendarMonthSelect, ForCalendarNextButton, ForCalendarPrevButton, ForCalendarViewTrigger, ForCalendarYearCell, ForCalendarYearGrid, ForCalendarYearSelect, ForCarousel, ForCarouselDrag, ForCarouselIndicator, ForCarouselIndicators, ForCarouselNext, ForCarouselPrevious, ForCarouselRotationControl, ForCarouselSlide, ForCarouselTrack, ForCarouselViewport, ForCheckbox, ForCheckboxIndicator, ForCombobox, ForComboboxAnchor, ForComboboxChip, ForComboboxChipRemove, ForComboboxChips, ForComboboxClear, ForComboboxContent, ForComboboxEmpty, ForComboboxGroup, ForComboboxGroupLabel, ForComboboxIndicator, ForComboboxInput, ForComboboxList, ForComboboxOption, ForComboboxSeparator, ForComboboxStatus, ForComboboxTrigger, ForContextMenu, ForContextMenuTrigger, ForDateField, ForDateFieldLiteral, ForDateFieldSegment, ForDatePicker, ForDatePickerContent, ForDatePickerTrigger, ForDatePickerValue, ForDialog, ForDialogBackdrop, ForDialogClose, ForDialogDescription, ForDialogManager, ForDialogRef, ForDialogTitle, ForDialogTrigger, ForDisclosure, ForDisclosureContent, ForDisclosureTrigger, ForDragHandle, ForDragPlaceholder, ForDragPreview, ForDraggable, ForDrawer, ForDrawerBackdrop, ForDrawerClose, ForDrawerDescription, ForDrawerHandle, ForDrawerManager, ForDrawerRef, ForDrawerTitle, ForDrawerTrigger, ForDrawerWrapper, ForDropList, ForDropListGroup, ForDropdownMenu, ForDropdownMenuTrigger, ForField, ForFieldControl, ForFieldDescription, ForFieldError, ForFieldset, ForFieldsetLegend, ForHoverCard, ForHoverCardArrow, ForHoverCardContent, ForHoverCardTrigger, ForInput, ForLabel, ForListbox, ForListboxGroup, ForListboxGroupLabel, ForListboxOption, ForListboxOptionIndicator, ForMenuCheckboxItem, ForMenuContent, ForMenuGroup, ForMenuGroupLabel, ForMenuItem, ForMenuItemIndicator, ForMenuRadioGroup, ForMenuRadioItem, ForMenuSeparator, ForMenuSub, ForMenuSubTrigger, ForMenubar, ForMenubarTrigger, ForMeter, ForMeterIndicator, ForNavigationMenu, ForNavigationMenuContent, ForNavigationMenuIndicator, ForNavigationMenuItem, ForNavigationMenuLink, ForNavigationMenuList, ForNavigationMenuTrigger, ForNavigationMenuViewport, ForNumberInput, ForNumberInputDecrement, ForNumberInputGroup, ForNumberInputIncrement, ForOtpInput, ForOtpInputSlot, ForPaneResizer, ForPopover, ForPopoverAnchor, ForPopoverArrow, ForPopoverClose, ForPopoverContent, ForPopoverDescription, ForPopoverTitle, ForPopoverTrigger, ForProgress, ForProgressIndicator, ForRadio, ForRadioGroup, ForRadioIndicator, ForScrollArea, ForScrollAreaContent, ForScrollAreaCorner, ForScrollAreaScrollbar, ForScrollAreaThumb, ForScrollAreaViewport, ForSelect, ForSelectAnchor, ForSelectContent, ForSelectGroup, ForSelectGroupLabel, ForSelectIndicator, ForSelectOption, ForSelectSeparator, ForSelectTrigger, ForSelectValue, ForSeparator, ForSlider, ForSliderRange, ForSliderThumb, ForSliderTrack, ForStepper, ForStepperCompletedContent, ForStepperContent, ForStepperIndicator, ForStepperItem, ForStepperList, ForStepperNext, ForStepperPrevious, ForStepperProgress, ForStepperSeparator, ForStepperTrigger, ForSwitch, ForTable, ForTableCell, ForTableColumnReorder, ForTableColumnResizer, ForTableHeaderCell, ForTableHeaderRow, ForTableRow, ForTableRowReorder, ForTableRowSelector, ForTableSelectAll, ForTableSortHeader, ForTableVirtualized, ForTabs, ForTabsContent, ForTabsList, ForTabsTrigger, ForTextarea, ForTimeField, ForTimeFieldLiteral, ForTimeFieldSegment, ForTimePicker, ForTimePickerContent, ForTimePickerOption, ForTimePickerTrigger, ForTimePickerValue, ForToast, ForToastAction, ForToastClose, ForToastDescription, ForToastManager, ForToastRef, ForToastTitle, ForToastViewport, ForToggle, ForToggleGroup, ForToggleGroupItem, ForToolbar, ForToolbarButton, ForToolbarLink, ForToolbarSeparator, ForTooltip, ForTooltipArrow, ForTooltipContent, ForTooltipTrigger, ForTree, ForTreeGroup, ForTreeItem, ForTreeItemCheckbox, ForTreeItemCheckboxIndicator, ForTreeItemLabel, ForTreeItemToggle, ForTreeNodeDrag, ForTreeNodeDragHandle, ForVirtualFor, ForVirtualViewport, NativeDateAdapter, OTP_REGEXP_ONLY_CHARS, OTP_REGEXP_ONLY_DIGITS, OTP_REGEXP_ONLY_DIGITS_AND_CHARS, assertTimeCapable, buildTimeSlots, expandToReveal, forSingleValueField, injectDateAdapter, injectDialogData, injectDrawerData, injectFieldWiring, injectInfiniteScroll, injectNumberInputGroup, injectVirtualizer, moveItemInArray, moveTreeNode, provideForAccordionDefaults, provideForAspectRatioDefaults, provideForAvatarDefaults, provideForCalendarDefaults, provideForCarouselDefaults, provideForCheckboxDefaults, provideForComboboxDefaults, provideForContextMenuDefaults, provideForDateFieldDefaults, provideForDatePickerDefaults, provideForDialogDefaults, provideForDisclosureDefaults, provideForDragDropDefaults, provideForDrawerDefaults, provideForDropdownMenuDefaults, provideForFieldDefaults, provideForFieldsetDefaults, provideForHoverCardDefaults, provideForIdSalt, provideForInputDefaults, provideForListboxDefaults, provideForMenuDefaults, provideForMenubarDefaults, provideForMeterDefaults, provideForNavigationMenuDefaults, provideForNumberInputDefaults, provideForOtpInputDefaults, provideForPaneResizerDefaults, provideForPopoverDefaults, provideForProgressDefaults, provideForRadioGroupDefaults, provideForScrollAreaDefaults, provideForSelectDefaults, provideForSeparatorDefaults, provideForSliderDefaults, provideForStepperDefaults, provideForSwitchDefaults, provideForTableDefaults, provideForTabsDefaults, provideForTimeFieldDefaults, provideForTimePickerDefaults, provideForToastDefaults, provideForToggleDefaults, provideForToolbarDefaults, provideForTooltipDefaults, provideForTreeDefaults, provideNativeDateAdapter, transferArrayItem };
|
|
18723
|
-
export type { CalendarDateLabelFormatter, CalendarDateRange, CalendarDayCell, CalendarMonthOption, CalendarMonthRow, CalendarView, CalendarWeek, CalendarWeekday, CalendarYearOption, CalendarYearRow, CarouselAlign, DateAdapter, DateFieldSegment, DateSegmentType, SegmentType as DateTimeSegmentType, FieldControlHandle, FieldGranularity, ForAccordionContext, ForAccordionDefaults, ForAccordionItemContext, ForAspectRatioDefaults, ForAvatarContext, ForAvatarDefaults, ForAvatarStatus, ForCalendarCellHandle, ForCalendarContext, ForCalendarDefaults, ForCalendarMonthCellHandle, ForCalendarYearCellHandle, ForCarouselContext, ForCarouselDefaults, ForCheckboxDefaults, ForComboboxAutocomplete, ForComboboxChipHandle, ForComboboxCloseReason, ForComboboxContext, ForComboboxDefaults, ForComboboxInitialFocus, ForComboboxOptionHandle, ForContextMenuContext, ForContextMenuDefaults, ForDateFieldContext, ForDateFieldDefaults, ForDateFieldSegmentHandle, ForDateFieldSegmentLabels, ForDatePickerContext, ForDatePickerDefaults, ForDialogCloseReason, ForDialogContext, ForDialogDefaults, ForDialogOpenConfig, ForDisclosureContext, ForDisclosureDefaults, ForDragDropDefaults, ForDragDropEvent, ForDragEndEvent, ForDragStartEvent, ForDraggableHandle, ForDrawerCloseReason, ForDrawerContext, ForDrawerDefaults, ForDrawerDragEvent, ForDrawerOpenConfig, ForDrawerReleaseEvent, ForDrawerSide, ForDrawerSnapPoint, ForDropListContext, ForDropdownMenuDefaults, ForFieldContext, ForFieldDefaults, ForFieldsetContext, ForFieldsetDefaults, ForHoverCardContext, ForHoverCardDefaults,
|
|
19743
|
+
export { DEFAULT_DATE_FIELD_SEGMENT_LABELS, DEFAULT_TIME_FIELD_SEGMENT_LABELS, DEFAULT_TOAST_REGION, FOR_ACCORDION_CONTEXT, FOR_ACCORDION_DEFAULTS, FOR_ACCORDION_ITEM_CONTEXT, FOR_ASPECT_RATIO_DEFAULTS, FOR_AVATAR_CONTEXT, FOR_AVATAR_DEFAULTS, FOR_BREADCRUMBS_DEFAULTS, FOR_BUTTON_DEFAULTS, FOR_CALENDAR_CONTEXT, FOR_CALENDAR_DEFAULTS, FOR_CAROUSEL_CONTEXT, FOR_CAROUSEL_DEFAULTS, FOR_CHECKBOX, FOR_CHECKBOX_DEFAULTS, FOR_CHECKBOX_HOST_DIRECTIVE_INPUTS, FOR_CHECKBOX_HOST_DIRECTIVE_OUTPUTS, FOR_COMBOBOX_CONTEXT, FOR_COMBOBOX_DEFAULTS, FOR_COMBOBOX_HOST_DIRECTIVE_INPUTS, FOR_COMBOBOX_HOST_DIRECTIVE_OUTPUTS, FOR_COMBOBOX_OPTION, FOR_CONTEXT_MENU_CONTEXT, FOR_CONTEXT_MENU_DEFAULTS, FOR_DATE_ADAPTER, FOR_DATE_FIELD_CONTEXT, FOR_DATE_FIELD_DEFAULTS, FOR_DATE_FIELD_HOST_DIRECTIVE_INPUTS, FOR_DATE_FIELD_HOST_DIRECTIVE_OUTPUTS, FOR_DATE_PICKER_CONTEXT, FOR_DATE_PICKER_DEFAULTS, FOR_DATE_PICKER_HOST_DIRECTIVE_INPUTS, FOR_DATE_PICKER_HOST_DIRECTIVE_OUTPUTS, FOR_DIALOG_CONTEXT, FOR_DIALOG_DATA, FOR_DIALOG_DEFAULTS, FOR_DISCLOSURE_CONTEXT, FOR_DISCLOSURE_DEFAULTS, FOR_DRAG_DROP_CONTEXT, FOR_DRAG_DROP_DEFAULTS, FOR_DRAWER_CONTEXT, FOR_DRAWER_DATA, FOR_DRAWER_DEFAULTS, FOR_DROPDOWN_MENU_DEFAULTS, FOR_DROP_LIST_DEFAULT_ORIENTATION, FOR_DROP_LIST_GROUP, FOR_FIELDSET_CONTEXT, FOR_FIELDSET_DEFAULTS, FOR_FIELD_CONTEXT, FOR_FIELD_DEFAULTS, FOR_FILE_UPLOAD_CONTEXT, FOR_FILE_UPLOAD_DEFAULTS, FOR_HOVER_CARD_CONTEXT, FOR_HOVER_CARD_DEFAULTS, FOR_ID_SALT, FOR_INPUT_DEFAULTS, FOR_INPUT_HOST_DIRECTIVE_INPUTS, FOR_INPUT_HOST_DIRECTIVE_OUTPUTS, FOR_LISTBOX_CONTEXT, FOR_LISTBOX_DEFAULTS, FOR_LISTBOX_HOST_DIRECTIVE_INPUTS, FOR_LISTBOX_HOST_DIRECTIVE_OUTPUTS, FOR_LISTBOX_OPTION, FOR_MENUBAR_CONTEXT, FOR_MENUBAR_DEFAULTS, FOR_MENU_CHECKBOX_ITEM, FOR_MENU_CONTEXT, FOR_MENU_DEFAULTS, FOR_MENU_GROUP_CONTEXT, FOR_MENU_RADIO_GROUP_CONTEXT, FOR_MENU_RADIO_ITEM, FOR_METER_CONTEXT, FOR_METER_DEFAULTS, FOR_NAVIGATION_MENU_CONTEXT, FOR_NAVIGATION_MENU_DEFAULTS, FOR_NAVIGATION_MENU_ITEM_CONTEXT, FOR_NUMBER_INPUT_DEFAULTS, FOR_NUMBER_INPUT_GROUP, FOR_NUMBER_INPUT_HOST_DIRECTIVE_INPUTS, FOR_NUMBER_INPUT_HOST_DIRECTIVE_OUTPUTS, FOR_OTP_INPUT_CONTEXT, FOR_OTP_INPUT_DEFAULTS, FOR_OTP_INPUT_HOST_DIRECTIVE_INPUTS, FOR_OTP_INPUT_HOST_DIRECTIVE_OUTPUTS, FOR_PAGINATION_CONTEXT, FOR_PAGINATION_DEFAULTS, FOR_PANE_RESIZER_DEFAULTS, FOR_POPOVER_CONTEXT, FOR_POPOVER_DEFAULTS, FOR_PROGRESS_CONTEXT, FOR_PROGRESS_DEFAULTS, FOR_RADIO, FOR_RADIO_GROUP_CONTEXT, FOR_RADIO_GROUP_DEFAULTS, FOR_RADIO_GROUP_HOST_DIRECTIVE_INPUTS, FOR_RADIO_GROUP_HOST_DIRECTIVE_OUTPUTS, FOR_SCROLL_AREA_CONTEXT, FOR_SCROLL_AREA_DEFAULTS, FOR_SEARCH_DEFAULTS, FOR_SEARCH_HOST_DIRECTIVE_INPUTS, FOR_SEARCH_HOST_DIRECTIVE_OUTPUTS, FOR_SELECT_CONTEXT, FOR_SELECT_DEFAULTS, FOR_SELECT_HOST_DIRECTIVE_INPUTS, FOR_SELECT_HOST_DIRECTIVE_OUTPUTS, FOR_SELECT_OPTION, FOR_SEPARATOR_DEFAULTS, FOR_SLIDER_CONTEXT, FOR_SLIDER_DEFAULTS, FOR_SLIDER_HOST_DIRECTIVE_INPUTS, FOR_SLIDER_HOST_DIRECTIVE_OUTPUTS, FOR_STEPPER_CONTEXT, FOR_STEPPER_DEFAULTS, FOR_STEPPER_ITEM_CONTEXT, FOR_SWITCH_DEFAULTS, FOR_SWITCH_HOST_DIRECTIVE_INPUTS, FOR_SWITCH_HOST_DIRECTIVE_OUTPUTS, FOR_TABLE_CONTEXT, FOR_TABLE_DEFAULTS, FOR_TABS_CONTEXT, FOR_TABS_DEFAULTS, FOR_TEXTAREA_HOST_DIRECTIVE_INPUTS, FOR_TEXTAREA_HOST_DIRECTIVE_OUTPUTS, FOR_TIME_FIELD_CONTEXT, FOR_TIME_FIELD_DEFAULTS, FOR_TIME_FIELD_HOST_DIRECTIVE_INPUTS, FOR_TIME_FIELD_HOST_DIRECTIVE_OUTPUTS, FOR_TIME_PICKER_CONTEXT, FOR_TIME_PICKER_DEFAULTS, FOR_TIME_PICKER_HOST_DIRECTIVE_INPUTS, FOR_TIME_PICKER_HOST_DIRECTIVE_OUTPUTS, FOR_TIME_VALUE_SOURCE, FOR_TOAST_CONTEXT, FOR_TOAST_DEFAULTS, FOR_TOGGLE_DEFAULTS, FOR_TOGGLE_GROUP_CONTEXT, FOR_TOGGLE_GROUP_HOST_DIRECTIVE_INPUTS, FOR_TOGGLE_GROUP_HOST_DIRECTIVE_OUTPUTS, FOR_TOGGLE_HOST_DIRECTIVE_INPUTS, FOR_TOGGLE_HOST_DIRECTIVE_OUTPUTS, FOR_TOOLBAR_CONTEXT, FOR_TOOLBAR_DEFAULTS, FOR_TOOLTIP_CONTEXT, FOR_TOOLTIP_DEFAULTS, FOR_TREE_CONTAINER_CONTEXT, FOR_TREE_CONTEXT, FOR_TREE_DEFAULTS, FOR_TREE_ITEM_CONTEXT, FOR_TREE_NODE_DRAG_CONTEXT, ForAccordion, ForAccordionContent, ForAccordionItem, ForAccordionTrigger, ForAspectRatio, ForAvatar, ForAvatarFallback, ForAvatarImage, ForBreadcrumbItem, ForBreadcrumbSeparator, ForBreadcrumbs, ForButton, ForCalendar, ForCalendarCell, ForCalendarGrid, ForCalendarGridHeader, ForCalendarHeading, ForCalendarMonthCell, ForCalendarMonthGrid, ForCalendarMonthSelect, ForCalendarNextButton, ForCalendarPrevButton, ForCalendarViewTrigger, ForCalendarYearCell, ForCalendarYearGrid, ForCalendarYearSelect, ForCarousel, ForCarouselDrag, ForCarouselIndicator, ForCarouselIndicators, ForCarouselNext, ForCarouselPrevious, ForCarouselRotationControl, ForCarouselSlide, ForCarouselTrack, ForCarouselViewport, ForCheckbox, ForCheckboxIndicator, ForCombobox, ForComboboxAnchor, ForComboboxChip, ForComboboxChipRemove, ForComboboxChips, ForComboboxClear, ForComboboxContent, ForComboboxEmpty, ForComboboxGroup, ForComboboxGroupLabel, ForComboboxIndicator, ForComboboxInput, ForComboboxList, ForComboboxOption, ForComboboxSeparator, ForComboboxStatus, ForComboboxTrigger, ForContextMenu, ForContextMenuTrigger, ForDateField, ForDateFieldLiteral, ForDateFieldSegment, ForDatePicker, ForDatePickerAnchor, ForDatePickerContent, ForDatePickerTrigger, ForDatePickerValue, ForDialog, ForDialogBackdrop, ForDialogClose, ForDialogDescription, ForDialogManager, ForDialogRef, ForDialogTitle, ForDialogTrigger, ForDisclosure, ForDisclosureContent, ForDisclosureTrigger, ForDragHandle, ForDragPlaceholder, ForDragPreview, ForDraggable, ForDrawer, ForDrawerBackdrop, ForDrawerClose, ForDrawerDescription, ForDrawerHandle, ForDrawerManager, ForDrawerRef, ForDrawerTitle, ForDrawerTrigger, ForDrawerWrapper, ForDropList, ForDropListGroup, ForDropdownMenu, ForDropdownMenuTrigger, ForField, ForFieldControl, ForFieldDescription, ForFieldError, ForFieldset, ForFieldsetLegend, ForFileUpload, ForFileUploadInput, ForFileUploadTrigger, ForFreeDrag, ForHoverCard, ForHoverCardArrow, ForHoverCardContent, ForHoverCardTrigger, ForInput, ForLabel, ForListbox, ForListboxGroup, ForListboxGroupLabel, ForListboxOption, ForListboxOptionIndicator, ForMenuCheckboxItem, ForMenuContent, ForMenuGroup, ForMenuGroupLabel, ForMenuItem, ForMenuItemIndicator, ForMenuRadioGroup, ForMenuRadioItem, ForMenuSeparator, ForMenuSub, ForMenuSubTrigger, ForMenubar, ForMenubarTrigger, ForMeter, ForMeterIndicator, ForNavigationMenu, ForNavigationMenuContent, ForNavigationMenuIndicator, ForNavigationMenuItem, ForNavigationMenuLink, ForNavigationMenuList, ForNavigationMenuTrigger, ForNavigationMenuViewport, ForNumberInput, ForNumberInputDecrement, ForNumberInputGroup, ForNumberInputIncrement, ForOtpInput, ForOtpInputSlot, ForPagination, ForPaginationItem, ForPaginationNext, ForPaginationPrevious, ForPaneResizer, ForPopover, ForPopoverAnchor, ForPopoverArrow, ForPopoverClose, ForPopoverContent, ForPopoverDescription, ForPopoverTitle, ForPopoverTrigger, ForProgress, ForProgressIndicator, ForRadio, ForRadioGroup, ForRadioIndicator, ForScrollArea, ForScrollAreaContent, ForScrollAreaCorner, ForScrollAreaScrollbar, ForScrollAreaThumb, ForScrollAreaViewport, ForSearch, ForSearchClear, ForSelect, ForSelectAnchor, ForSelectContent, ForSelectGroup, ForSelectGroupLabel, ForSelectIndicator, ForSelectOption, ForSelectSeparator, ForSelectTrigger, ForSelectValue, ForSeparator, ForSlider, ForSliderRange, ForSliderThumb, ForSliderTrack, ForStepper, ForStepperCompletedContent, ForStepperContent, ForStepperIndicator, ForStepperItem, ForStepperList, ForStepperNext, ForStepperPrevious, ForStepperProgress, ForStepperSeparator, ForStepperTrigger, ForSwitch, ForTable, ForTableCell, ForTableColumnReorder, ForTableColumnResizer, ForTableHeaderCell, ForTableHeaderRow, ForTableRow, ForTableRowReorder, ForTableRowSelector, ForTableSelectAll, ForTableSortHeader, ForTabs, ForTabsContent, ForTabsList, ForTabsTrigger, ForTextarea, ForTimeField, ForTimeFieldLiteral, ForTimeFieldSegment, ForTimePicker, ForTimePickerAnchor, ForTimePickerContent, ForTimePickerOption, ForTimePickerTrigger, ForTimePickerValue, ForToast, ForToastAction, ForToastClose, ForToastDescription, ForToastManager, ForToastRef, ForToastTitle, ForToastViewport, ForToggle, ForToggleGroup, ForToggleGroupItem, ForToolbar, ForToolbarButton, ForToolbarLink, ForToolbarSeparator, ForTooltip, ForTooltipArrow, ForTooltipContent, ForTooltipTrigger, ForTree, ForTreeGroup, ForTreeItem, ForTreeItemCheckbox, ForTreeItemCheckboxIndicator, ForTreeItemLabel, ForTreeItemToggle, ForTreeNodeDrag, ForTreeNodeDragHandle, NativeDateAdapter, OTP_REGEXP_ONLY_CHARS, OTP_REGEXP_ONLY_DIGITS, OTP_REGEXP_ONLY_DIGITS_AND_CHARS, assertTimeCapable, buildTimeSlots, expandToReveal, forSingleValueField, injectDateAdapter, injectDialogData, injectDrawerData, injectFieldWiring, injectNumberInputGroup, moveItemInArray, moveTreeNode, provideForAccordionDefaults, provideForAspectRatioDefaults, provideForAvatarDefaults, provideForBreadcrumbsDefaults, provideForButtonDefaults, provideForCalendarDefaults, provideForCarouselDefaults, provideForCheckboxDefaults, provideForComboboxDefaults, provideForContextMenuDefaults, provideForDateFieldDefaults, provideForDatePickerDefaults, provideForDialogDefaults, provideForDisclosureDefaults, provideForDragDropDefaults, provideForDrawerDefaults, provideForDropdownMenuDefaults, provideForFieldDefaults, provideForFieldsetDefaults, provideForFileUploadDefaults, provideForHoverCardDefaults, provideForIdSalt, provideForInputDefaults, provideForListboxDefaults, provideForMenuDefaults, provideForMenubarDefaults, provideForMeterDefaults, provideForNavigationMenuDefaults, provideForNumberInputDefaults, provideForOtpInputDefaults, provideForPaginationDefaults, provideForPaneResizerDefaults, provideForPopoverDefaults, provideForProgressDefaults, provideForRadioGroupDefaults, provideForScrollAreaDefaults, provideForSearchDefaults, provideForSelectDefaults, provideForSeparatorDefaults, provideForSliderDefaults, provideForStepperDefaults, provideForSwitchDefaults, provideForTableDefaults, provideForTabsDefaults, provideForTimeFieldDefaults, provideForTimePickerDefaults, provideForToastDefaults, provideForToggleDefaults, provideForToolbarDefaults, provideForTooltipDefaults, provideForTreeDefaults, provideNativeDateAdapter, transferArrayItem };
|
|
19744
|
+
export type { CalendarDateLabelFormatter, CalendarDateRange, CalendarDayCell, CalendarMonthOption, CalendarMonthRow, CalendarView, CalendarWeek, CalendarWeekday, CalendarYearOption, CalendarYearRow, CarouselAlign, DateAdapter, DateFieldSegment, DateSegmentType, SegmentType as DateTimeSegmentType, FieldControlHandle, FieldGranularity, ForAccordionContext, ForAccordionDefaults, ForAccordionItemContext, ForAspectRatioDefaults, ForAvatarContext, ForAvatarDefaults, ForAvatarStatus, ForBreadcrumbsDefaults, ForButtonDefaults, ForCalendarCellHandle, ForCalendarContext, ForCalendarDefaults, ForCalendarMonthCellHandle, ForCalendarYearCellHandle, ForCarouselContext, ForCarouselDefaults, ForCheckboxDefaults, ForComboboxAutocomplete, ForComboboxChipHandle, ForComboboxCloseReason, ForComboboxContext, ForComboboxDefaults, ForComboboxInitialFocus, ForComboboxOptionHandle, ForContextMenuContext, ForContextMenuDefaults, ForDateFieldContext, ForDateFieldDefaults, ForDateFieldSegmentHandle, ForDateFieldSegmentLabels, ForDatePickerContext, ForDatePickerDefaults, ForDialogCloseReason, ForDialogContext, ForDialogDefaults, ForDialogOpenConfig, ForDisclosureContext, ForDisclosureDefaults, ForDragDropDefaults, ForDragDropEvent, ForDragEndEvent, ForDragStartEvent, ForDraggableHandle, ForDrawerCloseReason, ForDrawerContext, ForDrawerDefaults, ForDrawerDragEvent, ForDrawerOpenConfig, ForDrawerReleaseEvent, ForDrawerSide, ForDrawerSnapPoint, ForDropListContext, ForDropdownMenuDefaults, ForFieldContext, ForFieldDefaults, ForFieldsetContext, ForFieldsetDefaults, ForFileUploadContext, ForFileUploadDefaults, ForHoverCardContext, ForHoverCardDefaults, ForInputDefaults, ForListboxContext, ForListboxDefaults, ForMenuCloseReason, ForMenuContext, ForMenuDefaults, ForMenuGroupContext, ForMenuItemHandle, ForMenuRadioGroupContext, ForMenubarContext, ForMenubarDefaults, ForMenubarTriggerHandle, ForMeterContext, ForMeterDefaults, ForMeterQuality, ForNavigationMenuContentHandle, ForNavigationMenuContext, ForNavigationMenuDefaults, ForNavigationMenuItemContext, ForNavigationMenuMotion, ForNavigationMenuTriggerHandle, ForNavigationMenuViewportHandle, ForNumberInputContext, ForNumberInputDefaults, ForNumberInputGroupContext, ForOtpInputContext, ForOtpInputDefaults, ForPaginationContext, ForPaginationDefaults, ForPaneResizerDefaults, ForPopoverContext, ForPopoverDefaults, ForProgressContext, ForProgressDefaults, ForProgressState, ForRadioGroupContext, ForRadioGroupDefaults, ForScrollAreaContext, ForScrollAreaDefaults, ForScrollAreaType, ForScrollbarOrientation, ForSearchDefaults, ForSelectCloseReason, ForSelectContext, ForSelectDefaults, ForSelectInitialFocus, ForSelectOptionHandle, ForSeparatorDefaults, ForSliderContext, ForSliderDefaults, ForSliderThumbHandle, ForStepperContentHandle, ForStepperContext, ForStepperDefaults, ForStepperItemContext, ForStepperItemHandle, ForStepperTriggerHandle, ForSwitchDefaults, ForTableCellHandle, ForTableContext, ForTableDefaults, ForTableRowHandle, ForTabsContext, ForTabsDefaults, ForTimeFieldContext, ForTimeFieldDefaults, ForTimeFieldSegmentHandle, ForTimeFieldSegmentLabels, ForTimePickerCloseReason, ForTimePickerContext, ForTimePickerDefaults, ForTimePickerInitialFocus, ForTimePickerOptionHandle, ForTimeSlot, ForToastCloseReason, ForToastConfig, ForToastContext, ForToastDefaults, ForToastInstance, ForToastSwipeDirection, ForToastTemplateContext, ForToastVariant, ForToggleDefaults, ForToggleGroupContext, ForToggleGroupItemHandle, ForToolbarContext, ForToolbarDefaults, ForToolbarItemHandle, ForTooltipContext, ForTooltipDefaults, ForTreeContainerContext, ForTreeContext, ForTreeDefaults, ForTreeDragDropEvent, ForTreeDropIndicator, ForTreeItemContext, ForTreeItemHandle, ForTreeNodeDragContext, ForTreeVisibleNode, HoverCardScheduleReason, MenuActivationModality, MoveTreeNodeOptions, NavigationMenuScheduleReason, OtpInputType, PaginationItem, SliderArrowKey, StepperActivationMode, StepperMode, SwipeDirection, SwipeEventDetail, TableColumnReorderDescriptor, TableMode, TableResizeDescriptor, TableRowReorderDescriptor, TableSelectAllState, TableSelectionBehavior, TableSelectionMode, TableSortDescriptor, TableSortDirection, TableStickyValue, TabsActivationMode, TimeCapableDateAdapter, TimeFieldSegment, TimeGranularity, TimePickerGranularity, TimeSegmentType, TimeValueSource, TooltipScheduleReason, VetoableEvent, VetoableNativeEvent };
|