@uni-design-system/uni-angular 8.4.0 → 9.0.1
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/CHANGELOG.md +249 -0
- package/fesm2022/uni-design-system-uni-angular.mjs +6651 -6520
- package/fesm2022/uni-design-system-uni-angular.mjs.map +1 -1
- package/package.json +2 -2
- package/schematics/ng-add/index.js +47 -32
- package/types/uni-design-system-uni-angular.d.ts +1919 -1840
|
@@ -1,9 +1,9 @@
|
|
|
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,
|
|
4
|
+
import { IconName, Variant, ContainerColorToken, PaletteConfig, GenerateColorsConfig, Radii, UniTheme, ComponentName, ComponentTheme, MotionToken, ThemeName, ThemeParseResult, TextRole, ContentColorToken, Size, NullableSize, Thickness, NullableStyleExpression, ColorKey, ColorToken, Typeface, Radius, Motion, OptionalSize, Border, Shadow, ZIndexableElements, OptionalAlignSelf, OptionalAlignItems, OptionalAlignContent, OptionalJustifyContent, OptionalDisplay, OptionalPosition, OptionalOverflow, OptionalFlexDirection, OptionalTextAlign, OptionalWrap, TextColor, TagTone, Elevation, RadiiSize, JustifyContent, StyleExpression, Orientation, CssLength, ColorScheme, ColorCategory, ThemeShape, ContrastCheck, Colors, GenerationInput } from '@uni-design-system/uni-core';
|
|
5
|
+
import { FormCheckboxControl, FormValueControl } from '@angular/forms/signals';
|
|
5
6
|
import * as _uni_design_system_uni_angular from '@uni-design-system/uni-angular';
|
|
6
|
-
import { FormValueControl, FormCheckboxControl } from '@angular/forms/signals';
|
|
7
7
|
import { CSSObject } from '@emotion/css/create-instance';
|
|
8
8
|
|
|
9
9
|
/**
|
|
@@ -613,7 +613,7 @@ declare class ThemeService {
|
|
|
613
613
|
component: <T>(componentName: ComponentName) => Signal<ComponentTheme<T>>;
|
|
614
614
|
colors: Signal<Partial<Record<string, string>>>;
|
|
615
615
|
typeFaces: Signal<Record<string, _uni_design_system_uni_core.TypeFaceDefinition>>;
|
|
616
|
-
spacing: Signal<
|
|
616
|
+
spacing: Signal<_uni_design_system_uni_core.Spacing>;
|
|
617
617
|
thicknesses: Signal<Partial<Record<string, string | number>>>;
|
|
618
618
|
radii: Signal<Partial<Record<string, string>>>;
|
|
619
619
|
borders: Signal<Partial<Record<string, string>>>;
|
|
@@ -669,7 +669,22 @@ declare class ThemeService {
|
|
|
669
669
|
componentStyle: (componentName: ComponentName, variant: Variant, size: Size) => Signal<{
|
|
670
670
|
[x: string]: string | number | _uni_design_system_uni_core.StyleExpression;
|
|
671
671
|
}>;
|
|
672
|
+
/**
|
|
673
|
+
* Resolve a spacing token to its CSS value. `'none'` resolves through the
|
|
674
|
+
* scale like any other token — it is `0`, not the string `'none'`, which is
|
|
675
|
+
* not a valid length and was silently dropped wherever it landed.
|
|
676
|
+
*/
|
|
672
677
|
getSpacing: (size: NullableSize) => string | number;
|
|
678
|
+
private readonly warnedSpacing;
|
|
679
|
+
/**
|
|
680
|
+
* Resolve a spacing token against the active theme.
|
|
681
|
+
*
|
|
682
|
+
* The scale is open — a theme may name steps beyond `xxs`…`xxl` — so a
|
|
683
|
+
* mistyped token cannot be a compile error. It would otherwise vanish
|
|
684
|
+
* silently, since an `undefined` CSS value is simply dropped, so say so once
|
|
685
|
+
* per token in dev.
|
|
686
|
+
*/
|
|
687
|
+
private resolveSpacing;
|
|
673
688
|
getThickness: (thickness: Thickness) => string | number;
|
|
674
689
|
getContentColor: (token: ContainerColorToken, useVariant?: boolean) => string;
|
|
675
690
|
colorPair: (token?: ContainerColorToken, colorVariant?: boolean) => NullableStyleExpression;
|
|
@@ -730,6 +745,12 @@ declare class ThemeService {
|
|
|
730
745
|
paddingRight(size: OptionalSize): NullableStyleExpression;
|
|
731
746
|
paddingTop(size: OptionalSize): NullableStyleExpression;
|
|
732
747
|
paddingBottom(size: OptionalSize): NullableStyleExpression;
|
|
748
|
+
/**
|
|
749
|
+
* Inline-axis margin only — `'auto'` passes through for centering, anything
|
|
750
|
+
* else resolves as a spacing token. Block margins are deliberately absent
|
|
751
|
+
* (they collapse and fight `gap`).
|
|
752
|
+
*/
|
|
753
|
+
marginInline(margin: 'auto' | OptionalSize): NullableStyleExpression;
|
|
733
754
|
border(border: Border | undefined): NullableStyleExpression;
|
|
734
755
|
borderTop(border: Border | undefined): NullableStyleExpression;
|
|
735
756
|
borderBottom(border: Border | undefined): NullableStyleExpression;
|
|
@@ -745,6 +766,12 @@ declare class ThemeService {
|
|
|
745
766
|
getComponentOptions: <T>(componentName: ComponentName) => _angular_core.WritableSignal<T>;
|
|
746
767
|
componentOptions: (componentName: ComponentName) => Signal<unknown>;
|
|
747
768
|
style(prop: string, value: string | number | undefined): NullableStyleExpression;
|
|
769
|
+
/**
|
|
770
|
+
* Like {@link style}, but only `undefined` means "unset" — so a meaningful
|
|
771
|
+
* `0` survives. `flex-shrink: 0` is the whole point of the input, and
|
|
772
|
+
* {@link style}'s truthiness check would drop it.
|
|
773
|
+
*/
|
|
774
|
+
styleIfSet(prop: string, value: string | number | undefined): NullableStyleExpression;
|
|
748
775
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThemeService, never>;
|
|
749
776
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ThemeService>;
|
|
750
777
|
}
|
|
@@ -765,221 +792,192 @@ declare class BaseComponent<T = unknown> {
|
|
|
765
792
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<BaseComponent<any>, "ng-component", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
766
793
|
}
|
|
767
794
|
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
/** Rule under the bar, as a border primitive token. */
|
|
775
|
-
divider?: Border;
|
|
776
|
-
/** Title typography token. */
|
|
777
|
-
typeface?: Typeface;
|
|
778
|
-
/** Horizontal padding, as a spacing token. */
|
|
779
|
-
padding?: OptionalSize;
|
|
780
|
-
/** Space between bar children, as a spacing token. */
|
|
781
|
-
gap?: OptionalSize;
|
|
782
|
-
/** Optional elevation shadow token (e.g. 'raised'). */
|
|
783
|
-
elevation?: Elevation;
|
|
784
|
-
}
|
|
785
|
-
|
|
786
|
-
/**
|
|
787
|
-
* Horizontal application bar: project leading controls (menu button, logo)
|
|
788
|
-
* with the `leading` attribute, actions with `trailing` (pushed to the far
|
|
789
|
-
* edge), and either pass `title` or project custom center content. Surface,
|
|
790
|
-
* divider, height, typography and spacing all resolve from `appBar` tokens.
|
|
791
|
-
* Place it inside your page's `<header>` landmark.
|
|
792
|
-
*/
|
|
793
|
-
declare class UniAppBarComponent extends BaseComponent<UniAppBarOptions> {
|
|
794
|
-
/** Bar title; alternatively project your own center content. */
|
|
795
|
-
title: _angular_core.InputSignal<string>;
|
|
796
|
-
/** Stick the bar to the top of its scroll container. */
|
|
797
|
-
sticky: _angular_core.InputSignal<boolean>;
|
|
798
|
-
protected readonly className: _angular_core.Signal<string>;
|
|
799
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniAppBarComponent, never>;
|
|
800
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniAppBarComponent, "uni-app-bar", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; }, {}, never, ["[leading]", "*", "[trailing]"], true, never>;
|
|
795
|
+
interface UniCheckboxOptions {
|
|
796
|
+
size?: string | number;
|
|
797
|
+
borderRadius?: string | number;
|
|
798
|
+
/** Unchecked box background token. */
|
|
799
|
+
boxColor?: ColorKey;
|
|
800
|
+
focusRingGap?: string | number;
|
|
801
801
|
}
|
|
802
802
|
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
/**
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
803
|
+
declare class UniCheckboxComponent extends BaseComponent<UniCheckboxOptions> implements FormCheckboxControl {
|
|
804
|
+
readonly checked: _angular_core.ModelSignal<boolean>;
|
|
805
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
806
|
+
readonly touched: _angular_core.ModelSignal<boolean>;
|
|
807
|
+
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
808
|
+
readonly dirty: _angular_core.InputSignal<boolean>;
|
|
809
|
+
/** Synced from required() validators by the Signal Forms [field] directive. */
|
|
810
|
+
readonly required: _angular_core.InputSignal<boolean>;
|
|
811
|
+
/**
|
|
812
|
+
* Id(s) of external element(s) describing this control — typically your
|
|
813
|
+
* app-rendered error message — exposed as aria-describedby.
|
|
814
|
+
*/
|
|
815
|
+
readonly ariaDescribedBy: _angular_core.InputSignal<string>;
|
|
816
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
817
|
+
/**
|
|
818
|
+
* Mixed state for "select all"-style parent checkboxes. Cleared
|
|
819
|
+
* automatically on the next user interaction, matching native behavior.
|
|
820
|
+
*/
|
|
821
|
+
readonly indeterminate: _angular_core.ModelSignal<boolean>;
|
|
822
|
+
protected readonly showError: _angular_core.Signal<boolean>;
|
|
823
|
+
markAsTouched(): void;
|
|
824
|
+
handleChange(event: Event): void;
|
|
825
|
+
protected readonly checkboxLabel: _angular_core.Signal<string>;
|
|
826
|
+
protected readonly checkboxInput: _angular_core.Signal<string>;
|
|
827
|
+
getThemeColor(token: ColorToken): string;
|
|
828
|
+
/** The content color paired with a variant fill (on-primary, on-warn, …). */
|
|
829
|
+
getOnColor(variant: ColorToken): string;
|
|
830
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniCheckboxComponent, never>;
|
|
831
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniCheckboxComponent, "uni-checkbox", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "dirty": { "alias": "dirty"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "ariaDescribedBy": { "alias": "ariaDescribedBy"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "touched": "touchedChange"; "indeterminate": "indeterminateChange"; }, never, never, true, never>;
|
|
820
832
|
}
|
|
821
833
|
|
|
822
|
-
/**
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
* from `avatar` theme tokens; `variant` picks the container palette.
|
|
826
|
-
*/
|
|
827
|
-
declare class UniAvatarComponent extends BaseComponent<UniAvatarOptions> {
|
|
828
|
-
/** Image URL; on load error the avatar falls back to initials/symbol. */
|
|
829
|
-
src: _angular_core.InputSignal<string>;
|
|
830
|
-
/** Person's name: drives the initials and the accessible label. */
|
|
831
|
-
name: _angular_core.InputSignal<string>;
|
|
832
|
-
/** Verbatim text instead of derived initials (e.g. a group's “+3”). */
|
|
833
|
-
text: _angular_core.InputSignal<string>;
|
|
834
|
-
protected readonly imageFailed: _angular_core.WritableSignal<boolean>;
|
|
835
|
-
protected readonly showImage: _angular_core.Signal<boolean>;
|
|
836
|
-
protected readonly initials: _angular_core.Signal<string>;
|
|
837
|
-
protected readonly label: _angular_core.Signal<string>;
|
|
838
|
-
protected readonly className: _angular_core.Signal<string>;
|
|
839
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniAvatarComponent, never>;
|
|
840
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniAvatarComponent, "uni-avatar", never, { "src": { "alias": "src"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "text": { "alias": "text"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
834
|
+
/** A commit was refused (no match); the field reverted to the committed label. */
|
|
835
|
+
interface UniComboboxRejection {
|
|
836
|
+
query: string;
|
|
841
837
|
}
|
|
842
|
-
|
|
843
838
|
/**
|
|
844
|
-
*
|
|
845
|
-
*
|
|
846
|
-
*
|
|
839
|
+
* Theme options for the `combobox` entry. Field chrome is not duplicated
|
|
840
|
+
* here — it comes from `input` via uni-input-box; the list trio matches
|
|
841
|
+
* tagInput/searchInput/timeInput. Glyphs are theme icon primitives rendered
|
|
842
|
+
* by `uni-icon`, so they restyle with the theme's iconography.
|
|
847
843
|
*/
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
imageSize: _angular_core.InputSignal<string | number>;
|
|
864
|
-
height: _angular_core.InputSignal<string | number>;
|
|
865
|
-
width: _angular_core.InputSignal<string | number>;
|
|
866
|
-
protected readonly className: _angular_core.Signal<string>;
|
|
867
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniBackgroundComponent, never>;
|
|
868
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniBackgroundComponent, "uni-background", never, { "image": { "alias": "image"; "required": false; "isSignal": true; }; "imagePosition": { "alias": "imagePosition"; "required": false; "isSignal": true; }; "imageSize": { "alias": "imageSize"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
869
|
-
}
|
|
870
|
-
|
|
871
|
-
interface UniBadgeOptions {
|
|
872
|
-
borderRadius?: RadiiSize;
|
|
873
|
-
}
|
|
874
|
-
|
|
875
|
-
declare class UniBadgeComponent extends BaseComponent<UniBadgeOptions> {
|
|
876
|
-
color: _angular_core.InputSignal<Variant>;
|
|
877
|
-
useVariant: _angular_core.InputSignal<boolean>;
|
|
878
|
-
width: _angular_core.InputSignal<number>;
|
|
879
|
-
protected readonly className: _angular_core.Signal<string>;
|
|
880
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniBadgeComponent, never>;
|
|
881
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniBadgeComponent, "[uni-badge]", never, { "color": { "alias": "color"; "required": false; "isSignal": true; }; "useVariant": { "alias": "useVariant"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
882
|
-
}
|
|
883
|
-
|
|
884
|
-
/** One step in the trail. The last item is treated as the current page. */
|
|
885
|
-
interface BreadcrumbItem {
|
|
886
|
-
label: string;
|
|
887
|
-
/** Link target. Omit for SPA routing and handle `itemClicked` instead. */
|
|
888
|
-
href?: string;
|
|
889
|
-
}
|
|
890
|
-
/** Theme-level options for `uni-breadcrumb`, resolved by token name. */
|
|
891
|
-
interface UniBreadcrumbOptions {
|
|
892
|
-
/** Trail typography token. */
|
|
893
|
-
typeface?: Typeface;
|
|
894
|
-
/** Link color for ancestor items. */
|
|
895
|
-
color?: ColorKey;
|
|
896
|
-
/** Color of the current (last) item. */
|
|
897
|
-
currentColor?: ColorKey;
|
|
898
|
-
/** Material symbol drawn between items. */
|
|
899
|
-
separatorSymbol?: string;
|
|
900
|
-
/** Space around separators, as a spacing token. */
|
|
901
|
-
gap?: OptionalSize;
|
|
844
|
+
interface UniComboboxOptions {
|
|
845
|
+
toggleIcon?: IconName;
|
|
846
|
+
clearIcon?: IconName;
|
|
847
|
+
selectedIcon?: IconName;
|
|
848
|
+
listColor?: ContainerColorToken;
|
|
849
|
+
listShadow?: Shadow;
|
|
850
|
+
listBorderRadius?: Radius;
|
|
851
|
+
/** Active/hover option fill; the on-color pair is derived. Must contrast
|
|
852
|
+
with `listColor` or keyboard navigation turns invisible. */
|
|
853
|
+
activeColor?: ContainerColorToken;
|
|
854
|
+
/** Scroll height in rows — the list scrolls past this, never truncates. */
|
|
855
|
+
maxVisibleOptions?: number;
|
|
856
|
+
descriptionColor?: ContentColorToken; /** Named motion primitive for the suggestion popup's open animation.
|
|
857
|
+
Defaults to `popup` — the token `uni-dropdown` uses. */
|
|
858
|
+
motion?: Motion;
|
|
902
859
|
}
|
|
903
860
|
|
|
904
861
|
/**
|
|
905
|
-
*
|
|
906
|
-
*
|
|
907
|
-
*
|
|
908
|
-
*
|
|
862
|
+
* Form-bound, closed-set, single-select autocomplete: `FormValueControl<T | null>`
|
|
863
|
+
* over object `Options<T>`, type-to-filter, commit-on-select. Typing produces a
|
|
864
|
+
* draft — a filter, never a value; the value changes only when an option
|
|
865
|
+
* commits, `clear()` runs, or the model is written from outside. Select
|
|
866
|
+
* semantics, not search: a real label, a chevron, no magnifier, nothing
|
|
867
|
+
* submits. For short lists with no need to type, prefer `uni-select` — the
|
|
868
|
+
* value contract is identical, so swapping is a template-only change.
|
|
909
869
|
*/
|
|
910
|
-
declare class
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
/** Theme-level options for `uni-text-button`, resolved by token name. */
|
|
923
|
-
interface UniButtonOptions {
|
|
924
|
-
/**
|
|
925
|
-
* Corner radius as a radii token. The default theme uses `max` (pill);
|
|
926
|
-
* because this is a token, the theme's radii scale — including generated
|
|
927
|
-
* shape languages (`sharp`/`modern`/`playful`) and custom primitives —
|
|
928
|
-
* restyles every button without touching component code.
|
|
929
|
-
*/
|
|
930
|
-
borderRadius?: RadiiSize;
|
|
870
|
+
declare class UniComboboxComponent<T> extends BaseComponent<UniComboboxOptions> implements FormValueControl<T | null> {
|
|
871
|
+
readonly value: _angular_core.ModelSignal<T>;
|
|
872
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
873
|
+
readonly touched: _angular_core.ModelSignal<boolean>;
|
|
874
|
+
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
875
|
+
readonly dirty: _angular_core.InputSignal<boolean>;
|
|
876
|
+
readonly required: _angular_core.InputSignal<boolean>;
|
|
877
|
+
readonly ariaDescribedBy: _angular_core.InputSignal<string>;
|
|
878
|
+
/** Accessible name for the field, e.g. "State"; echoed on the listbox. */
|
|
879
|
+
label: _angular_core.InputSignal<string>;
|
|
880
|
+
placeholder: _angular_core.InputSignal<string>;
|
|
881
|
+
options: _angular_core.InputSignal<Options<T>>;
|
|
931
882
|
/**
|
|
932
|
-
*
|
|
933
|
-
* `
|
|
934
|
-
*
|
|
935
|
-
*
|
|
883
|
+
* Equality used to match `value` against option values, called as
|
|
884
|
+
* `compareWith(optionValue, value)`. Defaults to reference equality, which
|
|
885
|
+
* never matches an object value rebuilt from elsewhere (e.g. a saved record
|
|
886
|
+
* against options from a fresh fetch) — pass a key comparison like
|
|
887
|
+
* `(a, b) => a?.id === b?.id` for object values.
|
|
936
888
|
*/
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
readonly
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
889
|
+
compareWith: _angular_core.InputSignal<(optionValue: T, value: T) => boolean>;
|
|
890
|
+
width: _angular_core.InputSignal<string | number>;
|
|
891
|
+
/** Show a ✕ while a value is set; an emptied field on blur also clears. */
|
|
892
|
+
clearable: _angular_core.InputSignal<boolean>;
|
|
893
|
+
/** Blur commits an exact-match draft; a non-matching draft reverts. */
|
|
894
|
+
commitOnBlur: _angular_core.InputSignal<boolean>;
|
|
895
|
+
/** i18n-able empty row, also announced when a filter matches nothing. */
|
|
896
|
+
emptyText: _angular_core.InputSignal<string>;
|
|
897
|
+
/** `false` renders `options` verbatim; narrow them app-side from `query`. */
|
|
898
|
+
filterLocally: _angular_core.InputSignal<boolean>;
|
|
899
|
+
/** Filter predicate; default is locale-lowercased label-contains. */
|
|
900
|
+
filterWith: _angular_core.InputSignal<(option: Option<T>, query: string) => boolean>;
|
|
901
|
+
debounceTime: _angular_core.InputSignal<number>;
|
|
902
|
+
/** Debounced draft text, for async option lists. */
|
|
903
|
+
query: _angular_core.OutputEmitterRef<string>;
|
|
904
|
+
/** An option committed. */
|
|
905
|
+
selected: _angular_core.OutputEmitterRef<Option<T>>;
|
|
906
|
+
cleared: _angular_core.OutputEmitterRef<void>;
|
|
907
|
+
/** A commit was refused (no match); the field reverted. */
|
|
908
|
+
rejected: _angular_core.OutputEmitterRef<UniComboboxRejection>;
|
|
909
|
+
private readonly host;
|
|
910
|
+
private readonly inputRef;
|
|
911
|
+
private readonly listRef;
|
|
912
|
+
/** Cancelled on destroy — a late tick would emit on a destroyed OutputRef. */
|
|
913
|
+
private queryTimer?;
|
|
914
|
+
/** Ties the popup to the field so the browser tracks it in the top layer. */
|
|
915
|
+
private readonly anchor;
|
|
916
|
+
/** `manual` where the top layer is usable, else null — see the popup helper. */
|
|
917
|
+
protected readonly popupAttr: "manual";
|
|
918
|
+
constructor();
|
|
919
|
+
protected readonly srOnly: string;
|
|
920
|
+
/** Commits, clears and refusals are otherwise silent to a screen reader. */
|
|
921
|
+
protected readonly announcer: _uni_design_system_uni_angular.Announcer;
|
|
922
|
+
/** null → the field shows the committed label; a string is an uncommitted draft. */
|
|
923
|
+
protected readonly draft: _angular_core.WritableSignal<string>;
|
|
924
|
+
/**
|
|
925
|
+
* Popup visibility. Component-owned rather than `list.open()` — the shared
|
|
926
|
+
* signal gates on `count() > 0`, which would hide the "No matches" row and
|
|
927
|
+
* misreport `aria-expanded` over an empty filter.
|
|
928
|
+
*/
|
|
929
|
+
protected readonly popupOpen: _angular_core.WritableSignal<boolean>;
|
|
930
|
+
/** Index in options() of the option matching value(), else -1. */
|
|
931
|
+
protected readonly committedIndex: _angular_core.Signal<number>;
|
|
932
|
+
/** A value with no matching option renders '' but is preserved — options may
|
|
933
|
+
still be loading; the field self-heals when they arrive. */
|
|
934
|
+
protected readonly committedLabel: _angular_core.Signal<string>;
|
|
935
|
+
protected readonly displayValue: _angular_core.Signal<string>;
|
|
936
|
+
/** Indices into options() surviving the filter. The draft filters; the
|
|
937
|
+
committed label does not — reopening always shows the full set. */
|
|
938
|
+
protected readonly filteredIndices: _angular_core.Signal<number[]>;
|
|
939
|
+
/** Shared combobox bookkeeping, in filtered-list positions — the fourth
|
|
940
|
+
consumer of the contract behind search-input, tag-input and time-input. */
|
|
941
|
+
protected readonly list: _uni_design_system_uni_angular.ListboxNavigation;
|
|
942
|
+
protected readonly showError: _angular_core.Signal<boolean>;
|
|
943
|
+
private commit;
|
|
944
|
+
protected clear(): void;
|
|
945
|
+
/**
|
|
946
|
+
* Draft resolution, used by Enter, Tab and blur:
|
|
947
|
+
* 1. an active option in the list → commit it;
|
|
948
|
+
* 2. else a unique exact label match (locale-case-insensitive) → commit it;
|
|
949
|
+
* 3. Enter only: the filter narrowed to exactly one enabled option → commit it
|
|
950
|
+
* (on Enter the user can see the single candidate; on blur they're gone,
|
|
951
|
+
* and committing a value they never saw confirmed is how forms grow
|
|
952
|
+
* mystery data);
|
|
953
|
+
* 4. else the caller keeps the list open (Enter) or reverts (Tab/blur).
|
|
954
|
+
*/
|
|
955
|
+
private resolveDraft;
|
|
956
|
+
private revertDraft;
|
|
957
|
+
private reject;
|
|
958
|
+
protected onKeydown(event: KeyboardEvent): void;
|
|
959
|
+
protected onInput(): void;
|
|
960
|
+
/** Click-to-browse: pointer users get the select affordance. Focus alone
|
|
961
|
+
never opens — Tab-through forms must not spray popups. */
|
|
962
|
+
protected onFieldClick(): void;
|
|
963
|
+
protected onToggleMousedown(event: MouseEvent): void;
|
|
964
|
+
protected onOptionClick(optIndex: number): void;
|
|
965
|
+
protected onFocusOut(event: FocusEvent): void;
|
|
966
|
+
/** Filtered position of the committed option when visible and enabled, else -1. */
|
|
967
|
+
private committedFilteredPos;
|
|
968
|
+
private openList;
|
|
969
|
+
private closeList;
|
|
970
|
+
private scrollToActive;
|
|
971
|
+
private setFieldText;
|
|
967
972
|
protected readonly className: _angular_core.Signal<string>;
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
}
|
|
977
|
-
interface ButtonGroupItem {
|
|
978
|
-
symbolName: string;
|
|
979
|
-
selected?: boolean;
|
|
980
|
-
tooltip?: string;
|
|
981
|
-
action?: (selectedState?: boolean) => boolean | void;
|
|
982
|
-
toggle?: WritableSignal<boolean>;
|
|
973
|
+
protected readonly rowClass: _angular_core.Signal<string>;
|
|
974
|
+
protected readonly inputClass: _angular_core.Signal<string>;
|
|
975
|
+
/** Pointer-only affordance: keyboard already has ArrowDown, and the input
|
|
976
|
+
itself announces expanded state. */
|
|
977
|
+
protected readonly toggleClass: _angular_core.Signal<string>;
|
|
978
|
+
protected readonly listClass: _angular_core.Signal<string>;
|
|
979
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniComboboxComponent<any>, never>;
|
|
980
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniComboboxComponent<any>, "uni-combobox, Combobox", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "dirty": { "alias": "dirty"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "ariaDescribedBy": { "alias": "ariaDescribedBy"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "compareWith": { "alias": "compareWith"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "commitOnBlur": { "alias": "commitOnBlur"; "required": false; "isSignal": true; }; "emptyText": { "alias": "emptyText"; "required": false; "isSignal": true; }; "filterLocally": { "alias": "filterLocally"; "required": false; "isSignal": true; }; "filterWith": { "alias": "filterWith"; "required": false; "isSignal": true; }; "debounceTime": { "alias": "debounceTime"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touched": "touchedChange"; "query": "query"; "selected": "selected"; "cleared": "cleared"; "rejected": "rejected"; }, never, never, true, never>;
|
|
983
981
|
}
|
|
984
982
|
|
|
985
983
|
type UniCalendarMode = 'single' | 'range';
|
|
@@ -1018,102 +1016,1487 @@ interface UniCalendarOptions {
|
|
|
1018
1016
|
todayStyle?: 'outline' | 'dot';
|
|
1019
1017
|
}
|
|
1020
1018
|
|
|
1021
|
-
/**
|
|
1022
|
-
interface
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
outside: boolean;
|
|
1026
|
-
disabled: boolean;
|
|
1027
|
-
today: boolean;
|
|
1028
|
-
selected: boolean;
|
|
1029
|
-
inBand: boolean;
|
|
1030
|
-
tabIndex: number;
|
|
1031
|
-
ariaLabel: string;
|
|
1032
|
-
markers: UniCalendarMarker[];
|
|
1033
|
-
cellClass: string;
|
|
1034
|
-
dayClass: string;
|
|
1019
|
+
/** Why typed text did not become a date. The raw text stays in the field. */
|
|
1020
|
+
interface UniDateInputRejection {
|
|
1021
|
+
raw: string;
|
|
1022
|
+
reason: 'unparseable' | 'out-of-range' | 'disabled';
|
|
1035
1023
|
}
|
|
1036
1024
|
/**
|
|
1037
|
-
*
|
|
1038
|
-
*
|
|
1039
|
-
*
|
|
1040
|
-
* named with its full date. Values are plain ISO strings (`'YYYY-MM-DD'`),
|
|
1041
|
-
* never `Date` objects, so bindings are timezone-free and serializable.
|
|
1042
|
-
* Selection and today colours come from the theme's `primary` role pair;
|
|
1043
|
-
* geometry and glyphs come from the `calendar` theme entry.
|
|
1025
|
+
* Theme options for the `dateInput` entry. Field chrome is not duplicated
|
|
1026
|
+
* here — it comes from `input` via uni-input-box; these style the popup
|
|
1027
|
+
* affordance and panel only.
|
|
1044
1028
|
*/
|
|
1045
|
-
|
|
1046
|
-
|
|
1029
|
+
interface UniDateInputOptions {
|
|
1030
|
+
toggleSymbol?: string;
|
|
1031
|
+
popupShadow?: Shadow;
|
|
1032
|
+
popupBorderRadius?: Radius;
|
|
1033
|
+
popupColor?: ContainerColorToken;
|
|
1034
|
+
}
|
|
1035
|
+
|
|
1036
|
+
/**
|
|
1037
|
+
* Date field with free-typed parsing and a popup calendar. Type `aug 20`,
|
|
1038
|
+
* `8/20/2026` or `2026-08-20`, or pick from the grid — the form gets the
|
|
1039
|
+
* same canonical `'YYYY-MM-DD'` string either way. Parsing is `Intl`-driven
|
|
1040
|
+
* (locale digit order and month names, never hardcoded); unreadable text
|
|
1041
|
+
* stays in the field, flagged, with a `rejected` event. The popup is a
|
|
1042
|
+
* native popover hosting the same `uni-calendar` an app could render inline.
|
|
1043
|
+
*/
|
|
1044
|
+
declare class UniDateInputComponent extends BaseComponent<UniDateInputOptions> implements FormValueControl<UniDate | undefined> {
|
|
1045
|
+
readonly value: _angular_core.ModelSignal<string>;
|
|
1047
1046
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
1048
1047
|
readonly touched: _angular_core.ModelSignal<boolean>;
|
|
1049
1048
|
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
1050
1049
|
readonly dirty: _angular_core.InputSignal<boolean>;
|
|
1051
1050
|
readonly required: _angular_core.InputSignal<boolean>;
|
|
1052
1051
|
readonly ariaDescribedBy: _angular_core.InputSignal<string>;
|
|
1053
|
-
/**
|
|
1054
|
-
|
|
1055
|
-
/**
|
|
1056
|
-
|
|
1057
|
-
/**
|
|
1052
|
+
/** Accessible name for the field, e.g. "Appointment date". */
|
|
1053
|
+
label: _angular_core.InputSignal<string>;
|
|
1054
|
+
/** Defaults to the locale's digit pattern, e.g. `MM/DD/YYYY`. */
|
|
1055
|
+
placeholder: _angular_core.InputSignal<string>;
|
|
1056
|
+
/** How the committed value renders, e.g. `{ dateStyle: 'long' }`. */
|
|
1057
|
+
displayFormat: _angular_core.InputSignal<Intl.DateTimeFormatOptions>;
|
|
1058
|
+
/** BCP 47 tag; defaults to the document language, then the browser's. */
|
|
1059
|
+
locale: _angular_core.InputSignal<string>;
|
|
1060
|
+
commitOnBlur: _angular_core.InputSignal<boolean>;
|
|
1061
|
+
/** Custom parser, replacing the built-in ISO/locale/month-name parsing. */
|
|
1062
|
+
parse: _angular_core.InputSignal<(raw: string, locale: string) => UniDate | null>;
|
|
1063
|
+
/** Renders without its own input-box chrome, for composers like uni-date-time-input. */
|
|
1064
|
+
embedded: _angular_core.InputSignal<boolean>;
|
|
1058
1065
|
minDate: _angular_core.InputSignal<string>;
|
|
1059
|
-
/** Latest selectable date (inclusive). */
|
|
1060
1066
|
maxDate: _angular_core.InputSignal<string>;
|
|
1061
|
-
/** Blocked days: a list of dates, or a predicate. */
|
|
1062
1067
|
disabledDates: _angular_core.InputSignal<string[] | ((date: UniDate) => boolean)>;
|
|
1063
|
-
/** Availability dots; `label` extends the day's accessible name. */
|
|
1064
1068
|
markers: _angular_core.InputSignal<UniCalendarMarker[]>;
|
|
1065
|
-
/** BCP 47 tag; defaults to the document language, then the browser's. */
|
|
1066
|
-
locale: _angular_core.InputSignal<string>;
|
|
1067
|
-
/** First day of week, 0 = Sunday; defaults from the locale's week info. */
|
|
1068
1069
|
weekStart: _angular_core.InputSignal<0 | 1 | 2 | 3 | 4 | 6 | 5>;
|
|
1069
|
-
/**
|
|
1070
|
-
|
|
1071
|
-
/**
|
|
1072
|
-
|
|
1073
|
-
/**
|
|
1074
|
-
|
|
1070
|
+
/** Popup shown. */
|
|
1071
|
+
opened: _angular_core.OutputEmitterRef<void>;
|
|
1072
|
+
/** Popup hidden. */
|
|
1073
|
+
closed: _angular_core.OutputEmitterRef<void>;
|
|
1074
|
+
/** A typed commit was refused; the raw text stays in the field. */
|
|
1075
|
+
rejected: _angular_core.OutputEmitterRef<UniDateInputRejection>;
|
|
1075
1076
|
private readonly host;
|
|
1076
|
-
|
|
1077
|
+
private readonly inputRef;
|
|
1078
|
+
private readonly toggleRef;
|
|
1079
|
+
private readonly popupRef;
|
|
1080
|
+
private readonly dropdown;
|
|
1081
|
+
private readonly calendar;
|
|
1077
1082
|
protected readonly srOnly: string;
|
|
1078
|
-
/**
|
|
1079
|
-
protected readonly
|
|
1080
|
-
/** Hover/focus candidate painting the preview band while a range is pending. */
|
|
1081
|
-
protected readonly previewDate: _angular_core.WritableSignal<string>;
|
|
1082
|
-
/** Live-region text; selections are otherwise silent for a screen reader. */
|
|
1083
|
+
/** A refused commit — styles the field and sets aria-invalid until edited. */
|
|
1084
|
+
protected readonly draftInvalid: _angular_core.WritableSignal<boolean>;
|
|
1083
1085
|
/** Commits, clears and refusals are otherwise silent to a screen reader. */
|
|
1084
1086
|
protected readonly announcer: _uni_design_system_uni_angular.Announcer;
|
|
1087
|
+
protected readonly toggleElement: _angular_core.Signal<any>;
|
|
1088
|
+
protected readonly popupOpen: _angular_core.Signal<boolean>;
|
|
1085
1089
|
protected readonly resolvedLocale: _angular_core.Signal<string>;
|
|
1086
|
-
protected readonly
|
|
1087
|
-
|
|
1088
|
-
* The month on screen: the `month` model, else the value's month, else
|
|
1089
|
-
* today's. Falsy guards on purpose: `''` — the only typeable empty for a
|
|
1090
|
-
* string-typed model — counts as unset, or it would reach the month math
|
|
1091
|
-
* and blow up the grid and heading.
|
|
1092
|
-
*/
|
|
1093
|
-
protected readonly viewMonth: _angular_core.Signal<string>;
|
|
1094
|
-
private readonly anchorDate;
|
|
1095
|
-
/**
|
|
1096
|
-
* The roving-tabindex day. Re-derives when the view or value changes
|
|
1097
|
-
* (selected day in view → today in view → first enabled day); keyboard
|
|
1098
|
-
* navigation writes it directly.
|
|
1099
|
-
*/
|
|
1100
|
-
protected readonly focusedDate: _angular_core.WritableSignal<string>;
|
|
1090
|
+
protected readonly displayText: _angular_core.Signal<string>;
|
|
1091
|
+
protected readonly resolvedPlaceholder: _angular_core.Signal<string>;
|
|
1101
1092
|
protected readonly showError: _angular_core.Signal<boolean>;
|
|
1102
|
-
protected readonly
|
|
1103
|
-
|
|
1104
|
-
private
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
private
|
|
1110
|
-
|
|
1111
|
-
protected
|
|
1112
|
-
protected
|
|
1113
|
-
|
|
1114
|
-
protected
|
|
1115
|
-
|
|
1116
|
-
|
|
1093
|
+
protected readonly toggleLabel: _angular_core.Signal<string>;
|
|
1094
|
+
private fullDate;
|
|
1095
|
+
private isDayBlocked;
|
|
1096
|
+
protected setValue(date: UniDate | undefined, silent?: boolean): void;
|
|
1097
|
+
private refuse;
|
|
1098
|
+
protected commit(raw: string): boolean;
|
|
1099
|
+
/** Step a committed value ±1 day, skipping blocked days, stopping at fences. */
|
|
1100
|
+
private step;
|
|
1101
|
+
protected onInputKeydown(event: KeyboardEvent): void;
|
|
1102
|
+
protected onInput(): void;
|
|
1103
|
+
protected onFocusOut(event: FocusEvent): void;
|
|
1104
|
+
protected openPopup(): void;
|
|
1105
|
+
protected closePopup(): void;
|
|
1106
|
+
protected onPopupShowing(): void;
|
|
1107
|
+
protected onPopupHiding(): void;
|
|
1108
|
+
protected onCalendarPick(date: UniDate): void;
|
|
1109
|
+
/** The popup is a focus-holding dialog: Tab cycles inside it (APG pattern). */
|
|
1110
|
+
protected onPopupKeydown(event: KeyboardEvent): void;
|
|
1111
|
+
private setFieldText;
|
|
1112
|
+
protected readonly className: _angular_core.Signal<string>;
|
|
1113
|
+
protected readonly rowClass: _angular_core.Signal<string>;
|
|
1114
|
+
protected readonly inputClass: _angular_core.Signal<string>;
|
|
1115
|
+
protected readonly toggleWrapClass: _angular_core.Signal<string>;
|
|
1116
|
+
/** Embedded mode: the composer owns the box; keep only the flex row. */
|
|
1117
|
+
protected readonly embeddedClass: _angular_core.Signal<string>;
|
|
1118
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniDateInputComponent, never>;
|
|
1119
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniDateInputComponent, "uni-date-input, DateInput", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "dirty": { "alias": "dirty"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "ariaDescribedBy": { "alias": "ariaDescribedBy"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "displayFormat": { "alias": "displayFormat"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "commitOnBlur": { "alias": "commitOnBlur"; "required": false; "isSignal": true; }; "parse": { "alias": "parse"; "required": false; "isSignal": true; }; "embedded": { "alias": "embedded"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "disabledDates": { "alias": "disabledDates"; "required": false; "isSignal": true; }; "markers": { "alias": "markers"; "required": false; "isSignal": true; }; "weekStart": { "alias": "weekStart"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touched": "touchedChange"; "opened": "opened"; "closed": "closed"; "rejected": "rejected"; }, never, never, true, never>;
|
|
1120
|
+
}
|
|
1121
|
+
|
|
1122
|
+
/**
|
|
1123
|
+
* Theme options for the `dateTimeInput` entry. Field chrome comes from
|
|
1124
|
+
* `input` via the single shared uni-input-box; these style the seam between
|
|
1125
|
+
* the two parts.
|
|
1126
|
+
*/
|
|
1127
|
+
interface UniDateTimeInputOptions {
|
|
1128
|
+
/** Space between the date part, the divider, and the time part. */
|
|
1129
|
+
partGap?: NullableSize;
|
|
1130
|
+
dividerColor?: ColorToken;
|
|
1131
|
+
}
|
|
1132
|
+
|
|
1133
|
+
/**
|
|
1134
|
+
* One field for a date and a time: a thin composer seating a uni-date-input
|
|
1135
|
+
* and a uni-time-input in one input-box chrome under one label, yielding one
|
|
1136
|
+
* combined `'YYYY-MM-DDTHH:mm'` value. The value emits only when both parts
|
|
1137
|
+
* are set — a time without a day is not an answer — and clearing the date
|
|
1138
|
+
* clears it. With `slotsFor`, the time part stays disabled until a day is
|
|
1139
|
+
* chosen and offers exactly that day's slots: the scheduling flow in one
|
|
1140
|
+
* attribute. Two honest tab stops (it is two questions); apps needing a
|
|
1141
|
+
* different arrangement compose the primitives directly.
|
|
1142
|
+
*/
|
|
1143
|
+
declare class UniDateTimeInputComponent extends BaseComponent<UniDateTimeInputOptions> implements FormValueControl<UniDateTime | undefined> {
|
|
1144
|
+
readonly value: _angular_core.ModelSignal<string>;
|
|
1145
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
1146
|
+
readonly touched: _angular_core.ModelSignal<boolean>;
|
|
1147
|
+
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
1148
|
+
readonly dirty: _angular_core.InputSignal<boolean>;
|
|
1149
|
+
readonly required: _angular_core.InputSignal<boolean>;
|
|
1150
|
+
readonly ariaDescribedBy: _angular_core.InputSignal<string>;
|
|
1151
|
+
/** Names the group; the parts are announced as "Date" and "Time" under it. */
|
|
1152
|
+
label: _angular_core.InputSignal<string>;
|
|
1153
|
+
/** Earliest allowed moment; the date and time fences are split from it. */
|
|
1154
|
+
minDateTime: _angular_core.InputSignal<string>;
|
|
1155
|
+
/** Latest allowed moment; the date and time fences are split from it. */
|
|
1156
|
+
maxDateTime: _angular_core.InputSignal<string>;
|
|
1157
|
+
disabledDates: _angular_core.InputSignal<string[] | ((date: UniDate) => boolean)>;
|
|
1158
|
+
markers: _angular_core.InputSignal<UniCalendarMarker[]>;
|
|
1159
|
+
/** Fixed time choices; superseded per-day by `slotsFor` when that is set. */
|
|
1160
|
+
slots: _angular_core.InputSignal<string[]>;
|
|
1161
|
+
minuteStep: _angular_core.InputSignal<number>;
|
|
1162
|
+
hour12: _angular_core.InputSignal<boolean>;
|
|
1163
|
+
weekStart: _angular_core.InputSignal<0 | 1 | 2 | 3 | 4 | 6 | 5>;
|
|
1164
|
+
locale: _angular_core.InputSignal<string>;
|
|
1165
|
+
/** Scheduling: the day's available times. Gates the time part on a date. */
|
|
1166
|
+
slotsFor: _angular_core.InputSignal<(date: UniDate) => UniTime[]>;
|
|
1167
|
+
private readonly host;
|
|
1168
|
+
/**
|
|
1169
|
+
* The two part-values. An external `value` write re-derives both; an
|
|
1170
|
+
* internal partial state (a date without a time round-trips through
|
|
1171
|
+
* `undefined`) must not be wiped by its own echo.
|
|
1172
|
+
*/
|
|
1173
|
+
private readonly parts;
|
|
1174
|
+
protected readonly dateValue: _angular_core.Signal<string>;
|
|
1175
|
+
protected readonly timeValue: _angular_core.Signal<string>;
|
|
1176
|
+
protected readonly showError: _angular_core.Signal<boolean>;
|
|
1177
|
+
private readonly minParts;
|
|
1178
|
+
private readonly maxParts;
|
|
1179
|
+
protected readonly dateMin: _angular_core.Signal<string>;
|
|
1180
|
+
protected readonly dateMax: _angular_core.Signal<string>;
|
|
1181
|
+
protected readonly timeMin: _angular_core.Signal<string>;
|
|
1182
|
+
protected readonly timeMax: _angular_core.Signal<string>;
|
|
1183
|
+
/** The chosen day's slots when `slotsFor` is set, else the fixed list. */
|
|
1184
|
+
protected readonly effectiveSlots: _angular_core.Signal<string[]>;
|
|
1185
|
+
protected readonly timeDisabled: _angular_core.Signal<boolean>;
|
|
1186
|
+
protected onDatePartChange(date: UniDate | undefined): void;
|
|
1187
|
+
protected onTimePartChange(time: UniTime | undefined): void;
|
|
1188
|
+
private setParts;
|
|
1189
|
+
protected onHostFocusOut(event: FocusEvent): void;
|
|
1190
|
+
protected readonly className: _angular_core.Signal<string>;
|
|
1191
|
+
protected readonly groupClass: _angular_core.Signal<string>;
|
|
1192
|
+
protected readonly datePartClass: _angular_core.Signal<string>;
|
|
1193
|
+
protected readonly timePartClass: _angular_core.Signal<string>;
|
|
1194
|
+
protected readonly dividerClass: _angular_core.Signal<string>;
|
|
1195
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniDateTimeInputComponent, never>;
|
|
1196
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniDateTimeInputComponent, "uni-date-time-input, DateTimeInput", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "dirty": { "alias": "dirty"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "ariaDescribedBy": { "alias": "ariaDescribedBy"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "minDateTime": { "alias": "minDateTime"; "required": false; "isSignal": true; }; "maxDateTime": { "alias": "maxDateTime"; "required": false; "isSignal": true; }; "disabledDates": { "alias": "disabledDates"; "required": false; "isSignal": true; }; "markers": { "alias": "markers"; "required": false; "isSignal": true; }; "slots": { "alias": "slots"; "required": false; "isSignal": true; }; "minuteStep": { "alias": "minuteStep"; "required": false; "isSignal": true; }; "hour12": { "alias": "hour12"; "required": false; "isSignal": true; }; "weekStart": { "alias": "weekStart"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "slotsFor": { "alias": "slotsFor"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touched": "touchedChange"; }, never, never, true, never>;
|
|
1197
|
+
}
|
|
1198
|
+
|
|
1199
|
+
interface UniInputBoxOptions {
|
|
1200
|
+
color: ContainerColorToken;
|
|
1201
|
+
disabledColor: ContainerColorToken;
|
|
1202
|
+
errorColor: ContainerColorToken;
|
|
1203
|
+
border: Border;
|
|
1204
|
+
errorBorder: Border;
|
|
1205
|
+
borderRadius: Radius;
|
|
1206
|
+
shadow?: Shadow;
|
|
1207
|
+
errorShadow?: Shadow;
|
|
1208
|
+
height?: string | number;
|
|
1209
|
+
paddingLeft: OptionalSize;
|
|
1210
|
+
typeface?: Typeface;
|
|
1211
|
+
textColor: ColorKey;
|
|
1212
|
+
disabledTextColor: ColorKey;
|
|
1213
|
+
focusOutline: string;
|
|
1214
|
+
focusOutlineOffset: number;
|
|
1215
|
+
/** Border swapped in while an inner control has focus (default: keep `border`). */
|
|
1216
|
+
focusBorder?: Border;
|
|
1217
|
+
/** Ring shown while focused, e.g. a soft `0 0 0 3px` spread shadow. */
|
|
1218
|
+
focusShadow?: Shadow;
|
|
1219
|
+
/** Background swapped in while focused (default: keep `color`). */
|
|
1220
|
+
focusColor?: ContainerColorToken;
|
|
1221
|
+
}
|
|
1222
|
+
|
|
1223
|
+
declare class UniInputBoxComponent extends BaseComponent<UniInputBoxOptions> {
|
|
1224
|
+
protected readonly className: string;
|
|
1225
|
+
disabled: _angular_core.InputSignal<boolean>;
|
|
1226
|
+
error: _angular_core.InputSignal<boolean>;
|
|
1227
|
+
minWidth: _angular_core.InputSignal<string>;
|
|
1228
|
+
/** Override the themed field height, e.g. `'auto'` for multi-line fields. */
|
|
1229
|
+
height: _angular_core.InputSignal<string | number>;
|
|
1230
|
+
width: _angular_core.InputSignal<string | number>;
|
|
1231
|
+
fullWidth: _angular_core.InputSignal<boolean>;
|
|
1232
|
+
grow: _angular_core.InputSignal<number>;
|
|
1233
|
+
protected readonly color: _angular_core.Signal<_uni_design_system_uni_core.ContainerColorToken>;
|
|
1234
|
+
protected readonly border: _angular_core.Signal<string>;
|
|
1235
|
+
protected readonly shadow: _angular_core.Signal<string>;
|
|
1236
|
+
protected readonly inputBoxClass: _angular_core.Signal<string>;
|
|
1237
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniInputBoxComponent, never>;
|
|
1238
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniInputBoxComponent, "uni-input-box", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "minWidth": { "alias": "minWidth"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "grow": { "alias": "grow"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
1239
|
+
}
|
|
1240
|
+
|
|
1241
|
+
/**
|
|
1242
|
+
* The text-like native input types `uni-input` supports.
|
|
1243
|
+
*
|
|
1244
|
+
* Deliberately not the full native list: `checkbox`, `radio`, `file`, `range`,
|
|
1245
|
+
* `color`, `submit` and `hidden` are not text-like — they break both the
|
|
1246
|
+
* `uni-input-box` chrome and the `FormValueControl<string>` value contract —
|
|
1247
|
+
* and `date` / `time` / `datetime-local` have dedicated components
|
|
1248
|
+
* (`uni-date-input`, `uni-time-input`, `uni-date-time-input`) that handle
|
|
1249
|
+
* locale parsing and keyboard interaction properly.
|
|
1250
|
+
*/
|
|
1251
|
+
type UniInputType = 'text' | 'email' | 'password' | 'search' | 'tel' | 'url' | 'number';
|
|
1252
|
+
/** Values for the native `inputmode` hint, which picks the on-screen keyboard. */
|
|
1253
|
+
type UniInputMode = 'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url';
|
|
1254
|
+
|
|
1255
|
+
declare class UniInputComponent implements FormValueControl<string> {
|
|
1256
|
+
readonly value: _angular_core.ModelSignal<string>;
|
|
1257
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
1258
|
+
readonly touched: _angular_core.ModelSignal<boolean>;
|
|
1259
|
+
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
1260
|
+
readonly dirty: _angular_core.InputSignal<boolean>;
|
|
1261
|
+
/** Synced from required() validators by the Signal Forms [field] directive. */
|
|
1262
|
+
readonly required: _angular_core.InputSignal<boolean>;
|
|
1263
|
+
/**
|
|
1264
|
+
* Id(s) of external element(s) describing this control — typically your
|
|
1265
|
+
* app-rendered error message — exposed as aria-describedby.
|
|
1266
|
+
*/
|
|
1267
|
+
readonly ariaDescribedBy: _angular_core.InputSignal<string>;
|
|
1268
|
+
label: _angular_core.InputSignal<string>;
|
|
1269
|
+
placeholder: _angular_core.InputSignal<string>;
|
|
1270
|
+
/**
|
|
1271
|
+
* Native input type. Text-like types only — `date`/`time` have dedicated
|
|
1272
|
+
* components, and non-text types break the input chrome and the string value.
|
|
1273
|
+
*/
|
|
1274
|
+
type: _angular_core.InputSignal<UniInputType>;
|
|
1275
|
+
readonly readonly: _angular_core.InputSignal<boolean>;
|
|
1276
|
+
readonly name: _angular_core.InputSignal<string>;
|
|
1277
|
+
readonly min: _angular_core.InputSignal<number>;
|
|
1278
|
+
readonly max: _angular_core.InputSignal<number>;
|
|
1279
|
+
readonly minLength: _angular_core.InputSignal<number>;
|
|
1280
|
+
readonly maxLength: _angular_core.InputSignal<number>;
|
|
1281
|
+
/**
|
|
1282
|
+
* Patterns the value must match — all of them, per Signal Forms. The native
|
|
1283
|
+
* `pattern` attribute can only express one, so it is reflected only when
|
|
1284
|
+
* there is exactly one; Signal Forms validates the rest either way.
|
|
1285
|
+
*/
|
|
1286
|
+
readonly pattern: _angular_core.InputSignal<readonly RegExp[]>;
|
|
1287
|
+
/** Granularity for `type="number"`, e.g. `0.01` or `'any'`. */
|
|
1288
|
+
step: _angular_core.InputSignal<string | number>;
|
|
1289
|
+
/** Autofill hint, e.g. `email`, `current-password`, `off`. */
|
|
1290
|
+
autocomplete: _angular_core.InputSignal<string>;
|
|
1291
|
+
/** On-screen keyboard hint; defaults to whatever `type` implies. */
|
|
1292
|
+
inputMode: _angular_core.InputSignal<UniInputMode>;
|
|
1293
|
+
/** Id of a `<datalist>` supplying suggestions. */
|
|
1294
|
+
list: _angular_core.InputSignal<string>;
|
|
1295
|
+
spellcheck: _angular_core.InputSignal<boolean>;
|
|
1296
|
+
/** Reflected only when unambiguous — see `pattern`. */
|
|
1297
|
+
protected readonly nativePattern: _angular_core.Signal<string>;
|
|
1298
|
+
width: _angular_core.InputSignal<string | number>;
|
|
1299
|
+
fullWidth: _angular_core.InputSignal<boolean>;
|
|
1300
|
+
grow: _angular_core.InputSignal<number>;
|
|
1301
|
+
protected readonly showError: _angular_core.Signal<boolean>;
|
|
1302
|
+
markAsTouched(): void;
|
|
1303
|
+
handleInput(event: Event): void;
|
|
1304
|
+
inputClass: string;
|
|
1305
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniInputComponent, never>;
|
|
1306
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniInputComponent, "uni-input", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "dirty": { "alias": "dirty"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "ariaDescribedBy": { "alias": "ariaDescribedBy"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "minLength": { "alias": "minLength"; "required": false; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "pattern": { "alias": "pattern"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; "inputMode": { "alias": "inputMode"; "required": false; "isSignal": true; }; "list": { "alias": "list"; "required": false; "isSignal": true; }; "spellcheck": { "alias": "spellcheck"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "grow": { "alias": "grow"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touched": "touchedChange"; }, never, ["pre-input, [pre-input]", "post-input, [post-input]"], true, never>;
|
|
1307
|
+
}
|
|
1308
|
+
|
|
1309
|
+
/**
|
|
1310
|
+
* The base layout primitive, applied as an attribute to any element so
|
|
1311
|
+
* semantics stay yours: `<main box-layout [grow]="1" padding="md">`. It is a
|
|
1312
|
+
* directive, so it composes freely — with another layout attribute
|
|
1313
|
+
* (`<div stack-layout uni-text="body-1-long">`) and with a component's own host
|
|
1314
|
+
* element (`<uni-card box-layout padding="lg">`); Angular merges the host
|
|
1315
|
+
* `class` bindings rather than letting one win.
|
|
1316
|
+
*
|
|
1317
|
+
* Sizing convention (height/width/min/max/inset): a **number is px and needs
|
|
1318
|
+
* a binding** — `[height]="420"`; a **plain attribute is a CSS length
|
|
1319
|
+
* string** — `height="420px"`. Spacing/radius/color inputs take theme tokens.
|
|
1320
|
+
*/
|
|
1321
|
+
declare class UniBoxDirective {
|
|
1322
|
+
theme: ThemeService;
|
|
1323
|
+
/**
|
|
1324
|
+
* A container color *pair*: the named surface plus its paired on-color, so a
|
|
1325
|
+
* box and its contents stay legible together.
|
|
1326
|
+
*
|
|
1327
|
+
* Named `containerColor`, not `color`, because it is not the CSS `color`
|
|
1328
|
+
* property — `uni-text` owns that name, and it maps to it directly. The two
|
|
1329
|
+
* directives share elements routinely (`<div row-layout uni-text>`), and one
|
|
1330
|
+
* `color` binding would feed both: the box would paint the surface and the
|
|
1331
|
+
* text would take the same token, rendering ink on identical ink.
|
|
1332
|
+
*/
|
|
1333
|
+
containerColor: _angular_core.InputSignal<ContainerColorToken>;
|
|
1334
|
+
backgroundColor: _angular_core.InputSignal<string>;
|
|
1335
|
+
borderRadius: _angular_core.InputSignal<string>;
|
|
1336
|
+
borderRadiusLeft: _angular_core.InputSignal<string>;
|
|
1337
|
+
borderRadiusRight: _angular_core.InputSignal<string>;
|
|
1338
|
+
borderRadiusTop: _angular_core.InputSignal<string>;
|
|
1339
|
+
borderRadiusBottom: _angular_core.InputSignal<string>;
|
|
1340
|
+
padding: _angular_core.InputSignal<OptionalSize>;
|
|
1341
|
+
paddingHorizontal: _angular_core.InputSignal<OptionalSize>;
|
|
1342
|
+
paddingVertical: _angular_core.InputSignal<OptionalSize>;
|
|
1343
|
+
paddingLeft: _angular_core.InputSignal<OptionalSize>;
|
|
1344
|
+
paddingRight: _angular_core.InputSignal<OptionalSize>;
|
|
1345
|
+
paddingTop: _angular_core.InputSignal<OptionalSize>;
|
|
1346
|
+
paddingBottom: _angular_core.InputSignal<OptionalSize>;
|
|
1347
|
+
border: _angular_core.InputSignal<string>;
|
|
1348
|
+
borderTop: _angular_core.InputSignal<string>;
|
|
1349
|
+
borderBottom: _angular_core.InputSignal<string>;
|
|
1350
|
+
borderLeft: _angular_core.InputSignal<string>;
|
|
1351
|
+
borderRight: _angular_core.InputSignal<string>;
|
|
1352
|
+
dashBorder: _angular_core.InputSignal<boolean>;
|
|
1353
|
+
alignSelf: _angular_core.InputSignal<OptionalAlignSelf>;
|
|
1354
|
+
alignItems: _angular_core.InputSignal<OptionalAlignItems>;
|
|
1355
|
+
alignContent: _angular_core.InputSignal<OptionalAlignContent>;
|
|
1356
|
+
justifyContent: _angular_core.InputSignal<OptionalJustifyContent>;
|
|
1357
|
+
grow: _angular_core.InputSignal<number>;
|
|
1358
|
+
/**
|
|
1359
|
+
* The `flex` shorthand. `[flex]="1"` is `flex: 1` — grow, shrink and a zero
|
|
1360
|
+
* basis — which `grow` alone cannot express, since it leaves
|
|
1361
|
+
* `flex-basis: auto`. Wins over `grow` when both are set.
|
|
1362
|
+
*/
|
|
1363
|
+
flex: _angular_core.InputSignal<string | number>;
|
|
1364
|
+
shrink: _angular_core.InputSignal<number>;
|
|
1365
|
+
basis: _angular_core.InputSignal<string | number>;
|
|
1366
|
+
/**
|
|
1367
|
+
* Inline-axis margin. `marginInline="auto"` centers a `maxWidth` container —
|
|
1368
|
+
* the one thing flex centering cannot do without an extra wrapper. Only the
|
|
1369
|
+
* inline axis is exposed: block margins collapse and fight `gap`, which is
|
|
1370
|
+
* why the primitives carry no margin otherwise.
|
|
1371
|
+
*/
|
|
1372
|
+
marginInline: _angular_core.InputSignal<"auto" | NullableSize>;
|
|
1373
|
+
display: _angular_core.InputSignal<OptionalDisplay>;
|
|
1374
|
+
position: _angular_core.InputSignal<OptionalPosition>;
|
|
1375
|
+
inset: _angular_core.InputSignal<string | number>;
|
|
1376
|
+
/** Number = px via binding (`[height]="420"`); string = CSS length (`height="420px"`). */
|
|
1377
|
+
height: _angular_core.InputSignal<string | number>;
|
|
1378
|
+
minHeight: _angular_core.InputSignal<string | number>;
|
|
1379
|
+
maxHeight: _angular_core.InputSignal<string | number>;
|
|
1380
|
+
/** Number = px via binding (`[width]="420"`); string = CSS length (`width="50%"`). */
|
|
1381
|
+
width: _angular_core.InputSignal<string | number>;
|
|
1382
|
+
minWidth: _angular_core.InputSignal<string | number>;
|
|
1383
|
+
maxWidth: _angular_core.InputSignal<string | number>;
|
|
1384
|
+
ignoreDir: _angular_core.InputSignal<boolean>;
|
|
1385
|
+
gridArea: _angular_core.InputSignal<string>;
|
|
1386
|
+
gridColumn: _angular_core.InputSignal<string>;
|
|
1387
|
+
gridRow: _angular_core.InputSignal<string>;
|
|
1388
|
+
overflow: _angular_core.InputSignal<OptionalOverflow>;
|
|
1389
|
+
shadow: _angular_core.InputSignal<string>;
|
|
1390
|
+
gap: _angular_core.InputSignal<OptionalSize>;
|
|
1391
|
+
fullWidth: _angular_core.InputSignal<boolean>;
|
|
1392
|
+
fullHeight: _angular_core.InputSignal<boolean>;
|
|
1393
|
+
flexDirection: _angular_core.InputSignal<OptionalFlexDirection>;
|
|
1394
|
+
textAlign: _angular_core.InputSignal<OptionalTextAlign>;
|
|
1395
|
+
wrapItems: _angular_core.InputSignal<OptionalWrap>;
|
|
1396
|
+
zIndex: _angular_core.InputSignal<ZIndexableElements>;
|
|
1397
|
+
protected readonly boxClassName: _angular_core.Signal<string>;
|
|
1398
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniBoxDirective, never>;
|
|
1399
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<UniBoxDirective, "[uni-box-layout], [box-layout]", never, { "containerColor": { "alias": "containerColor"; "required": false; "isSignal": true; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; "isSignal": true; }; "borderRadius": { "alias": "borderRadius"; "required": false; "isSignal": true; }; "borderRadiusLeft": { "alias": "borderRadiusLeft"; "required": false; "isSignal": true; }; "borderRadiusRight": { "alias": "borderRadiusRight"; "required": false; "isSignal": true; }; "borderRadiusTop": { "alias": "borderRadiusTop"; "required": false; "isSignal": true; }; "borderRadiusBottom": { "alias": "borderRadiusBottom"; "required": false; "isSignal": true; }; "padding": { "alias": "padding"; "required": false; "isSignal": true; }; "paddingHorizontal": { "alias": "paddingHorizontal"; "required": false; "isSignal": true; }; "paddingVertical": { "alias": "paddingVertical"; "required": false; "isSignal": true; }; "paddingLeft": { "alias": "paddingLeft"; "required": false; "isSignal": true; }; "paddingRight": { "alias": "paddingRight"; "required": false; "isSignal": true; }; "paddingTop": { "alias": "paddingTop"; "required": false; "isSignal": true; }; "paddingBottom": { "alias": "paddingBottom"; "required": false; "isSignal": true; }; "border": { "alias": "border"; "required": false; "isSignal": true; }; "borderTop": { "alias": "borderTop"; "required": false; "isSignal": true; }; "borderBottom": { "alias": "borderBottom"; "required": false; "isSignal": true; }; "borderLeft": { "alias": "borderLeft"; "required": false; "isSignal": true; }; "borderRight": { "alias": "borderRight"; "required": false; "isSignal": true; }; "dashBorder": { "alias": "dashBorder"; "required": false; "isSignal": true; }; "alignSelf": { "alias": "alignSelf"; "required": false; "isSignal": true; }; "alignItems": { "alias": "alignItems"; "required": false; "isSignal": true; }; "alignContent": { "alias": "alignContent"; "required": false; "isSignal": true; }; "justifyContent": { "alias": "justifyContent"; "required": false; "isSignal": true; }; "grow": { "alias": "grow"; "required": false; "isSignal": true; }; "flex": { "alias": "flex"; "required": false; "isSignal": true; }; "shrink": { "alias": "shrink"; "required": false; "isSignal": true; }; "basis": { "alias": "basis"; "required": false; "isSignal": true; }; "marginInline": { "alias": "marginInline"; "required": false; "isSignal": true; }; "display": { "alias": "display"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "inset": { "alias": "inset"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "minHeight": { "alias": "minHeight"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "minWidth": { "alias": "minWidth"; "required": false; "isSignal": true; }; "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "ignoreDir": { "alias": "ignoreDir"; "required": false; "isSignal": true; }; "gridArea": { "alias": "gridArea"; "required": false; "isSignal": true; }; "gridColumn": { "alias": "gridColumn"; "required": false; "isSignal": true; }; "gridRow": { "alias": "gridRow"; "required": false; "isSignal": true; }; "overflow": { "alias": "overflow"; "required": false; "isSignal": true; }; "shadow": { "alias": "shadow"; "required": false; "isSignal": true; }; "gap": { "alias": "gap"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "fullHeight": { "alias": "fullHeight"; "required": false; "isSignal": true; }; "flexDirection": { "alias": "flexDirection"; "required": false; "isSignal": true; }; "textAlign": { "alias": "textAlign"; "required": false; "isSignal": true; }; "wrapItems": { "alias": "wrapItems"; "required": false; "isSignal": true; }; "zIndex": { "alias": "zIndex"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1400
|
+
}
|
|
1401
|
+
|
|
1402
|
+
declare class UniCenterDirective extends UniBoxDirective {
|
|
1403
|
+
display: _angular_core.InputSignal<OptionalDisplay>;
|
|
1404
|
+
justifyContent: _angular_core.InputSignal<OptionalJustifyContent>;
|
|
1405
|
+
alignItems: _angular_core.InputSignal<OptionalAlignItems>;
|
|
1406
|
+
constructor();
|
|
1407
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniCenterDirective, never>;
|
|
1408
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<UniCenterDirective, "[uni-center-layout], [center-layout]", never, { "display": { "alias": "display"; "required": false; "isSignal": true; }; "justifyContent": { "alias": "justifyContent"; "required": false; "isSignal": true; }; "alignItems": { "alias": "alignItems"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1409
|
+
}
|
|
1410
|
+
|
|
1411
|
+
declare class UniGridAreaDirective {
|
|
1412
|
+
area: _angular_core.InputSignal<string>;
|
|
1413
|
+
protected readonly className: _angular_core.Signal<string>;
|
|
1414
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniGridAreaDirective, never>;
|
|
1415
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<UniGridAreaDirective, "[uni-grid-area-layout], [grid-area-layout]", never, { "area": { "alias": "area"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1416
|
+
}
|
|
1417
|
+
|
|
1418
|
+
declare class UniGridDirective extends UniBoxDirective {
|
|
1419
|
+
display: _angular_core.InputSignal<OptionalDisplay>;
|
|
1420
|
+
templateAreas: _angular_core.InputSignal<string>;
|
|
1421
|
+
templateColumns: _angular_core.InputSignal<string>;
|
|
1422
|
+
templateRows: _angular_core.InputSignal<string>;
|
|
1423
|
+
outline: _angular_core.InputSignal<Thickness>;
|
|
1424
|
+
outlineColor: _angular_core.InputSignal<Variant>;
|
|
1425
|
+
protected readonly gridClassName: _angular_core.Signal<string>;
|
|
1426
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniGridDirective, never>;
|
|
1427
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<UniGridDirective, "[uni-grid-layout], [grid-layout]", never, { "display": { "alias": "display"; "required": false; "isSignal": true; }; "templateAreas": { "alias": "templateAreas"; "required": false; "isSignal": true; }; "templateColumns": { "alias": "templateColumns"; "required": false; "isSignal": true; }; "templateRows": { "alias": "templateRows"; "required": false; "isSignal": true; }; "outline": { "alias": "outline"; "required": false; "isSignal": true; }; "outlineColor": { "alias": "outlineColor"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1428
|
+
}
|
|
1429
|
+
|
|
1430
|
+
declare class UniRowDirective extends UniBoxDirective {
|
|
1431
|
+
display: _angular_core.InputSignal<OptionalDisplay>;
|
|
1432
|
+
flexDirection: _angular_core.InputSignal<OptionalFlexDirection>;
|
|
1433
|
+
/**
|
|
1434
|
+
* Defaults to `fit-content` (guards content collapse). Set `[minWidth]="0"`
|
|
1435
|
+
* when the row must shrink inside a constrained flex parent (scroll or
|
|
1436
|
+
* text truncation containment).
|
|
1437
|
+
*/
|
|
1438
|
+
minWidth: _angular_core.InputSignal<string | number>;
|
|
1439
|
+
constructor();
|
|
1440
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniRowDirective, never>;
|
|
1441
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<UniRowDirective, "[uni-row-layout], [row-layout]", never, { "display": { "alias": "display"; "required": false; "isSignal": true; }; "flexDirection": { "alias": "flexDirection"; "required": false; "isSignal": true; }; "minWidth": { "alias": "minWidth"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1442
|
+
}
|
|
1443
|
+
|
|
1444
|
+
declare class UniStackDirective extends UniBoxDirective {
|
|
1445
|
+
display: _angular_core.InputSignal<OptionalDisplay>;
|
|
1446
|
+
flexDirection: _angular_core.InputSignal<OptionalFlexDirection>;
|
|
1447
|
+
/**
|
|
1448
|
+
* Defaults to `fit-content` (guards content collapse). Set `[minHeight]="0"`
|
|
1449
|
+
* when the stack must shrink inside a constrained flex parent (scroll
|
|
1450
|
+
* containment).
|
|
1451
|
+
*/
|
|
1452
|
+
minHeight: _angular_core.InputSignal<string | number>;
|
|
1453
|
+
constructor();
|
|
1454
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniStackDirective, never>;
|
|
1455
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<UniStackDirective, "[uni-stack-layout], [stack-layout]", never, { "display": { "alias": "display"; "required": false; "isSignal": true; }; "flexDirection": { "alias": "flexDirection"; "required": false; "isSignal": true; }; "minHeight": { "alias": "minHeight"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1456
|
+
}
|
|
1457
|
+
|
|
1458
|
+
declare class UniWrapDirective extends UniBoxDirective {
|
|
1459
|
+
display: _angular_core.InputSignal<OptionalDisplay>;
|
|
1460
|
+
wrapItems: _angular_core.InputSignal<OptionalWrap>;
|
|
1461
|
+
constructor();
|
|
1462
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniWrapDirective, never>;
|
|
1463
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<UniWrapDirective, "[uni-wrap-layout], [wrap-layout]", never, { "display": { "alias": "display"; "required": false; "isSignal": true; }; "wrapItems": { "alias": "wrapItems"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1464
|
+
}
|
|
1465
|
+
|
|
1466
|
+
interface UniMultiSelectDropdownOptions {
|
|
1467
|
+
textRole: Typeface;
|
|
1468
|
+
textColor: TextColor;
|
|
1469
|
+
placeholderTextColor: TextColor;
|
|
1470
|
+
dividerBorder: Border;
|
|
1471
|
+
searchInputBorder: Border;
|
|
1472
|
+
searchInputBorderRadius: Radius;
|
|
1473
|
+
focusOutline: string;
|
|
1474
|
+
focusOutlineOffset: number;
|
|
1475
|
+
}
|
|
1476
|
+
|
|
1477
|
+
declare class UniMultiSelectDropdownComponent<T = unknown> extends BaseComponent<UniMultiSelectDropdownOptions> implements FormValueControl<T[]> {
|
|
1478
|
+
protected readonly className: string;
|
|
1479
|
+
readonly value: _angular_core.ModelSignal<T[]>;
|
|
1480
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
1481
|
+
readonly touched: _angular_core.ModelSignal<boolean>;
|
|
1482
|
+
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
1483
|
+
readonly dirty: _angular_core.InputSignal<boolean>;
|
|
1484
|
+
/** Synced from required() validators by the Signal Forms [field] directive. */
|
|
1485
|
+
readonly required: _angular_core.InputSignal<boolean>;
|
|
1486
|
+
/**
|
|
1487
|
+
* Id(s) of external element(s) describing this control — typically your
|
|
1488
|
+
* app-rendered error message — exposed as aria-describedby.
|
|
1489
|
+
*/
|
|
1490
|
+
readonly ariaDescribedBy: _angular_core.InputSignal<string>;
|
|
1491
|
+
readonly options: _angular_core.InputSignal<Options<T>>;
|
|
1492
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
1493
|
+
/**
|
|
1494
|
+
* What the field is for, e.g. "Fruits". Rendered visually hidden inside the
|
|
1495
|
+
* trigger so its accessible name reads "Fruits, Apple, Pear" — without it a
|
|
1496
|
+
* screen reader announces only the current selection, with no clue which
|
|
1497
|
+
* field it belongs to.
|
|
1498
|
+
*/
|
|
1499
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
1500
|
+
/** Debounce for the filter box, matching the library's input debounce. */
|
|
1501
|
+
readonly debounceTime: _angular_core.InputSignal<number>;
|
|
1502
|
+
protected readonly srOnly: string;
|
|
1503
|
+
protected readonly query: _angular_core.WritableSignal<string>;
|
|
1504
|
+
private queryTimer?;
|
|
1505
|
+
protected readonly filteredOptions: _angular_core.Signal<Options<T>>;
|
|
1506
|
+
private readonly optionRefs;
|
|
1507
|
+
/**
|
|
1508
|
+
* Roving focus over the options. The shared helper owns the index
|
|
1509
|
+
* arithmetic — wrapping, Home/End, and never pointing past a list the
|
|
1510
|
+
* filter has narrowed — the same contract `uni-search-input` and
|
|
1511
|
+
* `uni-tag-input` use, so the keys behave identically across all three.
|
|
1512
|
+
*
|
|
1513
|
+
* `disabled` indexes into `filteredOptions`, matching `count`: arrows step
|
|
1514
|
+
* over disabled rows and Home/End land on the nearest enabled one, so the
|
|
1515
|
+
* focus target is always a checkbox that can actually take focus.
|
|
1516
|
+
*/
|
|
1517
|
+
protected readonly list: _uni_design_system_uni_angular.ListboxNavigation;
|
|
1518
|
+
/** Announced with the selection so the count is not left to guesswork. */
|
|
1519
|
+
readonly selectionSummary: _angular_core.Signal<string>;
|
|
1520
|
+
readonly selectedLabelsText: _angular_core.Signal<string>;
|
|
1521
|
+
protected readonly showError: _angular_core.Signal<boolean>;
|
|
1522
|
+
protected readonly textColor: _angular_core.Signal<_uni_design_system_uni_core.TextColor>;
|
|
1523
|
+
triggerClass: string;
|
|
1524
|
+
protected readonly searchInputClass: _angular_core.Signal<string>;
|
|
1525
|
+
protected handleQueryInput(event: Event): void;
|
|
1526
|
+
/**
|
|
1527
|
+
* Arrow keys walk the options from anywhere in the panel, including the
|
|
1528
|
+
* filter box — previously the only way in was to Tab through every
|
|
1529
|
+
* checkbox.
|
|
1530
|
+
*/
|
|
1531
|
+
protected onPanelKeydown(event: KeyboardEvent): void;
|
|
1532
|
+
/** Keeps the active index in step when focus lands on a row by pointer. */
|
|
1533
|
+
protected onOptionFocus(index: number): void;
|
|
1534
|
+
/**
|
|
1535
|
+
* Selects every *enabled* option. A disabled option is not committable, so
|
|
1536
|
+
* "select all" must not commit one on the user's behalf — the same rule
|
|
1537
|
+
* `toggleOption` and the keyboard path follow.
|
|
1538
|
+
*/
|
|
1539
|
+
selectAll(): void;
|
|
1540
|
+
deselectAll(): void;
|
|
1541
|
+
protected isOptionSelected(option: Option<T>): _angular_core.Signal<boolean>;
|
|
1542
|
+
toggleOption(option: Option<T>, checked: boolean): void;
|
|
1543
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniMultiSelectDropdownComponent<any>, never>;
|
|
1544
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniMultiSelectDropdownComponent<any>, "uni-multi-select-dropdown", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "dirty": { "alias": "dirty"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "ariaDescribedBy": { "alias": "ariaDescribedBy"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": true; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "debounceTime": { "alias": "debounceTime"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touched": "touchedChange"; }, never, never, true, never>;
|
|
1545
|
+
}
|
|
1546
|
+
|
|
1547
|
+
declare class UniMultiSelectComponent<T = unknown> {
|
|
1548
|
+
options: _angular_core.InputSignal<Option<T>[]>;
|
|
1549
|
+
selections: _angular_core.InputSignal<T[]>;
|
|
1550
|
+
updates: _angular_core.OutputEmitterRef<T[]>;
|
|
1551
|
+
flexDirection: _angular_core.InputSignal<"column" | "column-reverse" | "row" | "row-reverse">;
|
|
1552
|
+
checkboxGap: _angular_core.InputSignal<NullableSize>;
|
|
1553
|
+
protected readonly values: _angular_core.Signal<unknown[]>;
|
|
1554
|
+
protected readonly optionsWithSelections: _angular_core.Signal<Option<T>[]>;
|
|
1555
|
+
protected readonly className: string;
|
|
1556
|
+
handleCheck(checked: boolean, value: T): void;
|
|
1557
|
+
/** Selects every *enabled* option — a disabled option is not committable. */
|
|
1558
|
+
selectAll(): void;
|
|
1559
|
+
deselectAll(): void;
|
|
1560
|
+
optionWrapper: string;
|
|
1561
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniMultiSelectComponent<any>, never>;
|
|
1562
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniMultiSelectComponent<any>, "uni-multi-select", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "selections": { "alias": "selections"; "required": false; "isSignal": true; }; "flexDirection": { "alias": "flexDirection"; "required": false; "isSignal": true; }; "checkboxGap": { "alias": "checkboxGap"; "required": false; "isSignal": true; }; }, { "updates": "updates"; }, never, never, true, never>;
|
|
1563
|
+
}
|
|
1564
|
+
|
|
1565
|
+
interface UniRadioOption {
|
|
1566
|
+
/**
|
|
1567
|
+
* The label displayed for this radio option
|
|
1568
|
+
*/
|
|
1569
|
+
label: string;
|
|
1570
|
+
/**
|
|
1571
|
+
* The value associated with this radio option
|
|
1572
|
+
*/
|
|
1573
|
+
value: string;
|
|
1574
|
+
/**
|
|
1575
|
+
* Whether this option is disabled
|
|
1576
|
+
*/
|
|
1577
|
+
disabled?: boolean;
|
|
1578
|
+
}
|
|
1579
|
+
interface UniRadioOptions {
|
|
1580
|
+
/**
|
|
1581
|
+
* The size of the radio buttons
|
|
1582
|
+
*/
|
|
1583
|
+
size?: number;
|
|
1584
|
+
/** Unselected ring color token. */
|
|
1585
|
+
ringColor?: ColorKey;
|
|
1586
|
+
/** Circle background token. */
|
|
1587
|
+
fillColor?: ColorKey;
|
|
1588
|
+
/** Named motion primitive for the dot's grow/retract and the ring's color
|
|
1589
|
+
change. Defaults to `control`; a token with `duration: 0` is instant. */
|
|
1590
|
+
motion?: Motion;
|
|
1591
|
+
}
|
|
1592
|
+
|
|
1593
|
+
declare class UniRadioComponent extends BaseComponent<UniRadioOptions> implements FormValueControl<string> {
|
|
1594
|
+
readonly value: _angular_core.ModelSignal<string>;
|
|
1595
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
1596
|
+
readonly touched: _angular_core.ModelSignal<boolean>;
|
|
1597
|
+
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
1598
|
+
readonly dirty: _angular_core.InputSignal<boolean>;
|
|
1599
|
+
/** Synced from required() validators by the Signal Forms [field] directive. */
|
|
1600
|
+
readonly required: _angular_core.InputSignal<boolean>;
|
|
1601
|
+
/**
|
|
1602
|
+
* Id(s) of external element(s) describing this control — typically your
|
|
1603
|
+
* app-rendered error message — exposed as aria-describedby.
|
|
1604
|
+
*/
|
|
1605
|
+
readonly ariaDescribedBy: _angular_core.InputSignal<string>;
|
|
1606
|
+
readonly options: _angular_core.InputSignal<UniRadioOption[]>;
|
|
1607
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
1608
|
+
readonly name: _angular_core.InputSignal<string>;
|
|
1609
|
+
/** Links the group label to the radiogroup container. */
|
|
1610
|
+
protected readonly groupLabelId: string;
|
|
1611
|
+
protected readonly showError: _angular_core.Signal<boolean>;
|
|
1612
|
+
markAsTouched(): void;
|
|
1613
|
+
private readonly metrics;
|
|
1614
|
+
protected readonly radioGroupClass: string;
|
|
1615
|
+
protected readonly radioOptionClass: _angular_core.Signal<string>;
|
|
1616
|
+
protected readonly radioInputClass: _angular_core.Signal<string>;
|
|
1617
|
+
handleRadioChange(optionValue: string): void;
|
|
1618
|
+
getThemeColor(token: ColorToken): string;
|
|
1619
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniRadioComponent, never>;
|
|
1620
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniRadioComponent, "uni-radio", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "dirty": { "alias": "dirty"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "ariaDescribedBy": { "alias": "ariaDescribedBy"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touched": "touchedChange"; }, never, never, true, never>;
|
|
1621
|
+
}
|
|
1622
|
+
|
|
1623
|
+
/**
|
|
1624
|
+
* Text input that emits `change` only after the user pauses typing. Wears the
|
|
1625
|
+
* shared input chrome (themed color, border, typeface, focus ring) via
|
|
1626
|
+
* `uni-input-box`; project adornments with the `pre-input` / `post-input`
|
|
1627
|
+
* slots, matching `uni-input`'s convention. The ARIA passthrough inputs let a
|
|
1628
|
+
* wrapping composite (e.g. SearchInput's combobox) annotate the real input
|
|
1629
|
+
* element.
|
|
1630
|
+
*/
|
|
1631
|
+
declare class UniDebounceInputComponent {
|
|
1632
|
+
inputName: _angular_core.InputSignal<string>;
|
|
1633
|
+
inputId: _angular_core.InputSignal<string>;
|
|
1634
|
+
debounceTime: _angular_core.InputSignal<number>;
|
|
1635
|
+
/** Accessible name for the input. */
|
|
1636
|
+
label: _angular_core.InputSignal<string>;
|
|
1637
|
+
placeholder: _angular_core.InputSignal<string>;
|
|
1638
|
+
disabled: _angular_core.InputSignal<boolean>;
|
|
1639
|
+
/** Native input type; text-like only, matching `uni-input`. */
|
|
1640
|
+
type: _angular_core.InputSignal<UniInputType>;
|
|
1641
|
+
autocomplete: _angular_core.InputSignal<string>;
|
|
1642
|
+
inputMode: _angular_core.InputSignal<UniInputMode>;
|
|
1643
|
+
role: _angular_core.InputSignal<string>;
|
|
1644
|
+
ariaExpanded: _angular_core.InputSignal<boolean>;
|
|
1645
|
+
ariaControls: _angular_core.InputSignal<string>;
|
|
1646
|
+
ariaActivedescendant: _angular_core.InputSignal<string>;
|
|
1647
|
+
/** The debounced value, emitted once the user pauses typing. */
|
|
1648
|
+
valueChange: _angular_core.OutputEmitterRef<string>;
|
|
1649
|
+
value: _angular_core.WritableSignal<string>;
|
|
1650
|
+
private readonly inputElement;
|
|
1651
|
+
private timeoutId;
|
|
1652
|
+
private lastEmitted;
|
|
1653
|
+
constructor();
|
|
1654
|
+
handleInput(event: Event): void;
|
|
1655
|
+
/** Empty the field immediately, cancelling any pending emit. */
|
|
1656
|
+
clear(): void;
|
|
1657
|
+
focus(): void;
|
|
1658
|
+
inputClass: string;
|
|
1659
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniDebounceInputComponent, never>;
|
|
1660
|
+
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; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; "inputMode": { "alias": "inputMode"; "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; }; }, { "valueChange": "valueChange"; }, never, ["[pre-input]", "[post-input]"], true, never>;
|
|
1661
|
+
}
|
|
1662
|
+
|
|
1663
|
+
/** Theme-level options for `uni-search-input`, resolved by token name. */
|
|
1664
|
+
interface UniSearchInputOptions {
|
|
1665
|
+
/** Leading (decorative) symbol. */
|
|
1666
|
+
searchSymbol?: string;
|
|
1667
|
+
/** Clear-button symbol. */
|
|
1668
|
+
clearSymbol?: string;
|
|
1669
|
+
/** Suggestion list surface color token. */
|
|
1670
|
+
listColor?: ColorKey;
|
|
1671
|
+
/** Active/hover suggestion fill; the on-color pair is derived. Must
|
|
1672
|
+
contrast with `listColor` or keyboard navigation turns invisible. */
|
|
1673
|
+
activeColor?: ContainerColorToken;
|
|
1674
|
+
/** Suggestion list elevation token. */
|
|
1675
|
+
listShadow?: Shadow;
|
|
1676
|
+
/** Suggestion list radius token. */
|
|
1677
|
+
listBorderRadius?: Radius;
|
|
1678
|
+
/** Cap on rendered suggestions. */
|
|
1679
|
+
maxSuggestions?: number; /** Named motion primitive for the suggestion popup's open animation.
|
|
1680
|
+
Defaults to `popup` — the token `uni-dropdown` uses. */
|
|
1681
|
+
motion?: Motion;
|
|
1682
|
+
}
|
|
1683
|
+
|
|
1684
|
+
/**
|
|
1685
|
+
* Generic search field: shared input chrome with a leading magnifier, a clear
|
|
1686
|
+
* button while there's a query, Enter to submit, and optional type-ahead —
|
|
1687
|
+
* pass `suggestions` (refresh them from `change`) and the field becomes an
|
|
1688
|
+
* ARIA combobox with a keyboard-navigable listbox. Escape closes the list
|
|
1689
|
+
* first, then clears the query.
|
|
1690
|
+
*/
|
|
1691
|
+
declare class UniSearchInputComponent extends BaseComponent<UniSearchInputOptions> {
|
|
1692
|
+
/** Accessible name for the field, also the placeholder fallback. */
|
|
1693
|
+
label: _angular_core.InputSignal<string>;
|
|
1694
|
+
placeholder: _angular_core.InputSignal<string>;
|
|
1695
|
+
width: _angular_core.InputSignal<string | number>;
|
|
1696
|
+
debounceTime: _angular_core.InputSignal<number>;
|
|
1697
|
+
/**
|
|
1698
|
+
* Type-ahead entries. Keep them fresh from `change` emissions; the list
|
|
1699
|
+
* shows while the field has focus and entries exist.
|
|
1700
|
+
*/
|
|
1701
|
+
suggestions: _angular_core.InputSignal<string[]>;
|
|
1702
|
+
/** The debounced query, emitted as the user types. */
|
|
1703
|
+
searchChange: _angular_core.OutputEmitterRef<string>;
|
|
1704
|
+
/** A committed search: Enter, or a suggestion chosen from the list. */
|
|
1705
|
+
searchSubmit: _angular_core.OutputEmitterRef<string>;
|
|
1706
|
+
suggestionSelected: _angular_core.OutputEmitterRef<string>;
|
|
1707
|
+
protected readonly field: _angular_core.Signal<UniDebounceInputComponent>;
|
|
1708
|
+
private readonly listRef;
|
|
1709
|
+
/** Ties the popup to the field so the browser tracks it in the top layer. */
|
|
1710
|
+
private readonly anchor;
|
|
1711
|
+
/** `manual` where the top layer is usable, else null — see the popup helper. */
|
|
1712
|
+
protected readonly popupAttr: "manual";
|
|
1713
|
+
constructor();
|
|
1714
|
+
protected readonly visibleSuggestions: _angular_core.Signal<string[]>;
|
|
1715
|
+
/** Shared combobox bookkeeping: open state, active option, ARIA ids. */
|
|
1716
|
+
protected readonly list: _uni_design_system_uni_angular.ListboxNavigation;
|
|
1717
|
+
readonly listboxId: string;
|
|
1718
|
+
protected readonly hasQuery: _angular_core.Signal<boolean>;
|
|
1719
|
+
protected handleChange(value: string): void;
|
|
1720
|
+
protected submit(): void;
|
|
1721
|
+
protected select(suggestion: string): void;
|
|
1722
|
+
protected clear(): void;
|
|
1723
|
+
protected onKeydown(event: KeyboardEvent): void;
|
|
1724
|
+
protected onFocusOut(event: FocusEvent): void;
|
|
1725
|
+
protected readonly className: _angular_core.Signal<string>;
|
|
1726
|
+
protected readonly listClass: _angular_core.Signal<string>;
|
|
1727
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniSearchInputComponent, never>;
|
|
1728
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniSearchInputComponent, "uni-search-input", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "debounceTime": { "alias": "debounceTime"; "required": false; "isSignal": true; }; "suggestions": { "alias": "suggestions"; "required": false; "isSignal": true; }; }, { "searchChange": "searchChange"; "searchSubmit": "searchSubmit"; "suggestionSelected": "suggestionSelected"; }, never, never, true, never>;
|
|
1729
|
+
}
|
|
1730
|
+
|
|
1731
|
+
declare class UniSelectComponent<T> implements FormValueControl<T | null> {
|
|
1732
|
+
readonly value: _angular_core.ModelSignal<T>;
|
|
1733
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
1734
|
+
readonly touched: _angular_core.ModelSignal<boolean>;
|
|
1735
|
+
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
1736
|
+
readonly dirty: _angular_core.InputSignal<boolean>;
|
|
1737
|
+
/** Synced from required() validators by the Signal Forms [field] directive. */
|
|
1738
|
+
readonly required: _angular_core.InputSignal<boolean>;
|
|
1739
|
+
/**
|
|
1740
|
+
* Id(s) of external element(s) describing this control — typically your
|
|
1741
|
+
* app-rendered error message — exposed as aria-describedby.
|
|
1742
|
+
*/
|
|
1743
|
+
readonly ariaDescribedBy: _angular_core.InputSignal<string>;
|
|
1744
|
+
readonly options: _angular_core.InputSignal<Options<T>>;
|
|
1745
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
1746
|
+
readonly width: _angular_core.InputSignal<string | number>;
|
|
1747
|
+
readonly fullWidth: _angular_core.InputSignal<boolean>;
|
|
1748
|
+
readonly grow: _angular_core.InputSignal<number>;
|
|
1749
|
+
/**
|
|
1750
|
+
* Equality used to match `value` against option values, called as
|
|
1751
|
+
* `compareWith(optionValue, value)`. Defaults to reference equality, which
|
|
1752
|
+
* never matches an object value rebuilt from elsewhere (e.g. a saved record
|
|
1753
|
+
* against options from a fresh fetch) — pass a key comparison like
|
|
1754
|
+
* `(a, b) => a?.id === b?.id` for object values.
|
|
1755
|
+
*/
|
|
1756
|
+
readonly compareWith: _angular_core.InputSignal<(optionValue: T, value: T) => boolean>;
|
|
1757
|
+
/** Accessible name for the select; a placeholder is not a label. */
|
|
1758
|
+
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
1759
|
+
protected readonly UNSELECTED = -1;
|
|
1760
|
+
/**
|
|
1761
|
+
* We use the index as the HTML value to avoid issues with
|
|
1762
|
+
* stringifying complex objects or duplicate labels.
|
|
1763
|
+
*/
|
|
1764
|
+
protected readonly currentSelectedIndex: _angular_core.Signal<string | -1>;
|
|
1765
|
+
protected readonly showError: _angular_core.Signal<boolean>;
|
|
1766
|
+
protected handleSelectChange(event: Event): void;
|
|
1767
|
+
selectClass: string;
|
|
1768
|
+
arrowClass: string;
|
|
1769
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniSelectComponent<any>, never>;
|
|
1770
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniSelectComponent<any>, "uni-select", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "dirty": { "alias": "dirty"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "ariaDescribedBy": { "alias": "ariaDescribedBy"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "grow": { "alias": "grow"; "required": false; "isSignal": true; }; "compareWith": { "alias": "compareWith"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touched": "touchedChange"; }, never, never, true, never>;
|
|
1771
|
+
}
|
|
1772
|
+
|
|
1773
|
+
/** Theme-level options for `uni-slider`, resolved by token name. */
|
|
1774
|
+
interface UniSliderOptions {
|
|
1775
|
+
/** Fill and thumb color. */
|
|
1776
|
+
color?: ColorKey;
|
|
1777
|
+
/** Unfilled track color. */
|
|
1778
|
+
trackColor?: ColorKey;
|
|
1779
|
+
/** Track and thumb radius token. */
|
|
1780
|
+
borderRadius?: Radius;
|
|
1781
|
+
/** Track height in px. */
|
|
1782
|
+
trackHeight?: number;
|
|
1783
|
+
/** Thumb diameter in px. */
|
|
1784
|
+
thumbSize?: number;
|
|
1785
|
+
}
|
|
1786
|
+
|
|
1787
|
+
/**
|
|
1788
|
+
* Range slider on a native `<input type="range">` — keyboard interaction and
|
|
1789
|
+
* the ARIA slider contract come from the platform. Fill, track, thumb and
|
|
1790
|
+
* radii resolve from `slider` theme tokens; the fill percentage rides a CSS
|
|
1791
|
+
* custom property so dragging never regenerates styles.
|
|
1792
|
+
*/
|
|
1793
|
+
declare class UniSliderComponent extends BaseComponent<UniSliderOptions> implements FormValueControl<number> {
|
|
1794
|
+
readonly value: _angular_core.ModelSignal<number>;
|
|
1795
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
1796
|
+
readonly touched: _angular_core.ModelSignal<boolean>;
|
|
1797
|
+
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
1798
|
+
readonly dirty: _angular_core.InputSignal<boolean>;
|
|
1799
|
+
/** Synced from required() validators by the Signal Forms [field] directive. */
|
|
1800
|
+
readonly required: _angular_core.InputSignal<boolean>;
|
|
1801
|
+
/**
|
|
1802
|
+
* Id(s) of external element(s) describing this control — typically your
|
|
1803
|
+
* app-rendered value or error text — exposed as aria-describedby.
|
|
1804
|
+
*/
|
|
1805
|
+
readonly ariaDescribedBy: _angular_core.InputSignal<string>;
|
|
1806
|
+
label: _angular_core.InputSignal<string>;
|
|
1807
|
+
min: _angular_core.InputSignal<number>;
|
|
1808
|
+
max: _angular_core.InputSignal<number>;
|
|
1809
|
+
step: _angular_core.InputSignal<number>;
|
|
1810
|
+
protected readonly resolvedMin: _angular_core.Signal<number>;
|
|
1811
|
+
protected readonly resolvedMax: _angular_core.Signal<number>;
|
|
1812
|
+
markAsTouched(): void;
|
|
1813
|
+
handleInput(event: Event): void;
|
|
1814
|
+
protected readonly fillPercent: _angular_core.Signal<string>;
|
|
1815
|
+
protected readonly inputClass: _angular_core.Signal<string>;
|
|
1816
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniSliderComponent, never>;
|
|
1817
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniSliderComponent, "uni-slider", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "dirty": { "alias": "dirty"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "ariaDescribedBy": { "alias": "ariaDescribedBy"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touched": "touchedChange"; }, never, never, true, never>;
|
|
1818
|
+
}
|
|
1819
|
+
|
|
1820
|
+
/**
|
|
1821
|
+
* One committed token. `value` is canonical — what a form submits — and
|
|
1822
|
+
* everything else is presentation the field may enrich from a suggestion.
|
|
1823
|
+
*
|
|
1824
|
+
* `{ value: 'a@b.com' }` is a complete item, so the least a caller has to write
|
|
1825
|
+
* is `[value]="[{ value: 'a@b.com' }]"`.
|
|
1826
|
+
*/
|
|
1827
|
+
interface UniTagItem {
|
|
1828
|
+
/** Canonical value, e.g. an email address. */
|
|
1829
|
+
value: string;
|
|
1830
|
+
/** Display text; falls back to `value`. */
|
|
1831
|
+
label?: string;
|
|
1832
|
+
avatarSrc?: string;
|
|
1833
|
+
/**
|
|
1834
|
+
* Failed `validate()`. The item stays **in** the value rather than being
|
|
1835
|
+
* rejected — a field that silently swallows a typo'd address is worse than
|
|
1836
|
+
* one that shows it in red, and the user can click in to fix it.
|
|
1837
|
+
*/
|
|
1838
|
+
invalid?: boolean;
|
|
1839
|
+
/** Locked token (e.g. a thread owner): rendered without a remove control. */
|
|
1840
|
+
disabled?: boolean;
|
|
1841
|
+
}
|
|
1842
|
+
/** A type-ahead entry. Same contract as `uni-search-input`: the app filters. */
|
|
1843
|
+
interface UniTagSuggestion {
|
|
1844
|
+
value: string;
|
|
1845
|
+
label?: string;
|
|
1846
|
+
description?: string;
|
|
1847
|
+
avatarSrc?: string;
|
|
1848
|
+
}
|
|
1849
|
+
/** Why a typed token did not become a chip. */
|
|
1850
|
+
interface UniTagRejection {
|
|
1851
|
+
raw: string;
|
|
1852
|
+
reason: 'duplicate' | 'max' | 'invalid';
|
|
1853
|
+
}
|
|
1854
|
+
/** Theme options for the `tagInput` component entry. */
|
|
1855
|
+
interface UniTagInputOptions {
|
|
1856
|
+
/** Space between chips. */
|
|
1857
|
+
chipGap?: NullableSize;
|
|
1858
|
+
chipSize?: Size;
|
|
1859
|
+
/** Keeps the text input usable when chips have wrapped. */
|
|
1860
|
+
minInputWidth?: string | number;
|
|
1861
|
+
listColor?: ContainerColorToken;
|
|
1862
|
+
listShadow?: Shadow;
|
|
1863
|
+
listBorderRadius?: Radius;
|
|
1864
|
+
/** Active/hover suggestion fill; the on-color pair is derived. Must
|
|
1865
|
+
contrast with `listColor` or keyboard navigation turns invisible. */
|
|
1866
|
+
activeColor?: ContainerColorToken;
|
|
1867
|
+
maxSuggestions?: number; /** Named motion primitive for the suggestion popup's open animation.
|
|
1868
|
+
Defaults to `popup` — the token `uni-dropdown` uses. */
|
|
1869
|
+
motion?: Motion;
|
|
1870
|
+
}
|
|
1871
|
+
|
|
1872
|
+
declare class UniTagInputComponent extends BaseComponent<UniTagInputOptions> implements FormValueControl<UniTagItem[]> {
|
|
1873
|
+
readonly value: _angular_core.ModelSignal<UniTagItem[]>;
|
|
1874
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
1875
|
+
readonly touched: _angular_core.ModelSignal<boolean>;
|
|
1876
|
+
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
1877
|
+
readonly dirty: _angular_core.InputSignal<boolean>;
|
|
1878
|
+
readonly required: _angular_core.InputSignal<boolean>;
|
|
1879
|
+
readonly ariaDescribedBy: _angular_core.InputSignal<string>;
|
|
1880
|
+
/** Accessible name for the field, e.g. "To". */
|
|
1881
|
+
label: _angular_core.InputSignal<string>;
|
|
1882
|
+
placeholder: _angular_core.InputSignal<string>;
|
|
1883
|
+
/** `email` wires an address validator, paste parser and space separator. */
|
|
1884
|
+
preset: _angular_core.InputSignal<"text" | "email">;
|
|
1885
|
+
separators: _angular_core.InputSignal<string[]>;
|
|
1886
|
+
commitOnBlur: _angular_core.InputSignal<boolean>;
|
|
1887
|
+
allowDuplicates: _angular_core.InputSignal<boolean>;
|
|
1888
|
+
max: _angular_core.InputSignal<number>;
|
|
1889
|
+
validate: _angular_core.InputSignal<(raw: string) => boolean>;
|
|
1890
|
+
parse: _angular_core.InputSignal<(pasted: string) => string[]>;
|
|
1891
|
+
tagVariant: _angular_core.InputSignal<Variant>;
|
|
1892
|
+
tagTone: _angular_core.InputSignal<TagTone>;
|
|
1893
|
+
tagSize: _angular_core.InputSignal<Size>;
|
|
1894
|
+
suggestions: _angular_core.InputSignal<UniTagSuggestion[]>;
|
|
1895
|
+
/** Debounced text the app should filter `suggestions` from. */
|
|
1896
|
+
query: _angular_core.OutputEmitterRef<string>;
|
|
1897
|
+
debounceTime: _angular_core.InputSignal<number>;
|
|
1898
|
+
added: _angular_core.OutputEmitterRef<UniTagItem>;
|
|
1899
|
+
removed: _angular_core.OutputEmitterRef<UniTagItem>;
|
|
1900
|
+
rejected: _angular_core.OutputEmitterRef<UniTagRejection>;
|
|
1901
|
+
private readonly inputRef;
|
|
1902
|
+
private readonly chipRefs;
|
|
1903
|
+
private readonly listRef;
|
|
1904
|
+
/** Ties the popup to the field so the browser tracks it in the top layer. */
|
|
1905
|
+
private readonly anchor;
|
|
1906
|
+
/** `manual` where the top layer is usable, else null — see the popup helper. */
|
|
1907
|
+
protected readonly popupAttr: "manual";
|
|
1908
|
+
constructor();
|
|
1909
|
+
/** Uncommitted text in the field. */
|
|
1910
|
+
protected readonly draft: _angular_core.WritableSignal<string>;
|
|
1911
|
+
/** Index of the focused chip, or -1 when focus is in the text input. */
|
|
1912
|
+
protected readonly focusedChip: _angular_core.WritableSignal<number>;
|
|
1913
|
+
/** Adds, removes and refusals are otherwise silent to a screen reader. */
|
|
1914
|
+
protected readonly announcer: _uni_design_system_uni_angular.Announcer;
|
|
1915
|
+
protected readonly hintId: string;
|
|
1916
|
+
protected readonly srOnly: string;
|
|
1917
|
+
private queryTimer?;
|
|
1918
|
+
protected readonly visibleSuggestions: _angular_core.Signal<UniTagSuggestion[]>;
|
|
1919
|
+
/** Shared combobox bookkeeping — identical contract to uni-search-input. */
|
|
1920
|
+
protected readonly list: _uni_design_system_uni_angular.ListboxNavigation;
|
|
1921
|
+
protected readonly showError: _angular_core.Signal<boolean>;
|
|
1922
|
+
protected readonly separatorKeys: _angular_core.Signal<string[]>;
|
|
1923
|
+
protected readonly describedBy: _angular_core.Signal<string>;
|
|
1924
|
+
protected labelOf(item: UniTagItem | UniTagSuggestion): string;
|
|
1925
|
+
/** Split pasted text into candidate tokens. */
|
|
1926
|
+
private parseRaw;
|
|
1927
|
+
private isValid;
|
|
1928
|
+
/**
|
|
1929
|
+
* Turn typed text into a chip. Invalid entries are kept and flagged rather
|
|
1930
|
+
* than dropped; duplicates and over-max are refused with a reason.
|
|
1931
|
+
*/
|
|
1932
|
+
protected commit(raw: string): boolean;
|
|
1933
|
+
private reject;
|
|
1934
|
+
protected removeAt(index: number, focus?: 'left' | 'right' | 'input'): void;
|
|
1935
|
+
private countNoun;
|
|
1936
|
+
protected focusInput(): void;
|
|
1937
|
+
private focusChip;
|
|
1938
|
+
protected onInputKeydown(event: KeyboardEvent): void;
|
|
1939
|
+
protected onInput(value: string): void;
|
|
1940
|
+
protected onPaste(event: ClipboardEvent): void;
|
|
1941
|
+
protected onBlur(): void;
|
|
1942
|
+
protected onFocusOut(event: FocusEvent): void;
|
|
1943
|
+
protected onChipKeydown(event: KeyboardEvent, index: number): void;
|
|
1944
|
+
/** Lift a chip back into the input for correction. */
|
|
1945
|
+
protected editChip(index: number): void;
|
|
1946
|
+
protected selectSuggestion(suggestion: UniTagSuggestion): void;
|
|
1947
|
+
private commitDraft;
|
|
1948
|
+
private setDraft;
|
|
1949
|
+
/** The host is the popup's anchor — the box the list mirrors the width of,
|
|
1950
|
+
and the one its entry animation is measured against. The wrapper below
|
|
1951
|
+
has the same geometry but is only the fallback's positioning context. */
|
|
1952
|
+
protected readonly className: _angular_core.Signal<string>;
|
|
1953
|
+
protected readonly wrapperClass: _angular_core.Signal<string>;
|
|
1954
|
+
protected readonly fieldClass: _angular_core.Signal<string>;
|
|
1955
|
+
protected readonly inputClass: _angular_core.Signal<string>;
|
|
1956
|
+
protected readonly listClass: _angular_core.Signal<string>;
|
|
1957
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniTagInputComponent, never>;
|
|
1958
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniTagInputComponent, "uni-tag-input", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "dirty": { "alias": "dirty"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "ariaDescribedBy": { "alias": "ariaDescribedBy"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "preset": { "alias": "preset"; "required": false; "isSignal": true; }; "separators": { "alias": "separators"; "required": false; "isSignal": true; }; "commitOnBlur": { "alias": "commitOnBlur"; "required": false; "isSignal": true; }; "allowDuplicates": { "alias": "allowDuplicates"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "validate": { "alias": "validate"; "required": false; "isSignal": true; }; "parse": { "alias": "parse"; "required": false; "isSignal": true; }; "tagVariant": { "alias": "tagVariant"; "required": false; "isSignal": true; }; "tagTone": { "alias": "tagTone"; "required": false; "isSignal": true; }; "tagSize": { "alias": "tagSize"; "required": false; "isSignal": true; }; "suggestions": { "alias": "suggestions"; "required": false; "isSignal": true; }; "debounceTime": { "alias": "debounceTime"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touched": "touchedChange"; "query": "query"; "added": "added"; "removed": "removed"; "rejected": "rejected"; }, never, never, true, never>;
|
|
1959
|
+
}
|
|
1960
|
+
|
|
1961
|
+
/**
|
|
1962
|
+
* The typography primitive, applied as an attribute to any element so
|
|
1963
|
+
* semantics stay yours. The attribute value is the typeface:
|
|
1964
|
+
* `<h1 uni-text="display-small">`, `<span uni-text="caption">`, dynamic via
|
|
1965
|
+
* `[uni-text]="role()"`. With no value, the typeface is inferred from the
|
|
1966
|
+
* host element (h1 → headline-large, p → body-1-long, …), falling back to
|
|
1967
|
+
* `title-small`; the `typeface` input remains as an explicit override.
|
|
1968
|
+
*
|
|
1969
|
+
* It is a directive, so it stacks with anything else on the element — a layout
|
|
1970
|
+
* attribute (`<div stack-layout uni-text="title-small">`) or a component's own
|
|
1971
|
+
* host — rather than colliding with it.
|
|
1972
|
+
*/
|
|
1973
|
+
declare class UniTextDirective {
|
|
1974
|
+
theme: ThemeService;
|
|
1975
|
+
private readonly tag;
|
|
1976
|
+
/** Typeface via the selector attribute: `uni-text="headline-large"`. */
|
|
1977
|
+
readonly uniText: _angular_core.InputSignal<string>;
|
|
1978
|
+
/** Explicit typeface; the attribute value wins when both are set. */
|
|
1979
|
+
typeface: _angular_core.InputSignal<string>;
|
|
1980
|
+
/** The ink, mapping straight to the CSS `color` property. */
|
|
1981
|
+
color: _angular_core.InputSignal<string>;
|
|
1982
|
+
display: _angular_core.InputSignal<OptionalDisplay>;
|
|
1983
|
+
align: _angular_core.InputSignal<OptionalTextAlign>;
|
|
1984
|
+
nowrap: _angular_core.InputSignal<boolean>;
|
|
1985
|
+
maxWidth: _angular_core.InputSignal<number>;
|
|
1986
|
+
ellipsis: _angular_core.InputSignal<boolean>;
|
|
1987
|
+
protected readonly resolvedTypeface: _angular_core.Signal<string>;
|
|
1988
|
+
protected readonly className: _angular_core.Signal<string>;
|
|
1989
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniTextDirective, never>;
|
|
1990
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<UniTextDirective, "[uni-text]", never, { "uniText": { "alias": "uni-text"; "required": false; "isSignal": true; }; "typeface": { "alias": "typeface"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "display": { "alias": "display"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "nowrap": { "alias": "nowrap"; "required": false; "isSignal": true; }; "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "ellipsis": { "alias": "ellipsis"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1991
|
+
}
|
|
1992
|
+
|
|
1993
|
+
declare class UniTextareaComponent implements FormValueControl<string> {
|
|
1994
|
+
private theme;
|
|
1995
|
+
readonly value: _angular_core.ModelSignal<string>;
|
|
1996
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
1997
|
+
readonly touched: _angular_core.ModelSignal<boolean>;
|
|
1998
|
+
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
1999
|
+
readonly dirty: _angular_core.InputSignal<boolean>;
|
|
2000
|
+
/** Synced from required() validators by the Signal Forms [field] directive. */
|
|
2001
|
+
readonly required: _angular_core.InputSignal<boolean>;
|
|
2002
|
+
/**
|
|
2003
|
+
* Id(s) of external element(s) describing this control — typically your
|
|
2004
|
+
* app-rendered error message — exposed as aria-describedby.
|
|
2005
|
+
*/
|
|
2006
|
+
readonly ariaDescribedBy: _angular_core.InputSignal<string>;
|
|
2007
|
+
label: _angular_core.InputSignal<string>;
|
|
2008
|
+
placeholder: _angular_core.InputSignal<string>;
|
|
2009
|
+
/** Visible text rows. Defaults to the theme's `textarea` options. */
|
|
2010
|
+
rows: _angular_core.InputSignal<number>;
|
|
2011
|
+
readonly readonly: _angular_core.InputSignal<boolean>;
|
|
2012
|
+
readonly name: _angular_core.InputSignal<string>;
|
|
2013
|
+
readonly minLength: _angular_core.InputSignal<number>;
|
|
2014
|
+
readonly maxLength: _angular_core.InputSignal<number>;
|
|
2015
|
+
autocomplete: _angular_core.InputSignal<string>;
|
|
2016
|
+
spellcheck: _angular_core.InputSignal<boolean>;
|
|
2017
|
+
width: _angular_core.InputSignal<string | number>;
|
|
2018
|
+
fullWidth: _angular_core.InputSignal<boolean>;
|
|
2019
|
+
grow: _angular_core.InputSignal<number>;
|
|
2020
|
+
private options;
|
|
2021
|
+
protected readonly resolvedRows: _angular_core.Signal<number>;
|
|
2022
|
+
protected readonly showError: _angular_core.Signal<boolean>;
|
|
2023
|
+
protected readonly textareaClass: _angular_core.Signal<string>;
|
|
2024
|
+
markAsTouched(): void;
|
|
2025
|
+
handleInput(event: Event): void;
|
|
2026
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniTextareaComponent, never>;
|
|
2027
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniTextareaComponent, "uni-textarea", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "dirty": { "alias": "dirty"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "ariaDescribedBy": { "alias": "ariaDescribedBy"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "minLength": { "alias": "minLength"; "required": false; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; "spellcheck": { "alias": "spellcheck"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "grow": { "alias": "grow"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touched": "touchedChange"; }, never, never, true, never>;
|
|
2028
|
+
}
|
|
2029
|
+
|
|
2030
|
+
/** Why typed text did not become a time. The raw text stays in the field. */
|
|
2031
|
+
interface UniTimeInputRejection {
|
|
2032
|
+
raw: string;
|
|
2033
|
+
reason: 'unparseable' | 'out-of-range' | 'unavailable';
|
|
2034
|
+
}
|
|
2035
|
+
/**
|
|
2036
|
+
* Theme options for the `timeInput` entry. Field chrome is not duplicated
|
|
2037
|
+
* here — it comes from `input` via uni-input-box; the list trio matches
|
|
2038
|
+
* tagInput/searchInput.
|
|
2039
|
+
*/
|
|
2040
|
+
interface UniTimeInputOptions {
|
|
2041
|
+
toggleSymbol?: string;
|
|
2042
|
+
listColor?: ContainerColorToken;
|
|
2043
|
+
listShadow?: Shadow;
|
|
2044
|
+
listBorderRadius?: Radius;
|
|
2045
|
+
/** Active/hover option fill; the on-color pair is derived. Must contrast
|
|
2046
|
+
with `listColor` or keyboard navigation turns invisible. */
|
|
2047
|
+
activeColor?: ContainerColorToken;
|
|
2048
|
+
maxVisibleOptions?: number; /** Named motion primitive for the suggestion popup's open animation.
|
|
2049
|
+
Defaults to `popup` — the token `uni-dropdown` uses. */
|
|
2050
|
+
motion?: Motion;
|
|
2051
|
+
}
|
|
2052
|
+
|
|
2053
|
+
/**
|
|
2054
|
+
* Time field: a combobox over time options — the same listbox contract as
|
|
2055
|
+
* uni-search-input and uni-tag-input. Type `3p`, `930` or `15:00`, or pick
|
|
2056
|
+
* `3:00 PM` from the list; the form always gets 24-hour `'HH:mm'` (`hour12`
|
|
2057
|
+
* affects display only). The list is assistive, not exhaustive: any
|
|
2058
|
+
* parseable time commits, unless `slots` pins the choices (a slot picker) —
|
|
2059
|
+
* then a typed time must match one. Unreadable or unavailable text stays in
|
|
2060
|
+
* the field, flagged, with a `rejected` event.
|
|
2061
|
+
*/
|
|
2062
|
+
declare class UniTimeInputComponent extends BaseComponent<UniTimeInputOptions> implements FormValueControl<UniTime | undefined> {
|
|
2063
|
+
readonly value: _angular_core.ModelSignal<string>;
|
|
2064
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
2065
|
+
readonly touched: _angular_core.ModelSignal<boolean>;
|
|
2066
|
+
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
2067
|
+
readonly dirty: _angular_core.InputSignal<boolean>;
|
|
2068
|
+
readonly required: _angular_core.InputSignal<boolean>;
|
|
2069
|
+
readonly ariaDescribedBy: _angular_core.InputSignal<string>;
|
|
2070
|
+
/** Accessible name for the field, e.g. "Start time". */
|
|
2071
|
+
label: _angular_core.InputSignal<string>;
|
|
2072
|
+
placeholder: _angular_core.InputSignal<string>;
|
|
2073
|
+
/** Generated list granularity, in minutes. */
|
|
2074
|
+
minuteStep: _angular_core.InputSignal<number>;
|
|
2075
|
+
/** Earliest allowed time (inclusive), `'09:00'`. */
|
|
2076
|
+
minTime: _angular_core.InputSignal<string>;
|
|
2077
|
+
/** Latest allowed time (inclusive), `'17:00'`. */
|
|
2078
|
+
maxTime: _angular_core.InputSignal<string>;
|
|
2079
|
+
/** Exact allowed times (scheduling). When set, typed entry must match one. */
|
|
2080
|
+
slots: _angular_core.InputSignal<string[]>;
|
|
2081
|
+
/** 12-hour display; defaults from the locale. The value stays 24-hour. */
|
|
2082
|
+
hour12: _angular_core.InputSignal<boolean>;
|
|
2083
|
+
/** BCP 47 tag for the display format; defaults to the document language. */
|
|
2084
|
+
locale: _angular_core.InputSignal<string>;
|
|
2085
|
+
commitOnBlur: _angular_core.InputSignal<boolean>;
|
|
2086
|
+
/** Renders without its own input-box chrome, for composers like uni-date-time-input. */
|
|
2087
|
+
embedded: _angular_core.InputSignal<boolean>;
|
|
2088
|
+
/** A typed commit was refused; the raw text stays in the field. */
|
|
2089
|
+
rejected: _angular_core.OutputEmitterRef<UniTimeInputRejection>;
|
|
2090
|
+
private readonly host;
|
|
2091
|
+
private readonly inputRef;
|
|
2092
|
+
private readonly listRef;
|
|
2093
|
+
/** Ties the popup to the field so the browser tracks it in the top layer. */
|
|
2094
|
+
private readonly anchor;
|
|
2095
|
+
/** `manual` where the top layer is usable, else null — see the popup helper. */
|
|
2096
|
+
protected readonly popupAttr: "manual";
|
|
2097
|
+
constructor();
|
|
2098
|
+
protected readonly srOnly: string;
|
|
2099
|
+
/** A refused commit — styles the field and sets aria-invalid until edited. */
|
|
2100
|
+
protected readonly draftInvalid: _angular_core.WritableSignal<boolean>;
|
|
2101
|
+
/** Commits, clears and refusals are otherwise silent to a screen reader. */
|
|
2102
|
+
protected readonly announcer: _uni_design_system_uni_angular.Announcer;
|
|
2103
|
+
protected readonly resolvedLocale: _angular_core.Signal<string>;
|
|
2104
|
+
protected readonly resolvedHour12: _angular_core.Signal<boolean>;
|
|
2105
|
+
/** The listed times: pinned `slots` verbatim, else the generated step grid. */
|
|
2106
|
+
protected readonly options: _angular_core.Signal<string[]>;
|
|
2107
|
+
protected readonly optionLabels: _angular_core.Signal<string[]>;
|
|
2108
|
+
/** Shared combobox bookkeeping — identical contract to uni-search-input. */
|
|
2109
|
+
protected readonly list: _uni_design_system_uni_angular.ListboxNavigation;
|
|
2110
|
+
protected readonly displayText: _angular_core.Signal<string>;
|
|
2111
|
+
protected readonly resolvedPlaceholder: _angular_core.Signal<string>;
|
|
2112
|
+
protected readonly showError: _angular_core.Signal<boolean>;
|
|
2113
|
+
protected formatValue(time: UniTime): string;
|
|
2114
|
+
protected setValue(time: UniTime | undefined, silent?: boolean): void;
|
|
2115
|
+
private refuse;
|
|
2116
|
+
protected commit(raw: string): boolean;
|
|
2117
|
+
/** Step a committed value ±minuteStep (±1 slot when pinned), clamped. */
|
|
2118
|
+
private stepValue;
|
|
2119
|
+
protected onInputKeydown(event: KeyboardEvent): void;
|
|
2120
|
+
protected onInput(): void;
|
|
2121
|
+
protected onToggle(): void;
|
|
2122
|
+
protected selectOption(time: UniTime): void;
|
|
2123
|
+
protected onFocusOut(event: FocusEvent): void;
|
|
2124
|
+
private openList;
|
|
2125
|
+
private scrollToActive;
|
|
2126
|
+
private scrollToIndex;
|
|
2127
|
+
private setFieldText;
|
|
2128
|
+
protected readonly className: _angular_core.Signal<string>;
|
|
2129
|
+
protected readonly rowClass: _angular_core.Signal<string>;
|
|
2130
|
+
protected readonly inputClass: _angular_core.Signal<string>;
|
|
2131
|
+
protected readonly toggleWrapClass: _angular_core.Signal<string>;
|
|
2132
|
+
/** Embedded mode: the composer owns the box; keep only the flex row. */
|
|
2133
|
+
protected readonly embeddedClass: _angular_core.Signal<string>;
|
|
2134
|
+
protected readonly listClass: _angular_core.Signal<string>;
|
|
2135
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniTimeInputComponent, never>;
|
|
2136
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniTimeInputComponent, "uni-time-input, TimeInput", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "dirty": { "alias": "dirty"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "ariaDescribedBy": { "alias": "ariaDescribedBy"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "minuteStep": { "alias": "minuteStep"; "required": false; "isSignal": true; }; "minTime": { "alias": "minTime"; "required": false; "isSignal": true; }; "maxTime": { "alias": "maxTime"; "required": false; "isSignal": true; }; "slots": { "alias": "slots"; "required": false; "isSignal": true; }; "hour12": { "alias": "hour12"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "commitOnBlur": { "alias": "commitOnBlur"; "required": false; "isSignal": true; }; "embedded": { "alias": "embedded"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touched": "touchedChange"; "rejected": "rejected"; }, never, never, true, never>;
|
|
2137
|
+
}
|
|
2138
|
+
|
|
2139
|
+
interface UniToggleOptions {
|
|
2140
|
+
/**
|
|
2141
|
+
* The size of the toggle switch
|
|
2142
|
+
*/
|
|
2143
|
+
size?: number;
|
|
2144
|
+
/** Off-state track color token. */
|
|
2145
|
+
trackColor?: ColorKey;
|
|
2146
|
+
/** Knob color token. */
|
|
2147
|
+
knobColor?: ColorKey;
|
|
2148
|
+
}
|
|
2149
|
+
|
|
2150
|
+
declare class UniToggleComponent extends BaseComponent<UniToggleOptions> implements FormCheckboxControl {
|
|
2151
|
+
readonly checked: _angular_core.ModelSignal<boolean>;
|
|
2152
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
2153
|
+
readonly touched: _angular_core.ModelSignal<boolean>;
|
|
2154
|
+
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
2155
|
+
readonly dirty: _angular_core.InputSignal<boolean>;
|
|
2156
|
+
/** Synced from required() validators by the Signal Forms [field] directive. */
|
|
2157
|
+
readonly required: _angular_core.InputSignal<boolean>;
|
|
2158
|
+
/**
|
|
2159
|
+
* Id(s) of external element(s) describing this control — typically your
|
|
2160
|
+
* app-rendered error message — exposed as aria-describedby.
|
|
2161
|
+
*/
|
|
2162
|
+
readonly ariaDescribedBy: _angular_core.InputSignal<string>;
|
|
2163
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
2164
|
+
protected readonly showError: _angular_core.Signal<boolean>;
|
|
2165
|
+
markAsTouched(): void;
|
|
2166
|
+
handleChange(event: Event): void;
|
|
2167
|
+
private readonly metrics;
|
|
2168
|
+
protected readonly toggleLabel: _angular_core.Signal<string>;
|
|
2169
|
+
protected readonly toggleInput: _angular_core.Signal<string>;
|
|
2170
|
+
getThemeColor(token: ColorToken): string;
|
|
2171
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniToggleComponent, never>;
|
|
2172
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniToggleComponent, "uni-toggle", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "dirty": { "alias": "dirty"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "ariaDescribedBy": { "alias": "ariaDescribedBy"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "touched": "touchedChange"; }, never, never, true, never>;
|
|
2173
|
+
}
|
|
2174
|
+
|
|
2175
|
+
/**
|
|
2176
|
+
* Every layout and typography attribute directive, for
|
|
2177
|
+
* `imports: [...UNI_LAYOUT]`.
|
|
2178
|
+
*
|
|
2179
|
+
* These are attribute selectors, so an element carrying one that was never
|
|
2180
|
+
* imported compiles cleanly and silently does nothing. Spreading the family is
|
|
2181
|
+
* the cheapest way not to hit that.
|
|
2182
|
+
*/
|
|
2183
|
+
declare const UNI_LAYOUT: readonly [typeof UniBoxDirective, typeof UniRowDirective, typeof UniStackDirective, typeof UniCenterDirective, typeof UniWrapDirective, typeof UniGridDirective, typeof UniGridAreaDirective, typeof UniTextDirective];
|
|
2184
|
+
/** Every form control, for `imports: [...UNI_FORMS]`. */
|
|
2185
|
+
declare const UNI_FORMS: readonly [typeof UniInputComponent, typeof UniInputBoxComponent, typeof UniTextareaComponent, typeof UniSelectComponent, typeof UniCheckboxComponent, typeof UniRadioComponent, typeof UniToggleComponent, typeof UniComboboxComponent, typeof UniMultiSelectComponent, typeof UniMultiSelectDropdownComponent, typeof UniSearchInputComponent, typeof UniTagInputComponent, typeof UniSliderComponent, typeof UniDateInputComponent, typeof UniTimeInputComponent, typeof UniDateTimeInputComponent];
|
|
2186
|
+
|
|
2187
|
+
/** Theme-level options for `uni-app-bar`, resolved by token name. */
|
|
2188
|
+
interface UniAppBarOptions {
|
|
2189
|
+
/** Bar surface color token (with its paired on-color). */
|
|
2190
|
+
color?: ContainerColorToken;
|
|
2191
|
+
/** Bar height in px. */
|
|
2192
|
+
height?: number;
|
|
2193
|
+
/** Rule under the bar, as a border primitive token. */
|
|
2194
|
+
divider?: Border;
|
|
2195
|
+
/** Title typography token. */
|
|
2196
|
+
typeface?: Typeface;
|
|
2197
|
+
/** Horizontal padding, as a spacing token. */
|
|
2198
|
+
padding?: OptionalSize;
|
|
2199
|
+
/** Space between bar children, as a spacing token. */
|
|
2200
|
+
gap?: OptionalSize;
|
|
2201
|
+
/** Optional elevation shadow token (e.g. 'raised'). */
|
|
2202
|
+
elevation?: Elevation;
|
|
2203
|
+
}
|
|
2204
|
+
|
|
2205
|
+
/**
|
|
2206
|
+
* Horizontal application bar: project leading controls (menu button, logo)
|
|
2207
|
+
* with the `leading` attribute, actions with `trailing` (pushed to the far
|
|
2208
|
+
* edge), and either pass `title` or project custom center content. Surface,
|
|
2209
|
+
* divider, height, typography and spacing all resolve from `appBar` tokens.
|
|
2210
|
+
* Place it inside your page's `<header>` landmark.
|
|
2211
|
+
*/
|
|
2212
|
+
declare class UniAppBarComponent extends BaseComponent<UniAppBarOptions> {
|
|
2213
|
+
/** Bar title; alternatively project your own center content. */
|
|
2214
|
+
title: _angular_core.InputSignal<string>;
|
|
2215
|
+
/** Stick the bar to the top of its scroll container. */
|
|
2216
|
+
sticky: _angular_core.InputSignal<boolean>;
|
|
2217
|
+
protected readonly className: _angular_core.Signal<string>;
|
|
2218
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniAppBarComponent, never>;
|
|
2219
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniAppBarComponent, "uni-app-bar", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; }, {}, never, ["[leading]", "*", "[trailing]"], true, never>;
|
|
2220
|
+
}
|
|
2221
|
+
|
|
2222
|
+
/** Theme-level options for `uni-avatar`, resolved by token name. */
|
|
2223
|
+
interface UniAvatarOptions {
|
|
2224
|
+
/** Corner radius token — `max` renders circles; `sharp` themes get squares. */
|
|
2225
|
+
borderRadius?: Radius;
|
|
2226
|
+
/** Typeface token for the initials. */
|
|
2227
|
+
typeface?: Typeface;
|
|
2228
|
+
/** Symbol shown when there is no image and no name to take initials from. */
|
|
2229
|
+
fallbackSymbol?: string;
|
|
2230
|
+
}
|
|
2231
|
+
/** Theme-level options for `uni-avatar-group`. */
|
|
2232
|
+
interface UniAvatarGroupOptions {
|
|
2233
|
+
/** How far stacked avatars overlap, as a spacing token. */
|
|
2234
|
+
overlap?: OptionalSize;
|
|
2235
|
+
/** Ring color separating stacked avatars from each other. */
|
|
2236
|
+
ringColor?: ColorKey;
|
|
2237
|
+
/** Ring width in px. */
|
|
2238
|
+
ringWidth?: number;
|
|
2239
|
+
}
|
|
2240
|
+
|
|
2241
|
+
/**
|
|
2242
|
+
* Identity avatar with a graceful fallback chain: image → initials from
|
|
2243
|
+
* `name` → themed symbol. Coloring, radius, typeface and sizes all resolve
|
|
2244
|
+
* from `avatar` theme tokens; `variant` picks the container palette.
|
|
2245
|
+
*/
|
|
2246
|
+
declare class UniAvatarComponent extends BaseComponent<UniAvatarOptions> {
|
|
2247
|
+
/** Image URL; on load error the avatar falls back to initials/symbol. */
|
|
2248
|
+
src: _angular_core.InputSignal<string>;
|
|
2249
|
+
/** Person's name: drives the initials and the accessible label. */
|
|
2250
|
+
name: _angular_core.InputSignal<string>;
|
|
2251
|
+
/** Verbatim text instead of derived initials (e.g. a group's “+3”). */
|
|
2252
|
+
text: _angular_core.InputSignal<string>;
|
|
2253
|
+
protected readonly imageFailed: _angular_core.WritableSignal<boolean>;
|
|
2254
|
+
protected readonly showImage: _angular_core.Signal<boolean>;
|
|
2255
|
+
protected readonly initials: _angular_core.Signal<string>;
|
|
2256
|
+
protected readonly label: _angular_core.Signal<string>;
|
|
2257
|
+
protected readonly className: _angular_core.Signal<string>;
|
|
2258
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniAvatarComponent, never>;
|
|
2259
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniAvatarComponent, "uni-avatar", never, { "src": { "alias": "src"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "text": { "alias": "text"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2260
|
+
}
|
|
2261
|
+
|
|
2262
|
+
/**
|
|
2263
|
+
* Overlapping stack of avatars. `max` collapses the overflow into a themed
|
|
2264
|
+
* “+N” chip (itself a `uni-avatar`). Overlap and separator ring resolve from
|
|
2265
|
+
* `avatarGroup` theme tokens.
|
|
2266
|
+
*/
|
|
2267
|
+
declare class UniAvatarGroupComponent extends BaseComponent<UniAvatarGroupOptions> {
|
|
2268
|
+
/** Show at most this many avatars; the rest collapse into a “+N” chip. */
|
|
2269
|
+
max: _angular_core.InputSignal<number>;
|
|
2270
|
+
private readonly avatars;
|
|
2271
|
+
protected readonly surplus: _angular_core.Signal<number>;
|
|
2272
|
+
protected readonly className: _angular_core.Signal<string>;
|
|
2273
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniAvatarGroupComponent, never>;
|
|
2274
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniAvatarGroupComponent, "uni-avatar-group", never, { "max": { "alias": "max"; "required": false; "isSignal": true; }; }, {}, ["avatars"], ["*"], true, never>;
|
|
2275
|
+
}
|
|
2276
|
+
|
|
2277
|
+
type ImagePosition = 'top' | 'bottom' | 'left' | 'right' | 'center' | string;
|
|
2278
|
+
declare class UniBackgroundComponent {
|
|
2279
|
+
theme: ThemeService;
|
|
2280
|
+
image: _angular_core.InputSignal<string>;
|
|
2281
|
+
imagePosition: _angular_core.InputSignal<string>;
|
|
2282
|
+
imageSize: _angular_core.InputSignal<string | number>;
|
|
2283
|
+
height: _angular_core.InputSignal<string | number>;
|
|
2284
|
+
width: _angular_core.InputSignal<string | number>;
|
|
2285
|
+
protected readonly className: _angular_core.Signal<string>;
|
|
2286
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniBackgroundComponent, never>;
|
|
2287
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniBackgroundComponent, "uni-background", never, { "image": { "alias": "image"; "required": false; "isSignal": true; }; "imagePosition": { "alias": "imagePosition"; "required": false; "isSignal": true; }; "imageSize": { "alias": "imageSize"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
2288
|
+
}
|
|
2289
|
+
|
|
2290
|
+
interface UniBadgeOptions {
|
|
2291
|
+
borderRadius?: RadiiSize;
|
|
2292
|
+
}
|
|
2293
|
+
|
|
2294
|
+
declare class UniBadgeComponent extends BaseComponent<UniBadgeOptions> {
|
|
2295
|
+
color: _angular_core.InputSignal<Variant>;
|
|
2296
|
+
useVariant: _angular_core.InputSignal<boolean>;
|
|
2297
|
+
width: _angular_core.InputSignal<number>;
|
|
2298
|
+
protected readonly className: _angular_core.Signal<string>;
|
|
2299
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniBadgeComponent, never>;
|
|
2300
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniBadgeComponent, "[uni-badge]", never, { "color": { "alias": "color"; "required": false; "isSignal": true; }; "useVariant": { "alias": "useVariant"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
2301
|
+
}
|
|
2302
|
+
|
|
2303
|
+
/** One step in the trail. The last item is treated as the current page. */
|
|
2304
|
+
interface BreadcrumbItem {
|
|
2305
|
+
label: string;
|
|
2306
|
+
/** Link target. Omit for SPA routing and handle `itemClicked` instead. */
|
|
2307
|
+
href?: string;
|
|
2308
|
+
}
|
|
2309
|
+
/** Theme-level options for `uni-breadcrumb`, resolved by token name. */
|
|
2310
|
+
interface UniBreadcrumbOptions {
|
|
2311
|
+
/** Trail typography token. */
|
|
2312
|
+
typeface?: Typeface;
|
|
2313
|
+
/** Link color for ancestor items. */
|
|
2314
|
+
color?: ColorKey;
|
|
2315
|
+
/** Color of the current (last) item. */
|
|
2316
|
+
currentColor?: ColorKey;
|
|
2317
|
+
/** Material symbol drawn between items. */
|
|
2318
|
+
separatorSymbol?: string;
|
|
2319
|
+
/** Space around separators, as a spacing token. */
|
|
2320
|
+
gap?: OptionalSize;
|
|
2321
|
+
}
|
|
2322
|
+
|
|
2323
|
+
/**
|
|
2324
|
+
* WAI-ARIA breadcrumb: a `nav` landmark wrapping an ordered list; the last
|
|
2325
|
+
* item is the current page (`aria-current="page"`), separators are decorative.
|
|
2326
|
+
* Items with `href` render as real links; without one they render as
|
|
2327
|
+
* link-styled buttons emitting `itemClicked` — wire that to your router.
|
|
2328
|
+
*/
|
|
2329
|
+
declare class UniBreadcrumbComponent extends BaseComponent<UniBreadcrumbOptions> {
|
|
2330
|
+
/** The trail, root first; the last item is the current page. */
|
|
2331
|
+
items: _angular_core.InputSignal<BreadcrumbItem[]>;
|
|
2332
|
+
/** Landmark label distinguishing this nav from others on the page. */
|
|
2333
|
+
ariaLabel: _angular_core.InputSignal<string>;
|
|
2334
|
+
/** Emits the clicked ancestor item (also fires for `href` links). */
|
|
2335
|
+
itemClicked: _angular_core.OutputEmitterRef<BreadcrumbItem>;
|
|
2336
|
+
protected readonly className: _angular_core.Signal<string>;
|
|
2337
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniBreadcrumbComponent, never>;
|
|
2338
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniBreadcrumbComponent, "uni-breadcrumb", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "itemClicked": "itemClicked"; }, never, never, true, never>;
|
|
2339
|
+
}
|
|
2340
|
+
|
|
2341
|
+
/** Theme-level options for `uni-text-button`, resolved by token name. */
|
|
2342
|
+
interface UniButtonOptions {
|
|
2343
|
+
/**
|
|
2344
|
+
* Corner radius as a radii token. The default theme uses `max` (pill);
|
|
2345
|
+
* because this is a token, the theme's radii scale — including generated
|
|
2346
|
+
* shape languages (`sharp`/`modern`/`playful`) and custom primitives —
|
|
2347
|
+
* restyles every button without touching component code.
|
|
2348
|
+
*/
|
|
2349
|
+
borderRadius?: RadiiSize;
|
|
2350
|
+
/**
|
|
2351
|
+
* Label typography as a typeface token. Defaults to the type scale's
|
|
2352
|
+
* `button` role (family/weight/transform); per-size `fontSize` overrides
|
|
2353
|
+
* from the theme's `sizes` still apply on top. Point it at any typeface —
|
|
2354
|
+
* including custom primitives added to the theme's typography.
|
|
2355
|
+
*/
|
|
2356
|
+
typeface?: Typeface;
|
|
2357
|
+
}
|
|
2358
|
+
|
|
2359
|
+
declare class RippleDirective {
|
|
2360
|
+
private renderer;
|
|
2361
|
+
el: ElementRef<any>;
|
|
2362
|
+
hostEl: any;
|
|
2363
|
+
constructor();
|
|
2364
|
+
onClick(e: MouseEvent): void;
|
|
2365
|
+
rippleClass: string;
|
|
2366
|
+
animateClass: string;
|
|
2367
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RippleDirective, never>;
|
|
2368
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RippleDirective, "[uniRipple]", never, {}, {}, never, never, true, never>;
|
|
2369
|
+
}
|
|
2370
|
+
|
|
2371
|
+
declare class UniButtonComponent extends BaseComponent<UniButtonOptions> {
|
|
2372
|
+
readonly disable: _angular_core.InputSignal<boolean>;
|
|
2373
|
+
readonly loading: _angular_core.InputSignal<boolean>;
|
|
2374
|
+
readonly fullWidth: _angular_core.InputSignal<boolean>;
|
|
2375
|
+
readonly symbolLeft: _angular_core.InputSignal<string>;
|
|
2376
|
+
readonly symbolRight: _angular_core.InputSignal<string>;
|
|
2377
|
+
spinnerBox: string;
|
|
2378
|
+
protected readonly className: _angular_core.Signal<string>;
|
|
2379
|
+
symbolSize: _angular_core.Signal<number>;
|
|
2380
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniButtonComponent, never>;
|
|
2381
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniButtonComponent, "button[uni-text-button], button[text-button]", never, { "disable": { "alias": "disable"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "symbolLeft": { "alias": "symbolLeft"; "required": false; "isSignal": true; }; "symbolRight": { "alias": "symbolRight"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof RippleDirective; inputs: {}; outputs: {}; }]>;
|
|
2382
|
+
}
|
|
2383
|
+
|
|
2384
|
+
declare class UniButtonGroupComponent {
|
|
2385
|
+
private themeService;
|
|
2386
|
+
protected readonly className: _angular_core.Signal<string>;
|
|
2387
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniButtonGroupComponent, never>;
|
|
2388
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniButtonGroupComponent, "uni-button-group", never, {}, {}, never, ["*"], true, never>;
|
|
2389
|
+
}
|
|
2390
|
+
|
|
2391
|
+
interface ButtonGroupConfig {
|
|
2392
|
+
tooltipPlacement?: Placement;
|
|
2393
|
+
buttonSize: Size;
|
|
2394
|
+
buttons: ButtonGroupItem[];
|
|
2395
|
+
}
|
|
2396
|
+
interface ButtonGroupItem {
|
|
2397
|
+
symbolName: string;
|
|
2398
|
+
selected?: boolean;
|
|
2399
|
+
tooltip?: string;
|
|
2400
|
+
action?: (selectedState?: boolean) => boolean | void;
|
|
2401
|
+
toggle?: WritableSignal<boolean>;
|
|
2402
|
+
}
|
|
2403
|
+
|
|
2404
|
+
/** One rendered day cell — precomputed so the template stays declarative. */
|
|
2405
|
+
interface CalendarCell {
|
|
2406
|
+
date: UniDate;
|
|
2407
|
+
day: number;
|
|
2408
|
+
outside: boolean;
|
|
2409
|
+
disabled: boolean;
|
|
2410
|
+
today: boolean;
|
|
2411
|
+
selected: boolean;
|
|
2412
|
+
inBand: boolean;
|
|
2413
|
+
tabIndex: number;
|
|
2414
|
+
ariaLabel: string;
|
|
2415
|
+
markers: UniCalendarMarker[];
|
|
2416
|
+
cellClass: string;
|
|
2417
|
+
dayClass: string;
|
|
2418
|
+
}
|
|
2419
|
+
/**
|
|
2420
|
+
* Inline month calendar: single-date or start–end range selection, day
|
|
2421
|
+
* markers (availability dots), min/max fences and disabled dates. One tab
|
|
2422
|
+
* stop with a roving-tabindex `role="grid"`; every day is a real button
|
|
2423
|
+
* named with its full date. Values are plain ISO strings (`'YYYY-MM-DD'`),
|
|
2424
|
+
* never `Date` objects, so bindings are timezone-free and serializable.
|
|
2425
|
+
* Selection and today colours come from the theme's `primary` role pair;
|
|
2426
|
+
* geometry and glyphs come from the `calendar` theme entry.
|
|
2427
|
+
*/
|
|
2428
|
+
declare class UniCalendarComponent extends BaseComponent<UniCalendarOptions> implements FormValueControl<UniCalendarValue> {
|
|
2429
|
+
readonly value: _angular_core.ModelSignal<UniCalendarValue>;
|
|
2430
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
2431
|
+
readonly touched: _angular_core.ModelSignal<boolean>;
|
|
2432
|
+
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
2433
|
+
readonly dirty: _angular_core.InputSignal<boolean>;
|
|
2434
|
+
readonly required: _angular_core.InputSignal<boolean>;
|
|
2435
|
+
readonly ariaDescribedBy: _angular_core.InputSignal<string>;
|
|
2436
|
+
/** `'single'` reads/writes a `UniDate`; `'range'` a `UniDateRange`. */
|
|
2437
|
+
mode: _angular_core.InputSignal<UniCalendarMode>;
|
|
2438
|
+
/** Shown month, `'YYYY-MM'` — two-way, so an app can drive "jump to June". */
|
|
2439
|
+
month: _angular_core.ModelSignal<string>;
|
|
2440
|
+
/** Earliest selectable date (inclusive). */
|
|
2441
|
+
minDate: _angular_core.InputSignal<string>;
|
|
2442
|
+
/** Latest selectable date (inclusive). */
|
|
2443
|
+
maxDate: _angular_core.InputSignal<string>;
|
|
2444
|
+
/** Blocked days: a list of dates, or a predicate. */
|
|
2445
|
+
disabledDates: _angular_core.InputSignal<string[] | ((date: UniDate) => boolean)>;
|
|
2446
|
+
/** Availability dots; `label` extends the day's accessible name. */
|
|
2447
|
+
markers: _angular_core.InputSignal<UniCalendarMarker[]>;
|
|
2448
|
+
/** BCP 47 tag; defaults to the document language, then the browser's. */
|
|
2449
|
+
locale: _angular_core.InputSignal<string>;
|
|
2450
|
+
/** First day of week, 0 = Sunday; defaults from the locale's week info. */
|
|
2451
|
+
weekStart: _angular_core.InputSignal<0 | 1 | 2 | 3 | 4 | 6 | 5>;
|
|
2452
|
+
/** Names the grid when it stands alone (otherwise the heading names it). */
|
|
2453
|
+
ariaLabel: _angular_core.InputSignal<string>;
|
|
2454
|
+
/** Day geometry token; `sm`/`md`/`lg` map to the theme's `calendar` sizes. */
|
|
2455
|
+
size: _angular_core.InputSignal<Size>;
|
|
2456
|
+
/** Each committed day, including both ends of a range. */
|
|
2457
|
+
selected: _angular_core.OutputEmitterRef<string>;
|
|
2458
|
+
private readonly host;
|
|
2459
|
+
protected readonly headingId: string;
|
|
2460
|
+
protected readonly srOnly: string;
|
|
2461
|
+
/** Pending range start — set by the first commit, cleared by the second. */
|
|
2462
|
+
protected readonly pendingStart: _angular_core.WritableSignal<string>;
|
|
2463
|
+
/** Hover/focus candidate painting the preview band while a range is pending. */
|
|
2464
|
+
protected readonly previewDate: _angular_core.WritableSignal<string>;
|
|
2465
|
+
/** Live-region text; selections are otherwise silent for a screen reader. */
|
|
2466
|
+
/** Commits, clears and refusals are otherwise silent to a screen reader. */
|
|
2467
|
+
protected readonly announcer: _uni_design_system_uni_angular.Announcer;
|
|
2468
|
+
protected readonly resolvedLocale: _angular_core.Signal<string>;
|
|
2469
|
+
protected readonly resolvedWeekStart: _angular_core.Signal<number>;
|
|
2470
|
+
/**
|
|
2471
|
+
* The month on screen: the `month` model, else the value's month, else
|
|
2472
|
+
* today's. Falsy guards on purpose: `''` — the only typeable empty for a
|
|
2473
|
+
* string-typed model — counts as unset, or it would reach the month math
|
|
2474
|
+
* and blow up the grid and heading.
|
|
2475
|
+
*/
|
|
2476
|
+
protected readonly viewMonth: _angular_core.Signal<string>;
|
|
2477
|
+
private readonly anchorDate;
|
|
2478
|
+
/**
|
|
2479
|
+
* The roving-tabindex day. Re-derives when the view or value changes
|
|
2480
|
+
* (selected day in view → today in view → first enabled day); keyboard
|
|
2481
|
+
* navigation writes it directly.
|
|
2482
|
+
*/
|
|
2483
|
+
protected readonly focusedDate: _angular_core.WritableSignal<string>;
|
|
2484
|
+
protected readonly showError: _angular_core.Signal<boolean>;
|
|
2485
|
+
protected readonly heading: _angular_core.Signal<string>;
|
|
2486
|
+
protected readonly weekdays: _angular_core.Signal<_uni_design_system_uni_angular.UniWeekdayName[]>;
|
|
2487
|
+
private readonly disabledDateSet;
|
|
2488
|
+
private readonly markersByDate;
|
|
2489
|
+
/** The committed range, or the pending preview band. */
|
|
2490
|
+
private readonly rangeBand;
|
|
2491
|
+
protected isDayDisabled(date: UniDate): boolean;
|
|
2492
|
+
private isSelected;
|
|
2493
|
+
/** The full render model: one precomputed cell per grid position. */
|
|
2494
|
+
protected readonly gridWeeks: _angular_core.Signal<CalendarCell[][]>;
|
|
2495
|
+
protected select(date: UniDate): void;
|
|
2496
|
+
private cancelPending;
|
|
2497
|
+
protected onNav(direction: 1 | -1): void;
|
|
2498
|
+
private setViewMonth;
|
|
2499
|
+
/**
|
|
1117
2500
|
* Move the roving focus. A landing on a disabled day keeps going in the
|
|
1118
2501
|
* same direction until an enabled day; the min/max fence stops the caret,
|
|
1119
2502
|
* it never wraps. Month edges never block — the grid follows.
|
|
@@ -1186,12 +2569,6 @@ interface UniCalloutOptions {
|
|
|
1186
2569
|
* Named motion primitive for the open/close fade. Defaults to `panel`.
|
|
1187
2570
|
*/
|
|
1188
2571
|
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;
|
|
1195
2572
|
}
|
|
1196
2573
|
|
|
1197
2574
|
/**
|
|
@@ -1273,11 +2650,7 @@ declare class UniCalloutComponent extends BaseComponent<UniCalloutOptions> {
|
|
|
1273
2650
|
/** A stray click shouldn't kill onboarding: nudge the panel instead. */
|
|
1274
2651
|
protected onBackdropClick(): void;
|
|
1275
2652
|
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
|
-
*/
|
|
2653
|
+
/** Timing for the open/close fade and the teardown that follows it. */
|
|
1281
2654
|
private readonly motion;
|
|
1282
2655
|
protected readonly scrimClassName: _angular_core.Signal<string>;
|
|
1283
2656
|
protected readonly windowClassName: _angular_core.Signal<string>;
|
|
@@ -1301,233 +2674,40 @@ declare class UniCardContentComponent extends BaseComponent {
|
|
|
1301
2674
|
|
|
1302
2675
|
declare class UniCardHeaderComponent extends BaseComponent {
|
|
1303
2676
|
private card;
|
|
1304
|
-
title: _angular_core.InputSignal<string>;
|
|
1305
|
-
titleTextRole: _angular_core.InputSignal<string>;
|
|
1306
|
-
constructor();
|
|
1307
|
-
className: string;
|
|
1308
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniCardHeaderComponent, never>;
|
|
1309
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniCardHeaderComponent, "uni-card-header", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "titleTextRole": { "alias": "titleTextRole"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
1310
|
-
}
|
|
1311
|
-
|
|
1312
|
-
/** Theme-level options for `uni-card`, resolved by token name. */
|
|
1313
|
-
interface UniCardOptions {
|
|
1314
|
-
defaultVariant?: Variant;
|
|
1315
|
-
/** Corner radius as a radii token. The default theme uses `xs`. */
|
|
1316
|
-
borderRadius?: Radius;
|
|
1317
|
-
/**
|
|
1318
|
-
* Frame as a border primitive token. When unset, the card follows its
|
|
1319
|
-
* variant — `borders.primary`, `borders.warn`, … — so redefining a border
|
|
1320
|
-
* primitive restyles every card (and every other component) sharing it.
|
|
1321
|
-
*/
|
|
1322
|
-
border?: Border;
|
|
1323
|
-
/** Optional elevation shadow token; cards are flat by default. */
|
|
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
|
-
*/
|
|
1329
|
-
transitionSpeed?: number;
|
|
1330
|
-
}
|
|
1331
|
-
|
|
1332
|
-
declare class UniCardComponent extends BaseComponent<UniCardOptions> {
|
|
1333
|
-
/**
|
|
1334
|
-
* Token-resolved frame (variant-named border primitive, radii, elevation)
|
|
1335
|
-
* under the merged theme style, so hand-authored fixed/variant styles from
|
|
1336
|
-
* older themes keep winning.
|
|
1337
|
-
*/
|
|
1338
|
-
protected readonly cardStyle: _angular_core.Signal<{
|
|
1339
|
-
boxShadow: string;
|
|
1340
|
-
}>;
|
|
1341
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniCardComponent, never>;
|
|
1342
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniCardComponent, "uni-card", never, {}, {}, never, ["*"], true, never>;
|
|
1343
|
-
}
|
|
1344
|
-
|
|
1345
|
-
interface UniCheckboxOptions {
|
|
1346
|
-
size?: string | number;
|
|
1347
|
-
borderRadius?: string | number;
|
|
1348
|
-
/** Unchecked box background token. */
|
|
1349
|
-
boxColor?: ColorKey;
|
|
1350
|
-
focusRingGap?: string | number;
|
|
1351
|
-
}
|
|
1352
|
-
|
|
1353
|
-
declare class UniCheckboxComponent extends BaseComponent<UniCheckboxOptions> implements FormCheckboxControl {
|
|
1354
|
-
readonly checked: _angular_core.ModelSignal<boolean>;
|
|
1355
|
-
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
1356
|
-
readonly touched: _angular_core.ModelSignal<boolean>;
|
|
1357
|
-
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
1358
|
-
readonly dirty: _angular_core.InputSignal<boolean>;
|
|
1359
|
-
/** Synced from required() validators by the Signal Forms [field] directive. */
|
|
1360
|
-
readonly required: _angular_core.InputSignal<boolean>;
|
|
1361
|
-
/**
|
|
1362
|
-
* Id(s) of external element(s) describing this control — typically your
|
|
1363
|
-
* app-rendered error message — exposed as aria-describedby.
|
|
1364
|
-
*/
|
|
1365
|
-
readonly ariaDescribedBy: _angular_core.InputSignal<string>;
|
|
1366
|
-
readonly label: _angular_core.InputSignal<string>;
|
|
1367
|
-
/**
|
|
1368
|
-
* Mixed state for "select all"-style parent checkboxes. Cleared
|
|
1369
|
-
* automatically on the next user interaction, matching native behavior.
|
|
1370
|
-
*/
|
|
1371
|
-
readonly indeterminate: _angular_core.ModelSignal<boolean>;
|
|
1372
|
-
protected readonly showError: _angular_core.Signal<boolean>;
|
|
1373
|
-
markAsTouched(): void;
|
|
1374
|
-
handleChange(event: Event): void;
|
|
1375
|
-
protected readonly checkboxLabel: _angular_core.Signal<string>;
|
|
1376
|
-
protected readonly checkboxInput: _angular_core.Signal<string>;
|
|
1377
|
-
getThemeColor(token: ColorToken): string;
|
|
1378
|
-
/** The content color paired with a variant fill (on-primary, on-warn, …). */
|
|
1379
|
-
getOnColor(variant: ColorToken): string;
|
|
1380
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniCheckboxComponent, never>;
|
|
1381
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniCheckboxComponent, "uni-checkbox", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "dirty": { "alias": "dirty"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "ariaDescribedBy": { "alias": "ariaDescribedBy"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "touched": "touchedChange"; "indeterminate": "indeterminateChange"; }, never, never, true, never>;
|
|
1382
|
-
}
|
|
1383
|
-
|
|
1384
|
-
/** A commit was refused (no match); the field reverted to the committed label. */
|
|
1385
|
-
interface UniComboboxRejection {
|
|
1386
|
-
query: string;
|
|
1387
|
-
}
|
|
1388
|
-
/**
|
|
1389
|
-
* Theme options for the `combobox` entry. Field chrome is not duplicated
|
|
1390
|
-
* here — it comes from `input` via uni-input-box; the list trio matches
|
|
1391
|
-
* tagInput/searchInput/timeInput. Glyphs are theme icon primitives rendered
|
|
1392
|
-
* by `uni-icon`, so they restyle with the theme's iconography.
|
|
1393
|
-
*/
|
|
1394
|
-
interface UniComboboxOptions {
|
|
1395
|
-
toggleIcon?: IconName;
|
|
1396
|
-
clearIcon?: IconName;
|
|
1397
|
-
selectedIcon?: IconName;
|
|
1398
|
-
listColor?: ContainerColorToken;
|
|
1399
|
-
listShadow?: Shadow;
|
|
1400
|
-
listBorderRadius?: Radius;
|
|
1401
|
-
/** Active/hover option fill; the on-color pair is derived. Must contrast
|
|
1402
|
-
with `listColor` or keyboard navigation turns invisible. */
|
|
1403
|
-
activeColor?: ContainerColorToken;
|
|
1404
|
-
/** Scroll height in rows — the list scrolls past this, never truncates. */
|
|
1405
|
-
maxVisibleOptions?: number;
|
|
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;
|
|
1409
|
-
}
|
|
1410
|
-
|
|
1411
|
-
/**
|
|
1412
|
-
* Form-bound, closed-set, single-select autocomplete: `FormValueControl<T | null>`
|
|
1413
|
-
* over object `Options<T>`, type-to-filter, commit-on-select. Typing produces a
|
|
1414
|
-
* draft — a filter, never a value; the value changes only when an option
|
|
1415
|
-
* commits, `clear()` runs, or the model is written from outside. Select
|
|
1416
|
-
* semantics, not search: a real label, a chevron, no magnifier, nothing
|
|
1417
|
-
* submits. For short lists with no need to type, prefer `uni-select` — the
|
|
1418
|
-
* value contract is identical, so swapping is a template-only change.
|
|
1419
|
-
*/
|
|
1420
|
-
declare class UniComboboxComponent<T> extends BaseComponent<UniComboboxOptions> implements FormValueControl<T | null> {
|
|
1421
|
-
readonly value: _angular_core.ModelSignal<T>;
|
|
1422
|
-
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
1423
|
-
readonly touched: _angular_core.ModelSignal<boolean>;
|
|
1424
|
-
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
1425
|
-
readonly dirty: _angular_core.InputSignal<boolean>;
|
|
1426
|
-
readonly required: _angular_core.InputSignal<boolean>;
|
|
1427
|
-
readonly ariaDescribedBy: _angular_core.InputSignal<string>;
|
|
1428
|
-
/** Accessible name for the field, e.g. "State"; echoed on the listbox. */
|
|
1429
|
-
label: _angular_core.InputSignal<string>;
|
|
1430
|
-
placeholder: _angular_core.InputSignal<string>;
|
|
1431
|
-
options: _angular_core.InputSignal<Options<T>>;
|
|
1432
|
-
/**
|
|
1433
|
-
* Equality used to match `value` against option values, called as
|
|
1434
|
-
* `compareWith(optionValue, value)`. Defaults to reference equality, which
|
|
1435
|
-
* never matches an object value rebuilt from elsewhere (e.g. a saved record
|
|
1436
|
-
* against options from a fresh fetch) — pass a key comparison like
|
|
1437
|
-
* `(a, b) => a?.id === b?.id` for object values.
|
|
1438
|
-
*/
|
|
1439
|
-
compareWith: _angular_core.InputSignal<(optionValue: T, value: T) => boolean>;
|
|
1440
|
-
width: _angular_core.InputSignal<string | number>;
|
|
1441
|
-
/** Show a ✕ while a value is set; an emptied field on blur also clears. */
|
|
1442
|
-
clearable: _angular_core.InputSignal<boolean>;
|
|
1443
|
-
/** Blur commits an exact-match draft; a non-matching draft reverts. */
|
|
1444
|
-
commitOnBlur: _angular_core.InputSignal<boolean>;
|
|
1445
|
-
/** i18n-able empty row, also announced when a filter matches nothing. */
|
|
1446
|
-
emptyText: _angular_core.InputSignal<string>;
|
|
1447
|
-
/** `false` renders `options` verbatim; narrow them app-side from `query`. */
|
|
1448
|
-
filterLocally: _angular_core.InputSignal<boolean>;
|
|
1449
|
-
/** Filter predicate; default is locale-lowercased label-contains. */
|
|
1450
|
-
filterWith: _angular_core.InputSignal<(option: Option<T>, query: string) => boolean>;
|
|
1451
|
-
debounceTime: _angular_core.InputSignal<number>;
|
|
1452
|
-
/** Debounced draft text, for async option lists. */
|
|
1453
|
-
query: _angular_core.OutputEmitterRef<string>;
|
|
1454
|
-
/** An option committed. */
|
|
1455
|
-
selected: _angular_core.OutputEmitterRef<Option<T>>;
|
|
1456
|
-
cleared: _angular_core.OutputEmitterRef<void>;
|
|
1457
|
-
/** A commit was refused (no match); the field reverted. */
|
|
1458
|
-
rejected: _angular_core.OutputEmitterRef<UniComboboxRejection>;
|
|
1459
|
-
private readonly host;
|
|
1460
|
-
private readonly inputRef;
|
|
1461
|
-
private readonly listRef;
|
|
1462
|
-
/** Cancelled on destroy — a late tick would emit on a destroyed OutputRef. */
|
|
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";
|
|
2677
|
+
title: _angular_core.InputSignal<string>;
|
|
2678
|
+
titleTextRole: _angular_core.InputSignal<string>;
|
|
1468
2679
|
constructor();
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
2680
|
+
className: string;
|
|
2681
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniCardHeaderComponent, never>;
|
|
2682
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniCardHeaderComponent, "uni-card-header", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "titleTextRole": { "alias": "titleTextRole"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
2683
|
+
}
|
|
2684
|
+
|
|
2685
|
+
/** Theme-level options for `uni-card`, resolved by token name. */
|
|
2686
|
+
interface UniCardOptions {
|
|
2687
|
+
defaultVariant?: Variant;
|
|
2688
|
+
/** Corner radius as a radii token. The default theme uses `xs`. */
|
|
2689
|
+
borderRadius?: Radius;
|
|
1474
2690
|
/**
|
|
1475
|
-
*
|
|
1476
|
-
*
|
|
1477
|
-
*
|
|
2691
|
+
* Frame as a border primitive token. When unset, the card follows its
|
|
2692
|
+
* variant — `borders.primary`, `borders.warn`, … — so redefining a border
|
|
2693
|
+
* primitive restyles every card (and every other component) sharing it.
|
|
1478
2694
|
*/
|
|
1479
|
-
|
|
1480
|
-
/**
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
protected readonly displayValue: _angular_core.Signal<string>;
|
|
1486
|
-
/** Indices into options() surviving the filter. The draft filters; the
|
|
1487
|
-
committed label does not — reopening always shows the full set. */
|
|
1488
|
-
protected readonly filteredIndices: _angular_core.Signal<number[]>;
|
|
1489
|
-
/** Shared combobox bookkeeping, in filtered-list positions — the fourth
|
|
1490
|
-
consumer of the contract behind search-input, tag-input and time-input. */
|
|
1491
|
-
protected readonly list: _uni_design_system_uni_angular.ListboxNavigation;
|
|
1492
|
-
protected readonly showError: _angular_core.Signal<boolean>;
|
|
1493
|
-
private commit;
|
|
1494
|
-
protected clear(): void;
|
|
2695
|
+
border?: Border;
|
|
2696
|
+
/** Optional elevation shadow token; cards are flat by default. */
|
|
2697
|
+
elevation?: Elevation;
|
|
2698
|
+
}
|
|
2699
|
+
|
|
2700
|
+
declare class UniCardComponent extends BaseComponent<UniCardOptions> {
|
|
1495
2701
|
/**
|
|
1496
|
-
*
|
|
1497
|
-
*
|
|
1498
|
-
*
|
|
1499
|
-
* 3. Enter only: the filter narrowed to exactly one enabled option → commit it
|
|
1500
|
-
* (on Enter the user can see the single candidate; on blur they're gone,
|
|
1501
|
-
* and committing a value they never saw confirmed is how forms grow
|
|
1502
|
-
* mystery data);
|
|
1503
|
-
* 4. else the caller keeps the list open (Enter) or reverts (Tab/blur).
|
|
2702
|
+
* Token-resolved frame (variant-named border primitive, radii, elevation)
|
|
2703
|
+
* under the merged theme style, so hand-authored fixed/variant styles from
|
|
2704
|
+
* older themes keep winning.
|
|
1504
2705
|
*/
|
|
1505
|
-
|
|
1506
|
-
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
|
|
1510
|
-
/** Click-to-browse: pointer users get the select affordance. Focus alone
|
|
1511
|
-
never opens — Tab-through forms must not spray popups. */
|
|
1512
|
-
protected onFieldClick(): void;
|
|
1513
|
-
protected onToggleMousedown(event: MouseEvent): void;
|
|
1514
|
-
protected onOptionClick(optIndex: number): void;
|
|
1515
|
-
protected onFocusOut(event: FocusEvent): void;
|
|
1516
|
-
/** Filtered position of the committed option when visible and enabled, else -1. */
|
|
1517
|
-
private committedFilteredPos;
|
|
1518
|
-
private openList;
|
|
1519
|
-
private closeList;
|
|
1520
|
-
private scrollToActive;
|
|
1521
|
-
private setFieldText;
|
|
1522
|
-
protected readonly className: _angular_core.Signal<string>;
|
|
1523
|
-
protected readonly rowClass: _angular_core.Signal<string>;
|
|
1524
|
-
protected readonly inputClass: _angular_core.Signal<string>;
|
|
1525
|
-
/** Pointer-only affordance: keyboard already has ArrowDown, and the input
|
|
1526
|
-
itself announces expanded state. */
|
|
1527
|
-
protected readonly toggleClass: _angular_core.Signal<string>;
|
|
1528
|
-
protected readonly listClass: _angular_core.Signal<string>;
|
|
1529
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniComboboxComponent<any>, never>;
|
|
1530
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniComboboxComponent<any>, "uni-combobox, Combobox", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "dirty": { "alias": "dirty"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "ariaDescribedBy": { "alias": "ariaDescribedBy"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "compareWith": { "alias": "compareWith"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "commitOnBlur": { "alias": "commitOnBlur"; "required": false; "isSignal": true; }; "emptyText": { "alias": "emptyText"; "required": false; "isSignal": true; }; "filterLocally": { "alias": "filterLocally"; "required": false; "isSignal": true; }; "filterWith": { "alias": "filterWith"; "required": false; "isSignal": true; }; "debounceTime": { "alias": "debounceTime"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touched": "touchedChange"; "query": "query"; "selected": "selected"; "cleared": "cleared"; "rejected": "rejected"; }, never, never, true, never>;
|
|
2706
|
+
protected readonly cardStyle: _angular_core.Signal<{
|
|
2707
|
+
boxShadow: string;
|
|
2708
|
+
}>;
|
|
2709
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniCardComponent, never>;
|
|
2710
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniCardComponent, "uni-card", never, {}, {}, never, ["*"], true, never>;
|
|
1531
2711
|
}
|
|
1532
2712
|
|
|
1533
2713
|
interface UniDataSearchOptions {
|
|
@@ -1554,252 +2734,72 @@ declare class UniDataSearchComponent<T> extends BaseComponent<UniDataSearchOptio
|
|
|
1554
2734
|
interface ColumnDefinition<T> {
|
|
1555
2735
|
columnDef: keyof T;
|
|
1556
2736
|
header: string;
|
|
1557
|
-
cell?: (element: T) => string;
|
|
1558
|
-
isSticky?: boolean;
|
|
1559
|
-
template?: TemplateRef<T>;
|
|
1560
|
-
textAlign?: 'left' | 'right' | 'center';
|
|
1561
|
-
}
|
|
1562
|
-
interface UniDataTableOptions {
|
|
1563
|
-
border?: Border;
|
|
1564
|
-
borderRadius?: Radius;
|
|
1565
|
-
color?: ContainerColorToken;
|
|
1566
|
-
elevation?: Elevation;
|
|
1567
|
-
headerPadding?: NullableSize;
|
|
1568
|
-
footerPadding?: NullableSize;
|
|
1569
|
-
headerColor?: ContainerColorToken;
|
|
1570
|
-
footerColor?: ContainerColorToken;
|
|
1571
|
-
cellPadding?: NullableSize;
|
|
1572
|
-
rowHoverColor?: ContainerColorToken;
|
|
1573
|
-
thTextRole: TextRole;
|
|
1574
|
-
thColor?: ContainerColorToken;
|
|
1575
|
-
thPadding?: NullableSize;
|
|
1576
|
-
thHorizontalBorder?: Border;
|
|
1577
|
-
thVerticalBorder?: Border;
|
|
1578
|
-
tdTextRole: TextRole;
|
|
1579
|
-
tdColor?: ContainerColorToken;
|
|
1580
|
-
tdStickyColor?: ContainerColorToken;
|
|
1581
|
-
tdPadding?: NullableSize;
|
|
1582
|
-
tdHorizontalBorder?: Border;
|
|
1583
|
-
tdVerticalBorder?: Border;
|
|
1584
|
-
loadingOverlayColor?: ColorKey;
|
|
1585
|
-
loadingSpinnerColor?: ColorKey;
|
|
1586
|
-
loadingSpinnerSize?: string | number;
|
|
1587
|
-
}
|
|
1588
|
-
|
|
1589
|
-
declare class UniDataTableComponent<T> extends BaseComponent<UniDataTableOptions> {
|
|
1590
|
-
datasource: _angular_core.InputSignal<UniDatasource<T>>;
|
|
1591
|
-
columns: _angular_core.InputSignal<ColumnDefinition<T>[]>;
|
|
1592
|
-
detailRowTemplate: _angular_core.InputSignal<TemplateRef<{
|
|
1593
|
-
$implicit: T;
|
|
1594
|
-
index: number;
|
|
1595
|
-
}>>;
|
|
1596
|
-
expandedIndex: _angular_core.WritableSignal<number>;
|
|
1597
|
-
useMultiSelect: _angular_core.InputSignal<boolean>;
|
|
1598
|
-
useRowClick: _angular_core.InputSignal<boolean>;
|
|
1599
|
-
highlight?: _angular_core.InputSignal<(row: T) => boolean>;
|
|
1600
|
-
height: _angular_core.InputSignal<string>;
|
|
1601
|
-
scrollable: _angular_core.WritableSignal<boolean>;
|
|
1602
|
-
loadingOverlayClass: string;
|
|
1603
|
-
rowSelect: _angular_core.OutputEmitterRef<T>;
|
|
1604
|
-
rowClick: _angular_core.OutputEmitterRef<T>;
|
|
1605
|
-
protected readonly tableClass: _angular_core.Signal<string>;
|
|
1606
|
-
protected readonly headerClass: _angular_core.Signal<string>;
|
|
1607
|
-
protected readonly footerClass: _angular_core.Signal<string>;
|
|
1608
|
-
protected readonly thClass: _angular_core.Signal<string>;
|
|
1609
|
-
protected readonly tdClass: _angular_core.Signal<string>;
|
|
1610
|
-
protected readonly trClass: _angular_core.Signal<string>;
|
|
1611
|
-
protected readonly detailRowClass: _angular_core.Signal<string>;
|
|
1612
|
-
isLoading: _angular_core.WritableSignal<boolean>;
|
|
1613
|
-
toggleRow(index: number): void;
|
|
1614
|
-
handleRowClick(row: T, index: number): void;
|
|
1615
|
-
/** aria-sort value for a column header, or null when the column is unsorted. */
|
|
1616
|
-
protected ariaSort(column: ColumnDefinition<T>): 'ascending' | 'descending' | null;
|
|
1617
|
-
isHighlighted(row: T): boolean;
|
|
1618
|
-
protected readonly String: StringConstructor;
|
|
1619
|
-
handleScrollable(scrollable: boolean): void;
|
|
1620
|
-
getBorder(name: string | undefined): string;
|
|
1621
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniDataTableComponent<any>, never>;
|
|
1622
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniDataTableComponent<any>, "uni-data-table", never, { "datasource": { "alias": "datasource"; "required": true; "isSignal": true; }; "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "detailRowTemplate": { "alias": "detailRowTemplate"; "required": false; "isSignal": true; }; "useMultiSelect": { "alias": "useMultiSelect"; "required": false; "isSignal": true; }; "useRowClick": { "alias": "useRowClick"; "required": false; "isSignal": true; }; "highlight": { "alias": "highlight"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; }, { "rowSelect": "rowSelect"; "rowClick": "rowClick"; }, never, ["data-table-header", "data-table-footer"], true, never>;
|
|
1623
|
-
}
|
|
1624
|
-
|
|
1625
|
-
/** Why typed text did not become a date. The raw text stays in the field. */
|
|
1626
|
-
interface UniDateInputRejection {
|
|
1627
|
-
raw: string;
|
|
1628
|
-
reason: 'unparseable' | 'out-of-range' | 'disabled';
|
|
1629
|
-
}
|
|
1630
|
-
/**
|
|
1631
|
-
* Theme options for the `dateInput` entry. Field chrome is not duplicated
|
|
1632
|
-
* here — it comes from `input` via uni-input-box; these style the popup
|
|
1633
|
-
* affordance and panel only.
|
|
1634
|
-
*/
|
|
1635
|
-
interface UniDateInputOptions {
|
|
1636
|
-
toggleSymbol?: string;
|
|
1637
|
-
popupShadow?: Shadow;
|
|
1638
|
-
popupBorderRadius?: Radius;
|
|
1639
|
-
popupColor?: ContainerColorToken;
|
|
1640
|
-
}
|
|
1641
|
-
|
|
1642
|
-
/**
|
|
1643
|
-
* Date field with free-typed parsing and a popup calendar. Type `aug 20`,
|
|
1644
|
-
* `8/20/2026` or `2026-08-20`, or pick from the grid — the form gets the
|
|
1645
|
-
* same canonical `'YYYY-MM-DD'` string either way. Parsing is `Intl`-driven
|
|
1646
|
-
* (locale digit order and month names, never hardcoded); unreadable text
|
|
1647
|
-
* stays in the field, flagged, with a `rejected` event. The popup is a
|
|
1648
|
-
* native popover hosting the same `uni-calendar` an app could render inline.
|
|
1649
|
-
*/
|
|
1650
|
-
declare class UniDateInputComponent extends BaseComponent<UniDateInputOptions> implements FormValueControl<UniDate | undefined> {
|
|
1651
|
-
readonly value: _angular_core.ModelSignal<string>;
|
|
1652
|
-
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
1653
|
-
readonly touched: _angular_core.ModelSignal<boolean>;
|
|
1654
|
-
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
1655
|
-
readonly dirty: _angular_core.InputSignal<boolean>;
|
|
1656
|
-
readonly required: _angular_core.InputSignal<boolean>;
|
|
1657
|
-
readonly ariaDescribedBy: _angular_core.InputSignal<string>;
|
|
1658
|
-
/** Accessible name for the field, e.g. "Appointment date". */
|
|
1659
|
-
label: _angular_core.InputSignal<string>;
|
|
1660
|
-
/** Defaults to the locale's digit pattern, e.g. `MM/DD/YYYY`. */
|
|
1661
|
-
placeholder: _angular_core.InputSignal<string>;
|
|
1662
|
-
/** How the committed value renders, e.g. `{ dateStyle: 'long' }`. */
|
|
1663
|
-
displayFormat: _angular_core.InputSignal<Intl.DateTimeFormatOptions>;
|
|
1664
|
-
/** BCP 47 tag; defaults to the document language, then the browser's. */
|
|
1665
|
-
locale: _angular_core.InputSignal<string>;
|
|
1666
|
-
commitOnBlur: _angular_core.InputSignal<boolean>;
|
|
1667
|
-
/** Custom parser, replacing the built-in ISO/locale/month-name parsing. */
|
|
1668
|
-
parse: _angular_core.InputSignal<(raw: string, locale: string) => UniDate | null>;
|
|
1669
|
-
/** Renders without its own input-box chrome, for composers like uni-date-time-input. */
|
|
1670
|
-
embedded: _angular_core.InputSignal<boolean>;
|
|
1671
|
-
minDate: _angular_core.InputSignal<string>;
|
|
1672
|
-
maxDate: _angular_core.InputSignal<string>;
|
|
1673
|
-
disabledDates: _angular_core.InputSignal<string[] | ((date: UniDate) => boolean)>;
|
|
1674
|
-
markers: _angular_core.InputSignal<UniCalendarMarker[]>;
|
|
1675
|
-
weekStart: _angular_core.InputSignal<0 | 1 | 2 | 3 | 4 | 6 | 5>;
|
|
1676
|
-
/** Popup shown. */
|
|
1677
|
-
opened: _angular_core.OutputEmitterRef<void>;
|
|
1678
|
-
/** Popup hidden. */
|
|
1679
|
-
closed: _angular_core.OutputEmitterRef<void>;
|
|
1680
|
-
/** A typed commit was refused; the raw text stays in the field. */
|
|
1681
|
-
rejected: _angular_core.OutputEmitterRef<UniDateInputRejection>;
|
|
1682
|
-
private readonly host;
|
|
1683
|
-
private readonly inputRef;
|
|
1684
|
-
private readonly toggleRef;
|
|
1685
|
-
private readonly popupRef;
|
|
1686
|
-
private readonly dropdown;
|
|
1687
|
-
private readonly calendar;
|
|
1688
|
-
protected readonly srOnly: string;
|
|
1689
|
-
/** A refused commit — styles the field and sets aria-invalid until edited. */
|
|
1690
|
-
protected readonly draftInvalid: _angular_core.WritableSignal<boolean>;
|
|
1691
|
-
/** Commits, clears and refusals are otherwise silent to a screen reader. */
|
|
1692
|
-
protected readonly announcer: _uni_design_system_uni_angular.Announcer;
|
|
1693
|
-
protected readonly toggleElement: _angular_core.Signal<any>;
|
|
1694
|
-
protected readonly popupOpen: _angular_core.Signal<boolean>;
|
|
1695
|
-
protected readonly resolvedLocale: _angular_core.Signal<string>;
|
|
1696
|
-
protected readonly displayText: _angular_core.Signal<string>;
|
|
1697
|
-
protected readonly resolvedPlaceholder: _angular_core.Signal<string>;
|
|
1698
|
-
protected readonly showError: _angular_core.Signal<boolean>;
|
|
1699
|
-
protected readonly toggleLabel: _angular_core.Signal<string>;
|
|
1700
|
-
private fullDate;
|
|
1701
|
-
private isDayBlocked;
|
|
1702
|
-
protected setValue(date: UniDate | undefined, silent?: boolean): void;
|
|
1703
|
-
private refuse;
|
|
1704
|
-
protected commit(raw: string): boolean;
|
|
1705
|
-
/** Step a committed value ±1 day, skipping blocked days, stopping at fences. */
|
|
1706
|
-
private step;
|
|
1707
|
-
protected onInputKeydown(event: KeyboardEvent): void;
|
|
1708
|
-
protected onInput(): void;
|
|
1709
|
-
protected onFocusOut(event: FocusEvent): void;
|
|
1710
|
-
protected openPopup(): void;
|
|
1711
|
-
protected closePopup(): void;
|
|
1712
|
-
protected onPopupShowing(): void;
|
|
1713
|
-
protected onPopupHiding(): void;
|
|
1714
|
-
protected onCalendarPick(date: UniDate): void;
|
|
1715
|
-
/** The popup is a focus-holding dialog: Tab cycles inside it (APG pattern). */
|
|
1716
|
-
protected onPopupKeydown(event: KeyboardEvent): void;
|
|
1717
|
-
private setFieldText;
|
|
1718
|
-
protected readonly className: _angular_core.Signal<string>;
|
|
1719
|
-
protected readonly rowClass: _angular_core.Signal<string>;
|
|
1720
|
-
protected readonly inputClass: _angular_core.Signal<string>;
|
|
1721
|
-
protected readonly toggleWrapClass: _angular_core.Signal<string>;
|
|
1722
|
-
/** Embedded mode: the composer owns the box; keep only the flex row. */
|
|
1723
|
-
protected readonly embeddedClass: _angular_core.Signal<string>;
|
|
1724
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniDateInputComponent, never>;
|
|
1725
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniDateInputComponent, "uni-date-input, DateInput", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "dirty": { "alias": "dirty"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "ariaDescribedBy": { "alias": "ariaDescribedBy"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "displayFormat": { "alias": "displayFormat"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "commitOnBlur": { "alias": "commitOnBlur"; "required": false; "isSignal": true; }; "parse": { "alias": "parse"; "required": false; "isSignal": true; }; "embedded": { "alias": "embedded"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "disabledDates": { "alias": "disabledDates"; "required": false; "isSignal": true; }; "markers": { "alias": "markers"; "required": false; "isSignal": true; }; "weekStart": { "alias": "weekStart"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touched": "touchedChange"; "opened": "opened"; "closed": "closed"; "rejected": "rejected"; }, never, never, true, never>;
|
|
2737
|
+
cell?: (element: T) => string;
|
|
2738
|
+
isSticky?: boolean;
|
|
2739
|
+
template?: TemplateRef<T>;
|
|
2740
|
+
textAlign?: 'left' | 'right' | 'center';
|
|
1726
2741
|
}
|
|
1727
|
-
|
|
1728
|
-
|
|
1729
|
-
|
|
1730
|
-
|
|
1731
|
-
|
|
1732
|
-
|
|
1733
|
-
|
|
1734
|
-
|
|
1735
|
-
|
|
1736
|
-
|
|
2742
|
+
interface UniDataTableOptions {
|
|
2743
|
+
border?: Border;
|
|
2744
|
+
borderRadius?: Radius;
|
|
2745
|
+
color?: ContainerColorToken;
|
|
2746
|
+
elevation?: Elevation;
|
|
2747
|
+
headerPadding?: NullableSize;
|
|
2748
|
+
footerPadding?: NullableSize;
|
|
2749
|
+
headerColor?: ContainerColorToken;
|
|
2750
|
+
footerColor?: ContainerColorToken;
|
|
2751
|
+
cellPadding?: NullableSize;
|
|
2752
|
+
rowHoverColor?: ContainerColorToken;
|
|
2753
|
+
thTextRole: TextRole;
|
|
2754
|
+
thColor?: ContainerColorToken;
|
|
2755
|
+
thPadding?: NullableSize;
|
|
2756
|
+
thHorizontalBorder?: Border;
|
|
2757
|
+
thVerticalBorder?: Border;
|
|
2758
|
+
tdTextRole: TextRole;
|
|
2759
|
+
tdColor?: ContainerColorToken;
|
|
2760
|
+
tdStickyColor?: ContainerColorToken;
|
|
2761
|
+
tdPadding?: NullableSize;
|
|
2762
|
+
tdHorizontalBorder?: Border;
|
|
2763
|
+
tdVerticalBorder?: Border;
|
|
2764
|
+
loadingOverlayColor?: ColorKey;
|
|
2765
|
+
loadingSpinnerColor?: ColorKey;
|
|
2766
|
+
loadingSpinnerSize?: string | number;
|
|
1737
2767
|
}
|
|
1738
2768
|
|
|
1739
|
-
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
|
|
1743
|
-
|
|
1744
|
-
|
|
1745
|
-
|
|
1746
|
-
|
|
1747
|
-
|
|
1748
|
-
|
|
1749
|
-
|
|
1750
|
-
|
|
1751
|
-
|
|
1752
|
-
|
|
1753
|
-
|
|
1754
|
-
|
|
1755
|
-
readonly
|
|
1756
|
-
readonly
|
|
1757
|
-
|
|
1758
|
-
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
/**
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
1770
|
-
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
private readonly host;
|
|
1774
|
-
/**
|
|
1775
|
-
* The two part-values. An external `value` write re-derives both; an
|
|
1776
|
-
* internal partial state (a date without a time round-trips through
|
|
1777
|
-
* `undefined`) must not be wiped by its own echo.
|
|
1778
|
-
*/
|
|
1779
|
-
private readonly parts;
|
|
1780
|
-
protected readonly dateValue: _angular_core.Signal<string>;
|
|
1781
|
-
protected readonly timeValue: _angular_core.Signal<string>;
|
|
1782
|
-
protected readonly showError: _angular_core.Signal<boolean>;
|
|
1783
|
-
private readonly minParts;
|
|
1784
|
-
private readonly maxParts;
|
|
1785
|
-
protected readonly dateMin: _angular_core.Signal<string>;
|
|
1786
|
-
protected readonly dateMax: _angular_core.Signal<string>;
|
|
1787
|
-
protected readonly timeMin: _angular_core.Signal<string>;
|
|
1788
|
-
protected readonly timeMax: _angular_core.Signal<string>;
|
|
1789
|
-
/** The chosen day's slots when `slotsFor` is set, else the fixed list. */
|
|
1790
|
-
protected readonly effectiveSlots: _angular_core.Signal<string[]>;
|
|
1791
|
-
protected readonly timeDisabled: _angular_core.Signal<boolean>;
|
|
1792
|
-
protected onDatePartChange(date: UniDate | undefined): void;
|
|
1793
|
-
protected onTimePartChange(time: UniTime | undefined): void;
|
|
1794
|
-
private setParts;
|
|
1795
|
-
protected onHostFocusOut(event: FocusEvent): void;
|
|
1796
|
-
protected readonly className: _angular_core.Signal<string>;
|
|
1797
|
-
protected readonly groupClass: _angular_core.Signal<string>;
|
|
1798
|
-
protected readonly datePartClass: _angular_core.Signal<string>;
|
|
1799
|
-
protected readonly timePartClass: _angular_core.Signal<string>;
|
|
1800
|
-
protected readonly dividerClass: _angular_core.Signal<string>;
|
|
1801
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniDateTimeInputComponent, never>;
|
|
1802
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniDateTimeInputComponent, "uni-date-time-input, DateTimeInput", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "dirty": { "alias": "dirty"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "ariaDescribedBy": { "alias": "ariaDescribedBy"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "minDateTime": { "alias": "minDateTime"; "required": false; "isSignal": true; }; "maxDateTime": { "alias": "maxDateTime"; "required": false; "isSignal": true; }; "disabledDates": { "alias": "disabledDates"; "required": false; "isSignal": true; }; "markers": { "alias": "markers"; "required": false; "isSignal": true; }; "slots": { "alias": "slots"; "required": false; "isSignal": true; }; "minuteStep": { "alias": "minuteStep"; "required": false; "isSignal": true; }; "hour12": { "alias": "hour12"; "required": false; "isSignal": true; }; "weekStart": { "alias": "weekStart"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "slotsFor": { "alias": "slotsFor"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touched": "touchedChange"; }, never, never, true, never>;
|
|
2769
|
+
declare class UniDataTableComponent<T> extends BaseComponent<UniDataTableOptions> {
|
|
2770
|
+
datasource: _angular_core.InputSignal<UniDatasource<T>>;
|
|
2771
|
+
columns: _angular_core.InputSignal<ColumnDefinition<T>[]>;
|
|
2772
|
+
detailRowTemplate: _angular_core.InputSignal<TemplateRef<{
|
|
2773
|
+
$implicit: T;
|
|
2774
|
+
index: number;
|
|
2775
|
+
}>>;
|
|
2776
|
+
expandedIndex: _angular_core.WritableSignal<number>;
|
|
2777
|
+
useMultiSelect: _angular_core.InputSignal<boolean>;
|
|
2778
|
+
useRowClick: _angular_core.InputSignal<boolean>;
|
|
2779
|
+
highlight?: _angular_core.InputSignal<(row: T) => boolean>;
|
|
2780
|
+
height: _angular_core.InputSignal<string>;
|
|
2781
|
+
scrollable: _angular_core.WritableSignal<boolean>;
|
|
2782
|
+
loadingOverlayClass: string;
|
|
2783
|
+
rowSelect: _angular_core.OutputEmitterRef<T>;
|
|
2784
|
+
rowClick: _angular_core.OutputEmitterRef<T>;
|
|
2785
|
+
protected readonly tableClass: _angular_core.Signal<string>;
|
|
2786
|
+
protected readonly headerClass: _angular_core.Signal<string>;
|
|
2787
|
+
protected readonly footerClass: _angular_core.Signal<string>;
|
|
2788
|
+
protected readonly thClass: _angular_core.Signal<string>;
|
|
2789
|
+
protected readonly tdClass: _angular_core.Signal<string>;
|
|
2790
|
+
protected readonly trClass: _angular_core.Signal<string>;
|
|
2791
|
+
protected readonly detailRowClass: _angular_core.Signal<string>;
|
|
2792
|
+
isLoading: _angular_core.WritableSignal<boolean>;
|
|
2793
|
+
toggleRow(index: number): void;
|
|
2794
|
+
handleRowClick(row: T, index: number): void;
|
|
2795
|
+
/** aria-sort value for a column header, or null when the column is unsorted. */
|
|
2796
|
+
protected ariaSort(column: ColumnDefinition<T>): 'ascending' | 'descending' | null;
|
|
2797
|
+
isHighlighted(row: T): boolean;
|
|
2798
|
+
protected readonly String: StringConstructor;
|
|
2799
|
+
handleScrollable(scrollable: boolean): void;
|
|
2800
|
+
getBorder(name: string | undefined): string;
|
|
2801
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniDataTableComponent<any>, never>;
|
|
2802
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniDataTableComponent<any>, "uni-data-table", never, { "datasource": { "alias": "datasource"; "required": true; "isSignal": true; }; "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "detailRowTemplate": { "alias": "detailRowTemplate"; "required": false; "isSignal": true; }; "useMultiSelect": { "alias": "useMultiSelect"; "required": false; "isSignal": true; }; "useRowClick": { "alias": "useRowClick"; "required": false; "isSignal": true; }; "highlight": { "alias": "highlight"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; }, { "rowSelect": "rowSelect"; "rowClick": "rowClick"; }, never, ["data-table-header", "data-table-footer"], true, never>;
|
|
1803
2803
|
}
|
|
1804
2804
|
|
|
1805
2805
|
/**
|
|
@@ -2021,7 +3021,8 @@ declare class UniDropdownComponent extends BaseComponent<UniDropdownOptions> imp
|
|
|
2021
3021
|
border: _angular_core.InputSignal<string>;
|
|
2022
3022
|
borderRadius: _angular_core.InputSignal<string>;
|
|
2023
3023
|
shadow: _angular_core.InputSignal<string>;
|
|
2024
|
-
color
|
|
3024
|
+
/** A container color pair; `color` belongs to `uni-text` across the library. */
|
|
3025
|
+
containerColor: _angular_core.InputSignal<ContainerColorToken>;
|
|
2025
3026
|
dropdownShowing: _angular_core.OutputEmitterRef<boolean>;
|
|
2026
3027
|
dropdownHiding: _angular_core.OutputEmitterRef<boolean>;
|
|
2027
3028
|
dropdownRef: ElementRef<HTMLDivElement>;
|
|
@@ -2044,7 +3045,7 @@ declare class UniDropdownComponent extends BaseComponent<UniDropdownOptions> imp
|
|
|
2044
3045
|
hideDropdown(): void;
|
|
2045
3046
|
ngOnDestroy(): void;
|
|
2046
3047
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniDropdownComponent, never>;
|
|
2047
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniDropdownComponent, "uni-dropdown", never, { "trigger": { "alias": "trigger"; "required": true; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "offset": { "alias": "offset"; "required": false; "isSignal": true; }; "ariaHasPopup": { "alias": "ariaHasPopup"; "required": false; "isSignal": true; }; "paddingVertical": { "alias": "paddingVertical"; "required": false; "isSignal": true; }; "paddingHorizontal": { "alias": "paddingHorizontal"; "required": false; "isSignal": true; }; "border": { "alias": "border"; "required": false; "isSignal": true; }; "borderRadius": { "alias": "borderRadius"; "required": false; "isSignal": true; }; "shadow": { "alias": "shadow"; "required": false; "isSignal": true; }; "
|
|
3048
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniDropdownComponent, "uni-dropdown", never, { "trigger": { "alias": "trigger"; "required": true; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "offset": { "alias": "offset"; "required": false; "isSignal": true; }; "ariaHasPopup": { "alias": "ariaHasPopup"; "required": false; "isSignal": true; }; "paddingVertical": { "alias": "paddingVertical"; "required": false; "isSignal": true; }; "paddingHorizontal": { "alias": "paddingHorizontal"; "required": false; "isSignal": true; }; "border": { "alias": "border"; "required": false; "isSignal": true; }; "borderRadius": { "alias": "borderRadius"; "required": false; "isSignal": true; }; "shadow": { "alias": "shadow"; "required": false; "isSignal": true; }; "containerColor": { "alias": "containerColor"; "required": false; "isSignal": true; }; }, { "dropdownShowing": "dropdownShowing"; "dropdownHiding": "dropdownHiding"; }, never, ["*"], true, never>;
|
|
2048
3049
|
}
|
|
2049
3050
|
|
|
2050
3051
|
/** Theme-level options for `uni-expand`. */
|
|
@@ -2058,14 +3059,6 @@ interface UniExpandOptions {
|
|
|
2058
3059
|
* reads the same token so trigger and region move on one clock.
|
|
2059
3060
|
*/
|
|
2060
3061
|
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.
|
|
2067
|
-
*/
|
|
2068
|
-
transitionSpeed?: number;
|
|
2069
3062
|
}
|
|
2070
3063
|
|
|
2071
3064
|
declare class UniExpandComponent extends BaseComponent<UniExpandOptions> {
|
|
@@ -2108,9 +3101,8 @@ declare class UniExpandComponent extends BaseComponent<UniExpandOptions> {
|
|
|
2108
3101
|
*/
|
|
2109
3102
|
readonly duration: _angular_core.Signal<number>;
|
|
2110
3103
|
/**
|
|
2111
|
-
* Base speed in seconds, before the size-aware scaling above
|
|
2112
|
-
*
|
|
2113
|
-
* otherwise the `motion` token's duration (ms) converts to seconds.
|
|
3104
|
+
* Base speed in seconds, before the size-aware scaling above: the `motion`
|
|
3105
|
+
* token's duration (ms) converted to seconds.
|
|
2114
3106
|
*/
|
|
2115
3107
|
private readonly baseSpeed;
|
|
2116
3108
|
/** Curve for the reveal, from the same token as the speed. */
|
|
@@ -2241,41 +3233,6 @@ declare class UniFileDropZoneComponent {
|
|
|
2241
3233
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniFileDropZoneComponent, "uni-file-drop-zone", never, { "height": { "alias": "height"; "required": false; "isSignal": true; }; "borderRadius": { "alias": "borderRadius"; "required": false; "isSignal": true; }; "border": { "alias": "border"; "required": false; "isSignal": true; }; "padding": { "alias": "padding"; "required": false; "isSignal": true; }; "useBrowseButton": { "alias": "useBrowseButton"; "required": false; "isSignal": true; }; "browseButtonText": { "alias": "browseButtonText"; "required": false; "isSignal": true; }; "allowedFileExtensions": { "alias": "allowedFileExtensions"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "helpTemplate": { "alias": "helpTemplate"; "required": false; "isSignal": true; }; "helpTemplateContext": { "alias": "helpTemplateContext"; "required": false; "isSignal": true; }; }, { "fileAttached": "fileAttached"; "fileRemoved": "fileRemoved"; }, never, never, true, never>;
|
|
2242
3234
|
}
|
|
2243
3235
|
|
|
2244
|
-
/**
|
|
2245
|
-
* Text input that emits `change` only after the user pauses typing. Wears the
|
|
2246
|
-
* shared input chrome (themed color, border, typeface, focus ring) via
|
|
2247
|
-
* `uni-input-box`; project adornments with the `pre-input` / `post-input`
|
|
2248
|
-
* slots, matching `uni-input`'s convention. The ARIA passthrough inputs let a
|
|
2249
|
-
* wrapping composite (e.g. SearchInput's combobox) annotate the real input
|
|
2250
|
-
* element.
|
|
2251
|
-
*/
|
|
2252
|
-
declare class UniDebounceInputComponent {
|
|
2253
|
-
inputName: _angular_core.InputSignal<string>;
|
|
2254
|
-
inputId: _angular_core.InputSignal<string>;
|
|
2255
|
-
debounceTime: _angular_core.InputSignal<number>;
|
|
2256
|
-
/** Accessible name for the input. */
|
|
2257
|
-
label: _angular_core.InputSignal<string>;
|
|
2258
|
-
placeholder: _angular_core.InputSignal<string>;
|
|
2259
|
-
disabled: _angular_core.InputSignal<boolean>;
|
|
2260
|
-
role: _angular_core.InputSignal<string>;
|
|
2261
|
-
ariaExpanded: _angular_core.InputSignal<boolean>;
|
|
2262
|
-
ariaControls: _angular_core.InputSignal<string>;
|
|
2263
|
-
ariaActivedescendant: _angular_core.InputSignal<string>;
|
|
2264
|
-
change: _angular_core.OutputEmitterRef<string>;
|
|
2265
|
-
value: _angular_core.WritableSignal<string>;
|
|
2266
|
-
private readonly inputElement;
|
|
2267
|
-
private timeoutId;
|
|
2268
|
-
private lastEmitted;
|
|
2269
|
-
constructor();
|
|
2270
|
-
handleInput(event: Event): void;
|
|
2271
|
-
/** Empty the field immediately, cancelling any pending emit. */
|
|
2272
|
-
clear(): void;
|
|
2273
|
-
focus(): void;
|
|
2274
|
-
inputClass: string;
|
|
2275
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniDebounceInputComponent, never>;
|
|
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>;
|
|
2277
|
-
}
|
|
2278
|
-
|
|
2279
3236
|
/**
|
|
2280
3237
|
* Whether the browser can keep a top-layer popup attached to its field.
|
|
2281
3238
|
*
|
|
@@ -2403,96 +3360,27 @@ declare class UniIconButtonComponent {
|
|
|
2403
3360
|
* (`<button icon-button>Close</button>`); one of the two is required for
|
|
2404
3361
|
* an icon-only button to be announced correctly.
|
|
2405
3362
|
*/
|
|
2406
|
-
ariaLabel: _angular_core.InputSignal<string>;
|
|
2407
|
-
iconName: _angular_core.InputSignal<IconName>;
|
|
2408
|
-
symbolName: _angular_core.InputSignal<string>;
|
|
2409
|
-
variant: _angular_core.InputSignal<Variant>;
|
|
2410
|
-
size: _angular_core.InputSignal<Size>;
|
|
2411
|
-
disable: _angular_core.InputSignal<boolean>;
|
|
2412
|
-
loading: _angular_core.InputSignal<boolean>;
|
|
2413
|
-
opticalSize: _angular_core.InputSignal<number>;
|
|
2414
|
-
protected readonly srOnlyClass: string;
|
|
2415
|
-
/**
|
|
2416
|
-
* Sizes `iconName` from the size token's `fontSize`, the same value that sizes
|
|
2417
|
-
* a `symbolName` ligature — so the two paths render the same glyph size and
|
|
2418
|
-
* `symbolName` → `iconName` is a like-for-like swap. Without it a masked icon
|
|
2419
|
-
* fills the whole button box, since the base size tokens carry no padding.
|
|
2420
|
-
* Themes that do use padding (Carbon) set a matching `fontSize`, so they land
|
|
2421
|
-
* on the same glyph either way.
|
|
2422
|
-
*/
|
|
2423
|
-
protected readonly glyphSize: _angular_core.Signal<string | number>;
|
|
2424
|
-
protected readonly className: _angular_core.Signal<string>;
|
|
2425
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniIconButtonComponent, never>;
|
|
2426
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniIconButtonComponent, "button[uni-icon-button], button[icon-button]", never, { "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "iconName": { "alias": "iconName"; "required": false; "isSignal": true; }; "symbolName": { "alias": "symbolName"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disable": { "alias": "disable"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "opticalSize": { "alias": "opticalSize"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof RippleDirective; inputs: {}; outputs: {}; }]>;
|
|
2427
|
-
}
|
|
2428
|
-
|
|
2429
|
-
declare class UniInputComponent implements FormValueControl<string> {
|
|
2430
|
-
readonly value: _angular_core.ModelSignal<string>;
|
|
2431
|
-
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
2432
|
-
readonly touched: _angular_core.ModelSignal<boolean>;
|
|
2433
|
-
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
2434
|
-
readonly dirty: _angular_core.InputSignal<boolean>;
|
|
2435
|
-
/** Synced from required() validators by the Signal Forms [field] directive. */
|
|
2436
|
-
readonly required: _angular_core.InputSignal<boolean>;
|
|
2437
|
-
/**
|
|
2438
|
-
* Id(s) of external element(s) describing this control — typically your
|
|
2439
|
-
* app-rendered error message — exposed as aria-describedby.
|
|
2440
|
-
*/
|
|
2441
|
-
readonly ariaDescribedBy: _angular_core.InputSignal<string>;
|
|
2442
|
-
label: _angular_core.InputSignal<string>;
|
|
2443
|
-
placeholder: _angular_core.InputSignal<string>;
|
|
2444
|
-
protected readonly showError: _angular_core.Signal<boolean>;
|
|
2445
|
-
markAsTouched(): void;
|
|
2446
|
-
handleInput(event: Event): void;
|
|
2447
|
-
inputClass: string;
|
|
2448
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniInputComponent, never>;
|
|
2449
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniInputComponent, "uni-input", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "dirty": { "alias": "dirty"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "ariaDescribedBy": { "alias": "ariaDescribedBy"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touched": "touchedChange"; }, never, ["pre-input", "post-input"], true, never>;
|
|
2450
|
-
}
|
|
2451
|
-
|
|
2452
|
-
interface UniInputBoxOptions {
|
|
2453
|
-
color: ContainerColorToken;
|
|
2454
|
-
disabledColor: ContainerColorToken;
|
|
2455
|
-
errorColor: ContainerColorToken;
|
|
2456
|
-
border: Border;
|
|
2457
|
-
errorBorder: Border;
|
|
2458
|
-
borderRadius: Radius;
|
|
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;
|
|
2464
|
-
shadow?: Shadow;
|
|
2465
|
-
errorShadow?: Shadow;
|
|
2466
|
-
height?: string | number;
|
|
2467
|
-
paddingLeft: OptionalSize;
|
|
2468
|
-
typeface?: Typeface;
|
|
2469
|
-
/** @deprecated Use `typeface` (matching tooltip/button/tabs casing). */
|
|
2470
|
-
typeFace?: Typeface;
|
|
2471
|
-
textColor: ColorKey;
|
|
2472
|
-
disabledTextColor: ColorKey;
|
|
2473
|
-
focusOutline: string;
|
|
2474
|
-
focusOutlineOffset: number;
|
|
2475
|
-
/** Border swapped in while an inner control has focus (default: keep `border`). */
|
|
2476
|
-
focusBorder?: Border;
|
|
2477
|
-
/** Ring shown while focused, e.g. a soft `0 0 0 3px` spread shadow. */
|
|
2478
|
-
focusShadow?: Shadow;
|
|
2479
|
-
/** Background swapped in while focused (default: keep `color`). */
|
|
2480
|
-
focusColor?: ContainerColorToken;
|
|
2481
|
-
}
|
|
2482
|
-
|
|
2483
|
-
declare class UniInputBoxComponent extends BaseComponent<UniInputBoxOptions> {
|
|
2484
|
-
protected readonly className: string;
|
|
2485
|
-
disabled: _angular_core.InputSignal<boolean>;
|
|
2486
|
-
error: _angular_core.InputSignal<boolean>;
|
|
2487
|
-
minWidth: _angular_core.InputSignal<string>;
|
|
2488
|
-
/** Override the themed field height, e.g. `'auto'` for multi-line fields. */
|
|
2489
|
-
height: _angular_core.InputSignal<string | number>;
|
|
2490
|
-
protected readonly color: _angular_core.Signal<_uni_design_system_uni_core.ContainerColorToken>;
|
|
2491
|
-
protected readonly border: _angular_core.Signal<string>;
|
|
2492
|
-
protected readonly shadow: _angular_core.Signal<string>;
|
|
2493
|
-
protected readonly inputBoxClass: _angular_core.Signal<string>;
|
|
2494
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniInputBoxComponent, never>;
|
|
2495
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniInputBoxComponent, "uni-input-box", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "minWidth": { "alias": "minWidth"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
3363
|
+
ariaLabel: _angular_core.InputSignal<string>;
|
|
3364
|
+
iconName: _angular_core.InputSignal<IconName>;
|
|
3365
|
+
symbolName: _angular_core.InputSignal<string>;
|
|
3366
|
+
variant: _angular_core.InputSignal<Variant>;
|
|
3367
|
+
size: _angular_core.InputSignal<Size>;
|
|
3368
|
+
disable: _angular_core.InputSignal<boolean>;
|
|
3369
|
+
loading: _angular_core.InputSignal<boolean>;
|
|
3370
|
+
opticalSize: _angular_core.InputSignal<number>;
|
|
3371
|
+
protected readonly srOnlyClass: string;
|
|
3372
|
+
/**
|
|
3373
|
+
* Sizes `iconName` from the size token's `fontSize`, the same value that sizes
|
|
3374
|
+
* a `symbolName` ligature — so the two paths render the same glyph size and
|
|
3375
|
+
* `symbolName` → `iconName` is a like-for-like swap. Without it a masked icon
|
|
3376
|
+
* fills the whole button box, since the base size tokens carry no padding.
|
|
3377
|
+
* Themes that do use padding (Carbon) set a matching `fontSize`, so they land
|
|
3378
|
+
* on the same glyph either way.
|
|
3379
|
+
*/
|
|
3380
|
+
protected readonly glyphSize: _angular_core.Signal<string | number>;
|
|
3381
|
+
protected readonly className: _angular_core.Signal<string>;
|
|
3382
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniIconButtonComponent, never>;
|
|
3383
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniIconButtonComponent, "button[uni-icon-button], button[icon-button]", never, { "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "iconName": { "alias": "iconName"; "required": false; "isSignal": true; }; "symbolName": { "alias": "symbolName"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disable": { "alias": "disable"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "opticalSize": { "alias": "opticalSize"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof RippleDirective; inputs: {}; outputs: {}; }]>;
|
|
2496
3384
|
}
|
|
2497
3385
|
|
|
2498
3386
|
declare class UniJsonViewComponent {
|
|
@@ -2508,137 +3396,6 @@ declare class UniJsonViewComponent {
|
|
|
2508
3396
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniJsonViewComponent, "uni-json-view", never, { "json": { "alias": "json"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "fontSize": { "alias": "fontSize"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "selectOnClick": { "alias": "selectOnClick"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2509
3397
|
}
|
|
2510
3398
|
|
|
2511
|
-
/**
|
|
2512
|
-
* The base layout primitive, applied as an attribute to any element so
|
|
2513
|
-
* semantics stay yours: `<main box-layout [grow]="1" padding="md">`.
|
|
2514
|
-
* Exception: other components' host elements (`<uni-card box-layout>` would
|
|
2515
|
-
* put two components on one element) — wrap those in a `<div box-layout>`.
|
|
2516
|
-
*
|
|
2517
|
-
* Sizing convention (height/width/min/max/inset): a **number is px and needs
|
|
2518
|
-
* a binding** — `[height]="420"`; a **plain attribute is a CSS length
|
|
2519
|
-
* string** — `height="420px"`. Spacing/radius/color inputs take theme tokens.
|
|
2520
|
-
*/
|
|
2521
|
-
declare class UniBoxComponent {
|
|
2522
|
-
theme: ThemeService;
|
|
2523
|
-
color: _angular_core.InputSignal<ContainerColorToken>;
|
|
2524
|
-
backgroundColor: _angular_core.InputSignal<string>;
|
|
2525
|
-
borderRadius: _angular_core.InputSignal<string>;
|
|
2526
|
-
borderRadiusLeft: _angular_core.InputSignal<string>;
|
|
2527
|
-
borderRadiusRight: _angular_core.InputSignal<string>;
|
|
2528
|
-
borderRadiusTop: _angular_core.InputSignal<string>;
|
|
2529
|
-
borderRadiusBottom: _angular_core.InputSignal<string>;
|
|
2530
|
-
padding: _angular_core.InputSignal<OptionalSize>;
|
|
2531
|
-
paddingHorizontal: _angular_core.InputSignal<OptionalSize>;
|
|
2532
|
-
paddingVertical: _angular_core.InputSignal<OptionalSize>;
|
|
2533
|
-
paddingLeft: _angular_core.InputSignal<OptionalSize>;
|
|
2534
|
-
paddingRight: _angular_core.InputSignal<OptionalSize>;
|
|
2535
|
-
paddingTop: _angular_core.InputSignal<OptionalSize>;
|
|
2536
|
-
paddingBottom: _angular_core.InputSignal<OptionalSize>;
|
|
2537
|
-
border: _angular_core.InputSignal<string>;
|
|
2538
|
-
borderTop: _angular_core.InputSignal<string>;
|
|
2539
|
-
borderBottom: _angular_core.InputSignal<string>;
|
|
2540
|
-
borderLeft: _angular_core.InputSignal<string>;
|
|
2541
|
-
borderRight: _angular_core.InputSignal<string>;
|
|
2542
|
-
dashBorder: _angular_core.InputSignal<boolean>;
|
|
2543
|
-
alignSelf: _angular_core.InputSignal<OptionalAlignSelf>;
|
|
2544
|
-
alignItems: _angular_core.InputSignal<OptionalAlignItems>;
|
|
2545
|
-
alignContent: _angular_core.InputSignal<OptionalAlignContent>;
|
|
2546
|
-
justifyContent: _angular_core.InputSignal<OptionalJustifyContent>;
|
|
2547
|
-
grow: _angular_core.InputSignal<number>;
|
|
2548
|
-
display: _angular_core.InputSignal<OptionalDisplay>;
|
|
2549
|
-
position: _angular_core.InputSignal<OptionalPosition>;
|
|
2550
|
-
inset: _angular_core.InputSignal<string | number>;
|
|
2551
|
-
/** Number = px via binding (`[height]="420"`); string = CSS length (`height="420px"`). */
|
|
2552
|
-
height: _angular_core.InputSignal<string | number>;
|
|
2553
|
-
minHeight: _angular_core.InputSignal<string | number>;
|
|
2554
|
-
maxHeight: _angular_core.InputSignal<string | number>;
|
|
2555
|
-
/** Number = px via binding (`[width]="420"`); string = CSS length (`width="50%"`). */
|
|
2556
|
-
width: _angular_core.InputSignal<string | number>;
|
|
2557
|
-
minWidth: _angular_core.InputSignal<string | number>;
|
|
2558
|
-
maxWidth: _angular_core.InputSignal<string | number>;
|
|
2559
|
-
ignoreDir: _angular_core.InputSignal<boolean>;
|
|
2560
|
-
gridArea: _angular_core.InputSignal<string>;
|
|
2561
|
-
gridColumn: _angular_core.InputSignal<string>;
|
|
2562
|
-
gridRow: _angular_core.InputSignal<string>;
|
|
2563
|
-
overflow: _angular_core.InputSignal<OptionalOverflow>;
|
|
2564
|
-
elevation: _angular_core.InputSignal<string>;
|
|
2565
|
-
shadow: _angular_core.InputSignal<string>;
|
|
2566
|
-
gap: _angular_core.InputSignal<OptionalSize>;
|
|
2567
|
-
fullWidth: _angular_core.InputSignal<boolean>;
|
|
2568
|
-
fullHeight: _angular_core.InputSignal<boolean>;
|
|
2569
|
-
flexDirection: _angular_core.InputSignal<OptionalFlexDirection>;
|
|
2570
|
-
textAlign: _angular_core.InputSignal<OptionalTextAlign>;
|
|
2571
|
-
wrapItems: _angular_core.InputSignal<OptionalWrap>;
|
|
2572
|
-
zIndex: _angular_core.InputSignal<ZIndexableElements>;
|
|
2573
|
-
protected readonly boxClassName: _angular_core.Signal<string>;
|
|
2574
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniBoxComponent, never>;
|
|
2575
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniBoxComponent, "[uni-box-layout], [box-layout]", never, { "color": { "alias": "color"; "required": false; "isSignal": true; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; "isSignal": true; }; "borderRadius": { "alias": "borderRadius"; "required": false; "isSignal": true; }; "borderRadiusLeft": { "alias": "borderRadiusLeft"; "required": false; "isSignal": true; }; "borderRadiusRight": { "alias": "borderRadiusRight"; "required": false; "isSignal": true; }; "borderRadiusTop": { "alias": "borderRadiusTop"; "required": false; "isSignal": true; }; "borderRadiusBottom": { "alias": "borderRadiusBottom"; "required": false; "isSignal": true; }; "padding": { "alias": "padding"; "required": false; "isSignal": true; }; "paddingHorizontal": { "alias": "paddingHorizontal"; "required": false; "isSignal": true; }; "paddingVertical": { "alias": "paddingVertical"; "required": false; "isSignal": true; }; "paddingLeft": { "alias": "paddingLeft"; "required": false; "isSignal": true; }; "paddingRight": { "alias": "paddingRight"; "required": false; "isSignal": true; }; "paddingTop": { "alias": "paddingTop"; "required": false; "isSignal": true; }; "paddingBottom": { "alias": "paddingBottom"; "required": false; "isSignal": true; }; "border": { "alias": "border"; "required": false; "isSignal": true; }; "borderTop": { "alias": "borderTop"; "required": false; "isSignal": true; }; "borderBottom": { "alias": "borderBottom"; "required": false; "isSignal": true; }; "borderLeft": { "alias": "borderLeft"; "required": false; "isSignal": true; }; "borderRight": { "alias": "borderRight"; "required": false; "isSignal": true; }; "dashBorder": { "alias": "dashBorder"; "required": false; "isSignal": true; }; "alignSelf": { "alias": "alignSelf"; "required": false; "isSignal": true; }; "alignItems": { "alias": "alignItems"; "required": false; "isSignal": true; }; "alignContent": { "alias": "alignContent"; "required": false; "isSignal": true; }; "justifyContent": { "alias": "justifyContent"; "required": false; "isSignal": true; }; "grow": { "alias": "grow"; "required": false; "isSignal": true; }; "display": { "alias": "display"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "inset": { "alias": "inset"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "minHeight": { "alias": "minHeight"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "minWidth": { "alias": "minWidth"; "required": false; "isSignal": true; }; "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "ignoreDir": { "alias": "ignoreDir"; "required": false; "isSignal": true; }; "gridArea": { "alias": "gridArea"; "required": false; "isSignal": true; }; "gridColumn": { "alias": "gridColumn"; "required": false; "isSignal": true; }; "gridRow": { "alias": "gridRow"; "required": false; "isSignal": true; }; "overflow": { "alias": "overflow"; "required": false; "isSignal": true; }; "elevation": { "alias": "elevation"; "required": false; "isSignal": true; }; "shadow": { "alias": "shadow"; "required": false; "isSignal": true; }; "gap": { "alias": "gap"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "fullHeight": { "alias": "fullHeight"; "required": false; "isSignal": true; }; "flexDirection": { "alias": "flexDirection"; "required": false; "isSignal": true; }; "textAlign": { "alias": "textAlign"; "required": false; "isSignal": true; }; "wrapItems": { "alias": "wrapItems"; "required": false; "isSignal": true; }; "zIndex": { "alias": "zIndex"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
2576
|
-
}
|
|
2577
|
-
|
|
2578
|
-
declare class UniCenterComponent extends UniBoxComponent {
|
|
2579
|
-
display: _angular_core.InputSignal<OptionalDisplay>;
|
|
2580
|
-
justifyContent: _angular_core.InputSignal<OptionalJustifyContent>;
|
|
2581
|
-
alignItems: _angular_core.InputSignal<OptionalAlignItems>;
|
|
2582
|
-
constructor();
|
|
2583
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniCenterComponent, never>;
|
|
2584
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniCenterComponent, "[uni-center-layout], [center-layout]", never, { "display": { "alias": "display"; "required": false; "isSignal": true; }; "justifyContent": { "alias": "justifyContent"; "required": false; "isSignal": true; }; "alignItems": { "alias": "alignItems"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
2585
|
-
}
|
|
2586
|
-
|
|
2587
|
-
declare class UniGridAreaComponent {
|
|
2588
|
-
area: _angular_core.InputSignal<string>;
|
|
2589
|
-
protected readonly className: _angular_core.Signal<string>;
|
|
2590
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniGridAreaComponent, never>;
|
|
2591
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniGridAreaComponent, "[uni-grid-area-layout], [grid-area-layout]", never, { "area": { "alias": "area"; "required": true; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
2592
|
-
}
|
|
2593
|
-
|
|
2594
|
-
declare class UniGridComponent extends UniBoxComponent {
|
|
2595
|
-
display: _angular_core.InputSignal<OptionalDisplay>;
|
|
2596
|
-
templateAreas: _angular_core.InputSignal<string>;
|
|
2597
|
-
templateColumns: _angular_core.InputSignal<string>;
|
|
2598
|
-
templateRows: _angular_core.InputSignal<string>;
|
|
2599
|
-
outline: _angular_core.InputSignal<Thickness>;
|
|
2600
|
-
outlineColor: _angular_core.InputSignal<Variant>;
|
|
2601
|
-
protected readonly gridClassName: _angular_core.Signal<string>;
|
|
2602
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniGridComponent, never>;
|
|
2603
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniGridComponent, "[uni-grid-layout], [grid-layout]", never, { "display": { "alias": "display"; "required": false; "isSignal": true; }; "templateAreas": { "alias": "templateAreas"; "required": false; "isSignal": true; }; "templateColumns": { "alias": "templateColumns"; "required": false; "isSignal": true; }; "templateRows": { "alias": "templateRows"; "required": false; "isSignal": true; }; "outline": { "alias": "outline"; "required": false; "isSignal": true; }; "outlineColor": { "alias": "outlineColor"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
2604
|
-
}
|
|
2605
|
-
|
|
2606
|
-
declare class UniRowComponent extends UniBoxComponent {
|
|
2607
|
-
display: _angular_core.InputSignal<OptionalDisplay>;
|
|
2608
|
-
flexDirection: _angular_core.InputSignal<OptionalFlexDirection>;
|
|
2609
|
-
/**
|
|
2610
|
-
* Defaults to `fit-content` (guards content collapse). Set `[minWidth]="0"`
|
|
2611
|
-
* when the row must shrink inside a constrained flex parent (scroll or
|
|
2612
|
-
* text truncation containment).
|
|
2613
|
-
*/
|
|
2614
|
-
minWidth: _angular_core.InputSignal<string | number>;
|
|
2615
|
-
constructor();
|
|
2616
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniRowComponent, never>;
|
|
2617
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniRowComponent, "[uni-row-layout], [row-layout]", never, { "display": { "alias": "display"; "required": false; "isSignal": true; }; "flexDirection": { "alias": "flexDirection"; "required": false; "isSignal": true; }; "minWidth": { "alias": "minWidth"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
2618
|
-
}
|
|
2619
|
-
|
|
2620
|
-
declare class UniStackComponent extends UniBoxComponent {
|
|
2621
|
-
display: _angular_core.InputSignal<OptionalDisplay>;
|
|
2622
|
-
flexDirection: _angular_core.InputSignal<OptionalFlexDirection>;
|
|
2623
|
-
/**
|
|
2624
|
-
* Defaults to `fit-content` (guards content collapse). Set `[minHeight]="0"`
|
|
2625
|
-
* when the stack must shrink inside a constrained flex parent (scroll
|
|
2626
|
-
* containment).
|
|
2627
|
-
*/
|
|
2628
|
-
minHeight: _angular_core.InputSignal<string | number>;
|
|
2629
|
-
constructor();
|
|
2630
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniStackComponent, never>;
|
|
2631
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniStackComponent, "[uni-stack-layout], [stack-layout]", never, { "display": { "alias": "display"; "required": false; "isSignal": true; }; "flexDirection": { "alias": "flexDirection"; "required": false; "isSignal": true; }; "minHeight": { "alias": "minHeight"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
2632
|
-
}
|
|
2633
|
-
|
|
2634
|
-
declare class UniWrapComponent extends UniBoxComponent {
|
|
2635
|
-
display: _angular_core.InputSignal<OptionalDisplay>;
|
|
2636
|
-
wrapItems: _angular_core.InputSignal<OptionalWrap>;
|
|
2637
|
-
constructor();
|
|
2638
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniWrapComponent, never>;
|
|
2639
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniWrapComponent, "[uni-wrap-layout], [wrap-layout]", never, { "display": { "alias": "display"; "required": false; "isSignal": true; }; "wrapItems": { "alias": "wrapItems"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
2640
|
-
}
|
|
2641
|
-
|
|
2642
3399
|
interface BaseMenuItem {
|
|
2643
3400
|
symbolName?: string;
|
|
2644
3401
|
action?: () => void;
|
|
@@ -2679,13 +3436,6 @@ interface UniMenuItemOptions {
|
|
|
2679
3436
|
/** Named motion primitive for the hover/focus fill. Defaults to `control`;
|
|
2680
3437
|
omit both this and `transitionSpeed` for no transition at all. */
|
|
2681
3438
|
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
|
-
*/
|
|
2688
|
-
transitionSpeed?: number;
|
|
2689
3439
|
}
|
|
2690
3440
|
|
|
2691
3441
|
/**
|
|
@@ -2708,134 +3458,35 @@ interface UniMenuOptions {
|
|
|
2708
3458
|
dividerSpacing?: NullableSize;
|
|
2709
3459
|
}
|
|
2710
3460
|
|
|
2711
|
-
declare class UniMenuComponent {
|
|
2712
|
-
private theme;
|
|
2713
|
-
menuItems: _angular_core.InputSignal<MenuItem[]>;
|
|
2714
|
-
activeItem: _angular_core.InputSignal<MenuItem>;
|
|
2715
|
-
placement: _angular_core.InputSignal<Placement>;
|
|
2716
|
-
menuItemClicked: _angular_core.OutputEmitterRef<MenuItem>;
|
|
2717
|
-
TriggerClassName: string;
|
|
2718
|
-
/** Type guard for the template: dividers render as separators, not items. */
|
|
2719
|
-
protected readonly isDivider: (item: MenuItem) => item is _uni_design_system_uni_angular.MenuDivider;
|
|
2720
|
-
protected readonly menuOptions: _angular_core.Signal<UniMenuOptions>;
|
|
2721
|
-
protected readonly menuClassName: _angular_core.Signal<string>;
|
|
2722
|
-
protected readonly dividerClassName: _angular_core.Signal<string>;
|
|
2723
|
-
private itemComponents;
|
|
2724
|
-
private dropdownComponent;
|
|
2725
|
-
/** Which item receives focus when the menu opens (ArrowUp opens onto the last item). */
|
|
2726
|
-
private pendingFocus;
|
|
2727
|
-
protected readonly className: _angular_core.Signal<string>;
|
|
2728
|
-
handleMenuItemClick(item: MenuItem, dropdown: UniDropdownComponent): void;
|
|
2729
|
-
/** Enabled items participating in keyboard navigation. */
|
|
2730
|
-
private get navigableItems();
|
|
2731
|
-
onOpened(): void;
|
|
2732
|
-
onTriggerKeydown(event: KeyboardEvent): void;
|
|
2733
|
-
onMenuKeydown(event: KeyboardEvent, dropdown: UniDropdownComponent): void;
|
|
2734
|
-
/** First-character matching, starting after the focused item and wrapping. */
|
|
2735
|
-
private typeahead;
|
|
2736
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniMenuComponent, never>;
|
|
2737
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniMenuComponent, "uni-menu", never, { "menuItems": { "alias": "menuItems"; "required": true; "isSignal": true; }; "activeItem": { "alias": "activeItem"; "required": false; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; }, { "menuItemClicked": "menuItemClicked"; }, never, ["*"], true, never>;
|
|
2738
|
-
}
|
|
2739
|
-
|
|
2740
|
-
declare class UniMultiSelectComponent<T = unknown> {
|
|
2741
|
-
options: _angular_core.InputSignal<Option<T>[]>;
|
|
2742
|
-
selections: _angular_core.InputSignal<T[]>;
|
|
2743
|
-
updates: _angular_core.OutputEmitterRef<T[]>;
|
|
2744
|
-
flexDirection: _angular_core.InputSignal<"column" | "row" | "column-reverse" | "row-reverse">;
|
|
2745
|
-
checkboxGap: _angular_core.InputSignal<NullableSize>;
|
|
2746
|
-
protected readonly values: _angular_core.Signal<unknown[]>;
|
|
2747
|
-
protected readonly optionsWithSelections: _angular_core.Signal<Option<T>[]>;
|
|
2748
|
-
protected readonly className: string;
|
|
2749
|
-
handleCheck(checked: boolean, value: T): void;
|
|
2750
|
-
/** Selects every *enabled* option — a disabled option is not committable. */
|
|
2751
|
-
selectAll(): void;
|
|
2752
|
-
deselectAll(): void;
|
|
2753
|
-
optionWrapper: string;
|
|
2754
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniMultiSelectComponent<any>, never>;
|
|
2755
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniMultiSelectComponent<any>, "uni-multi-select", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "selections": { "alias": "selections"; "required": false; "isSignal": true; }; "flexDirection": { "alias": "flexDirection"; "required": false; "isSignal": true; }; "checkboxGap": { "alias": "checkboxGap"; "required": false; "isSignal": true; }; }, { "updates": "updates"; }, never, never, true, never>;
|
|
2756
|
-
}
|
|
2757
|
-
|
|
2758
|
-
interface UniMultiSelectDropdownOptions {
|
|
2759
|
-
textRole: Typeface;
|
|
2760
|
-
textColor: TextColor;
|
|
2761
|
-
placeholderTextColor: TextColor;
|
|
2762
|
-
dividerBorder: Border;
|
|
2763
|
-
searchInputBorder: Border;
|
|
2764
|
-
searchInputBorderRadius: Radius;
|
|
2765
|
-
focusOutline: string;
|
|
2766
|
-
focusOutlineOffset: number;
|
|
2767
|
-
}
|
|
2768
|
-
|
|
2769
|
-
declare class UniMultiSelectDropdownComponent<T = unknown> extends BaseComponent<UniMultiSelectDropdownOptions> implements FormValueControl<T[]> {
|
|
2770
|
-
protected readonly className: string;
|
|
2771
|
-
readonly value: _angular_core.ModelSignal<T[]>;
|
|
2772
|
-
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
2773
|
-
readonly touched: _angular_core.ModelSignal<boolean>;
|
|
2774
|
-
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
2775
|
-
readonly dirty: _angular_core.InputSignal<boolean>;
|
|
2776
|
-
/** Synced from required() validators by the Signal Forms [field] directive. */
|
|
2777
|
-
readonly required: _angular_core.InputSignal<boolean>;
|
|
2778
|
-
/**
|
|
2779
|
-
* Id(s) of external element(s) describing this control — typically your
|
|
2780
|
-
* app-rendered error message — exposed as aria-describedby.
|
|
2781
|
-
*/
|
|
2782
|
-
readonly ariaDescribedBy: _angular_core.InputSignal<string>;
|
|
2783
|
-
readonly options: _angular_core.InputSignal<Options<T>>;
|
|
2784
|
-
readonly placeholder: _angular_core.InputSignal<string>;
|
|
2785
|
-
/**
|
|
2786
|
-
* What the field is for, e.g. "Fruits". Rendered visually hidden inside the
|
|
2787
|
-
* trigger so its accessible name reads "Fruits, Apple, Pear" — without it a
|
|
2788
|
-
* screen reader announces only the current selection, with no clue which
|
|
2789
|
-
* field it belongs to.
|
|
2790
|
-
*/
|
|
2791
|
-
readonly label: _angular_core.InputSignal<string>;
|
|
2792
|
-
/** Debounce for the filter box, matching the library's input debounce. */
|
|
2793
|
-
readonly debounceTime: _angular_core.InputSignal<number>;
|
|
2794
|
-
protected readonly srOnly: string;
|
|
2795
|
-
protected readonly query: _angular_core.WritableSignal<string>;
|
|
2796
|
-
private queryTimer?;
|
|
2797
|
-
protected readonly filteredOptions: _angular_core.Signal<Options<T>>;
|
|
2798
|
-
private readonly optionRefs;
|
|
2799
|
-
/**
|
|
2800
|
-
* Roving focus over the options. The shared helper owns the index
|
|
2801
|
-
* arithmetic — wrapping, Home/End, and never pointing past a list the
|
|
2802
|
-
* filter has narrowed — the same contract `uni-search-input` and
|
|
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.
|
|
2808
|
-
*/
|
|
2809
|
-
protected readonly list: _uni_design_system_uni_angular.ListboxNavigation;
|
|
2810
|
-
/** Announced with the selection so the count is not left to guesswork. */
|
|
2811
|
-
readonly selectionSummary: _angular_core.Signal<string>;
|
|
2812
|
-
readonly selectedLabelsText: _angular_core.Signal<string>;
|
|
2813
|
-
protected readonly showError: _angular_core.Signal<boolean>;
|
|
2814
|
-
protected readonly textColor: _angular_core.Signal<_uni_design_system_uni_core.TextColor>;
|
|
2815
|
-
triggerClass: string;
|
|
2816
|
-
protected readonly searchInputClass: _angular_core.Signal<string>;
|
|
2817
|
-
protected handleQueryInput(event: Event): void;
|
|
2818
|
-
/**
|
|
2819
|
-
* Arrow keys walk the options from anywhere in the panel, including the
|
|
2820
|
-
* filter box — previously the only way in was to Tab through every
|
|
2821
|
-
* checkbox.
|
|
2822
|
-
*/
|
|
2823
|
-
protected onPanelKeydown(event: KeyboardEvent): void;
|
|
2824
|
-
/** Keeps the active index in step when focus lands on a row by pointer. */
|
|
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
|
-
*/
|
|
2831
|
-
selectAll(): void;
|
|
2832
|
-
deselectAll(): void;
|
|
2833
|
-
protected isOptionSelected(option: Option<T>): _angular_core.Signal<boolean>;
|
|
2834
|
-
toggleOption(option: Option<T>, checked: boolean): void;
|
|
2835
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniMultiSelectDropdownComponent<any>, never>;
|
|
2836
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniMultiSelectDropdownComponent<any>, "uni-multi-select-dropdown", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "dirty": { "alias": "dirty"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "ariaDescribedBy": { "alias": "ariaDescribedBy"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": true; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "debounceTime": { "alias": "debounceTime"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touched": "touchedChange"; }, never, never, true, never>;
|
|
2837
|
-
}
|
|
2838
|
-
|
|
3461
|
+
declare class UniMenuComponent {
|
|
3462
|
+
private theme;
|
|
3463
|
+
menuItems: _angular_core.InputSignal<MenuItem[]>;
|
|
3464
|
+
activeItem: _angular_core.InputSignal<MenuItem>;
|
|
3465
|
+
placement: _angular_core.InputSignal<Placement>;
|
|
3466
|
+
menuItemClicked: _angular_core.OutputEmitterRef<MenuItem>;
|
|
3467
|
+
TriggerClassName: string;
|
|
3468
|
+
/** Type guard for the template: dividers render as separators, not items. */
|
|
3469
|
+
protected readonly isDivider: (item: MenuItem) => item is _uni_design_system_uni_angular.MenuDivider;
|
|
3470
|
+
protected readonly menuOptions: _angular_core.Signal<UniMenuOptions>;
|
|
3471
|
+
protected readonly menuClassName: _angular_core.Signal<string>;
|
|
3472
|
+
protected readonly dividerClassName: _angular_core.Signal<string>;
|
|
3473
|
+
private itemComponents;
|
|
3474
|
+
private dropdownComponent;
|
|
3475
|
+
/** Which item receives focus when the menu opens (ArrowUp opens onto the last item). */
|
|
3476
|
+
private pendingFocus;
|
|
3477
|
+
protected readonly className: _angular_core.Signal<string>;
|
|
3478
|
+
handleMenuItemClick(item: MenuItem, dropdown: UniDropdownComponent): void;
|
|
3479
|
+
/** Enabled items participating in keyboard navigation. */
|
|
3480
|
+
private get navigableItems();
|
|
3481
|
+
onOpened(): void;
|
|
3482
|
+
onTriggerKeydown(event: KeyboardEvent): void;
|
|
3483
|
+
onMenuKeydown(event: KeyboardEvent, dropdown: UniDropdownComponent): void;
|
|
3484
|
+
/** First-character matching, starting after the focused item and wrapping. */
|
|
3485
|
+
private typeahead;
|
|
3486
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniMenuComponent, never>;
|
|
3487
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniMenuComponent, "uni-menu", never, { "menuItems": { "alias": "menuItems"; "required": true; "isSignal": true; }; "activeItem": { "alias": "activeItem"; "required": false; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; }, { "menuItemClicked": "menuItemClicked"; }, never, ["*"], true, never>;
|
|
3488
|
+
}
|
|
3489
|
+
|
|
2839
3490
|
interface UniNotificationBadgeOptions {
|
|
2840
3491
|
borderRadius?: RadiiSize;
|
|
2841
3492
|
offset?: number;
|
|
@@ -2869,13 +3520,6 @@ interface UniAlertOptions {
|
|
|
2869
3520
|
/** Named motion primitive for the enter/leave transition. Defaults to
|
|
2870
3521
|
`notification`. */
|
|
2871
3522
|
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;
|
|
2879
3523
|
topPosition: string | number;
|
|
2880
3524
|
elevation: Elevation;
|
|
2881
3525
|
}
|
|
@@ -2889,10 +3533,7 @@ declare class UniAlertComponent extends BaseComponent<UniAlertOptions> implement
|
|
|
2889
3533
|
alertRef?: ElementRef<HTMLDialogElement>;
|
|
2890
3534
|
private readonly alertState;
|
|
2891
3535
|
private readonly effectiveVariant;
|
|
2892
|
-
/**
|
|
2893
|
-
* Timing for the enter/leave transition. The deprecated `transitionSpeed`
|
|
2894
|
-
* (seconds) wins when a theme still sets it.
|
|
2895
|
-
*/
|
|
3536
|
+
/** Timing for the enter/leave transition. */
|
|
2896
3537
|
protected readonly motion: _angular_core.Signal<_uni_design_system_uni_core.MotionToken>;
|
|
2897
3538
|
protected readonly alertClass: _angular_core.Signal<string>;
|
|
2898
3539
|
private readonly fadeOut;
|
|
@@ -2937,13 +3578,6 @@ interface UniSnackbarOptions {
|
|
|
2937
3578
|
/** Named motion primitive for the enter/leave transition. Defaults to
|
|
2938
3579
|
`notification`. */
|
|
2939
3580
|
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;
|
|
2947
3581
|
autoCloseDelay: number;
|
|
2948
3582
|
}
|
|
2949
3583
|
|
|
@@ -2970,11 +3604,7 @@ declare class UniSnackbarComponent extends BaseComponent<UniSnackbarOptions> imp
|
|
|
2970
3604
|
snackbarRef: _angular_core.Signal<ElementRef<any>>;
|
|
2971
3605
|
private get _snackbar();
|
|
2972
3606
|
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
|
-
*/
|
|
3607
|
+
/** Timing for the enter/leave transition. */
|
|
2978
3608
|
protected readonly motion: _angular_core.Signal<_uni_design_system_uni_core.MotionToken>;
|
|
2979
3609
|
protected readonly snackbarClass: _angular_core.Signal<string>;
|
|
2980
3610
|
fadeOut: string;
|
|
@@ -3175,71 +3805,6 @@ declare class UniProgressGaugeComponent extends BaseComponent {
|
|
|
3175
3805
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniProgressGaugeComponent, "uni-progress-gauge", never, { "percent": { "alias": "percent"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3176
3806
|
}
|
|
3177
3807
|
|
|
3178
|
-
interface UniRadioOption {
|
|
3179
|
-
/**
|
|
3180
|
-
* The label displayed for this radio option
|
|
3181
|
-
*/
|
|
3182
|
-
label: string;
|
|
3183
|
-
/**
|
|
3184
|
-
* The value associated with this radio option
|
|
3185
|
-
*/
|
|
3186
|
-
value: string;
|
|
3187
|
-
/**
|
|
3188
|
-
* Whether this option is disabled
|
|
3189
|
-
*/
|
|
3190
|
-
disabled?: boolean;
|
|
3191
|
-
}
|
|
3192
|
-
interface UniRadioOptions {
|
|
3193
|
-
/**
|
|
3194
|
-
* The size of the radio buttons
|
|
3195
|
-
*/
|
|
3196
|
-
size?: number;
|
|
3197
|
-
/** Unselected ring color token. */
|
|
3198
|
-
ringColor?: ColorKey;
|
|
3199
|
-
/** Circle background token. */
|
|
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;
|
|
3204
|
-
/**
|
|
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.
|
|
3209
|
-
*/
|
|
3210
|
-
transitionSpeed?: number;
|
|
3211
|
-
}
|
|
3212
|
-
|
|
3213
|
-
declare class UniRadioComponent extends BaseComponent<UniRadioOptions> implements FormValueControl<string> {
|
|
3214
|
-
readonly value: _angular_core.ModelSignal<string>;
|
|
3215
|
-
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
3216
|
-
readonly touched: _angular_core.ModelSignal<boolean>;
|
|
3217
|
-
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
3218
|
-
readonly dirty: _angular_core.InputSignal<boolean>;
|
|
3219
|
-
/** Synced from required() validators by the Signal Forms [field] directive. */
|
|
3220
|
-
readonly required: _angular_core.InputSignal<boolean>;
|
|
3221
|
-
/**
|
|
3222
|
-
* Id(s) of external element(s) describing this control — typically your
|
|
3223
|
-
* app-rendered error message — exposed as aria-describedby.
|
|
3224
|
-
*/
|
|
3225
|
-
readonly ariaDescribedBy: _angular_core.InputSignal<string>;
|
|
3226
|
-
readonly options: _angular_core.InputSignal<UniRadioOption[]>;
|
|
3227
|
-
readonly label: _angular_core.InputSignal<string>;
|
|
3228
|
-
readonly name: _angular_core.InputSignal<string>;
|
|
3229
|
-
/** Links the group label to the radiogroup container. */
|
|
3230
|
-
protected readonly groupLabelId: string;
|
|
3231
|
-
protected readonly showError: _angular_core.Signal<boolean>;
|
|
3232
|
-
markAsTouched(): void;
|
|
3233
|
-
private readonly metrics;
|
|
3234
|
-
protected readonly radioGroupClass: string;
|
|
3235
|
-
protected readonly radioOptionClass: _angular_core.Signal<string>;
|
|
3236
|
-
protected readonly radioInputClass: _angular_core.Signal<string>;
|
|
3237
|
-
handleRadioChange(optionValue: string): void;
|
|
3238
|
-
getThemeColor(token: ColorToken): string;
|
|
3239
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniRadioComponent, never>;
|
|
3240
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniRadioComponent, "uni-radio", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "dirty": { "alias": "dirty"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "ariaDescribedBy": { "alias": "ariaDescribedBy"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touched": "touchedChange"; }, never, never, true, never>;
|
|
3241
|
-
}
|
|
3242
|
-
|
|
3243
3808
|
/**
|
|
3244
3809
|
* Visual style of the scrollbar.
|
|
3245
3810
|
* - `compact`: thin overlay-style scrollbar.
|
|
@@ -3260,7 +3825,15 @@ declare class UniScrollAreaComponent {
|
|
|
3260
3825
|
isVerticallyScrollable: _angular_core.WritableSignal<boolean>;
|
|
3261
3826
|
viewport: _angular_core.Signal<ElementRef<HTMLDivElement>>;
|
|
3262
3827
|
content: _angular_core.Signal<ElementRef<HTMLDivElement>>;
|
|
3263
|
-
|
|
3828
|
+
/**
|
|
3829
|
+
* A container color *pair*: the named surface plus its paired on-color.
|
|
3830
|
+
*
|
|
3831
|
+
* Named `containerColor`, not `color`, for the same reason as the layout
|
|
3832
|
+
* primitives: this is an attribute directive-style selector that shares
|
|
3833
|
+
* elements with `uni-text`, which owns `color` and maps it to the CSS
|
|
3834
|
+
* property. One `color` binding feeding both would render ink on ink.
|
|
3835
|
+
*/
|
|
3836
|
+
containerColor: _angular_core.InputSignal<ContainerColorToken>;
|
|
3264
3837
|
borderRadius: _angular_core.InputSignal<string>;
|
|
3265
3838
|
padding: _angular_core.InputSignal<OptionalSize>;
|
|
3266
3839
|
paddingHorizontal: _angular_core.InputSignal<OptionalSize>;
|
|
@@ -3283,112 +3856,7 @@ declare class UniScrollAreaComponent {
|
|
|
3283
3856
|
protected contentClassName: _angular_core.Signal<string>;
|
|
3284
3857
|
constructor();
|
|
3285
3858
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniScrollAreaComponent, never>;
|
|
3286
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniScrollAreaComponent, "[uni-scroll-area], [scroll-area]", never, { "
|
|
3287
|
-
}
|
|
3288
|
-
|
|
3289
|
-
/** Theme-level options for `uni-search-input`, resolved by token name. */
|
|
3290
|
-
interface UniSearchInputOptions {
|
|
3291
|
-
/** Leading (decorative) symbol. */
|
|
3292
|
-
searchSymbol?: string;
|
|
3293
|
-
/** Clear-button symbol. */
|
|
3294
|
-
clearSymbol?: string;
|
|
3295
|
-
/** Suggestion list surface color token. */
|
|
3296
|
-
listColor?: ColorKey;
|
|
3297
|
-
/** Active/hover suggestion fill; the on-color pair is derived. Must
|
|
3298
|
-
contrast with `listColor` or keyboard navigation turns invisible. */
|
|
3299
|
-
activeColor?: ContainerColorToken;
|
|
3300
|
-
/** Suggestion list elevation token. */
|
|
3301
|
-
listShadow?: Shadow;
|
|
3302
|
-
/** Suggestion list radius token. */
|
|
3303
|
-
listBorderRadius?: Radius;
|
|
3304
|
-
/** Cap on rendered suggestions. */
|
|
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;
|
|
3308
|
-
}
|
|
3309
|
-
|
|
3310
|
-
/**
|
|
3311
|
-
* Generic search field: shared input chrome with a leading magnifier, a clear
|
|
3312
|
-
* button while there's a query, Enter to submit, and optional type-ahead —
|
|
3313
|
-
* pass `suggestions` (refresh them from `change`) and the field becomes an
|
|
3314
|
-
* ARIA combobox with a keyboard-navigable listbox. Escape closes the list
|
|
3315
|
-
* first, then clears the query.
|
|
3316
|
-
*/
|
|
3317
|
-
declare class UniSearchInputComponent extends BaseComponent<UniSearchInputOptions> {
|
|
3318
|
-
/** Accessible name for the field, also the placeholder fallback. */
|
|
3319
|
-
label: _angular_core.InputSignal<string>;
|
|
3320
|
-
placeholder: _angular_core.InputSignal<string>;
|
|
3321
|
-
width: _angular_core.InputSignal<string | number>;
|
|
3322
|
-
debounceTime: _angular_core.InputSignal<number>;
|
|
3323
|
-
/**
|
|
3324
|
-
* Type-ahead entries. Keep them fresh from `change` emissions; the list
|
|
3325
|
-
* shows while the field has focus and entries exist.
|
|
3326
|
-
*/
|
|
3327
|
-
suggestions: _angular_core.InputSignal<string[]>;
|
|
3328
|
-
change: _angular_core.OutputEmitterRef<string>;
|
|
3329
|
-
search: _angular_core.OutputEmitterRef<string>;
|
|
3330
|
-
suggestionSelected: _angular_core.OutputEmitterRef<string>;
|
|
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();
|
|
3338
|
-
protected readonly visibleSuggestions: _angular_core.Signal<string[]>;
|
|
3339
|
-
/** Shared combobox bookkeeping: open state, active option, ARIA ids. */
|
|
3340
|
-
protected readonly list: _uni_design_system_uni_angular.ListboxNavigation;
|
|
3341
|
-
readonly listboxId: string;
|
|
3342
|
-
protected readonly hasQuery: _angular_core.Signal<boolean>;
|
|
3343
|
-
protected handleChange(value: string): void;
|
|
3344
|
-
protected submit(): void;
|
|
3345
|
-
protected select(suggestion: string): void;
|
|
3346
|
-
protected clear(): void;
|
|
3347
|
-
protected onKeydown(event: KeyboardEvent): void;
|
|
3348
|
-
protected onFocusOut(event: FocusEvent): void;
|
|
3349
|
-
protected readonly className: _angular_core.Signal<string>;
|
|
3350
|
-
protected readonly listClass: _angular_core.Signal<string>;
|
|
3351
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniSearchInputComponent, never>;
|
|
3352
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniSearchInputComponent, "uni-search-input", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "debounceTime": { "alias": "debounceTime"; "required": false; "isSignal": true; }; "suggestions": { "alias": "suggestions"; "required": false; "isSignal": true; }; }, { "change": "change"; "search": "search"; "suggestionSelected": "suggestionSelected"; }, never, never, true, never>;
|
|
3353
|
-
}
|
|
3354
|
-
|
|
3355
|
-
declare class UniSelectComponent<T> implements FormValueControl<T | null> {
|
|
3356
|
-
readonly value: _angular_core.ModelSignal<T>;
|
|
3357
|
-
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
3358
|
-
readonly touched: _angular_core.ModelSignal<boolean>;
|
|
3359
|
-
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
3360
|
-
readonly dirty: _angular_core.InputSignal<boolean>;
|
|
3361
|
-
/** Synced from required() validators by the Signal Forms [field] directive. */
|
|
3362
|
-
readonly required: _angular_core.InputSignal<boolean>;
|
|
3363
|
-
/**
|
|
3364
|
-
* Id(s) of external element(s) describing this control — typically your
|
|
3365
|
-
* app-rendered error message — exposed as aria-describedby.
|
|
3366
|
-
*/
|
|
3367
|
-
readonly ariaDescribedBy: _angular_core.InputSignal<string>;
|
|
3368
|
-
readonly options: _angular_core.InputSignal<Options<T>>;
|
|
3369
|
-
readonly placeholder: _angular_core.InputSignal<string>;
|
|
3370
|
-
/**
|
|
3371
|
-
* Equality used to match `value` against option values, called as
|
|
3372
|
-
* `compareWith(optionValue, value)`. Defaults to reference equality, which
|
|
3373
|
-
* never matches an object value rebuilt from elsewhere (e.g. a saved record
|
|
3374
|
-
* against options from a fresh fetch) — pass a key comparison like
|
|
3375
|
-
* `(a, b) => a?.id === b?.id` for object values.
|
|
3376
|
-
*/
|
|
3377
|
-
readonly compareWith: _angular_core.InputSignal<(optionValue: T, value: T) => boolean>;
|
|
3378
|
-
/** Accessible name for the select; a placeholder is not a label. */
|
|
3379
|
-
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
3380
|
-
protected readonly UNSELECTED = -1;
|
|
3381
|
-
/**
|
|
3382
|
-
* We use the index as the HTML value to avoid issues with
|
|
3383
|
-
* stringifying complex objects or duplicate labels.
|
|
3384
|
-
*/
|
|
3385
|
-
protected readonly currentSelectedIndex: _angular_core.Signal<string | -1>;
|
|
3386
|
-
protected readonly showError: _angular_core.Signal<boolean>;
|
|
3387
|
-
protected handleSelectChange(event: Event): void;
|
|
3388
|
-
selectClass: string;
|
|
3389
|
-
arrowClass: string;
|
|
3390
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniSelectComponent<any>, never>;
|
|
3391
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniSelectComponent<any>, "uni-select", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "dirty": { "alias": "dirty"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "ariaDescribedBy": { "alias": "ariaDescribedBy"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "compareWith": { "alias": "compareWith"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touched": "touchedChange"; }, never, never, true, never>;
|
|
3859
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniScrollAreaComponent, "[uni-scroll-area], [scroll-area]", never, { "containerColor": { "alias": "containerColor"; "required": false; "isSignal": true; }; "borderRadius": { "alias": "borderRadius"; "required": false; "isSignal": true; }; "padding": { "alias": "padding"; "required": false; "isSignal": true; }; "paddingHorizontal": { "alias": "paddingHorizontal"; "required": false; "isSignal": true; }; "paddingVertical": { "alias": "paddingVertical"; "required": false; "isSignal": true; }; "paddingLeft": { "alias": "paddingLeft"; "required": false; "isSignal": true; }; "paddingRight": { "alias": "paddingRight"; "required": false; "isSignal": true; }; "paddingTop": { "alias": "paddingTop"; "required": false; "isSignal": true; }; "paddingBottom": { "alias": "paddingBottom"; "required": false; "isSignal": true; }; "border": { "alias": "border"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "autoHeightDisabled": { "alias": "autoHeightDisabled"; "required": false; "isSignal": true; }; "verticalScrollPadding": { "alias": "verticalScrollPadding"; "required": false; "isSignal": true; }; }, { "scrollable": "scrollable"; }, never, ["*"], true, never>;
|
|
3392
3860
|
}
|
|
3393
3861
|
|
|
3394
3862
|
/** Placeholder geometry: a text line block, a rectangle, or a circle. */
|
|
@@ -3454,58 +3922,11 @@ declare class UniSkeletonComponent extends BaseComponent<UniSkeletonOptions> {
|
|
|
3454
3922
|
* The band is `bandWidth`% of the block, so it clears the block after
|
|
3455
3923
|
* travelling `100 / bandWidth` of its own width — the offsets below are
|
|
3456
3924
|
* percentages of the band, not of the block.
|
|
3457
|
-
*/
|
|
3458
|
-
private readonly sweep;
|
|
3459
|
-
protected readonly className: _angular_core.Signal<string>;
|
|
3460
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniSkeletonComponent, 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>;
|
|
3462
|
-
}
|
|
3463
|
-
|
|
3464
|
-
/** Theme-level options for `uni-slider`, resolved by token name. */
|
|
3465
|
-
interface UniSliderOptions {
|
|
3466
|
-
/** Fill and thumb color. */
|
|
3467
|
-
color?: ColorKey;
|
|
3468
|
-
/** Unfilled track color. */
|
|
3469
|
-
trackColor?: ColorKey;
|
|
3470
|
-
/** Track and thumb radius token. */
|
|
3471
|
-
borderRadius?: Radius;
|
|
3472
|
-
/** Track height in px. */
|
|
3473
|
-
trackHeight?: number;
|
|
3474
|
-
/** Thumb diameter in px. */
|
|
3475
|
-
thumbSize?: number;
|
|
3476
|
-
}
|
|
3477
|
-
|
|
3478
|
-
/**
|
|
3479
|
-
* Range slider on a native `<input type="range">` — keyboard interaction and
|
|
3480
|
-
* the ARIA slider contract come from the platform. Fill, track, thumb and
|
|
3481
|
-
* radii resolve from `slider` theme tokens; the fill percentage rides a CSS
|
|
3482
|
-
* custom property so dragging never regenerates styles.
|
|
3483
|
-
*/
|
|
3484
|
-
declare class UniSliderComponent extends BaseComponent<UniSliderOptions> implements FormValueControl<number> {
|
|
3485
|
-
readonly value: _angular_core.ModelSignal<number>;
|
|
3486
|
-
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
3487
|
-
readonly touched: _angular_core.ModelSignal<boolean>;
|
|
3488
|
-
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
3489
|
-
readonly dirty: _angular_core.InputSignal<boolean>;
|
|
3490
|
-
/** Synced from required() validators by the Signal Forms [field] directive. */
|
|
3491
|
-
readonly required: _angular_core.InputSignal<boolean>;
|
|
3492
|
-
/**
|
|
3493
|
-
* Id(s) of external element(s) describing this control — typically your
|
|
3494
|
-
* app-rendered value or error text — exposed as aria-describedby.
|
|
3495
|
-
*/
|
|
3496
|
-
readonly ariaDescribedBy: _angular_core.InputSignal<string>;
|
|
3497
|
-
label: _angular_core.InputSignal<string>;
|
|
3498
|
-
min: _angular_core.InputSignal<number>;
|
|
3499
|
-
max: _angular_core.InputSignal<number>;
|
|
3500
|
-
step: _angular_core.InputSignal<number>;
|
|
3501
|
-
protected readonly resolvedMin: _angular_core.Signal<number>;
|
|
3502
|
-
protected readonly resolvedMax: _angular_core.Signal<number>;
|
|
3503
|
-
markAsTouched(): void;
|
|
3504
|
-
handleInput(event: Event): void;
|
|
3505
|
-
protected readonly fillPercent: _angular_core.Signal<string>;
|
|
3506
|
-
protected readonly inputClass: _angular_core.Signal<string>;
|
|
3507
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniSliderComponent, never>;
|
|
3508
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniSliderComponent, "uni-slider", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "dirty": { "alias": "dirty"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "ariaDescribedBy": { "alias": "ariaDescribedBy"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touched": "touchedChange"; }, never, never, true, never>;
|
|
3925
|
+
*/
|
|
3926
|
+
private readonly sweep;
|
|
3927
|
+
protected readonly className: _angular_core.Signal<string>;
|
|
3928
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniSkeletonComponent, never>;
|
|
3929
|
+
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>;
|
|
3509
3930
|
}
|
|
3510
3931
|
|
|
3511
3932
|
/** Theme-level options for `uni-stat`, resolved by token name. */
|
|
@@ -3637,34 +4058,6 @@ declare class UniTabsComponent extends BaseComponent<UniTabsOptions> {
|
|
|
3637
4058
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniTabsComponent, "uni-tabs", never, { "selectedIndex": { "alias": "selectedIndex"; "required": false; "isSignal": true; }; }, { "selectedIndex": "selectedIndexChange"; }, ["tabs"], never, true, never>;
|
|
3638
4059
|
}
|
|
3639
4060
|
|
|
3640
|
-
declare class UniTextareaComponent implements FormValueControl<string> {
|
|
3641
|
-
private theme;
|
|
3642
|
-
readonly value: _angular_core.ModelSignal<string>;
|
|
3643
|
-
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
3644
|
-
readonly touched: _angular_core.ModelSignal<boolean>;
|
|
3645
|
-
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
3646
|
-
readonly dirty: _angular_core.InputSignal<boolean>;
|
|
3647
|
-
/** Synced from required() validators by the Signal Forms [field] directive. */
|
|
3648
|
-
readonly required: _angular_core.InputSignal<boolean>;
|
|
3649
|
-
/**
|
|
3650
|
-
* Id(s) of external element(s) describing this control — typically your
|
|
3651
|
-
* app-rendered error message — exposed as aria-describedby.
|
|
3652
|
-
*/
|
|
3653
|
-
readonly ariaDescribedBy: _angular_core.InputSignal<string>;
|
|
3654
|
-
label: _angular_core.InputSignal<string>;
|
|
3655
|
-
placeholder: _angular_core.InputSignal<string>;
|
|
3656
|
-
/** Visible text rows. Defaults to the theme's `textarea` options. */
|
|
3657
|
-
rows: _angular_core.InputSignal<number>;
|
|
3658
|
-
private options;
|
|
3659
|
-
protected readonly resolvedRows: _angular_core.Signal<number>;
|
|
3660
|
-
protected readonly showError: _angular_core.Signal<boolean>;
|
|
3661
|
-
protected readonly textareaClass: _angular_core.Signal<string>;
|
|
3662
|
-
markAsTouched(): void;
|
|
3663
|
-
handleInput(event: Event): void;
|
|
3664
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniTextareaComponent, never>;
|
|
3665
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniTextareaComponent, "uni-textarea", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "dirty": { "alias": "dirty"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "ariaDescribedBy": { "alias": "ariaDescribedBy"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touched": "touchedChange"; }, never, never, true, never>;
|
|
3666
|
-
}
|
|
3667
|
-
|
|
3668
4061
|
/** Theme-level options for `uni-textarea`. */
|
|
3669
4062
|
interface UniTextareaOptions {
|
|
3670
4063
|
/** Default visible text rows when the component doesn't set `rows`. */
|
|
@@ -3700,264 +4093,96 @@ declare class UniSymbolComponent extends BaseComponent<SymbolOptions> {
|
|
|
3700
4093
|
fill: _angular_core.InputSignal<SymbolFill>;
|
|
3701
4094
|
weight: _angular_core.InputSignal<SymbolWeight>;
|
|
3702
4095
|
grade: _angular_core.InputSignal<SymbolGrade>;
|
|
3703
|
-
opticalSize: _angular_core.InputSignal<number>;
|
|
3704
|
-
protected readonly className: _angular_core.Signal<string>;
|
|
3705
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniSymbolComponent, never>;
|
|
3706
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniSymbolComponent, "uni-symbol", never, { "name": { "alias": "name"; "required": true; "isSignal": true; }; "fill": { "alias": "fill"; "required": false; "isSignal": true; }; "weight": { "alias": "weight"; "required": false; "isSignal": true; }; "grade": { "alias": "grade"; "required": false; "isSignal": true; }; "opticalSize": { "alias": "opticalSize"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3707
|
-
}
|
|
3708
|
-
|
|
3709
|
-
/** Theme options for the `tag` component entry. */
|
|
3710
|
-
interface UniTagOptions {
|
|
3711
|
-
borderRadius?: Radius;
|
|
3712
|
-
typeface?: Typeface;
|
|
3713
|
-
/** Space between the lead element, label and remove button. */
|
|
3714
|
-
gap?: NullableSize;
|
|
3715
|
-
/** Icon primitive for the remove affordance. */
|
|
3716
|
-
removeIcon?: IconName;
|
|
3717
|
-
/** Icon primitive shown in the lead slot when the chip is selected. */
|
|
3718
|
-
selectedIcon?: IconName;
|
|
3719
|
-
}
|
|
3720
|
-
/** The value a tag echoes back on `removed` / `activated`. */
|
|
3721
|
-
type UniTagValue = string | number | undefined;
|
|
3722
|
-
|
|
3723
|
-
/**
|
|
3724
|
-
* Compact chip for categories, states, filters and tokens.
|
|
3725
|
-
*
|
|
3726
|
-
* Two orthogonal style axes: `variant` picks the colour role and `tone` picks
|
|
3727
|
-
* the archetype (soft / solid / outline). Both live in the theme's `tag` entry,
|
|
3728
|
-
* so a theme restyles every chip in the app without touching markup.
|
|
3729
|
-
*
|
|
3730
|
-
* Structurally a chip is **body + trailing action as siblings**, never nested
|
|
3731
|
-
* buttons: an interactive chip whose body is a `<button>` cannot contain the
|
|
3732
|
-
* remove `<button>` (invalid HTML, and the inner control becomes unreachable
|
|
3733
|
-
* for keyboard users). Both stay independently operable.
|
|
3734
|
-
*/
|
|
3735
|
-
declare class UniTagComponent extends BaseComponent<UniTagOptions> {
|
|
3736
|
-
size: _angular_core.InputSignal<Size>;
|
|
3737
|
-
tone: _angular_core.InputSignal<TagTone>;
|
|
3738
|
-
label: _angular_core.InputSignal<string>;
|
|
3739
|
-
value: _angular_core.InputSignal<string | number>;
|
|
3740
|
-
/** Truncation budget, e.g. `'14ch'`. A number is treated as px. */
|
|
3741
|
-
maxWidth: _angular_core.InputSignal<string | number>;
|
|
3742
|
-
avatarSrc: _angular_core.InputSignal<string>;
|
|
3743
|
-
/** Initials fallback when `avatarSrc` is absent or fails to load. */
|
|
3744
|
-
avatarName: _angular_core.InputSignal<string>;
|
|
3745
|
-
/** Theme icon primitive — the preferred glyph path. */
|
|
3746
|
-
iconName: _angular_core.InputSignal<IconName>;
|
|
3747
|
-
/** Material Symbols ligature, for glyphs the theme's icon set doesn't carry. */
|
|
3748
|
-
symbolName: _angular_core.InputSignal<string>;
|
|
3749
|
-
/** Status dot in the current colour. */
|
|
3750
|
-
dot: _angular_core.InputSignal<boolean>;
|
|
3751
|
-
removable: _angular_core.InputSignal<boolean>;
|
|
3752
|
-
interactive: _angular_core.InputSignal<boolean>;
|
|
3753
|
-
/**
|
|
3754
|
-
* Toggle state. Left undefined the chip carries no `aria-pressed` at all —
|
|
3755
|
-
* an interactive chip is not always a toggle (inside a tag input it is
|
|
3756
|
-
* focusable so it can be removed), and announcing "not pressed" on a
|
|
3757
|
-
* recipient chip is worse than announcing nothing.
|
|
3758
|
-
*/
|
|
3759
|
-
selected: _angular_core.InputSignal<boolean>;
|
|
3760
|
-
invalid: _angular_core.InputSignal<boolean>;
|
|
3761
|
-
disabled: _angular_core.InputSignal<boolean>;
|
|
3762
|
-
/** Accessible-name override for the remove button. */
|
|
3763
|
-
removeLabel: _angular_core.InputSignal<string>;
|
|
3764
|
-
/**
|
|
3765
|
-
* Tab position of the chip's controls. A composite that owns its own
|
|
3766
|
-
* roving focus — `uni-tag-input`, where the whole field is one tab stop —
|
|
3767
|
-
* passes `-1` so Tab does not walk through every chip to reach the next
|
|
3768
|
-
* control.
|
|
3769
|
-
*/
|
|
3770
|
-
controlTabIndex: _angular_core.InputSignal<number>;
|
|
3771
|
-
removed: _angular_core.OutputEmitterRef<UniTagValue>;
|
|
3772
|
-
activated: _angular_core.OutputEmitterRef<UniTagValue>;
|
|
3773
|
-
/** A disabled chip wears the theme's `disabled` role, whatever its variant. */
|
|
3774
|
-
protected readonly resolvedVariant: _angular_core.Signal<_uni_design_system_uni_core.Variant>;
|
|
3775
|
-
protected readonly themeStyle: _angular_core.Signal<{
|
|
3776
|
-
[x: string]: string | number | _uni_design_system_uni_core.StyleExpression;
|
|
3777
|
-
}>;
|
|
3778
|
-
/** Lead elements derive from the chip height, so no second size token. */
|
|
3779
|
-
protected readonly leadSize: _angular_core.Signal<number>;
|
|
3780
|
-
/** Remove glyph, proportional to the chip rather than to the icon-button. */
|
|
3781
|
-
protected readonly removeGlyphSize: _angular_core.Signal<number>;
|
|
3782
|
-
protected readonly initials: _angular_core.Signal<string>;
|
|
3783
|
-
protected readonly hostClass: _angular_core.Signal<string>;
|
|
3784
|
-
/** Truncating label; `title` exposes the full text when a budget is set. */
|
|
3785
|
-
protected readonly labelClass: string;
|
|
3786
|
-
protected readonly bodyClass: _angular_core.Signal<string>;
|
|
3787
|
-
protected readonly leadClass: _angular_core.Signal<string>;
|
|
3788
|
-
protected readonly dotClass: _angular_core.Signal<string>;
|
|
3789
|
-
protected remove(): void;
|
|
3790
|
-
protected activate(): void;
|
|
3791
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniTagComponent, never>;
|
|
3792
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniTagComponent, "uni-tag", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "tone": { "alias": "tone"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "avatarSrc": { "alias": "avatarSrc"; "required": false; "isSignal": true; }; "avatarName": { "alias": "avatarName"; "required": false; "isSignal": true; }; "iconName": { "alias": "iconName"; "required": false; "isSignal": true; }; "symbolName": { "alias": "symbolName"; "required": false; "isSignal": true; }; "dot": { "alias": "dot"; "required": false; "isSignal": true; }; "removable": { "alias": "removable"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "removeLabel": { "alias": "removeLabel"; "required": false; "isSignal": true; }; "controlTabIndex": { "alias": "controlTabIndex"; "required": false; "isSignal": true; }; }, { "removed": "removed"; "activated": "activated"; }, never, ["[tag-lead]", "*"], true, never>;
|
|
3793
|
-
}
|
|
3794
|
-
|
|
3795
|
-
/**
|
|
3796
|
-
* One committed token. `value` is canonical — what a form submits — and
|
|
3797
|
-
* everything else is presentation the field may enrich from a suggestion.
|
|
3798
|
-
*
|
|
3799
|
-
* `{ value: 'a@b.com' }` is a complete item, so the least a caller has to write
|
|
3800
|
-
* is `[value]="[{ value: 'a@b.com' }]"`.
|
|
3801
|
-
*/
|
|
3802
|
-
interface UniTagItem {
|
|
3803
|
-
/** Canonical value, e.g. an email address. */
|
|
3804
|
-
value: string;
|
|
3805
|
-
/** Display text; falls back to `value`. */
|
|
3806
|
-
label?: string;
|
|
3807
|
-
avatarSrc?: string;
|
|
3808
|
-
/**
|
|
3809
|
-
* Failed `validate()`. The item stays **in** the value rather than being
|
|
3810
|
-
* rejected — a field that silently swallows a typo'd address is worse than
|
|
3811
|
-
* one that shows it in red, and the user can click in to fix it.
|
|
3812
|
-
*/
|
|
3813
|
-
invalid?: boolean;
|
|
3814
|
-
/** Locked token (e.g. a thread owner): rendered without a remove control. */
|
|
3815
|
-
disabled?: boolean;
|
|
3816
|
-
}
|
|
3817
|
-
/** A type-ahead entry. Same contract as `uni-search-input`: the app filters. */
|
|
3818
|
-
interface UniTagSuggestion {
|
|
3819
|
-
value: string;
|
|
3820
|
-
label?: string;
|
|
3821
|
-
description?: string;
|
|
3822
|
-
avatarSrc?: string;
|
|
3823
|
-
}
|
|
3824
|
-
/** Why a typed token did not become a chip. */
|
|
3825
|
-
interface UniTagRejection {
|
|
3826
|
-
raw: string;
|
|
3827
|
-
reason: 'duplicate' | 'max' | 'invalid';
|
|
3828
|
-
}
|
|
3829
|
-
/** Theme options for the `tagInput` component entry. */
|
|
3830
|
-
interface UniTagInputOptions {
|
|
3831
|
-
/** Space between chips. */
|
|
3832
|
-
chipGap?: NullableSize;
|
|
3833
|
-
chipSize?: Size;
|
|
3834
|
-
/** Keeps the text input usable when chips have wrapped. */
|
|
3835
|
-
minInputWidth?: string | number;
|
|
3836
|
-
listColor?: ContainerColorToken;
|
|
3837
|
-
listShadow?: Shadow;
|
|
3838
|
-
listBorderRadius?: Radius;
|
|
3839
|
-
/** Active/hover suggestion fill; the on-color pair is derived. Must
|
|
3840
|
-
contrast with `listColor` or keyboard navigation turns invisible. */
|
|
3841
|
-
activeColor?: ContainerColorToken;
|
|
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;
|
|
3845
|
-
}
|
|
3846
|
-
|
|
3847
|
-
declare class UniTagInputComponent extends BaseComponent<UniTagInputOptions> implements FormValueControl<UniTagItem[]> {
|
|
3848
|
-
readonly value: _angular_core.ModelSignal<UniTagItem[]>;
|
|
3849
|
-
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
3850
|
-
readonly touched: _angular_core.ModelSignal<boolean>;
|
|
3851
|
-
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
3852
|
-
readonly dirty: _angular_core.InputSignal<boolean>;
|
|
3853
|
-
readonly required: _angular_core.InputSignal<boolean>;
|
|
3854
|
-
readonly ariaDescribedBy: _angular_core.InputSignal<string>;
|
|
3855
|
-
/** Accessible name for the field, e.g. "To". */
|
|
3856
|
-
label: _angular_core.InputSignal<string>;
|
|
3857
|
-
placeholder: _angular_core.InputSignal<string>;
|
|
3858
|
-
/** `email` wires an address validator, paste parser and space separator. */
|
|
3859
|
-
preset: _angular_core.InputSignal<"text" | "email">;
|
|
3860
|
-
separators: _angular_core.InputSignal<string[]>;
|
|
3861
|
-
commitOnBlur: _angular_core.InputSignal<boolean>;
|
|
3862
|
-
allowDuplicates: _angular_core.InputSignal<boolean>;
|
|
3863
|
-
max: _angular_core.InputSignal<number>;
|
|
3864
|
-
validate: _angular_core.InputSignal<(raw: string) => boolean>;
|
|
3865
|
-
parse: _angular_core.InputSignal<(pasted: string) => string[]>;
|
|
3866
|
-
tagVariant: _angular_core.InputSignal<Variant>;
|
|
3867
|
-
tagTone: _angular_core.InputSignal<TagTone>;
|
|
3868
|
-
tagSize: _angular_core.InputSignal<Size>;
|
|
3869
|
-
suggestions: _angular_core.InputSignal<UniTagSuggestion[]>;
|
|
3870
|
-
/** Debounced text the app should filter `suggestions` from. */
|
|
3871
|
-
query: _angular_core.OutputEmitterRef<string>;
|
|
3872
|
-
debounceTime: _angular_core.InputSignal<number>;
|
|
3873
|
-
added: _angular_core.OutputEmitterRef<UniTagItem>;
|
|
3874
|
-
removed: _angular_core.OutputEmitterRef<UniTagItem>;
|
|
3875
|
-
rejected: _angular_core.OutputEmitterRef<UniTagRejection>;
|
|
3876
|
-
private readonly inputRef;
|
|
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();
|
|
3884
|
-
/** Uncommitted text in the field. */
|
|
3885
|
-
protected readonly draft: _angular_core.WritableSignal<string>;
|
|
3886
|
-
/** Index of the focused chip, or -1 when focus is in the text input. */
|
|
3887
|
-
protected readonly focusedChip: _angular_core.WritableSignal<number>;
|
|
3888
|
-
/** Adds, removes and refusals are otherwise silent to a screen reader. */
|
|
3889
|
-
protected readonly announcer: _uni_design_system_uni_angular.Announcer;
|
|
3890
|
-
protected readonly hintId: string;
|
|
3891
|
-
protected readonly srOnly: string;
|
|
3892
|
-
private queryTimer?;
|
|
3893
|
-
protected readonly visibleSuggestions: _angular_core.Signal<UniTagSuggestion[]>;
|
|
3894
|
-
/** Shared combobox bookkeeping — identical contract to uni-search-input. */
|
|
3895
|
-
protected readonly list: _uni_design_system_uni_angular.ListboxNavigation;
|
|
3896
|
-
protected readonly showError: _angular_core.Signal<boolean>;
|
|
3897
|
-
protected readonly separatorKeys: _angular_core.Signal<string[]>;
|
|
3898
|
-
protected readonly describedBy: _angular_core.Signal<string>;
|
|
3899
|
-
protected labelOf(item: UniTagItem | UniTagSuggestion): string;
|
|
3900
|
-
/** Split pasted text into candidate tokens. */
|
|
3901
|
-
private parseRaw;
|
|
3902
|
-
private isValid;
|
|
3903
|
-
/**
|
|
3904
|
-
* Turn typed text into a chip. Invalid entries are kept and flagged rather
|
|
3905
|
-
* than dropped; duplicates and over-max are refused with a reason.
|
|
3906
|
-
*/
|
|
3907
|
-
protected commit(raw: string): boolean;
|
|
3908
|
-
private reject;
|
|
3909
|
-
protected removeAt(index: number, focus?: 'left' | 'right' | 'input'): void;
|
|
3910
|
-
private countNoun;
|
|
3911
|
-
protected focusInput(): void;
|
|
3912
|
-
private focusChip;
|
|
3913
|
-
protected onInputKeydown(event: KeyboardEvent): void;
|
|
3914
|
-
protected onInput(value: string): void;
|
|
3915
|
-
protected onPaste(event: ClipboardEvent): void;
|
|
3916
|
-
protected onBlur(): void;
|
|
3917
|
-
protected onFocusOut(event: FocusEvent): void;
|
|
3918
|
-
protected onChipKeydown(event: KeyboardEvent, index: number): void;
|
|
3919
|
-
/** Lift a chip back into the input for correction. */
|
|
3920
|
-
protected editChip(index: number): void;
|
|
3921
|
-
protected selectSuggestion(suggestion: UniTagSuggestion): void;
|
|
3922
|
-
private commitDraft;
|
|
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. */
|
|
4096
|
+
opticalSize: _angular_core.InputSignal<number>;
|
|
3927
4097
|
protected readonly className: _angular_core.Signal<string>;
|
|
3928
|
-
|
|
3929
|
-
|
|
3930
|
-
|
|
3931
|
-
|
|
3932
|
-
|
|
3933
|
-
|
|
4098
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniSymbolComponent, never>;
|
|
4099
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniSymbolComponent, "uni-symbol", never, { "name": { "alias": "name"; "required": true; "isSignal": true; }; "fill": { "alias": "fill"; "required": false; "isSignal": true; }; "weight": { "alias": "weight"; "required": false; "isSignal": true; }; "grade": { "alias": "grade"; "required": false; "isSignal": true; }; "opticalSize": { "alias": "opticalSize"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
4100
|
+
}
|
|
4101
|
+
|
|
4102
|
+
/** Theme options for the `tag` component entry. */
|
|
4103
|
+
interface UniTagOptions {
|
|
4104
|
+
borderRadius?: Radius;
|
|
4105
|
+
typeface?: Typeface;
|
|
4106
|
+
/** Space between the lead element, label and remove button. */
|
|
4107
|
+
gap?: NullableSize;
|
|
4108
|
+
/** Icon primitive for the remove affordance. */
|
|
4109
|
+
removeIcon?: IconName;
|
|
4110
|
+
/** Icon primitive shown in the lead slot when the chip is selected. */
|
|
4111
|
+
selectedIcon?: IconName;
|
|
3934
4112
|
}
|
|
4113
|
+
/** The value a tag echoes back on `removed` / `activated`. */
|
|
4114
|
+
type UniTagValue = string | number | undefined;
|
|
3935
4115
|
|
|
3936
4116
|
/**
|
|
3937
|
-
*
|
|
3938
|
-
*
|
|
3939
|
-
*
|
|
3940
|
-
*
|
|
3941
|
-
*
|
|
3942
|
-
*
|
|
4117
|
+
* Compact chip for categories, states, filters and tokens.
|
|
4118
|
+
*
|
|
4119
|
+
* Two orthogonal style axes: `variant` picks the colour role and `tone` picks
|
|
4120
|
+
* the archetype (soft / solid / outline). Both live in the theme's `tag` entry,
|
|
4121
|
+
* so a theme restyles every chip in the app without touching markup.
|
|
4122
|
+
*
|
|
4123
|
+
* Structurally a chip is **body + trailing action as siblings**, never nested
|
|
4124
|
+
* buttons: an interactive chip whose body is a `<button>` cannot contain the
|
|
4125
|
+
* remove `<button>` (invalid HTML, and the inner control becomes unreachable
|
|
4126
|
+
* for keyboard users). Both stay independently operable.
|
|
3943
4127
|
*/
|
|
3944
|
-
declare class
|
|
3945
|
-
|
|
3946
|
-
|
|
3947
|
-
|
|
3948
|
-
|
|
3949
|
-
/**
|
|
3950
|
-
|
|
3951
|
-
|
|
3952
|
-
|
|
3953
|
-
|
|
3954
|
-
|
|
3955
|
-
|
|
3956
|
-
|
|
3957
|
-
|
|
3958
|
-
|
|
3959
|
-
|
|
3960
|
-
|
|
4128
|
+
declare class UniTagComponent extends BaseComponent<UniTagOptions> {
|
|
4129
|
+
size: _angular_core.InputSignal<Size>;
|
|
4130
|
+
tone: _angular_core.InputSignal<TagTone>;
|
|
4131
|
+
label: _angular_core.InputSignal<string>;
|
|
4132
|
+
value: _angular_core.InputSignal<string | number>;
|
|
4133
|
+
/** Truncation budget, e.g. `'14ch'`. A number is treated as px. */
|
|
4134
|
+
maxWidth: _angular_core.InputSignal<string | number>;
|
|
4135
|
+
avatarSrc: _angular_core.InputSignal<string>;
|
|
4136
|
+
/** Initials fallback when `avatarSrc` is absent or fails to load. */
|
|
4137
|
+
avatarName: _angular_core.InputSignal<string>;
|
|
4138
|
+
/** Theme icon primitive — the preferred glyph path. */
|
|
4139
|
+
iconName: _angular_core.InputSignal<IconName>;
|
|
4140
|
+
/** Material Symbols ligature, for glyphs the theme's icon set doesn't carry. */
|
|
4141
|
+
symbolName: _angular_core.InputSignal<string>;
|
|
4142
|
+
/** Status dot in the current colour. */
|
|
4143
|
+
dot: _angular_core.InputSignal<boolean>;
|
|
4144
|
+
removable: _angular_core.InputSignal<boolean>;
|
|
4145
|
+
interactive: _angular_core.InputSignal<boolean>;
|
|
4146
|
+
/**
|
|
4147
|
+
* Toggle state. Left undefined the chip carries no `aria-pressed` at all —
|
|
4148
|
+
* an interactive chip is not always a toggle (inside a tag input it is
|
|
4149
|
+
* focusable so it can be removed), and announcing "not pressed" on a
|
|
4150
|
+
* recipient chip is worse than announcing nothing.
|
|
4151
|
+
*/
|
|
4152
|
+
selected: _angular_core.InputSignal<boolean>;
|
|
4153
|
+
invalid: _angular_core.InputSignal<boolean>;
|
|
4154
|
+
disabled: _angular_core.InputSignal<boolean>;
|
|
4155
|
+
/** Accessible-name override for the remove button. */
|
|
4156
|
+
removeLabel: _angular_core.InputSignal<string>;
|
|
4157
|
+
/**
|
|
4158
|
+
* Tab position of the chip's controls. A composite that owns its own
|
|
4159
|
+
* roving focus — `uni-tag-input`, where the whole field is one tab stop —
|
|
4160
|
+
* passes `-1` so Tab does not walk through every chip to reach the next
|
|
4161
|
+
* control.
|
|
4162
|
+
*/
|
|
4163
|
+
controlTabIndex: _angular_core.InputSignal<number>;
|
|
4164
|
+
removed: _angular_core.OutputEmitterRef<UniTagValue>;
|
|
4165
|
+
activated: _angular_core.OutputEmitterRef<UniTagValue>;
|
|
4166
|
+
/** A disabled chip wears the theme's `disabled` role, whatever its variant. */
|
|
4167
|
+
protected readonly resolvedVariant: _angular_core.Signal<_uni_design_system_uni_core.Variant>;
|
|
4168
|
+
protected readonly themeStyle: _angular_core.Signal<{
|
|
4169
|
+
[x: string]: string | number | _uni_design_system_uni_core.StyleExpression;
|
|
4170
|
+
}>;
|
|
4171
|
+
/** Lead elements derive from the chip height, so no second size token. */
|
|
4172
|
+
protected readonly leadSize: _angular_core.Signal<number>;
|
|
4173
|
+
/** Remove glyph, proportional to the chip rather than to the icon-button. */
|
|
4174
|
+
protected readonly removeGlyphSize: _angular_core.Signal<number>;
|
|
4175
|
+
protected readonly initials: _angular_core.Signal<string>;
|
|
4176
|
+
protected readonly hostClass: _angular_core.Signal<string>;
|
|
4177
|
+
/** Truncating label; `title` exposes the full text when a budget is set. */
|
|
4178
|
+
protected readonly labelClass: string;
|
|
4179
|
+
protected readonly bodyClass: _angular_core.Signal<string>;
|
|
4180
|
+
protected readonly leadClass: _angular_core.Signal<string>;
|
|
4181
|
+
protected readonly dotClass: _angular_core.Signal<string>;
|
|
4182
|
+
protected remove(): void;
|
|
4183
|
+
protected activate(): void;
|
|
4184
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniTagComponent, never>;
|
|
4185
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniTagComponent, "uni-tag", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "tone": { "alias": "tone"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "avatarSrc": { "alias": "avatarSrc"; "required": false; "isSignal": true; }; "avatarName": { "alias": "avatarName"; "required": false; "isSignal": true; }; "iconName": { "alias": "iconName"; "required": false; "isSignal": true; }; "symbolName": { "alias": "symbolName"; "required": false; "isSignal": true; }; "dot": { "alias": "dot"; "required": false; "isSignal": true; }; "removable": { "alias": "removable"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "removeLabel": { "alias": "removeLabel"; "required": false; "isSignal": true; }; "controlTabIndex": { "alias": "controlTabIndex"; "required": false; "isSignal": true; }; }, { "removed": "removed"; "activated": "activated"; }, never, ["[tag-lead]", "*"], true, never>;
|
|
3961
4186
|
}
|
|
3962
4187
|
|
|
3963
4188
|
interface Preset {
|
|
@@ -4059,151 +4284,6 @@ declare class UniThemeSwitchComponent {
|
|
|
4059
4284
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniThemeSwitchComponent, "uni-theme-switch", never, { "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "themeChanged": "themeChanged"; }, never, never, true, never>;
|
|
4060
4285
|
}
|
|
4061
4286
|
|
|
4062
|
-
/** Why typed text did not become a time. The raw text stays in the field. */
|
|
4063
|
-
interface UniTimeInputRejection {
|
|
4064
|
-
raw: string;
|
|
4065
|
-
reason: 'unparseable' | 'out-of-range' | 'unavailable';
|
|
4066
|
-
}
|
|
4067
|
-
/**
|
|
4068
|
-
* Theme options for the `timeInput` entry. Field chrome is not duplicated
|
|
4069
|
-
* here — it comes from `input` via uni-input-box; the list trio matches
|
|
4070
|
-
* tagInput/searchInput.
|
|
4071
|
-
*/
|
|
4072
|
-
interface UniTimeInputOptions {
|
|
4073
|
-
toggleSymbol?: string;
|
|
4074
|
-
listColor?: ContainerColorToken;
|
|
4075
|
-
listShadow?: Shadow;
|
|
4076
|
-
listBorderRadius?: Radius;
|
|
4077
|
-
/** Active/hover option fill; the on-color pair is derived. Must contrast
|
|
4078
|
-
with `listColor` or keyboard navigation turns invisible. */
|
|
4079
|
-
activeColor?: ContainerColorToken;
|
|
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;
|
|
4083
|
-
}
|
|
4084
|
-
|
|
4085
|
-
/**
|
|
4086
|
-
* Time field: a combobox over time options — the same listbox contract as
|
|
4087
|
-
* uni-search-input and uni-tag-input. Type `3p`, `930` or `15:00`, or pick
|
|
4088
|
-
* `3:00 PM` from the list; the form always gets 24-hour `'HH:mm'` (`hour12`
|
|
4089
|
-
* affects display only). The list is assistive, not exhaustive: any
|
|
4090
|
-
* parseable time commits, unless `slots` pins the choices (a slot picker) —
|
|
4091
|
-
* then a typed time must match one. Unreadable or unavailable text stays in
|
|
4092
|
-
* the field, flagged, with a `rejected` event.
|
|
4093
|
-
*/
|
|
4094
|
-
declare class UniTimeInputComponent extends BaseComponent<UniTimeInputOptions> implements FormValueControl<UniTime | undefined> {
|
|
4095
|
-
readonly value: _angular_core.ModelSignal<string>;
|
|
4096
|
-
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
4097
|
-
readonly touched: _angular_core.ModelSignal<boolean>;
|
|
4098
|
-
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
4099
|
-
readonly dirty: _angular_core.InputSignal<boolean>;
|
|
4100
|
-
readonly required: _angular_core.InputSignal<boolean>;
|
|
4101
|
-
readonly ariaDescribedBy: _angular_core.InputSignal<string>;
|
|
4102
|
-
/** Accessible name for the field, e.g. "Start time". */
|
|
4103
|
-
label: _angular_core.InputSignal<string>;
|
|
4104
|
-
placeholder: _angular_core.InputSignal<string>;
|
|
4105
|
-
/** Generated list granularity, in minutes. */
|
|
4106
|
-
minuteStep: _angular_core.InputSignal<number>;
|
|
4107
|
-
/** Earliest allowed time (inclusive), `'09:00'`. */
|
|
4108
|
-
minTime: _angular_core.InputSignal<string>;
|
|
4109
|
-
/** Latest allowed time (inclusive), `'17:00'`. */
|
|
4110
|
-
maxTime: _angular_core.InputSignal<string>;
|
|
4111
|
-
/** Exact allowed times (scheduling). When set, typed entry must match one. */
|
|
4112
|
-
slots: _angular_core.InputSignal<string[]>;
|
|
4113
|
-
/** 12-hour display; defaults from the locale. The value stays 24-hour. */
|
|
4114
|
-
hour12: _angular_core.InputSignal<boolean>;
|
|
4115
|
-
/** BCP 47 tag for the display format; defaults to the document language. */
|
|
4116
|
-
locale: _angular_core.InputSignal<string>;
|
|
4117
|
-
commitOnBlur: _angular_core.InputSignal<boolean>;
|
|
4118
|
-
/** Renders without its own input-box chrome, for composers like uni-date-time-input. */
|
|
4119
|
-
embedded: _angular_core.InputSignal<boolean>;
|
|
4120
|
-
/** A typed commit was refused; the raw text stays in the field. */
|
|
4121
|
-
rejected: _angular_core.OutputEmitterRef<UniTimeInputRejection>;
|
|
4122
|
-
private readonly host;
|
|
4123
|
-
private readonly inputRef;
|
|
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();
|
|
4130
|
-
protected readonly srOnly: string;
|
|
4131
|
-
/** A refused commit — styles the field and sets aria-invalid until edited. */
|
|
4132
|
-
protected readonly draftInvalid: _angular_core.WritableSignal<boolean>;
|
|
4133
|
-
/** Commits, clears and refusals are otherwise silent to a screen reader. */
|
|
4134
|
-
protected readonly announcer: _uni_design_system_uni_angular.Announcer;
|
|
4135
|
-
protected readonly resolvedLocale: _angular_core.Signal<string>;
|
|
4136
|
-
protected readonly resolvedHour12: _angular_core.Signal<boolean>;
|
|
4137
|
-
/** The listed times: pinned `slots` verbatim, else the generated step grid. */
|
|
4138
|
-
protected readonly options: _angular_core.Signal<string[]>;
|
|
4139
|
-
protected readonly optionLabels: _angular_core.Signal<string[]>;
|
|
4140
|
-
/** Shared combobox bookkeeping — identical contract to uni-search-input. */
|
|
4141
|
-
protected readonly list: _uni_design_system_uni_angular.ListboxNavigation;
|
|
4142
|
-
protected readonly displayText: _angular_core.Signal<string>;
|
|
4143
|
-
protected readonly resolvedPlaceholder: _angular_core.Signal<string>;
|
|
4144
|
-
protected readonly showError: _angular_core.Signal<boolean>;
|
|
4145
|
-
protected formatValue(time: UniTime): string;
|
|
4146
|
-
protected setValue(time: UniTime | undefined, silent?: boolean): void;
|
|
4147
|
-
private refuse;
|
|
4148
|
-
protected commit(raw: string): boolean;
|
|
4149
|
-
/** Step a committed value ±minuteStep (±1 slot when pinned), clamped. */
|
|
4150
|
-
private stepValue;
|
|
4151
|
-
protected onInputKeydown(event: KeyboardEvent): void;
|
|
4152
|
-
protected onInput(): void;
|
|
4153
|
-
protected onToggle(): void;
|
|
4154
|
-
protected selectOption(time: UniTime): void;
|
|
4155
|
-
protected onFocusOut(event: FocusEvent): void;
|
|
4156
|
-
private openList;
|
|
4157
|
-
private scrollToActive;
|
|
4158
|
-
private scrollToIndex;
|
|
4159
|
-
private setFieldText;
|
|
4160
|
-
protected readonly className: _angular_core.Signal<string>;
|
|
4161
|
-
protected readonly rowClass: _angular_core.Signal<string>;
|
|
4162
|
-
protected readonly inputClass: _angular_core.Signal<string>;
|
|
4163
|
-
protected readonly toggleWrapClass: _angular_core.Signal<string>;
|
|
4164
|
-
/** Embedded mode: the composer owns the box; keep only the flex row. */
|
|
4165
|
-
protected readonly embeddedClass: _angular_core.Signal<string>;
|
|
4166
|
-
protected readonly listClass: _angular_core.Signal<string>;
|
|
4167
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniTimeInputComponent, never>;
|
|
4168
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniTimeInputComponent, "uni-time-input, TimeInput", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "dirty": { "alias": "dirty"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "ariaDescribedBy": { "alias": "ariaDescribedBy"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "minuteStep": { "alias": "minuteStep"; "required": false; "isSignal": true; }; "minTime": { "alias": "minTime"; "required": false; "isSignal": true; }; "maxTime": { "alias": "maxTime"; "required": false; "isSignal": true; }; "slots": { "alias": "slots"; "required": false; "isSignal": true; }; "hour12": { "alias": "hour12"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "commitOnBlur": { "alias": "commitOnBlur"; "required": false; "isSignal": true; }; "embedded": { "alias": "embedded"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touched": "touchedChange"; "rejected": "rejected"; }, never, never, true, never>;
|
|
4169
|
-
}
|
|
4170
|
-
|
|
4171
|
-
interface UniToggleOptions {
|
|
4172
|
-
/**
|
|
4173
|
-
* The size of the toggle switch
|
|
4174
|
-
*/
|
|
4175
|
-
size?: number;
|
|
4176
|
-
/** Off-state track color token. */
|
|
4177
|
-
trackColor?: ColorKey;
|
|
4178
|
-
/** Knob color token. */
|
|
4179
|
-
knobColor?: ColorKey;
|
|
4180
|
-
}
|
|
4181
|
-
|
|
4182
|
-
declare class UniToggleComponent extends BaseComponent<UniToggleOptions> implements FormCheckboxControl {
|
|
4183
|
-
readonly checked: _angular_core.ModelSignal<boolean>;
|
|
4184
|
-
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
4185
|
-
readonly touched: _angular_core.ModelSignal<boolean>;
|
|
4186
|
-
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
4187
|
-
readonly dirty: _angular_core.InputSignal<boolean>;
|
|
4188
|
-
/** Synced from required() validators by the Signal Forms [field] directive. */
|
|
4189
|
-
readonly required: _angular_core.InputSignal<boolean>;
|
|
4190
|
-
/**
|
|
4191
|
-
* Id(s) of external element(s) describing this control — typically your
|
|
4192
|
-
* app-rendered error message — exposed as aria-describedby.
|
|
4193
|
-
*/
|
|
4194
|
-
readonly ariaDescribedBy: _angular_core.InputSignal<string>;
|
|
4195
|
-
readonly label: _angular_core.InputSignal<string>;
|
|
4196
|
-
protected readonly showError: _angular_core.Signal<boolean>;
|
|
4197
|
-
markAsTouched(): void;
|
|
4198
|
-
handleChange(event: Event): void;
|
|
4199
|
-
private readonly metrics;
|
|
4200
|
-
protected readonly toggleLabel: _angular_core.Signal<string>;
|
|
4201
|
-
protected readonly toggleInput: _angular_core.Signal<string>;
|
|
4202
|
-
getThemeColor(token: ColorToken): string;
|
|
4203
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniToggleComponent, never>;
|
|
4204
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniToggleComponent, "uni-toggle", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "dirty": { "alias": "dirty"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "ariaDescribedBy": { "alias": "ariaDescribedBy"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "touched": "touchedChange"; }, never, never, true, never>;
|
|
4205
|
-
}
|
|
4206
|
-
|
|
4207
4287
|
interface UniTooltipOptions {
|
|
4208
4288
|
color?: ContainerColorToken;
|
|
4209
4289
|
border?: Border;
|
|
@@ -4232,8 +4312,6 @@ declare class UniTooltipComponent extends BaseComponent<UniTooltipOptions> {
|
|
|
4232
4312
|
label: _angular_core.InputSignal<string>;
|
|
4233
4313
|
placement: _angular_core.InputSignal<Placement>;
|
|
4234
4314
|
inlineText: _angular_core.InputSignal<boolean>;
|
|
4235
|
-
/** @deprecated The tooltip renders in the native top layer; ignored. */
|
|
4236
|
-
appendToBody: _angular_core.InputSignal<boolean>;
|
|
4237
4315
|
private tipRef;
|
|
4238
4316
|
constructor();
|
|
4239
4317
|
onFocusIn(event: FocusEvent): void;
|
|
@@ -4258,7 +4336,7 @@ declare class UniTooltipComponent extends BaseComponent<UniTooltipOptions> {
|
|
|
4258
4336
|
protected readonly tooltipClassName: _angular_core.Signal<string>;
|
|
4259
4337
|
protected readonly arrowClassName: _angular_core.Signal<string>;
|
|
4260
4338
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniTooltipComponent, never>;
|
|
4261
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniTooltipComponent, "uni-tooltip", never, { "hoverDelay": { "alias": "hoverDelay"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "inlineText": { "alias": "inlineText"; "required": false; "isSignal": true; };
|
|
4339
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniTooltipComponent, "uni-tooltip", never, { "hoverDelay": { "alias": "hoverDelay"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "inlineText": { "alias": "inlineText"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
4262
4340
|
}
|
|
4263
4341
|
|
|
4264
4342
|
/**
|
|
@@ -4368,14 +4446,15 @@ declare class BodyRenderDirective implements OnInit {
|
|
|
4368
4446
|
}
|
|
4369
4447
|
|
|
4370
4448
|
declare class DragAndDropDirective {
|
|
4371
|
-
|
|
4449
|
+
/** The dropped files. */
|
|
4450
|
+
fileDropped: _angular_core.OutputEmitterRef<FileList>;
|
|
4372
4451
|
protected workspaceOpacity: _angular_core.WritableSignal<string>;
|
|
4373
4452
|
onDragOver(event: DragEvent): void;
|
|
4374
4453
|
onDragLeave(event: DragEvent): void;
|
|
4375
4454
|
onDrop(event: DragEvent): void;
|
|
4376
4455
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DragAndDropDirective, never>;
|
|
4377
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<DragAndDropDirective, "[uni-drag-n-drop], [dragAndDrop]", never, {}, { "
|
|
4456
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<DragAndDropDirective, "[uni-drag-n-drop], [dragAndDrop]", never, {}, { "fileDropped": "fileDropped"; }, never, never, true, never>;
|
|
4378
4457
|
}
|
|
4379
4458
|
|
|
4380
|
-
export { BodyRenderDirective, ConfirmationDialogComponent, DragAndDropDirective, FOCUSABLE_SELECTOR, ListboxNavigation, LocalStorageService, NotificationService, NotificationsComponent, RippleDirective, TRANSFORM_ORIGINS, ThemeService, UNI_THEMES, UniAlertComponent, UniAppBarComponent, UniAvatarComponent, UniAvatarGroupComponent, UniBackgroundComponent, UniBadgeComponent, UniBaseDatasource,
|
|
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 };
|
|
4459
|
+
export { BodyRenderDirective, ConfirmationDialogComponent, DragAndDropDirective, FOCUSABLE_SELECTOR, ListboxNavigation, LocalStorageService, NotificationService, NotificationsComponent, RippleDirective, TRANSFORM_ORIGINS, ThemeService, UNI_FORMS, UNI_LAYOUT, UNI_THEMES, UniAlertComponent, UniAppBarComponent, UniAvatarComponent, UniAvatarGroupComponent, UniBackgroundComponent, UniBadgeComponent, UniBaseDatasource, UniBoxDirective, UniBreadcrumbComponent, UniButtonComponent, UniButtonGroupComponent, UniCalendarComponent, UniCalloutComponent, UniCardComponent, UniCardContentComponent, UniCardHeaderComponent, UniCenterDirective, UniCheckboxComponent, UniComboboxComponent, UniDataSearchComponent, UniDataTableComponent, UniDateInputComponent, UniDateTimeInputComponent, UniDebounceInputComponent, UniDialogButtonsComponent, UniDialogComponent, UniDialogHeaderComponent, UniDividerComponent, UniDrawerComponent, UniDropdownComponent, UniExpandAreaComponent, UniExpandComponent, UniExpandToggleComponent, UniFileDropZoneComponent, UniGridAreaDirective, UniGridDirective, UniIconButtonComponent, UniIconComponent, UniInputBoxComponent, UniInputComponent, UniJsonViewComponent, UniMenuComponent, UniMultiSelectComponent, UniMultiSelectDropdownComponent, UniNotificationBadgeComponent, UniPaginatorComponent, UniPopoverComponent, UniProgressBarComponent, UniProgressGaugeComponent, UniRadioComponent, UniRecordDatasource, UniRowDirective, UniScrollAreaComponent, UniSearchInputComponent, UniSelectComponent, UniServerSideDatasource, UniSkeletonComponent, UniSliderComponent, UniSnackbarComponent, UniSortHeaderComponent, UniStackDirective, UniStatComponent, UniSymbolComponent, UniTabComponent, UniTabsComponent, UniTagComponent, UniTagInputComponent, UniTextDirective, UniTextareaComponent, UniThemeBuilderComponent, UniThemeSwitchComponent, UniTimeInputComponent, UniToggleComponent, UniTooltipComponent, UniTourComponent, UniWrapDirective, 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 };
|
|
4460
|
+
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, UniInputMode, UniInputType, 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 };
|