@uni-design-system/uni-angular 8.3.0 → 8.4.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.
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { Signal, WritableSignal, InjectionToken, ElementRef, TemplateRef, OnInit, OnDestroy, AfterViewInit } from '@angular/core';
|
|
3
3
|
import * as _uni_design_system_uni_core from '@uni-design-system/uni-core';
|
|
4
|
-
import { IconName, Variant, ContainerColorToken, PaletteConfig, GenerateColorsConfig, Radii, UniTheme, ComponentName, ComponentTheme, NullableSize, ThemeName, ThemeParseResult, TextRole, ContentColorToken, Size, Thickness, NullableStyleExpression, ColorKey, ColorToken, Typeface, Radius, OptionalSize, Border, Shadow, ZIndexableElements, Elevation, RadiiSize, TextColor, JustifyContent, StyleExpression, Orientation, CssLength, OptionalAlignSelf, OptionalAlignItems, OptionalAlignContent, OptionalJustifyContent, OptionalDisplay, OptionalPosition, OptionalOverflow, OptionalFlexDirection, OptionalTextAlign, OptionalWrap, TagTone, ColorScheme, ColorCategory, ThemeShape, ContrastCheck, Colors, GenerationInput } from '@uni-design-system/uni-core';
|
|
4
|
+
import { IconName, Variant, ContainerColorToken, PaletteConfig, GenerateColorsConfig, Radii, UniTheme, ComponentName, ComponentTheme, NullableSize, MotionToken, ThemeName, ThemeParseResult, TextRole, ContentColorToken, Size, Thickness, NullableStyleExpression, ColorKey, ColorToken, Typeface, Radius, Motion, OptionalSize, Border, Shadow, ZIndexableElements, Elevation, RadiiSize, TextColor, JustifyContent, StyleExpression, Orientation, CssLength, OptionalAlignSelf, OptionalAlignItems, OptionalAlignContent, OptionalJustifyContent, OptionalDisplay, OptionalPosition, OptionalOverflow, OptionalFlexDirection, OptionalTextAlign, OptionalWrap, TagTone, ColorScheme, ColorCategory, ThemeShape, ContrastCheck, Colors, GenerationInput } from '@uni-design-system/uni-core';
|
|
5
5
|
import * as _uni_design_system_uni_angular from '@uni-design-system/uni-angular';
|
|
6
6
|
import { FormValueControl, FormCheckboxControl } from '@angular/forms/signals';
|
|
7
7
|
import { CSSObject } from '@emotion/css/create-instance';
|
|
@@ -44,6 +44,43 @@ declare const visuallyHidden: {
|
|
|
44
44
|
declare function motionSafe<T extends object>(styles: T): {
|
|
45
45
|
'@media (prefers-reduced-motion: no-preference)': T;
|
|
46
46
|
};
|
|
47
|
+
interface Announcer {
|
|
48
|
+
/**
|
|
49
|
+
* Current live-region text. Bind it to a visually hidden element that is
|
|
50
|
+
* already in the DOM when the component renders — a region added at the
|
|
51
|
+
* moment it gains text is not reliably announced:
|
|
52
|
+
*
|
|
53
|
+
* ```html
|
|
54
|
+
* <span role="status" aria-live="polite" [class]="srOnly">
|
|
55
|
+
* {{ announcer.message() }}
|
|
56
|
+
* </span>
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
readonly message: Signal<string>;
|
|
60
|
+
/** Announce `text`, even when it repeats what was just announced. */
|
|
61
|
+
announce(text: string): void;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* A polite live region's text, for the running commentary a form control owes
|
|
65
|
+
* a screen reader: commits, clears, refused entries, result counts — changes
|
|
66
|
+
* a sighted user sees but that are otherwise silent.
|
|
67
|
+
*
|
|
68
|
+
* Extracted because five controls (`uni-combobox`, `uni-tag-input`,
|
|
69
|
+
* `uni-time-input`, `uni-date-input`, `uni-calendar`) carried byte-identical
|
|
70
|
+
* copies, including the repeat trick below — the kind of subtlety that is
|
|
71
|
+
* quietly dropped when the sixth control hand-rolls its own.
|
|
72
|
+
*
|
|
73
|
+
* Announcing the same text twice must still be heard: assistive tech reads a
|
|
74
|
+
* live region when its content *changes*, so setting an identical string is a
|
|
75
|
+
* no-op and the second "No match." would be silent. A trailing space breaks
|
|
76
|
+
* the equality without changing a word of what is read. Successive repeats
|
|
77
|
+
* alternate between the padded and unpadded form, so nothing accumulates.
|
|
78
|
+
*
|
|
79
|
+
* Deliberately holds no DOM and no styling: the region belongs to the
|
|
80
|
+
* component's own template, where its placement and visually-hidden class are
|
|
81
|
+
* already the component's business.
|
|
82
|
+
*/
|
|
83
|
+
declare function createAnnouncer(): Announcer;
|
|
47
84
|
|
|
48
85
|
/**
|
|
49
86
|
* Canonical date/time value shapes shared by `uni-calendar`,
|
|
@@ -162,6 +199,18 @@ interface ListboxNavigationConfig {
|
|
|
162
199
|
* nearest enabled option; an all-disabled list never activates.
|
|
163
200
|
*/
|
|
164
201
|
disabled?: (index: number) => boolean;
|
|
202
|
+
/**
|
|
203
|
+
* Let Home/End jump to the ends of the list. Default false.
|
|
204
|
+
*
|
|
205
|
+
* In an editable combobox those keys belong to the caret — APG reserves
|
|
206
|
+
* them for text editing, and a control that steals them makes the text
|
|
207
|
+
* un-navigable while its list is open. Opt in only where focus is *not* in
|
|
208
|
+
* a text field (uni-multi-select-dropdown, whose focus rides the option
|
|
209
|
+
* checkboxes). Nothing is lost by leaving it off: opening with ArrowUp
|
|
210
|
+
* already lands on the last option, ArrowDown on the first, and navigation
|
|
211
|
+
* wraps at both ends.
|
|
212
|
+
*/
|
|
213
|
+
homeEndNavigates?: boolean;
|
|
165
214
|
}
|
|
166
215
|
/**
|
|
167
216
|
* The keyboard and ARIA bookkeeping shared by every combobox-style popup:
|
|
@@ -172,8 +221,9 @@ interface ListboxNavigationConfig {
|
|
|
172
221
|
* Extracted because three controls need the identical contract
|
|
173
222
|
* (`uni-search-input`, `uni-tag-input`, and the multi-select upgrade), and the
|
|
174
223
|
* parts that silently drift between hand-rolled copies all live here: the
|
|
175
|
-
* wrap-around arithmetic
|
|
176
|
-
*
|
|
224
|
+
* wrap-around arithmetic and keeping the active id in sync with the option
|
|
225
|
+
* list. Home/End are opt-in (`homeEndNavigates`) because a text field's caret
|
|
226
|
+
* has the better claim on them.
|
|
177
227
|
*
|
|
178
228
|
* `Enter` and `Escape` are deliberately *not* handled: what they mean depends
|
|
179
229
|
* on the control (submit a search, commit a typed token, clear the field), and
|
|
@@ -187,6 +237,7 @@ declare class ListboxNavigation {
|
|
|
187
237
|
private readonly _activeIndex;
|
|
188
238
|
private readonly wrap;
|
|
189
239
|
private readonly isDisabled;
|
|
240
|
+
private readonly homeEndNavigates;
|
|
190
241
|
/** Whether the popup is showing. Also false when there is nothing to show. */
|
|
191
242
|
readonly open: Signal<boolean>;
|
|
192
243
|
/** Index of the highlighted option, or -1 when none is active. */
|
|
@@ -201,9 +252,9 @@ declare class ListboxNavigation {
|
|
|
201
252
|
hide(): void;
|
|
202
253
|
setActive(index: number): void;
|
|
203
254
|
/**
|
|
204
|
-
* Handle ArrowDown / ArrowUp
|
|
205
|
-
* Returns true when the key was consumed, so
|
|
206
|
-
* its own handling for everything else.
|
|
255
|
+
* Handle ArrowDown / ArrowUp — and Home / End where `homeEndNavigates` is
|
|
256
|
+
* on. Opens the popup if needed. Returns true when the key was consumed, so
|
|
257
|
+
* a caller can fall through to its own handling for everything else.
|
|
207
258
|
*/
|
|
208
259
|
navigate(event: KeyboardEvent): boolean;
|
|
209
260
|
private nextIndex;
|
|
@@ -280,6 +331,28 @@ interface SpotlightStyles {
|
|
|
280
331
|
* `position: fixed`).
|
|
281
332
|
*/
|
|
282
333
|
declare function spotlightStyles(anchor: string, options?: SpotlightOptions): SpotlightStyles;
|
|
334
|
+
/** The rect fields the origin computation reads — satisfied by DOMRect. */
|
|
335
|
+
interface AnchorRect {
|
|
336
|
+
top: number;
|
|
337
|
+
right: number;
|
|
338
|
+
bottom: number;
|
|
339
|
+
left: number;
|
|
340
|
+
width: number;
|
|
341
|
+
height: number;
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* Transform origin for a panel's open/close scale animation, derived from
|
|
345
|
+
* where the panel **actually** rendered relative to its anchor — not from the
|
|
346
|
+
* requested placement. `position-try-fallbacks` lets the browser flip a panel
|
|
347
|
+
* at viewport edges, and a statically mapped origin then animates from the
|
|
348
|
+
* wrong corner (a `bottom-end` picker flipped above its field would still
|
|
349
|
+
* scale from `top right`). Measure after the popover is shown and apply the
|
|
350
|
+
* result as an inline style.
|
|
351
|
+
*
|
|
352
|
+
* Returns keyword pairs like `'top right'` / `'bottom center'`, or `null`
|
|
353
|
+
* when the panel has no box yet (e.g. `display: none`, or jsdom).
|
|
354
|
+
*/
|
|
355
|
+
declare function transformOriginFor(panel: AnchorRect, trigger: AnchorRect): string | null;
|
|
283
356
|
|
|
284
357
|
/** Placement → `transform-origin`, so scale animations grow from the anchor. */
|
|
285
358
|
declare const TRANSFORM_ORIGINS: Record<Placement, string>;
|
|
@@ -300,8 +373,14 @@ declare function isToggleOpen(event: Event): boolean;
|
|
|
300
373
|
* top layer: `transition-behavior: allow-discrete` over the `hidden` keys plus
|
|
301
374
|
* `display`/`overlay`, the shown state under `:popover-open`, and
|
|
302
375
|
* `@starting-style` so entry transitions run from the hidden state.
|
|
376
|
+
*
|
|
377
|
+
* `display` and `overlay` must ride along or the element cannot animate into
|
|
378
|
+
* and out of the top layer at all — it would simply appear and vanish.
|
|
379
|
+
*
|
|
380
|
+
* `timingFunction` is omitted from the output when not given, leaving the CSS
|
|
381
|
+
* initial value (`ease`), so callers that never asked for one are unaffected.
|
|
303
382
|
*/
|
|
304
|
-
declare function discreteOverlayTransition(durationMs: number, hidden: Record<string, string | number>, shown: Record<string, string | number
|
|
383
|
+
declare function discreteOverlayTransition(durationMs: number, hidden: Record<string, string | number>, shown: Record<string, string | number>, timingFunction?: string): Record<string, unknown>;
|
|
305
384
|
/**
|
|
306
385
|
* Returns focus to `target` when an overlay closes while focus was inside its
|
|
307
386
|
* panel (or was dropped on `<body>` by the top layer closing), so keyboard
|
|
@@ -540,6 +619,7 @@ declare class ThemeService {
|
|
|
540
619
|
borders: Signal<Partial<Record<string, string>>>;
|
|
541
620
|
shadows: Signal<Partial<Record<string, string>>>;
|
|
542
621
|
icons: Signal<_uni_design_system_uni_core.Icons>;
|
|
622
|
+
motions: Signal<Partial<Record<string, MotionToken>>>;
|
|
543
623
|
constructor();
|
|
544
624
|
/**
|
|
545
625
|
* Activate a registered theme. Returns false — touching nothing, persisting
|
|
@@ -632,6 +712,12 @@ declare class ThemeService {
|
|
|
632
712
|
colorPalette: () => Partial<Record<string, string>>;
|
|
633
713
|
color(color?: ColorKey): NullableStyleExpression;
|
|
634
714
|
getDashedBorder(color: ColorKey | undefined, radius: Radius | undefined): NullableStyleExpression;
|
|
715
|
+
/**
|
|
716
|
+
* Resolves a named motion primitive. Falls back to `popup` and then to a
|
|
717
|
+
* hard default, so a theme that predates the motion scale — or names a
|
|
718
|
+
* token that isn't there — still animates rather than snapping.
|
|
719
|
+
*/
|
|
720
|
+
motion(token: Motion | undefined): MotionToken;
|
|
635
721
|
radius(size: Radius | undefined): NullableStyleExpression;
|
|
636
722
|
getRadiusLeft(size: Radius | undefined): NullableStyleExpression;
|
|
637
723
|
getRadiusRight(size: Radius | undefined): NullableStyleExpression;
|
|
@@ -994,7 +1080,8 @@ declare class UniCalendarComponent extends BaseComponent<UniCalendarOptions> imp
|
|
|
994
1080
|
/** Hover/focus candidate painting the preview band while a range is pending. */
|
|
995
1081
|
protected readonly previewDate: _angular_core.WritableSignal<string>;
|
|
996
1082
|
/** Live-region text; selections are otherwise silent for a screen reader. */
|
|
997
|
-
|
|
1083
|
+
/** Commits, clears and refusals are otherwise silent to a screen reader. */
|
|
1084
|
+
protected readonly announcer: _uni_design_system_uni_angular.Announcer;
|
|
998
1085
|
protected readonly resolvedLocale: _angular_core.Signal<string>;
|
|
999
1086
|
protected readonly resolvedWeekStart: _angular_core.Signal<number>;
|
|
1000
1087
|
/**
|
|
@@ -1040,7 +1127,6 @@ declare class UniCalendarComponent extends BaseComponent<UniCalendarOptions> imp
|
|
|
1040
1127
|
private focusDay;
|
|
1041
1128
|
private pickFocus;
|
|
1042
1129
|
private firstEnabledInView;
|
|
1043
|
-
private announce;
|
|
1044
1130
|
private readonly daySize;
|
|
1045
1131
|
protected readonly className: _angular_core.Signal<string>;
|
|
1046
1132
|
protected readonly navClass: _angular_core.Signal<string>;
|
|
@@ -1096,7 +1182,16 @@ interface UniCalloutOptions {
|
|
|
1096
1182
|
spotlightRadius: Radius;
|
|
1097
1183
|
/** Spotlight ring width, px. */
|
|
1098
1184
|
ringWidth: number;
|
|
1099
|
-
|
|
1185
|
+
/**
|
|
1186
|
+
* Named motion primitive for the open/close fade. Defaults to `panel`.
|
|
1187
|
+
*/
|
|
1188
|
+
motion?: Motion;
|
|
1189
|
+
/**
|
|
1190
|
+
* @deprecated Use `motion` and retime the token instead — one edit covers
|
|
1191
|
+
* every panel rather than this one. Still honoured when set, and wins over
|
|
1192
|
+
* `motion` so existing themes are unaffected. Removed next major.
|
|
1193
|
+
*/
|
|
1194
|
+
transitionMs?: number;
|
|
1100
1195
|
}
|
|
1101
1196
|
|
|
1102
1197
|
/**
|
|
@@ -1178,6 +1273,12 @@ declare class UniCalloutComponent extends BaseComponent<UniCalloutOptions> {
|
|
|
1178
1273
|
/** A stray click shouldn't kill onboarding: nudge the panel instead. */
|
|
1179
1274
|
protected onBackdropClick(): void;
|
|
1180
1275
|
private readonly spotlight;
|
|
1276
|
+
/**
|
|
1277
|
+
* Timing for the open/close fade and the teardown that follows it. The
|
|
1278
|
+
* deprecated `transitionMs` wins when a theme still sets it, so existing
|
|
1279
|
+
* themes keep their timing; otherwise the `motion` token decides.
|
|
1280
|
+
*/
|
|
1281
|
+
private readonly motion;
|
|
1181
1282
|
protected readonly scrimClassName: _angular_core.Signal<string>;
|
|
1182
1283
|
protected readonly windowClassName: _angular_core.Signal<string>;
|
|
1183
1284
|
protected stripClassName(side: (typeof this.stripSides)[number]): string;
|
|
@@ -1221,6 +1322,10 @@ interface UniCardOptions {
|
|
|
1221
1322
|
border?: Border;
|
|
1222
1323
|
/** Optional elevation shadow token; cards are flat by default. */
|
|
1223
1324
|
elevation?: Elevation;
|
|
1325
|
+
/**
|
|
1326
|
+
* @deprecated Never read by `uni-card` — setting it has no effect and never
|
|
1327
|
+
* had. Removed next major; nothing needs to replace it.
|
|
1328
|
+
*/
|
|
1224
1329
|
transitionSpeed?: number;
|
|
1225
1330
|
}
|
|
1226
1331
|
|
|
@@ -1298,7 +1403,9 @@ interface UniComboboxOptions {
|
|
|
1298
1403
|
activeColor?: ContainerColorToken;
|
|
1299
1404
|
/** Scroll height in rows — the list scrolls past this, never truncates. */
|
|
1300
1405
|
maxVisibleOptions?: number;
|
|
1301
|
-
descriptionColor?: ContentColorToken;
|
|
1406
|
+
descriptionColor?: ContentColorToken; /** Named motion primitive for the suggestion popup's open animation.
|
|
1407
|
+
Defaults to `popup` — the token `uni-dropdown` uses. */
|
|
1408
|
+
motion?: Motion;
|
|
1302
1409
|
}
|
|
1303
1410
|
|
|
1304
1411
|
/**
|
|
@@ -1354,9 +1461,14 @@ declare class UniComboboxComponent<T> extends BaseComponent<UniComboboxOptions>
|
|
|
1354
1461
|
private readonly listRef;
|
|
1355
1462
|
/** Cancelled on destroy — a late tick would emit on a destroyed OutputRef. */
|
|
1356
1463
|
private queryTimer?;
|
|
1464
|
+
/** Ties the popup to the field so the browser tracks it in the top layer. */
|
|
1465
|
+
private readonly anchor;
|
|
1466
|
+
/** `manual` where the top layer is usable, else null — see the popup helper. */
|
|
1467
|
+
protected readonly popupAttr: "manual";
|
|
1357
1468
|
constructor();
|
|
1358
1469
|
protected readonly srOnly: string;
|
|
1359
|
-
|
|
1470
|
+
/** Commits, clears and refusals are otherwise silent to a screen reader. */
|
|
1471
|
+
protected readonly announcer: _uni_design_system_uni_angular.Announcer;
|
|
1360
1472
|
/** null → the field shows the committed label; a string is an uncommitted draft. */
|
|
1361
1473
|
protected readonly draft: _angular_core.WritableSignal<string>;
|
|
1362
1474
|
/**
|
|
@@ -1407,7 +1519,6 @@ declare class UniComboboxComponent<T> extends BaseComponent<UniComboboxOptions>
|
|
|
1407
1519
|
private closeList;
|
|
1408
1520
|
private scrollToActive;
|
|
1409
1521
|
private setFieldText;
|
|
1410
|
-
private announce;
|
|
1411
1522
|
protected readonly className: _angular_core.Signal<string>;
|
|
1412
1523
|
protected readonly rowClass: _angular_core.Signal<string>;
|
|
1413
1524
|
protected readonly inputClass: _angular_core.Signal<string>;
|
|
@@ -1577,7 +1688,8 @@ declare class UniDateInputComponent extends BaseComponent<UniDateInputOptions> i
|
|
|
1577
1688
|
protected readonly srOnly: string;
|
|
1578
1689
|
/** A refused commit — styles the field and sets aria-invalid until edited. */
|
|
1579
1690
|
protected readonly draftInvalid: _angular_core.WritableSignal<boolean>;
|
|
1580
|
-
|
|
1691
|
+
/** Commits, clears and refusals are otherwise silent to a screen reader. */
|
|
1692
|
+
protected readonly announcer: _uni_design_system_uni_angular.Announcer;
|
|
1581
1693
|
protected readonly toggleElement: _angular_core.Signal<any>;
|
|
1582
1694
|
protected readonly popupOpen: _angular_core.Signal<boolean>;
|
|
1583
1695
|
protected readonly resolvedLocale: _angular_core.Signal<string>;
|
|
@@ -1603,7 +1715,6 @@ declare class UniDateInputComponent extends BaseComponent<UniDateInputOptions> i
|
|
|
1603
1715
|
/** The popup is a focus-holding dialog: Tab cycles inside it (APG pattern). */
|
|
1604
1716
|
protected onPopupKeydown(event: KeyboardEvent): void;
|
|
1605
1717
|
private setFieldText;
|
|
1606
|
-
private announce;
|
|
1607
1718
|
protected readonly className: _angular_core.Signal<string>;
|
|
1608
1719
|
protected readonly rowClass: _angular_core.Signal<string>;
|
|
1609
1720
|
protected readonly inputClass: _angular_core.Signal<string>;
|
|
@@ -1884,12 +1995,13 @@ interface UniDropdownOptions {
|
|
|
1884
1995
|
borderRadius: Radius;
|
|
1885
1996
|
shadow: Shadow;
|
|
1886
1997
|
color: ContainerColorToken;
|
|
1998
|
+
/** Named motion primitive for the open/close animation. */
|
|
1999
|
+
motion: Motion;
|
|
1887
2000
|
}
|
|
1888
2001
|
|
|
1889
2002
|
type AriaHasPopup = 'menu' | 'listbox' | 'dialog' | 'grid' | 'tree' | 'true';
|
|
1890
2003
|
declare class UniDropdownComponent extends BaseComponent<UniDropdownOptions> implements OnInit, OnDestroy {
|
|
1891
2004
|
private renderer;
|
|
1892
|
-
private delay;
|
|
1893
2005
|
showing: _angular_core.WritableSignal<boolean>;
|
|
1894
2006
|
trigger: _angular_core.InputSignal<HTMLElement>;
|
|
1895
2007
|
placement: _angular_core.InputSignal<Placement>;
|
|
@@ -1915,17 +2027,19 @@ declare class UniDropdownComponent extends BaseComponent<UniDropdownOptions> imp
|
|
|
1915
2027
|
dropdownRef: ElementRef<HTMLDivElement>;
|
|
1916
2028
|
private get _trigger();
|
|
1917
2029
|
private get _dropdown();
|
|
1918
|
-
private transformOriginMap;
|
|
1919
2030
|
dropdownClass: _angular_core.Signal<string>;
|
|
1920
2031
|
/** The element that receives focus and carries the ARIA popup state. */
|
|
1921
2032
|
private get _focusTarget();
|
|
1922
2033
|
ngOnInit(): void;
|
|
1923
2034
|
/**
|
|
1924
|
-
*
|
|
1925
|
-
*
|
|
1926
|
-
*
|
|
2035
|
+
* Scale the open/close animation from the corner touching the trigger,
|
|
2036
|
+
* wherever the browser actually placed the panel. The static
|
|
2037
|
+
* `TRANSFORM_ORIGINS` entry covers only the *requested* placement; with
|
|
2038
|
+
* `position-try-fallbacks` the panel may have flipped at a viewport edge,
|
|
2039
|
+
* and a `bottom-end` picker rendered above its field would otherwise still
|
|
2040
|
+
* animate from the top-right corner.
|
|
1927
2041
|
*/
|
|
1928
|
-
private
|
|
2042
|
+
private syncTransformOrigin;
|
|
1929
2043
|
toggleDropdown(): void;
|
|
1930
2044
|
hideDropdown(): void;
|
|
1931
2045
|
ngOnDestroy(): void;
|
|
@@ -1936,13 +2050,20 @@ declare class UniDropdownComponent extends BaseComponent<UniDropdownOptions> imp
|
|
|
1936
2050
|
/** Theme-level options for `uni-expand`. */
|
|
1937
2051
|
interface UniExpandOptions {
|
|
1938
2052
|
/**
|
|
1939
|
-
*
|
|
1940
|
-
*
|
|
1941
|
-
*
|
|
1942
|
-
*
|
|
1943
|
-
*
|
|
1944
|
-
*
|
|
1945
|
-
|
|
2053
|
+
* Named motion primitive for the reveal. Defaults to `reveal`, whose
|
|
2054
|
+
* duration is the *base* speed at a 240px-tall region — the actual duration
|
|
2055
|
+
* scales with content height (√-of-height, clamped — `expandDuration` in
|
|
2056
|
+
* uni-core) so short regions stay snappy and tall ones aren't rushed. Its
|
|
2057
|
+
* easing drives the animation curve, and `uni-expand-toggle`'s chevron
|
|
2058
|
+
* reads the same token so trigger and region move on one clock.
|
|
2059
|
+
*/
|
|
2060
|
+
motion?: Motion;
|
|
2061
|
+
/**
|
|
2062
|
+
* Base reveal/collapse duration in seconds.
|
|
2063
|
+
*
|
|
2064
|
+
* @deprecated Use `motion` and retime the `reveal` token instead — one edit
|
|
2065
|
+
* covers the region and its toggle together. Still honoured when set, and
|
|
2066
|
+
* wins over `motion`, so existing themes are unaffected. Removed next major.
|
|
1946
2067
|
*/
|
|
1947
2068
|
transitionSpeed?: number;
|
|
1948
2069
|
}
|
|
@@ -1986,6 +2107,14 @@ declare class UniExpandComponent extends BaseComponent<UniExpandOptions> {
|
|
|
1986
2107
|
* (`[style.transition-duration]="expand.duration() + 's'"`).
|
|
1987
2108
|
*/
|
|
1988
2109
|
readonly duration: _angular_core.Signal<number>;
|
|
2110
|
+
/**
|
|
2111
|
+
* Base speed in seconds, before the size-aware scaling above. The
|
|
2112
|
+
* deprecated `transitionSpeed` option wins when a theme still sets it;
|
|
2113
|
+
* otherwise the `motion` token's duration (ms) converts to seconds.
|
|
2114
|
+
*/
|
|
2115
|
+
private readonly baseSpeed;
|
|
2116
|
+
/** Curve for the reveal, from the same token as the speed. */
|
|
2117
|
+
private readonly easing;
|
|
1989
2118
|
protected readonly cssDuration: _angular_core.Signal<string>;
|
|
1990
2119
|
/**
|
|
1991
2120
|
* A custom element is `display: inline` by default, which would lay the
|
|
@@ -2012,8 +2141,8 @@ declare class UniExpandComponent extends BaseComponent<UniExpandOptions> {
|
|
|
2012
2141
|
* `duration`, so the classes stay static while timing tracks the theme and
|
|
2013
2142
|
* the content's size through signals alone.
|
|
2014
2143
|
*/
|
|
2015
|
-
expandAnimation: string
|
|
2016
|
-
collapseAnimation: string
|
|
2144
|
+
expandAnimation: _angular_core.Signal<string>;
|
|
2145
|
+
collapseAnimation: _angular_core.Signal<string>;
|
|
2017
2146
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniExpandComponent, never>;
|
|
2018
2147
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniExpandComponent, "uni-expand", never, { "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; "transitionSpeed": { "alias": "transitionSpeed"; "required": false; "isSignal": true; }; }, { "collapsed": "collapsedChange"; }, never, ["*"], true, never>;
|
|
2019
2148
|
}
|
|
@@ -2042,7 +2171,9 @@ declare class UniExpandToggleComponent {
|
|
|
2042
2171
|
* region is size-scaled or overridden per instance.
|
|
2043
2172
|
*/
|
|
2044
2173
|
transitionSpeed: _angular_core.InputSignal<number>;
|
|
2045
|
-
/** Fallback clock when no `transitionSpeed` is bound: the `expand`
|
|
2174
|
+
/** Fallback clock when no `transitionSpeed` is bound: the `expand` entry's
|
|
2175
|
+
motion token — the same one the region itself reads. */
|
|
2176
|
+
private readonly themeService;
|
|
2046
2177
|
private readonly expandOptions;
|
|
2047
2178
|
private readonly speed;
|
|
2048
2179
|
/**
|
|
@@ -2145,6 +2276,54 @@ declare class UniDebounceInputComponent {
|
|
|
2145
2276
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniDebounceInputComponent, "uni-debounce-input", never, { "inputName": { "alias": "inputName"; "required": false; "isSignal": true; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; "debounceTime": { "alias": "debounceTime"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "role": { "alias": "role"; "required": false; "isSignal": true; }; "ariaExpanded": { "alias": "ariaExpanded"; "required": false; "isSignal": true; }; "ariaControls": { "alias": "ariaControls"; "required": false; "isSignal": true; }; "ariaActivedescendant": { "alias": "ariaActivedescendant"; "required": false; "isSignal": true; }; }, { "change": "change"; }, never, ["[pre-input]", "[post-input]"], true, never>;
|
|
2146
2277
|
}
|
|
2147
2278
|
|
|
2279
|
+
/**
|
|
2280
|
+
* Whether the browser can keep a top-layer popup attached to its field.
|
|
2281
|
+
*
|
|
2282
|
+
* The top layer and anchor positioning must be adopted together, and support
|
|
2283
|
+
* for them does not arrive together: Safari shipped `popover` in 17 but
|
|
2284
|
+
* `position-anchor` only in 26. Promoting the popup without anchor support
|
|
2285
|
+
* would strand it — a top-layer element has no positioned ancestor, so the
|
|
2286
|
+
* fallback's `position: absolute; top: 100%` would resolve against the
|
|
2287
|
+
* viewport and drop the list a full screen height down the page. So the
|
|
2288
|
+
* `popover` attribute is gated on this too, not just the anchored CSS.
|
|
2289
|
+
*
|
|
2290
|
+
* Undefined `CSS` (jsdom) reads as unsupported, which is also what keeps the
|
|
2291
|
+
* popup in the normal flow — and the component specs unchanged — under test.
|
|
2292
|
+
*/
|
|
2293
|
+
declare const supportsAnchoredPopup: () => boolean;
|
|
2294
|
+
/** `popover` attribute value for a listbox popup, or null where unsupported.
|
|
2295
|
+
Always `manual`: these controls already own dismissal (focusout, Escape,
|
|
2296
|
+
commit), and `auto`'s light-dismiss fires on pointerdown outside the
|
|
2297
|
+
popup — which includes their own field, closing the list behind the
|
|
2298
|
+
component's back on every click into the input. */
|
|
2299
|
+
declare const listboxPopupAttr: () => "manual" | null;
|
|
2300
|
+
/**
|
|
2301
|
+
* A document-unique `anchor-name`, plus the style fragment that puts it on the
|
|
2302
|
+
* field wrapper. Spread `style` into the wrapper's `css()` and pass `name` to
|
|
2303
|
+
* {@link listboxPopupStyles}.
|
|
2304
|
+
*/
|
|
2305
|
+
declare function newListboxAnchor(): {
|
|
2306
|
+
name: string;
|
|
2307
|
+
style: CSSObject;
|
|
2308
|
+
};
|
|
2309
|
+
/**
|
|
2310
|
+
* Shows the popup in the top layer as soon as it renders, and scales its
|
|
2311
|
+
* entry animation out of the edge it actually opened from.
|
|
2312
|
+
*
|
|
2313
|
+
* The popups are `@if`-rendered, and a `popover` element is `display: none`
|
|
2314
|
+
* until `showPopover()` runs — so appearing in the DOM is not enough. Runs on
|
|
2315
|
+
* every render pass; `showPopover()` on an already-open popup throws, which is
|
|
2316
|
+
* the cheapest way to ask "is it open?".
|
|
2317
|
+
*
|
|
2318
|
+
* The origin is measured rather than assumed: `position-try-fallbacks` may
|
|
2319
|
+
* have flipped the popup above its field near the bottom of the viewport, and
|
|
2320
|
+
* the static `top center` would then grow it from the wrong edge. Measuring
|
|
2321
|
+
* forces layout, so it lands before the first frame of the transition.
|
|
2322
|
+
*
|
|
2323
|
+
* Call from an injection context (a field initializer or the constructor);
|
|
2324
|
+
* the component's host element is the anchor.
|
|
2325
|
+
*/
|
|
2326
|
+
declare function promoteListboxPopup(ref: Signal<ElementRef<HTMLElement> | undefined>): void;
|
|
2148
2327
|
/**
|
|
2149
2328
|
* The theme options every listbox popup shares — the "list trio" plus the
|
|
2150
2329
|
* active-option fill. Component option interfaces (searchInput, tagInput,
|
|
@@ -2161,11 +2340,14 @@ interface UniListboxPopupOptions {
|
|
|
2161
2340
|
/** Active/hover option fill; the on-color pair is derived. Must contrast
|
|
2162
2341
|
with `listColor` or keyboard navigation turns invisible. */
|
|
2163
2342
|
activeColor?: ColorKey;
|
|
2343
|
+
/** Named motion primitive for the open animation. Defaults to `popup`, the
|
|
2344
|
+
same token `uni-dropdown` uses, so every panel in a form opens alike. */
|
|
2345
|
+
motion?: Motion;
|
|
2164
2346
|
}
|
|
2165
2347
|
/**
|
|
2166
|
-
* Style block for the popup behind every `ListboxNavigation` consumer:
|
|
2167
|
-
*
|
|
2168
|
-
*
|
|
2348
|
+
* Style block for the popup behind every `ListboxNavigation` consumer: a
|
|
2349
|
+
* `ul[role="listbox"]` under its field wrapper, with the shared option chrome
|
|
2350
|
+
* and active/hover highlight.
|
|
2169
2351
|
*
|
|
2170
2352
|
* Extracted because four components (`uni-search-input`, `uni-tag-input`,
|
|
2171
2353
|
* `uni-time-input`, `uni-combobox`) carried hand-rolled copies, and the parts
|
|
@@ -2173,12 +2355,19 @@ interface UniListboxPopupOptions {
|
|
|
2173
2355
|
* trio, and the `activeColor` pair that themes re-point when their container
|
|
2174
2356
|
* tokens don't contrast (see the Wellsourced overrides).
|
|
2175
2357
|
*
|
|
2358
|
+
* Pass `anchor` (from {@link newListboxAnchor}) to get the top-layer
|
|
2359
|
+
* positioning where the browser supports it. Without it — or on a browser that
|
|
2360
|
+
* lacks anchor positioning — the popup stays absolutely positioned under a
|
|
2361
|
+
* `position: relative` wrapper, which clips inside `overflow: hidden`
|
|
2362
|
+
* ancestors but at least stays on its field.
|
|
2363
|
+
*
|
|
2176
2364
|
* Compose extras with the array form — `css([listboxPopupStyles(…), {…}])` —
|
|
2177
2365
|
* so a component's own `& [role="option"]` block cascades after this one
|
|
2178
2366
|
* instead of replacing it (an object spread would overwrite the key).
|
|
2179
2367
|
*/
|
|
2180
|
-
declare const listboxPopupStyles: (theme: ThemeService, options: UniListboxPopupOptions, { maxHeight }?: {
|
|
2368
|
+
declare const listboxPopupStyles: (theme: ThemeService, options: UniListboxPopupOptions, { maxHeight, anchor }?: {
|
|
2181
2369
|
maxHeight?: number;
|
|
2370
|
+
anchor?: string;
|
|
2182
2371
|
}) => CSSObject;
|
|
2183
2372
|
|
|
2184
2373
|
declare class UniIconComponent {
|
|
@@ -2267,7 +2456,11 @@ interface UniInputBoxOptions {
|
|
|
2267
2456
|
border: Border;
|
|
2268
2457
|
errorBorder: Border;
|
|
2269
2458
|
borderRadius: Radius;
|
|
2270
|
-
|
|
2459
|
+
/**
|
|
2460
|
+
* @deprecated Never read by `uni-input-box` — setting it has no effect and
|
|
2461
|
+
* never had. Optional now, removed next major.
|
|
2462
|
+
*/
|
|
2463
|
+
transitionSpeed?: number;
|
|
2271
2464
|
shadow?: Shadow;
|
|
2272
2465
|
errorShadow?: Shadow;
|
|
2273
2466
|
height?: string | number;
|
|
@@ -2483,7 +2676,15 @@ interface UniMenuItemOptions {
|
|
|
2483
2676
|
hoverColor?: ContainerColorToken;
|
|
2484
2677
|
/** Trailing symbol marking the active item; undefined/'' renders none. */
|
|
2485
2678
|
activeSymbol?: string;
|
|
2486
|
-
/**
|
|
2679
|
+
/** Named motion primitive for the hover/focus fill. Defaults to `control`;
|
|
2680
|
+
omit both this and `transitionSpeed` for no transition at all. */
|
|
2681
|
+
motion?: Motion;
|
|
2682
|
+
/**
|
|
2683
|
+
* Hover/focus transition in seconds; 0 switches instantly.
|
|
2684
|
+
*
|
|
2685
|
+
* @deprecated Use `motion` and retime the `control` token instead. Still
|
|
2686
|
+
* honoured when set, and wins over `motion`. Removed next major.
|
|
2687
|
+
*/
|
|
2487
2688
|
transitionSpeed?: number;
|
|
2488
2689
|
}
|
|
2489
2690
|
|
|
@@ -2546,6 +2747,7 @@ declare class UniMultiSelectComponent<T = unknown> {
|
|
|
2546
2747
|
protected readonly optionsWithSelections: _angular_core.Signal<Option<T>[]>;
|
|
2547
2748
|
protected readonly className: string;
|
|
2548
2749
|
handleCheck(checked: boolean, value: T): void;
|
|
2750
|
+
/** Selects every *enabled* option — a disabled option is not committable. */
|
|
2549
2751
|
selectAll(): void;
|
|
2550
2752
|
deselectAll(): void;
|
|
2551
2753
|
optionWrapper: string;
|
|
@@ -2599,6 +2801,10 @@ declare class UniMultiSelectDropdownComponent<T = unknown> extends BaseComponent
|
|
|
2599
2801
|
* arithmetic — wrapping, Home/End, and never pointing past a list the
|
|
2600
2802
|
* filter has narrowed — the same contract `uni-search-input` and
|
|
2601
2803
|
* `uni-tag-input` use, so the keys behave identically across all three.
|
|
2804
|
+
*
|
|
2805
|
+
* `disabled` indexes into `filteredOptions`, matching `count`: arrows step
|
|
2806
|
+
* over disabled rows and Home/End land on the nearest enabled one, so the
|
|
2807
|
+
* focus target is always a checkbox that can actually take focus.
|
|
2602
2808
|
*/
|
|
2603
2809
|
protected readonly list: _uni_design_system_uni_angular.ListboxNavigation;
|
|
2604
2810
|
/** Announced with the selection so the count is not left to guesswork. */
|
|
@@ -2617,6 +2823,11 @@ declare class UniMultiSelectDropdownComponent<T = unknown> extends BaseComponent
|
|
|
2617
2823
|
protected onPanelKeydown(event: KeyboardEvent): void;
|
|
2618
2824
|
/** Keeps the active index in step when focus lands on a row by pointer. */
|
|
2619
2825
|
protected onOptionFocus(index: number): void;
|
|
2826
|
+
/**
|
|
2827
|
+
* Selects every *enabled* option. A disabled option is not committable, so
|
|
2828
|
+
* "select all" must not commit one on the user's behalf — the same rule
|
|
2829
|
+
* `toggleOption` and the keyboard path follow.
|
|
2830
|
+
*/
|
|
2620
2831
|
selectAll(): void;
|
|
2621
2832
|
deselectAll(): void;
|
|
2622
2833
|
protected isOptionSelected(option: Option<T>): _angular_core.Signal<boolean>;
|
|
@@ -2655,7 +2866,16 @@ declare class UniNotificationBadgeComponent extends BaseComponent<UniNotificatio
|
|
|
2655
2866
|
interface UniAlertOptions {
|
|
2656
2867
|
defaultVariant: Variant;
|
|
2657
2868
|
borderRadius: Radius;
|
|
2658
|
-
|
|
2869
|
+
/** Named motion primitive for the enter/leave transition. Defaults to
|
|
2870
|
+
`notification`. */
|
|
2871
|
+
motion?: Motion;
|
|
2872
|
+
/**
|
|
2873
|
+
* Enter/leave transition in seconds.
|
|
2874
|
+
*
|
|
2875
|
+
* @deprecated Use `motion` and retime the `notification` token instead.
|
|
2876
|
+
* Still honoured when set, and wins over `motion`. Removed next major.
|
|
2877
|
+
*/
|
|
2878
|
+
transitionSpeed?: number;
|
|
2659
2879
|
topPosition: string | number;
|
|
2660
2880
|
elevation: Elevation;
|
|
2661
2881
|
}
|
|
@@ -2669,6 +2889,11 @@ declare class UniAlertComponent extends BaseComponent<UniAlertOptions> implement
|
|
|
2669
2889
|
alertRef?: ElementRef<HTMLDialogElement>;
|
|
2670
2890
|
private readonly alertState;
|
|
2671
2891
|
private readonly effectiveVariant;
|
|
2892
|
+
/**
|
|
2893
|
+
* Timing for the enter/leave transition. The deprecated `transitionSpeed`
|
|
2894
|
+
* (seconds) wins when a theme still sets it.
|
|
2895
|
+
*/
|
|
2896
|
+
protected readonly motion: _angular_core.Signal<_uni_design_system_uni_core.MotionToken>;
|
|
2672
2897
|
protected readonly alertClass: _angular_core.Signal<string>;
|
|
2673
2898
|
private readonly fadeOut;
|
|
2674
2899
|
constructor();
|
|
@@ -2709,7 +2934,16 @@ declare class NotificationsComponent {
|
|
|
2709
2934
|
|
|
2710
2935
|
interface UniSnackbarOptions {
|
|
2711
2936
|
bottomPosition: number;
|
|
2712
|
-
|
|
2937
|
+
/** Named motion primitive for the enter/leave transition. Defaults to
|
|
2938
|
+
`notification`. */
|
|
2939
|
+
motion?: Motion;
|
|
2940
|
+
/**
|
|
2941
|
+
* Transition duration as a CSS time, e.g. `'0.35s'`.
|
|
2942
|
+
*
|
|
2943
|
+
* @deprecated Use `motion` and retime the `notification` token instead.
|
|
2944
|
+
* Still honoured when set, and wins over `motion`. Removed next major.
|
|
2945
|
+
*/
|
|
2946
|
+
transitionDelay?: string;
|
|
2713
2947
|
autoCloseDelay: number;
|
|
2714
2948
|
}
|
|
2715
2949
|
|
|
@@ -2736,12 +2970,20 @@ declare class UniSnackbarComponent extends BaseComponent<UniSnackbarOptions> imp
|
|
|
2736
2970
|
snackbarRef: _angular_core.Signal<ElementRef<any>>;
|
|
2737
2971
|
private get _snackbar();
|
|
2738
2972
|
constructor();
|
|
2973
|
+
/**
|
|
2974
|
+
* Timing for the enter/leave transition. The deprecated `transitionDelay`
|
|
2975
|
+
* wins when a theme still sets it — it is a CSS time string, so `0.35s` and
|
|
2976
|
+
* `350ms` both parse back to milliseconds.
|
|
2977
|
+
*/
|
|
2978
|
+
protected readonly motion: _angular_core.Signal<_uni_design_system_uni_core.MotionToken>;
|
|
2739
2979
|
protected readonly snackbarClass: _angular_core.Signal<string>;
|
|
2740
2980
|
fadeOut: string;
|
|
2741
2981
|
ngAfterViewInit(): void;
|
|
2742
2982
|
private get _timeout();
|
|
2743
2983
|
open(): void;
|
|
2744
2984
|
close(): void;
|
|
2985
|
+
/** Drops out of the top layer. Called once the closing fade has run. */
|
|
2986
|
+
private hide;
|
|
2745
2987
|
protected pauseTimer(): void;
|
|
2746
2988
|
protected resumeTimer(): void;
|
|
2747
2989
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniSnackbarComponent, never>;
|
|
@@ -2802,7 +3044,8 @@ interface UniPopoverOptions {
|
|
|
2802
3044
|
/** Hover open delay in tooltip mode, ms. */
|
|
2803
3045
|
tooltipOpenDelay: number;
|
|
2804
3046
|
/** Pointer-leave close delay in tooltip mode, ms. */
|
|
2805
|
-
tooltipCloseDelay: number;
|
|
3047
|
+
tooltipCloseDelay: number; /** Named motion primitive for the open/close animation. */
|
|
3048
|
+
motion: Motion;
|
|
2806
3049
|
}
|
|
2807
3050
|
|
|
2808
3051
|
/**
|
|
@@ -2955,9 +3198,14 @@ interface UniRadioOptions {
|
|
|
2955
3198
|
ringColor?: ColorKey;
|
|
2956
3199
|
/** Circle background token. */
|
|
2957
3200
|
fillColor?: ColorKey;
|
|
3201
|
+
/** Named motion primitive for the dot's grow/retract and the ring's color
|
|
3202
|
+
change. Defaults to `control`; a token with `duration: 0` is instant. */
|
|
3203
|
+
motion?: Motion;
|
|
2958
3204
|
/**
|
|
2959
|
-
* Seconds for the dot's grow/retract and the ring's color change
|
|
2960
|
-
*
|
|
3205
|
+
* Seconds for the dot's grow/retract and the ring's color change.
|
|
3206
|
+
*
|
|
3207
|
+
* @deprecated Use `motion` and retime the `control` token instead. Still
|
|
3208
|
+
* honoured when set, and wins over `motion`. Removed next major.
|
|
2961
3209
|
*/
|
|
2962
3210
|
transitionSpeed?: number;
|
|
2963
3211
|
}
|
|
@@ -3054,7 +3302,9 @@ interface UniSearchInputOptions {
|
|
|
3054
3302
|
/** Suggestion list radius token. */
|
|
3055
3303
|
listBorderRadius?: Radius;
|
|
3056
3304
|
/** Cap on rendered suggestions. */
|
|
3057
|
-
maxSuggestions?: number;
|
|
3305
|
+
maxSuggestions?: number; /** Named motion primitive for the suggestion popup's open animation.
|
|
3306
|
+
Defaults to `popup` — the token `uni-dropdown` uses. */
|
|
3307
|
+
motion?: Motion;
|
|
3058
3308
|
}
|
|
3059
3309
|
|
|
3060
3310
|
/**
|
|
@@ -3079,6 +3329,12 @@ declare class UniSearchInputComponent extends BaseComponent<UniSearchInputOption
|
|
|
3079
3329
|
search: _angular_core.OutputEmitterRef<string>;
|
|
3080
3330
|
suggestionSelected: _angular_core.OutputEmitterRef<string>;
|
|
3081
3331
|
protected readonly field: _angular_core.Signal<UniDebounceInputComponent>;
|
|
3332
|
+
private readonly listRef;
|
|
3333
|
+
/** Ties the popup to the field so the browser tracks it in the top layer. */
|
|
3334
|
+
private readonly anchor;
|
|
3335
|
+
/** `manual` where the top layer is usable, else null — see the popup helper. */
|
|
3336
|
+
protected readonly popupAttr: "manual";
|
|
3337
|
+
constructor();
|
|
3082
3338
|
protected readonly visibleSuggestions: _angular_core.Signal<string[]>;
|
|
3083
3339
|
/** Shared combobox bookkeeping: open state, active option, ARIA ids. */
|
|
3084
3340
|
protected readonly list: _uni_design_system_uni_angular.ListboxNavigation;
|
|
@@ -3137,6 +3393,8 @@ declare class UniSelectComponent<T> implements FormValueControl<T | null> {
|
|
|
3137
3393
|
|
|
3138
3394
|
/** Placeholder geometry: a text line block, a rectangle, or a circle. */
|
|
3139
3395
|
type SkeletonShape = 'text' | 'rect' | 'circle';
|
|
3396
|
+
/** Direction the shimmer band travels across a block. */
|
|
3397
|
+
type SkeletonSweepDirection = 'ltr' | 'rtl';
|
|
3140
3398
|
/** Theme-level options for `uni-skeleton`, resolved by token name. */
|
|
3141
3399
|
interface UniSkeletonOptions {
|
|
3142
3400
|
/** Base placeholder color. */
|
|
@@ -3149,6 +3407,10 @@ interface UniSkeletonOptions {
|
|
|
3149
3407
|
animation?: 'shimmer' | 'none';
|
|
3150
3408
|
/** Shimmer sweep duration in seconds. */
|
|
3151
3409
|
duration?: number;
|
|
3410
|
+
/** Direction the shimmer band travels. Default: 'ltr'. */
|
|
3411
|
+
direction?: SkeletonSweepDirection;
|
|
3412
|
+
/** Shimmer band width as a percentage of the block. Default: 40. */
|
|
3413
|
+
highlightWidth?: number;
|
|
3152
3414
|
/** Vertical gap between text lines, as a spacing token. */
|
|
3153
3415
|
gap?: OptionalSize;
|
|
3154
3416
|
}
|
|
@@ -3158,6 +3420,11 @@ interface UniSkeletonOptions {
|
|
|
3158
3420
|
* lines (the last line shortened, as real text would be), `rect` and `circle`
|
|
3159
3421
|
* render fixed shapes. The shimmer only animates when the user allows motion;
|
|
3160
3422
|
* it degrades to static blocks under `prefers-reduced-motion`.
|
|
3423
|
+
*
|
|
3424
|
+
* Color and radius are theme options with per-instance overrides, because one
|
|
3425
|
+
* app routinely needs several: skeletons on a card and on the page background
|
|
3426
|
+
* want different tints, and a pill placeholder wants a different corner than
|
|
3427
|
+
* the text bars beside it.
|
|
3161
3428
|
*/
|
|
3162
3429
|
declare class UniSkeletonComponent extends BaseComponent<UniSkeletonOptions> {
|
|
3163
3430
|
shape: _angular_core.InputSignal<SkeletonShape>;
|
|
@@ -3167,13 +3434,31 @@ declare class UniSkeletonComponent extends BaseComponent<UniSkeletonOptions> {
|
|
|
3167
3434
|
height: _angular_core.InputSignal<string | number>;
|
|
3168
3435
|
/** Number of text lines (text shape only). */
|
|
3169
3436
|
lines: _angular_core.InputSignal<number>;
|
|
3437
|
+
/** Base color token; overrides the theme option for this skeleton. */
|
|
3438
|
+
color: _angular_core.InputSignal<string>;
|
|
3439
|
+
/** Shimmer highlight token; overrides the theme option for this skeleton. */
|
|
3440
|
+
highlightColor: _angular_core.InputSignal<string>;
|
|
3441
|
+
/** Radius token; overrides the theme option. Circles are always round. */
|
|
3442
|
+
borderRadius: _angular_core.InputSignal<string>;
|
|
3443
|
+
/**
|
|
3444
|
+
* Announces the skeleton to assistive tech as a polite status. Leave unset
|
|
3445
|
+
* when a container already carries `aria-busy` — the skeleton then stays
|
|
3446
|
+
* `aria-hidden`, as a decorative placeholder should.
|
|
3447
|
+
*/
|
|
3448
|
+
label: _angular_core.InputSignal<string>;
|
|
3449
|
+
protected readonly srOnly: string;
|
|
3170
3450
|
private readonly cssSize;
|
|
3171
3451
|
protected readonly resolvedHeight: _angular_core.Signal<string>;
|
|
3172
3452
|
protected readonly lineWidths: _angular_core.Signal<string[]>;
|
|
3453
|
+
/**
|
|
3454
|
+
* The band is `bandWidth`% of the block, so it clears the block after
|
|
3455
|
+
* travelling `100 / bandWidth` of its own width — the offsets below are
|
|
3456
|
+
* percentages of the band, not of the block.
|
|
3457
|
+
*/
|
|
3173
3458
|
private readonly sweep;
|
|
3174
3459
|
protected readonly className: _angular_core.Signal<string>;
|
|
3175
3460
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniSkeletonComponent, never>;
|
|
3176
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniSkeletonComponent, "uni-skeleton", never, { "shape": { "alias": "shape"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "lines": { "alias": "lines"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3461
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniSkeletonComponent, "uni-skeleton", never, { "shape": { "alias": "shape"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "lines": { "alias": "lines"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "highlightColor": { "alias": "highlightColor"; "required": false; "isSignal": true; }; "borderRadius": { "alias": "borderRadius"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3177
3462
|
}
|
|
3178
3463
|
|
|
3179
3464
|
/** Theme-level options for `uni-slider`, resolved by token name. */
|
|
@@ -3554,7 +3839,9 @@ interface UniTagInputOptions {
|
|
|
3554
3839
|
/** Active/hover suggestion fill; the on-color pair is derived. Must
|
|
3555
3840
|
contrast with `listColor` or keyboard navigation turns invisible. */
|
|
3556
3841
|
activeColor?: ContainerColorToken;
|
|
3557
|
-
maxSuggestions?: number;
|
|
3842
|
+
maxSuggestions?: number; /** Named motion primitive for the suggestion popup's open animation.
|
|
3843
|
+
Defaults to `popup` — the token `uni-dropdown` uses. */
|
|
3844
|
+
motion?: Motion;
|
|
3558
3845
|
}
|
|
3559
3846
|
|
|
3560
3847
|
declare class UniTagInputComponent extends BaseComponent<UniTagInputOptions> implements FormValueControl<UniTagItem[]> {
|
|
@@ -3588,12 +3875,18 @@ declare class UniTagInputComponent extends BaseComponent<UniTagInputOptions> imp
|
|
|
3588
3875
|
rejected: _angular_core.OutputEmitterRef<UniTagRejection>;
|
|
3589
3876
|
private readonly inputRef;
|
|
3590
3877
|
private readonly chipRefs;
|
|
3878
|
+
private readonly listRef;
|
|
3879
|
+
/** Ties the popup to the field so the browser tracks it in the top layer. */
|
|
3880
|
+
private readonly anchor;
|
|
3881
|
+
/** `manual` where the top layer is usable, else null — see the popup helper. */
|
|
3882
|
+
protected readonly popupAttr: "manual";
|
|
3883
|
+
constructor();
|
|
3591
3884
|
/** Uncommitted text in the field. */
|
|
3592
3885
|
protected readonly draft: _angular_core.WritableSignal<string>;
|
|
3593
3886
|
/** Index of the focused chip, or -1 when focus is in the text input. */
|
|
3594
3887
|
protected readonly focusedChip: _angular_core.WritableSignal<number>;
|
|
3595
|
-
/**
|
|
3596
|
-
protected readonly
|
|
3888
|
+
/** Adds, removes and refusals are otherwise silent to a screen reader. */
|
|
3889
|
+
protected readonly announcer: _uni_design_system_uni_angular.Announcer;
|
|
3597
3890
|
protected readonly hintId: string;
|
|
3598
3891
|
protected readonly srOnly: string;
|
|
3599
3892
|
private queryTimer?;
|
|
@@ -3615,7 +3908,6 @@ declare class UniTagInputComponent extends BaseComponent<UniTagInputOptions> imp
|
|
|
3615
3908
|
private reject;
|
|
3616
3909
|
protected removeAt(index: number, focus?: 'left' | 'right' | 'input'): void;
|
|
3617
3910
|
private countNoun;
|
|
3618
|
-
private announce;
|
|
3619
3911
|
protected focusInput(): void;
|
|
3620
3912
|
private focusChip;
|
|
3621
3913
|
protected onInputKeydown(event: KeyboardEvent): void;
|
|
@@ -3629,7 +3921,11 @@ declare class UniTagInputComponent extends BaseComponent<UniTagInputOptions> imp
|
|
|
3629
3921
|
protected selectSuggestion(suggestion: UniTagSuggestion): void;
|
|
3630
3922
|
private commitDraft;
|
|
3631
3923
|
private setDraft;
|
|
3924
|
+
/** The host is the popup's anchor — the box the list mirrors the width of,
|
|
3925
|
+
and the one its entry animation is measured against. The wrapper below
|
|
3926
|
+
has the same geometry but is only the fallback's positioning context. */
|
|
3632
3927
|
protected readonly className: _angular_core.Signal<string>;
|
|
3928
|
+
protected readonly wrapperClass: _angular_core.Signal<string>;
|
|
3633
3929
|
protected readonly fieldClass: _angular_core.Signal<string>;
|
|
3634
3930
|
protected readonly inputClass: _angular_core.Signal<string>;
|
|
3635
3931
|
protected readonly listClass: _angular_core.Signal<string>;
|
|
@@ -3781,7 +4077,9 @@ interface UniTimeInputOptions {
|
|
|
3781
4077
|
/** Active/hover option fill; the on-color pair is derived. Must contrast
|
|
3782
4078
|
with `listColor` or keyboard navigation turns invisible. */
|
|
3783
4079
|
activeColor?: ContainerColorToken;
|
|
3784
|
-
maxVisibleOptions?: number;
|
|
4080
|
+
maxVisibleOptions?: number; /** Named motion primitive for the suggestion popup's open animation.
|
|
4081
|
+
Defaults to `popup` — the token `uni-dropdown` uses. */
|
|
4082
|
+
motion?: Motion;
|
|
3785
4083
|
}
|
|
3786
4084
|
|
|
3787
4085
|
/**
|
|
@@ -3824,10 +4122,16 @@ declare class UniTimeInputComponent extends BaseComponent<UniTimeInputOptions> i
|
|
|
3824
4122
|
private readonly host;
|
|
3825
4123
|
private readonly inputRef;
|
|
3826
4124
|
private readonly listRef;
|
|
4125
|
+
/** Ties the popup to the field so the browser tracks it in the top layer. */
|
|
4126
|
+
private readonly anchor;
|
|
4127
|
+
/** `manual` where the top layer is usable, else null — see the popup helper. */
|
|
4128
|
+
protected readonly popupAttr: "manual";
|
|
4129
|
+
constructor();
|
|
3827
4130
|
protected readonly srOnly: string;
|
|
3828
4131
|
/** A refused commit — styles the field and sets aria-invalid until edited. */
|
|
3829
4132
|
protected readonly draftInvalid: _angular_core.WritableSignal<boolean>;
|
|
3830
|
-
|
|
4133
|
+
/** Commits, clears and refusals are otherwise silent to a screen reader. */
|
|
4134
|
+
protected readonly announcer: _uni_design_system_uni_angular.Announcer;
|
|
3831
4135
|
protected readonly resolvedLocale: _angular_core.Signal<string>;
|
|
3832
4136
|
protected readonly resolvedHour12: _angular_core.Signal<boolean>;
|
|
3833
4137
|
/** The listed times: pinned `slots` verbatim, else the generated step grid. */
|
|
@@ -3853,7 +4157,6 @@ declare class UniTimeInputComponent extends BaseComponent<UniTimeInputOptions> i
|
|
|
3853
4157
|
private scrollToActive;
|
|
3854
4158
|
private scrollToIndex;
|
|
3855
4159
|
private setFieldText;
|
|
3856
|
-
private announce;
|
|
3857
4160
|
protected readonly className: _angular_core.Signal<string>;
|
|
3858
4161
|
protected readonly rowClass: _angular_core.Signal<string>;
|
|
3859
4162
|
protected readonly inputClass: _angular_core.Signal<string>;
|
|
@@ -4018,7 +4321,9 @@ declare class UniTourComponent extends BaseComponent<UniTourOptions> {
|
|
|
4018
4321
|
}>;
|
|
4019
4322
|
protected readonly calloutOpen: _angular_core.WritableSignal<boolean>;
|
|
4020
4323
|
protected readonly satisfied: _angular_core.WritableSignal<boolean>;
|
|
4021
|
-
|
|
4324
|
+
/** Repeats must still be heard: the same gate message can come round
|
|
4325
|
+
again on a later step. */
|
|
4326
|
+
protected readonly announcer: _uni_design_system_uni_angular.Announcer;
|
|
4022
4327
|
protected readonly resolvedTarget: _angular_core.WritableSignal<HTMLElement>;
|
|
4023
4328
|
private readonly presentedIndex;
|
|
4024
4329
|
private gateCleanup;
|
|
@@ -4072,5 +4377,5 @@ declare class DragAndDropDirective {
|
|
|
4072
4377
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<DragAndDropDirective, "[uni-drag-n-drop], [dragAndDrop]", never, {}, { "onFileDropped": "onFileDropped"; }, never, never, true, never>;
|
|
4073
4378
|
}
|
|
4074
4379
|
|
|
4075
|
-
export { BodyRenderDirective, ConfirmationDialogComponent, DragAndDropDirective, FOCUSABLE_SELECTOR, ListboxNavigation, LocalStorageService, NotificationService, NotificationsComponent, RippleDirective, TRANSFORM_ORIGINS, ThemeService, UNI_THEMES, UniAlertComponent, UniAppBarComponent, UniAvatarComponent, UniAvatarGroupComponent, UniBackgroundComponent, UniBadgeComponent, UniBaseDatasource, UniBoxComponent, UniBreadcrumbComponent, UniButtonComponent, UniButtonGroupComponent, UniCalendarComponent, UniCalloutComponent, UniCardComponent, UniCardContentComponent, UniCardHeaderComponent, UniCenterComponent, UniCheckboxComponent, UniComboboxComponent, UniDataSearchComponent, UniDataTableComponent, UniDateInputComponent, UniDateTimeInputComponent, UniDebounceInputComponent, UniDialogButtonsComponent, UniDialogComponent, UniDialogHeaderComponent, UniDividerComponent, UniDrawerComponent, UniDropdownComponent, UniExpandAreaComponent, UniExpandComponent, UniExpandToggleComponent, UniFileDropZoneComponent, UniGridAreaComponent, UniGridComponent, UniIconButtonComponent, UniIconComponent, UniInputBoxComponent, UniInputComponent, UniJsonViewComponent, UniMenuComponent, UniMultiSelectComponent, UniMultiSelectDropdownComponent, UniNotificationBadgeComponent, UniPaginatorComponent, UniPopoverComponent, UniProgressBarComponent, UniProgressGaugeComponent, UniRadioComponent, UniRecordDatasource, UniRowComponent, UniScrollAreaComponent, UniSearchInputComponent, UniSelectComponent, UniServerSideDatasource, UniSkeletonComponent, UniSliderComponent, UniSnackbarComponent, UniSortHeaderComponent, UniStackComponent, UniStatComponent, UniSymbolComponent, UniTabComponent, UniTabsComponent, UniTagComponent, UniTagInputComponent, UniTextComponent, UniTextareaComponent, UniThemeBuilderComponent, UniThemeSwitchComponent, UniTimeInputComponent, UniToggleComponent, UniTooltipComponent, UniTourComponent, UniWrapComponent, acceptableFile, addDays, addMonths, anchorArrowStyles, anchorStyles, buildMonthGrid, clearAnchorName, createListboxNavigation, dayOfWeek, daysInMonth, discreteOverlayTransition, focusableElements, formatDate, formatMonthHeading, formatTime, getFileExtension, inclusiveDayCount, isDivider, isToggleOpen, isValidDate, isoDate, joinDateTime, listboxPopupStyles, localeDatePlaceholder, localeDefaultHour12, localeFieldOrder, localeMonthNames, localeWeekStart, monthOf, motionSafe, newAnchorName, parseDateText, parseTimeText, resolveElement, resolveFocusTarget, restoreOverlayFocus, setAnchorName, splitDateTime, spotlightStyles, timeSlots, todayIso, uniqueId, useTimer, visuallyHidden, weekdayNames };
|
|
4076
|
-
export type { Alert, AnchorOffset, BrandPaletteConfig, BreadcrumbItem, ButtonGroupConfig, ButtonGroupItem, ColumnDefinition, Confirmation, DataLoader, DrawerMode, DrawerPosition, ImagePosition, ListboxNavigationConfig, MenuDivider, MenuItem, MenuItemWithLabel, MenuItemWithTemplate, Option, Options, PageRequest, PageResponse, Placement, ScrollbarAppearance, SkeletonShape, Snackbar, Sort, SortDirection, SpotlightOptions, SpotlightStyles, UniAppBarOptions, UniAvatarGroupOptions, UniAvatarOptions, UniBreadcrumbOptions, UniCalendarMarker, UniCalendarMode, UniCalendarOptions, UniCalendarValue, UniCalloutDismissal, UniCalloutOptions, UniCheckboxOptions, UniComboboxOptions, UniComboboxRejection, UniDataSearchOptions, UniDataTableOptions, UniDatasource, UniDate, UniDateInputOptions, UniDateInputRejection, UniDateRange, UniDateTime, UniDateTimeInputOptions, UniDrawerOptions, UniExpandOptions, UniInputBoxOptions, UniListboxPopupOptions, UniMenuItemOptions, UniMenuOptions, UniMonthGridCell, UniMultiSelectDropdownOptions, UniNotificationBadgeOptions, UniPaginatorOptions, UniPopoverOptions, UniRadioOption, UniRadioOptions, UniSearchInputOptions, UniSkeletonOptions, UniSliderOptions, UniStatOptions, UniTabsOptions, UniTagInputOptions, UniTagItem, UniTagOptions, UniTagRejection, UniTagSuggestion, UniTagValue, UniTextareaOptions, UniTime, UniTimeInputOptions, UniTimeInputRejection, UniToggleOptions, UniTourAdvance, UniTourOptions, UniTourStep, UniWeekdayName };
|
|
4380
|
+
export { BodyRenderDirective, ConfirmationDialogComponent, DragAndDropDirective, FOCUSABLE_SELECTOR, ListboxNavigation, LocalStorageService, NotificationService, NotificationsComponent, RippleDirective, TRANSFORM_ORIGINS, ThemeService, UNI_THEMES, UniAlertComponent, UniAppBarComponent, UniAvatarComponent, UniAvatarGroupComponent, UniBackgroundComponent, UniBadgeComponent, UniBaseDatasource, UniBoxComponent, UniBreadcrumbComponent, UniButtonComponent, UniButtonGroupComponent, UniCalendarComponent, UniCalloutComponent, UniCardComponent, UniCardContentComponent, UniCardHeaderComponent, UniCenterComponent, UniCheckboxComponent, UniComboboxComponent, UniDataSearchComponent, UniDataTableComponent, UniDateInputComponent, UniDateTimeInputComponent, UniDebounceInputComponent, UniDialogButtonsComponent, UniDialogComponent, UniDialogHeaderComponent, UniDividerComponent, UniDrawerComponent, UniDropdownComponent, UniExpandAreaComponent, UniExpandComponent, UniExpandToggleComponent, UniFileDropZoneComponent, UniGridAreaComponent, UniGridComponent, UniIconButtonComponent, UniIconComponent, UniInputBoxComponent, UniInputComponent, UniJsonViewComponent, UniMenuComponent, UniMultiSelectComponent, UniMultiSelectDropdownComponent, UniNotificationBadgeComponent, UniPaginatorComponent, UniPopoverComponent, UniProgressBarComponent, UniProgressGaugeComponent, UniRadioComponent, UniRecordDatasource, UniRowComponent, UniScrollAreaComponent, UniSearchInputComponent, UniSelectComponent, UniServerSideDatasource, UniSkeletonComponent, UniSliderComponent, UniSnackbarComponent, UniSortHeaderComponent, UniStackComponent, UniStatComponent, UniSymbolComponent, UniTabComponent, UniTabsComponent, UniTagComponent, UniTagInputComponent, UniTextComponent, UniTextareaComponent, UniThemeBuilderComponent, UniThemeSwitchComponent, UniTimeInputComponent, UniToggleComponent, UniTooltipComponent, UniTourComponent, UniWrapComponent, acceptableFile, addDays, addMonths, anchorArrowStyles, anchorStyles, buildMonthGrid, clearAnchorName, createAnnouncer, createListboxNavigation, dayOfWeek, daysInMonth, discreteOverlayTransition, focusableElements, formatDate, formatMonthHeading, formatTime, getFileExtension, inclusiveDayCount, isDivider, isToggleOpen, isValidDate, isoDate, joinDateTime, listboxPopupAttr, listboxPopupStyles, localeDatePlaceholder, localeDefaultHour12, localeFieldOrder, localeMonthNames, localeWeekStart, monthOf, motionSafe, newAnchorName, newListboxAnchor, parseDateText, parseTimeText, promoteListboxPopup, resolveElement, resolveFocusTarget, restoreOverlayFocus, setAnchorName, splitDateTime, spotlightStyles, supportsAnchoredPopup, timeSlots, todayIso, transformOriginFor, uniqueId, useTimer, visuallyHidden, weekdayNames };
|
|
4381
|
+
export type { Alert, AnchorOffset, AnchorRect, Announcer, BrandPaletteConfig, BreadcrumbItem, ButtonGroupConfig, ButtonGroupItem, ColumnDefinition, Confirmation, DataLoader, DrawerMode, DrawerPosition, ImagePosition, ListboxNavigationConfig, MenuDivider, MenuItem, MenuItemWithLabel, MenuItemWithTemplate, Option, Options, PageRequest, PageResponse, Placement, ScrollbarAppearance, SkeletonShape, SkeletonSweepDirection, Snackbar, Sort, SortDirection, SpotlightOptions, SpotlightStyles, UniAppBarOptions, UniAvatarGroupOptions, UniAvatarOptions, UniBreadcrumbOptions, UniCalendarMarker, UniCalendarMode, UniCalendarOptions, UniCalendarValue, UniCalloutDismissal, UniCalloutOptions, UniCheckboxOptions, UniComboboxOptions, UniComboboxRejection, UniDataSearchOptions, UniDataTableOptions, UniDatasource, UniDate, UniDateInputOptions, UniDateInputRejection, UniDateRange, UniDateTime, UniDateTimeInputOptions, UniDrawerOptions, UniExpandOptions, UniInputBoxOptions, UniListboxPopupOptions, UniMenuItemOptions, UniMenuOptions, UniMonthGridCell, UniMultiSelectDropdownOptions, UniNotificationBadgeOptions, UniPaginatorOptions, UniPopoverOptions, UniRadioOption, UniRadioOptions, UniSearchInputOptions, UniSkeletonOptions, UniSliderOptions, UniStatOptions, UniTabsOptions, UniTagInputOptions, UniTagItem, UniTagOptions, UniTagRejection, UniTagSuggestion, UniTagValue, UniTextareaOptions, UniTime, UniTimeInputOptions, UniTimeInputRejection, UniToggleOptions, UniTourAdvance, UniTourOptions, UniTourStep, UniWeekdayName };
|