@radix-ng/primitives 1.0.6 → 1.0.8
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/aspect-ratio/README.md +1 -1
- package/fesm2022/radix-ng-primitives-accordion.mjs +6 -1
- package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-aspect-ratio.mjs +9 -34
- package/fesm2022/radix-ng-primitives-aspect-ratio.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-autocomplete.mjs +43 -9
- package/fesm2022/radix-ng-primitives-autocomplete.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-avatar.mjs +69 -18
- package/fesm2022/radix-ng-primitives-avatar.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-checkbox.mjs +93 -16
- package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-collapsible.mjs +4 -3
- package/fesm2022/radix-ng-primitives-collapsible.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-combobox.mjs +43 -9
- package/fesm2022/radix-ng-primitives-combobox.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-core.mjs +208 -2
- package/fesm2022/radix-ng-primitives-core.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-date-field.mjs +50 -9
- package/fesm2022/radix-ng-primitives-date-field.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-editable.mjs +31 -5
- package/fesm2022/radix-ng-primitives-editable.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-field.mjs +276 -58
- package/fesm2022/radix-ng-primitives-field.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-form.mjs +111 -27
- package/fesm2022/radix-ng-primitives-form.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-input.mjs +16 -6
- package/fesm2022/radix-ng-primitives-input.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-label.mjs +5 -4
- package/fesm2022/radix-ng-primitives-label.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-number-field.mjs +39 -10
- package/fesm2022/radix-ng-primitives-number-field.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-progress.mjs +37 -22
- package/fesm2022/radix-ng-primitives-progress.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-radio.mjs +18 -9
- package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-scroll-area.mjs +4 -4
- package/fesm2022/radix-ng-primitives-scroll-area.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-select.mjs +26 -8
- package/fesm2022/radix-ng-primitives-select.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-separator.mjs +7 -13
- package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-signal-forms.mjs +184 -0
- package/fesm2022/radix-ng-primitives-signal-forms.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-slider.mjs +25 -10
- package/fesm2022/radix-ng-primitives-slider.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-switch.mjs +32 -8
- package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-tabs.mjs +4 -4
- package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-time-field.mjs +49 -9
- package/fesm2022/radix-ng-primitives-time-field.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-toggle-group.mjs +33 -16
- package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-toggle.mjs +24 -29
- package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-toolbar.mjs +15 -2
- package/fesm2022/radix-ng-primitives-toolbar.mjs.map +1 -1
- package/package.json +11 -1
- package/types/radix-ng-primitives-accordion.d.ts +1 -0
- package/types/radix-ng-primitives-aspect-ratio.d.ts +10 -23
- package/types/radix-ng-primitives-autocomplete.d.ts +21 -2
- package/types/radix-ng-primitives-avatar.d.ts +51 -25
- package/types/radix-ng-primitives-checkbox.d.ts +78 -101
- package/types/radix-ng-primitives-combobox.d.ts +51 -2
- package/types/radix-ng-primitives-core.d.ts +206 -3
- package/types/radix-ng-primitives-date-field.d.ts +27 -2
- package/types/radix-ng-primitives-editable.d.ts +15 -2
- package/types/radix-ng-primitives-field.d.ts +165 -236
- package/types/radix-ng-primitives-form.d.ts +122 -37
- package/types/radix-ng-primitives-input.d.ts +8 -1
- package/types/radix-ng-primitives-label.d.ts +3 -2
- package/types/radix-ng-primitives-number-field.d.ts +15 -4
- package/types/radix-ng-primitives-progress.d.ts +59 -121
- package/types/radix-ng-primitives-radio.d.ts +7 -3
- package/types/radix-ng-primitives-select.d.ts +11 -3
- package/types/radix-ng-primitives-separator.d.ts +0 -7
- package/types/radix-ng-primitives-signal-forms.d.ts +97 -0
- package/types/radix-ng-primitives-slider.d.ts +9 -7
- package/types/radix-ng-primitives-switch.d.ts +15 -2
- package/types/radix-ng-primitives-time-field.d.ts +26 -2
- package/types/radix-ng-primitives-toggle-group.d.ts +13 -7
- package/types/radix-ng-primitives-toggle.d.ts +8 -8
- package/types/radix-ng-primitives-toolbar.d.ts +2 -0
|
@@ -1,12 +1,16 @@
|
|
|
1
|
-
import * as _radix_ng_primitives_core from '@radix-ng/primitives/core';
|
|
2
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { Signal } from '@angular/core';
|
|
3
|
+
import * as _radix_ng_primitives_core from '@radix-ng/primitives/core';
|
|
4
|
+
import { RdxValidationMode } from '@radix-ng/primitives/core';
|
|
3
5
|
|
|
4
6
|
/** A normalized external-error map: each field name maps to its message(s) in display order. */
|
|
5
7
|
type RdxFormErrors = Record<string, string | string[]>;
|
|
6
|
-
/** Payload of {@link RdxFormRoot.onFormSubmit}. */
|
|
8
|
+
/** Payload of {@link RdxFormRoot.onFormSubmit}. Mirrors Base UI's `(values, eventDetails)` shape. */
|
|
7
9
|
interface RdxFormSubmitEvent {
|
|
8
10
|
/** The form's values serialized from `FormData` (repeated names collapse into arrays). */
|
|
9
11
|
values: Record<string, FormDataEntryValue | FormDataEntryValue[]>;
|
|
12
|
+
/** Why the submit happened (Base UI `SubmitEventDetails.reason`). Always `'none'` for a user submit. */
|
|
13
|
+
reason: 'none';
|
|
10
14
|
/** The original native submit event (already `preventDefault`-ed). */
|
|
11
15
|
event: SubmitEvent;
|
|
12
16
|
}
|
|
@@ -17,8 +21,12 @@ interface RdxFormSubmitEvent {
|
|
|
17
21
|
interface RdxFormFieldRegistration {
|
|
18
22
|
/** The field's `name` (key external errors match against), or `undefined`. */
|
|
19
23
|
name: () => string | undefined;
|
|
20
|
-
/** The field's
|
|
24
|
+
/** The field's **actual** invalid state (ungated, includes external errors) — drives the submit guard
|
|
25
|
+
* and `anyInvalid`. */
|
|
21
26
|
invalid: () => boolean;
|
|
27
|
+
/** The field's **displayed** tri-state validity, gated by its `validationMode` — drives the form's
|
|
28
|
+
* presentation `data-invalid` so it stays neutral on load while its fields are. `null` = neutral. */
|
|
29
|
+
displayValid?: () => boolean | null;
|
|
22
30
|
/** Whether the field is dirty. */
|
|
23
31
|
dirty: () => boolean;
|
|
24
32
|
/** Whether the field is touched. */
|
|
@@ -29,41 +37,66 @@ interface RdxFormFieldRegistration {
|
|
|
29
37
|
resetState: () => void;
|
|
30
38
|
}
|
|
31
39
|
/**
|
|
32
|
-
* External owner of form-level state (e.g.
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
40
|
+
* External owner of form-level state (e.g. the Signal Forms `[rdxSignalForm]` adapter). Mirrors Field's
|
|
41
|
+
* `RdxFieldState` seam one level up. Each member is optional. The aggregate accessors (`dirty`/`touched`/
|
|
42
|
+
* `submitting`) take over the corresponding form-level state; `invalid` is **merged** with the field
|
|
43
|
+
* registry (so a real registered-field error still counts); the per-name accessors route a field's client
|
|
44
|
+
* state by `name`. Kept as framework-free `() =>` accessors (no `@angular/forms/signals` dependency). See
|
|
45
|
+
* ADR 0004.
|
|
36
46
|
*/
|
|
37
47
|
interface RdxFormState {
|
|
38
48
|
invalid?: () => boolean;
|
|
39
49
|
dirty?: () => boolean;
|
|
40
50
|
touched?: () => boolean;
|
|
41
51
|
submitting?: () => boolean;
|
|
42
|
-
/**
|
|
52
|
+
/**
|
|
53
|
+
* Per-name **client** validation errors (e.g. `rdxSignalForm`'s Signal Forms name-routing). Surfaced
|
|
54
|
+
* through the Form's `clientErrorsFor` channel and gated by `validationMode` like any client validity.
|
|
55
|
+
* Independent of the Form's `errors` input (server errors), which stays eager.
|
|
56
|
+
*/
|
|
43
57
|
errorsFor?: (name: string) => string[];
|
|
58
|
+
/**
|
|
59
|
+
* Per-name `touched` / `dirty` for a name-routed field. Lets a `rdxFieldRoot` that has only a bare
|
|
60
|
+
* `[formField]` control (no `rdxSignalField` / `rdxFieldControl`) still reveal its error on blur under
|
|
61
|
+
* `validationMode="onBlur"`/`"onChange"` — the field reads its interaction state from here.
|
|
62
|
+
*/
|
|
63
|
+
touchedFor?: (name: string) => boolean;
|
|
64
|
+
dirtyFor?: (name: string) => boolean;
|
|
44
65
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
setStateProvider: (provider: RdxFormState | null) => RdxFormState | null;
|
|
58
|
-
hasStateProvider: _angular_core.Signal<boolean>;
|
|
59
|
-
}>;
|
|
60
|
-
declare const provideFormRootContext: (useFactory: () => {
|
|
61
|
-
errorsFor: (name: string | undefined) => string[];
|
|
66
|
+
interface RdxFormRootContext {
|
|
67
|
+
/**
|
|
68
|
+
* **Client** validation errors routed by a form-level provider (e.g. `rdxSignalForm`'s Signal Forms
|
|
69
|
+
* name-routing). These are gated by `validationMode` like any client validity — adding `rdxSignalForm`
|
|
70
|
+
* must not change error-display timing.
|
|
71
|
+
*/
|
|
72
|
+
clientErrorsFor: (name: string | undefined) => string[];
|
|
73
|
+
/** **Server/external** errors from the Form's `errors` input. Shown eagerly (not gated). */
|
|
74
|
+
externalErrorsFor: (name: string | undefined) => string[];
|
|
75
|
+
/** Per-name `touched` / `dirty` from a form-level provider (`rdxSignalForm`); `false` when none. */
|
|
76
|
+
touchedFor: (name: string | undefined) => boolean;
|
|
77
|
+
dirtyFor: (name: string | undefined) => boolean;
|
|
62
78
|
notifyEdited: (name: string | undefined) => void;
|
|
79
|
+
/**
|
|
80
|
+
* Whether a submit has been attempted (set before the validity check on submit, cleared on reset).
|
|
81
|
+
* A presentation-timing seam: an adapter can reveal a field's error after a submit attempt without the
|
|
82
|
+
* field having been touched, so the consumer never hand-rolls "mark touched on submit". Base UI's
|
|
83
|
+
* submit-attempt state, kept at the form level.
|
|
84
|
+
*/
|
|
85
|
+
submitAttempted: Signal<boolean>;
|
|
86
|
+
/** The form's default validation-display mode; a `rdxFieldRoot` may override it per field. */
|
|
87
|
+
validationMode: Signal<RdxValidationMode>;
|
|
88
|
+
/** Registers a field; returns its unregister callback. */
|
|
63
89
|
register: (field: RdxFormFieldRegistration) => () => void;
|
|
64
90
|
setStateProvider: (provider: RdxFormState | null) => RdxFormState | null;
|
|
65
|
-
|
|
66
|
-
|
|
91
|
+
/**
|
|
92
|
+
* Identity-checked teardown: roll the slot back to `previous` only if `provider` is still active,
|
|
93
|
+
* so an old adapter's destroy can't clobber a newer one (create-before-destroy on a view swap).
|
|
94
|
+
*/
|
|
95
|
+
clearStateProvider: (provider: RdxFormState | null, previous: RdxFormState | null) => void;
|
|
96
|
+
hasStateProvider: Signal<boolean>;
|
|
97
|
+
}
|
|
98
|
+
declare const injectFormRootContext: _radix_ng_primitives_core.InjectContext<RdxFormRootContext>;
|
|
99
|
+
declare const provideFormRootContext: (useFactory: () => RdxFormRootContext) => _angular_core.Provider;
|
|
67
100
|
/**
|
|
68
101
|
* The top of the forms layer cake: a single directive on the native `<form>` element that aggregates
|
|
69
102
|
* field state, maps external (server) errors onto fields by `name`, intercepts submit (values-as-object,
|
|
@@ -76,6 +109,15 @@ declare class RdxFormRoot {
|
|
|
76
109
|
private readonly form;
|
|
77
110
|
/** External/server validation errors keyed by `Field.Root` `name`. */
|
|
78
111
|
readonly errors: _angular_core.InputSignal<RdxFormErrors | null | undefined>;
|
|
112
|
+
/**
|
|
113
|
+
* When fields reveal their validity (error styling + message). The control/adapter always reports the
|
|
114
|
+
* actual state; this decides *when* the Field surfaces it. A `rdxFieldRoot` can override it per field.
|
|
115
|
+
* Server errors (`errors` above) always show regardless. Defaults to `'onBlur'`.
|
|
116
|
+
*
|
|
117
|
+
* @group Props
|
|
118
|
+
* @defaultValue 'onBlur'
|
|
119
|
+
*/
|
|
120
|
+
readonly validationMode: _angular_core.InputSignal<RdxValidationMode>;
|
|
79
121
|
/** Emits the remaining error map after a field's external error is cleared by a user edit (or reset). */
|
|
80
122
|
readonly onClearErrors: _angular_core.OutputEmitterRef<RdxFormErrors>;
|
|
81
123
|
/** Emits the serialized form values when a valid form is submitted. */
|
|
@@ -83,7 +125,7 @@ declare class RdxFormRoot {
|
|
|
83
125
|
private readonly fields;
|
|
84
126
|
private readonly stateProvider;
|
|
85
127
|
/** Whether an external adapter currently owns form-level state. */
|
|
86
|
-
readonly hasStateProvider:
|
|
128
|
+
readonly hasStateProvider: Signal<boolean>;
|
|
87
129
|
/**
|
|
88
130
|
* Names whose external error has been cleared by a user edit. Reset to empty whenever a new `errors`
|
|
89
131
|
* object reference is assigned — the server just spoke, so everything it said is live again.
|
|
@@ -91,26 +133,69 @@ declare class RdxFormRoot {
|
|
|
91
133
|
private readonly clearedNames;
|
|
92
134
|
/** The `errors` input minus cleared names, normalized to `string[]`. */
|
|
93
135
|
private readonly effectiveErrors;
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
readonly
|
|
97
|
-
readonly
|
|
98
|
-
|
|
136
|
+
/** **Actual** aggregate invalidity (eager) — drives the submit guard / focus-first-invalid and is the
|
|
137
|
+
* value to read in app logic. Merges a form-level provider with the field registry. */
|
|
138
|
+
readonly anyInvalid: Signal<boolean>;
|
|
139
|
+
readonly anyDirty: Signal<boolean>;
|
|
140
|
+
readonly anyTouched: Signal<boolean>;
|
|
141
|
+
readonly submitting: Signal<boolean>;
|
|
142
|
+
/**
|
|
143
|
+
* **Displayed** aggregate invalidity — the source for the host `data-invalid` (a presentation
|
|
144
|
+
* attribute). A field counts only once its own `validationMode` reveals it (`displayValid() === false`),
|
|
145
|
+
* so the form stays **neutral on load** while its fields are, instead of leaking the gated state.
|
|
146
|
+
* Distinct from {@link anyInvalid} (actual, eager).
|
|
147
|
+
*
|
|
148
|
+
* When **any** display-aware field is registered, those fields are the *authoritative* displayed
|
|
149
|
+
* source and win outright — a form-level provider's aggregate `invalid()` is **not** added on top
|
|
150
|
+
* (it would contradict a field that overrode its own `validationMode` to stay neutral; and the
|
|
151
|
+
* fields already reflect that provider's per-name state). The provider fallback applies only when no
|
|
152
|
+
* display-aware field carries the state, and then conservatively — under `validationMode="always"`
|
|
153
|
+
* or after a submit attempt, never from `anyTouched`.
|
|
154
|
+
*/
|
|
155
|
+
readonly anyDisplayedInvalid: Signal<boolean>;
|
|
156
|
+
/**
|
|
157
|
+
* Whether a submit has been attempted on this form, exposed to fields via the context. Set true at the
|
|
158
|
+
* very start of {@link onSubmit} (before the validity check, so a field whose `validationMode` defers
|
|
159
|
+
* display, e.g. `onBlur`, reveals its error in time to block the submit) and cleared on native reset.
|
|
160
|
+
*/
|
|
161
|
+
readonly submitAttempted: _angular_core.WritableSignal<boolean>;
|
|
162
|
+
/**
|
|
163
|
+
* Resolve a boolean aggregate. For `dirty` / `touched` a registered provider's accessor wins, else OR
|
|
164
|
+
* over the registry. For **`invalid`** the two are **merged** (`provider || registry`): a registered
|
|
165
|
+
* field's actual invalidity — e.g. a server `[errors]` entry — must still count (and block submit) even
|
|
166
|
+
* when a form-level provider (`rdxSignalForm`) reports the client model valid.
|
|
167
|
+
*/
|
|
99
168
|
private aggregate;
|
|
100
|
-
/**
|
|
101
|
-
|
|
102
|
-
/**
|
|
169
|
+
/** Client validation errors from a form-level provider (`rdxSignalForm`); `[]` when none. Gated. */
|
|
170
|
+
clientErrorsFor(name: string | undefined): string[];
|
|
171
|
+
/** Per-name `touched` from a form-level provider (`rdxSignalForm`); `false` when none. */
|
|
172
|
+
touchedFor(name: string | undefined): boolean;
|
|
173
|
+
/** Per-name `dirty` from a form-level provider (`rdxSignalForm`); `false` when none. */
|
|
174
|
+
dirtyFor(name: string | undefined): boolean;
|
|
175
|
+
/**
|
|
176
|
+
* Server/external errors from the `errors` input (eager). A separate channel from {@link clientErrorsFor}:
|
|
177
|
+
* the `errors` input always applies, even alongside a form-level client provider (`rdxSignalForm`), so
|
|
178
|
+
* adding `rdxSignalForm` never disables your server errors.
|
|
179
|
+
*/
|
|
180
|
+
externalErrorsFor(name: string | undefined): string[];
|
|
181
|
+
/** Clears a field's server error (the `errors` input) after a user edit, emitting the remaining map.
|
|
182
|
+
* Client provider errors (`rdxSignalForm`) are not affected — Signal Forms re-validates them itself. */
|
|
103
183
|
notifyEdited(name: string | undefined): void;
|
|
104
184
|
register(field: RdxFormFieldRegistration): () => void;
|
|
105
185
|
/** Register (or clear with `null`) an external owner of form-level state; returns the previous one. */
|
|
106
186
|
setStateProvider(provider: RdxFormState | null): RdxFormState | null;
|
|
187
|
+
/**
|
|
188
|
+
* Identity-checked teardown — roll back to `previous` only if `provider` is still active, so an
|
|
189
|
+
* old adapter's destroy can't clobber a newer one (create-before-destroy on a view swap).
|
|
190
|
+
*/
|
|
191
|
+
clearStateProvider(provider: RdxFormState | null, previous: RdxFormState | null): void;
|
|
107
192
|
onSubmit(event: SubmitEvent): void;
|
|
108
193
|
onReset(): void;
|
|
109
194
|
private readonly resetTimers;
|
|
110
195
|
constructor();
|
|
111
196
|
private remainingErrors;
|
|
112
197
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxFormRoot, never>;
|
|
113
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxFormRoot, "form[rdxFormRoot]", ["rdxFormRoot"], { "errors": { "alias": "errors"; "required": false; "isSignal": true; }; }, { "onClearErrors": "onClearErrors"; "onFormSubmit": "onFormSubmit"; }, never, never, true, never>;
|
|
198
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxFormRoot, "form[rdxFormRoot]", ["rdxFormRoot"], { "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "validationMode": { "alias": "validationMode"; "required": false; "isSignal": true; }; }, { "onClearErrors": "onClearErrors"; "onFormSubmit": "onFormSubmit"; }, never, never, true, never>;
|
|
114
199
|
}
|
|
115
200
|
|
|
116
201
|
declare const _importsForm: (typeof RdxFormRoot)[];
|
|
@@ -133,7 +133,14 @@ declare class RdxInputDirective implements RdxFormValueControl<RdxInputValue | u
|
|
|
133
133
|
* @group Emits
|
|
134
134
|
*/
|
|
135
135
|
readonly touch: _angular_core.OutputEmitterRef<void>;
|
|
136
|
-
|
|
136
|
+
/** The input's own binary invalidity (its `invalid` input or a non-empty `errors` list). */
|
|
137
|
+
private readonly ownInvalid;
|
|
138
|
+
/**
|
|
139
|
+
* Tri-state *displayed* validity: inside a `rdxFieldRoot` the field's gated `validState` is the single
|
|
140
|
+
* source (so a field whose `validationMode` defers display (e.g. `onBlur`) keeps the input neutral until revealed), otherwise
|
|
141
|
+
* the input's own binary invalidity. `true` valid / `false` invalid / `null` neutral.
|
|
142
|
+
*/
|
|
143
|
+
protected readonly displayValid: _angular_core.Signal<boolean | null>;
|
|
137
144
|
protected readonly disabledState: _angular_core.Signal<boolean>;
|
|
138
145
|
protected readonly requiredState: _angular_core.Signal<boolean>;
|
|
139
146
|
protected readonly filledState: _angular_core.Signal<boolean>;
|
|
@@ -6,13 +6,14 @@ import * as _angular_core from '@angular/core';
|
|
|
6
6
|
declare class RdxLabelDirective {
|
|
7
7
|
private readonly elementRef;
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
9
|
+
* The label id. Defaults to a stable generated id.
|
|
10
|
+
* @group Props
|
|
10
11
|
*/
|
|
11
12
|
readonly id: _angular_core.InputSignal<string>;
|
|
12
13
|
/**
|
|
13
14
|
* The id of the element the label is associated with.
|
|
14
15
|
* @group Props
|
|
15
|
-
* @
|
|
16
|
+
* @default undefined
|
|
16
17
|
*/
|
|
17
18
|
readonly htmlFor: _angular_core.InputSignal<string | undefined>;
|
|
18
19
|
/**
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { Signal } from '@angular/core';
|
|
3
3
|
import * as _radix_ng_primitives_core from '@radix-ng/primitives/core';
|
|
4
|
-
import { RdxFormValueControl, RdxControlValueAccessor, NumberInput, BooleanInput, RdxCancelableChangeEventDetails } from '@radix-ng/primitives/core';
|
|
4
|
+
import { RdxFormUiControlBase, RdxFormValueControl, RdxControlValueAccessor, NumberInput, BooleanInput, RdxCancelableChangeEventDetails, RdxFormUiTouchTarget } from '@radix-ng/primitives/core';
|
|
5
5
|
import * as _radix_ng_primitives_number_field from '@radix-ng/primitives/number-field';
|
|
6
6
|
import { NumberFormatter, NumberParser } from '@internationalized/number';
|
|
7
7
|
import * as i1 from '@radix-ng/primitives/portal';
|
|
@@ -47,7 +47,7 @@ interface RdxNumberFieldValueChangeEvent {
|
|
|
47
47
|
*
|
|
48
48
|
* @see https://base-ui.com/react/components/number-field
|
|
49
49
|
*/
|
|
50
|
-
declare class RdxNumberFieldRoot implements RdxFormValueControl<number | null> {
|
|
50
|
+
declare class RdxNumberFieldRoot extends RdxFormUiControlBase implements RdxFormValueControl<number | null> {
|
|
51
51
|
/** @ignore */
|
|
52
52
|
protected readonly cva: RdxControlValueAccessor<number | null>;
|
|
53
53
|
/** The id of the input element. */
|
|
@@ -138,6 +138,12 @@ declare class RdxNumberFieldRoot implements RdxFormValueControl<number | null> {
|
|
|
138
138
|
hasPendingCommit: boolean;
|
|
139
139
|
/** @ignore */
|
|
140
140
|
readonly isDisabled: _angular_core.Signal<boolean>;
|
|
141
|
+
/** @ignore */
|
|
142
|
+
readonly invalidState: _angular_core.Signal<boolean>;
|
|
143
|
+
/** @ignore */
|
|
144
|
+
readonly touchedState: _angular_core.Signal<boolean>;
|
|
145
|
+
/** @ignore */
|
|
146
|
+
readonly dirtyState: _angular_core.Signal<boolean>;
|
|
141
147
|
private readonly formatter;
|
|
142
148
|
private readonly parser;
|
|
143
149
|
/** @ignore The current numeric value (`null` when empty). */
|
|
@@ -170,8 +176,13 @@ declare class RdxNumberFieldRoot implements RdxFormValueControl<number | null> {
|
|
|
170
176
|
registerInput(el: HTMLInputElement): void;
|
|
171
177
|
/** @ignore Sets the displayed text without changing the numeric value. */
|
|
172
178
|
setInputValue(text: string): void;
|
|
173
|
-
/**
|
|
179
|
+
/**
|
|
180
|
+
* @ignore Mark the field touched — CVA for Reactive forms, plus the `touched` model + `touch`
|
|
181
|
+
* output for Signal Forms.
|
|
182
|
+
*/
|
|
174
183
|
markAsTouched(): void;
|
|
184
|
+
/** @ignore Bridge the CVA into `markAsTouched` (dual). */
|
|
185
|
+
protected formUiTouchTarget(): RdxFormUiTouchTarget;
|
|
175
186
|
/**
|
|
176
187
|
* @ignore
|
|
177
188
|
* Validates and applies a candidate value, emitting `onValueChange` when it changes.
|
|
@@ -333,7 +344,7 @@ declare abstract class RdxNumberFieldButton {
|
|
|
333
344
|
/** @ignore Disabled for display/focus purposes (own state, root disabled, or bound reached). */
|
|
334
345
|
readonly buttonDisabled: _angular_core.Signal<boolean>;
|
|
335
346
|
/** @ignore Disabled for interaction purposes (also blocked while read-only). */
|
|
336
|
-
|
|
347
|
+
readonly interactionDisabled: _angular_core.Signal<boolean>;
|
|
337
348
|
private get direction();
|
|
338
349
|
private get pressReason();
|
|
339
350
|
/** @ignore */
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Signal } from '@angular/core';
|
|
2
3
|
import * as _radix_ng_primitives_core from '@radix-ng/primitives/core';
|
|
3
4
|
import * as _radix_ng_primitives_progress from '@radix-ng/primitives/progress';
|
|
4
5
|
|
|
@@ -10,46 +11,23 @@ interface ProgressProps {
|
|
|
10
11
|
max?: number;
|
|
11
12
|
valueLabel?: ProgressValueFormatter;
|
|
12
13
|
}
|
|
13
|
-
|
|
14
|
-
labelId:
|
|
15
|
-
valueId:
|
|
16
|
-
minState:
|
|
17
|
-
maxState:
|
|
18
|
-
valueState:
|
|
19
|
-
percentageState:
|
|
20
|
-
valueLabelState:
|
|
21
|
-
progressState:
|
|
22
|
-
completeState:
|
|
23
|
-
progressingState:
|
|
24
|
-
indeterminateState:
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
minState: _angular_core.Signal<number>;
|
|
31
|
-
maxState: _angular_core.Signal<number>;
|
|
32
|
-
valueState: _angular_core.Signal<number | null>;
|
|
33
|
-
percentageState: _angular_core.Signal<number | null>;
|
|
34
|
-
valueLabelState: _angular_core.Signal<string | undefined>;
|
|
35
|
-
progressState: _angular_core.Signal<ProgressState>;
|
|
36
|
-
completeState: _angular_core.Signal<boolean>;
|
|
37
|
-
progressingState: _angular_core.Signal<boolean>;
|
|
38
|
-
indeterminateState: _angular_core.Signal<boolean>;
|
|
39
|
-
}>;
|
|
40
|
-
declare const provideProgressRootContext: (useFactory: () => {
|
|
41
|
-
labelId: _angular_core.InputSignal<string>;
|
|
42
|
-
valueId: _angular_core.InputSignal<string>;
|
|
43
|
-
minState: _angular_core.Signal<number>;
|
|
44
|
-
maxState: _angular_core.Signal<number>;
|
|
45
|
-
valueState: _angular_core.Signal<number | null>;
|
|
46
|
-
percentageState: _angular_core.Signal<number | null>;
|
|
47
|
-
valueLabelState: _angular_core.Signal<string | undefined>;
|
|
48
|
-
progressState: _angular_core.Signal<ProgressState>;
|
|
49
|
-
completeState: _angular_core.Signal<boolean>;
|
|
50
|
-
progressingState: _angular_core.Signal<boolean>;
|
|
51
|
-
indeterminateState: _angular_core.Signal<boolean>;
|
|
52
|
-
}) => _angular_core.Provider;
|
|
14
|
+
interface RdxProgressRootContext {
|
|
15
|
+
labelId: Signal<string>;
|
|
16
|
+
valueId: Signal<string>;
|
|
17
|
+
minState: Signal<number>;
|
|
18
|
+
maxState: Signal<number>;
|
|
19
|
+
valueState: Signal<number | null>;
|
|
20
|
+
percentageState: Signal<number | null>;
|
|
21
|
+
valueLabelState: Signal<string | undefined>;
|
|
22
|
+
progressState: Signal<ProgressState>;
|
|
23
|
+
completeState: Signal<boolean>;
|
|
24
|
+
progressingState: Signal<boolean>;
|
|
25
|
+
indeterminateState: Signal<boolean>;
|
|
26
|
+
/** A Label part registers its presence; returns its unregister callback. */
|
|
27
|
+
registerLabel: () => () => void;
|
|
28
|
+
}
|
|
29
|
+
declare const injectProgressRootContext: _radix_ng_primitives_core.InjectContext<RdxProgressRootContext>;
|
|
30
|
+
declare const provideProgressRootContext: (useFactory: () => RdxProgressRootContext) => i0.Provider;
|
|
53
31
|
/**
|
|
54
32
|
* Provides progress state and accessibility attributes.
|
|
55
33
|
*
|
|
@@ -62,43 +40,50 @@ declare class RdxProgressRootDirective {
|
|
|
62
40
|
* @group Props
|
|
63
41
|
* @defaultValue null
|
|
64
42
|
*/
|
|
65
|
-
readonly value:
|
|
43
|
+
readonly value: i0.InputSignalWithTransform<number | null, number | null>;
|
|
66
44
|
/**
|
|
67
45
|
* Minimum progress value.
|
|
68
46
|
*
|
|
69
47
|
* @group Props
|
|
70
48
|
* @defaultValue 0
|
|
71
49
|
*/
|
|
72
|
-
readonly min:
|
|
50
|
+
readonly min: i0.InputSignalWithTransform<number, unknown>;
|
|
73
51
|
/**
|
|
74
52
|
* Maximum progress value.
|
|
75
53
|
*
|
|
76
54
|
* @group Props
|
|
77
55
|
* @defaultValue 100
|
|
78
56
|
*/
|
|
79
|
-
readonly max:
|
|
57
|
+
readonly max: i0.InputSignalWithTransform<number, unknown>;
|
|
80
58
|
/**
|
|
81
59
|
* Formats the current value for assistive technologies and `rdxProgressValue`.
|
|
82
60
|
*
|
|
83
61
|
* @group Props
|
|
84
62
|
*/
|
|
85
|
-
readonly valueLabel:
|
|
86
|
-
readonly labelId:
|
|
87
|
-
readonly valueId:
|
|
88
|
-
readonly minState:
|
|
89
|
-
readonly maxState:
|
|
90
|
-
readonly valueState:
|
|
91
|
-
readonly percentageState:
|
|
92
|
-
readonly valueLabelState:
|
|
93
|
-
|
|
94
|
-
readonly
|
|
95
|
-
readonly
|
|
96
|
-
readonly
|
|
63
|
+
readonly valueLabel: i0.InputSignal<ProgressValueFormatter>;
|
|
64
|
+
readonly labelId: i0.InputSignal<string>;
|
|
65
|
+
readonly valueId: i0.InputSignal<string>;
|
|
66
|
+
readonly minState: Signal<number>;
|
|
67
|
+
readonly maxState: Signal<number>;
|
|
68
|
+
readonly valueState: Signal<number | null>;
|
|
69
|
+
readonly percentageState: Signal<number | null>;
|
|
70
|
+
readonly valueLabelState: Signal<string | undefined>;
|
|
71
|
+
/** `aria-valuetext`: the formatted label, or an explicit "indeterminate progress" (Base UI parity). */
|
|
72
|
+
readonly ariaValueText: Signal<string | undefined>;
|
|
73
|
+
readonly progressState: Signal<ProgressState>;
|
|
74
|
+
readonly completeState: Signal<boolean>;
|
|
75
|
+
readonly progressingState: Signal<boolean>;
|
|
76
|
+
readonly indeterminateState: Signal<boolean>;
|
|
97
77
|
protected readonly dataAttr: (value: boolean) => "" | undefined;
|
|
78
|
+
private readonly labelCount;
|
|
79
|
+
/** Whether at least one `rdxProgressLabel` is currently mounted. */
|
|
80
|
+
readonly hasLabel: Signal<boolean>;
|
|
81
|
+
/** @ignore Called by `rdxProgressLabel` on mount; returns its unregister callback. */
|
|
82
|
+
registerLabel(): () => void;
|
|
98
83
|
private valueTransform;
|
|
99
84
|
private defaultValueLabel;
|
|
100
|
-
static ɵfac:
|
|
101
|
-
static ɵdir:
|
|
85
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RdxProgressRootDirective, never>;
|
|
86
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RdxProgressRootDirective, "[rdxProgressRoot]", ["rdxProgressRoot"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "valueLabel": { "alias": "valueLabel"; "required": false; "isSignal": true; }; "labelId": { "alias": "labelId"; "required": false; "isSignal": true; }; "valueId": { "alias": "valueId"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
102
87
|
}
|
|
103
88
|
|
|
104
89
|
/**
|
|
@@ -107,22 +92,11 @@ declare class RdxProgressRootDirective {
|
|
|
107
92
|
* @group Components
|
|
108
93
|
*/
|
|
109
94
|
declare class RdxProgressLabelDirective {
|
|
110
|
-
protected readonly progress:
|
|
111
|
-
labelId: _angular_core.InputSignal<string>;
|
|
112
|
-
valueId: _angular_core.InputSignal<string>;
|
|
113
|
-
minState: _angular_core.Signal<number>;
|
|
114
|
-
maxState: _angular_core.Signal<number>;
|
|
115
|
-
valueState: _angular_core.Signal<number | null>;
|
|
116
|
-
percentageState: _angular_core.Signal<number | null>;
|
|
117
|
-
valueLabelState: _angular_core.Signal<string | undefined>;
|
|
118
|
-
progressState: _angular_core.Signal<_radix_ng_primitives_progress.ProgressState>;
|
|
119
|
-
completeState: _angular_core.Signal<boolean>;
|
|
120
|
-
progressingState: _angular_core.Signal<boolean>;
|
|
121
|
-
indeterminateState: _angular_core.Signal<boolean>;
|
|
122
|
-
};
|
|
95
|
+
protected readonly progress: _radix_ng_primitives_progress.RdxProgressRootContext;
|
|
123
96
|
protected readonly dataAttr: (value: boolean) => "" | undefined;
|
|
124
|
-
|
|
125
|
-
static
|
|
97
|
+
constructor();
|
|
98
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RdxProgressLabelDirective, never>;
|
|
99
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RdxProgressLabelDirective, "[rdxProgressLabel]", ["rdxProgressLabel"], {}, {}, never, never, true, never>;
|
|
126
100
|
}
|
|
127
101
|
|
|
128
102
|
/**
|
|
@@ -131,22 +105,10 @@ declare class RdxProgressLabelDirective {
|
|
|
131
105
|
* @group Components
|
|
132
106
|
*/
|
|
133
107
|
declare class RdxProgressValueDirective {
|
|
134
|
-
protected readonly progress:
|
|
135
|
-
labelId: _angular_core.InputSignal<string>;
|
|
136
|
-
valueId: _angular_core.InputSignal<string>;
|
|
137
|
-
minState: _angular_core.Signal<number>;
|
|
138
|
-
maxState: _angular_core.Signal<number>;
|
|
139
|
-
valueState: _angular_core.Signal<number | null>;
|
|
140
|
-
percentageState: _angular_core.Signal<number | null>;
|
|
141
|
-
valueLabelState: _angular_core.Signal<string | undefined>;
|
|
142
|
-
progressState: _angular_core.Signal<_radix_ng_primitives_progress.ProgressState>;
|
|
143
|
-
completeState: _angular_core.Signal<boolean>;
|
|
144
|
-
progressingState: _angular_core.Signal<boolean>;
|
|
145
|
-
indeterminateState: _angular_core.Signal<boolean>;
|
|
146
|
-
};
|
|
108
|
+
protected readonly progress: _radix_ng_primitives_progress.RdxProgressRootContext;
|
|
147
109
|
protected readonly dataAttr: (value: boolean) => "" | undefined;
|
|
148
|
-
static ɵfac:
|
|
149
|
-
static ɵdir:
|
|
110
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RdxProgressValueDirective, never>;
|
|
111
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RdxProgressValueDirective, "[rdxProgressValue]", ["rdxProgressValue"], {}, {}, never, never, true, never>;
|
|
150
112
|
}
|
|
151
113
|
|
|
152
114
|
/**
|
|
@@ -155,22 +117,10 @@ declare class RdxProgressValueDirective {
|
|
|
155
117
|
* @group Components
|
|
156
118
|
*/
|
|
157
119
|
declare class RdxProgressTrackDirective {
|
|
158
|
-
protected readonly progress:
|
|
159
|
-
labelId: _angular_core.InputSignal<string>;
|
|
160
|
-
valueId: _angular_core.InputSignal<string>;
|
|
161
|
-
minState: _angular_core.Signal<number>;
|
|
162
|
-
maxState: _angular_core.Signal<number>;
|
|
163
|
-
valueState: _angular_core.Signal<number | null>;
|
|
164
|
-
percentageState: _angular_core.Signal<number | null>;
|
|
165
|
-
valueLabelState: _angular_core.Signal<string | undefined>;
|
|
166
|
-
progressState: _angular_core.Signal<_radix_ng_primitives_progress.ProgressState>;
|
|
167
|
-
completeState: _angular_core.Signal<boolean>;
|
|
168
|
-
progressingState: _angular_core.Signal<boolean>;
|
|
169
|
-
indeterminateState: _angular_core.Signal<boolean>;
|
|
170
|
-
};
|
|
120
|
+
protected readonly progress: _radix_ng_primitives_progress.RdxProgressRootContext;
|
|
171
121
|
protected readonly dataAttr: (value: boolean) => "" | undefined;
|
|
172
|
-
static ɵfac:
|
|
173
|
-
static ɵdir:
|
|
122
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RdxProgressTrackDirective, never>;
|
|
123
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RdxProgressTrackDirective, "[rdxProgressTrack]", ["rdxProgressTrack"], {}, {}, never, never, true, never>;
|
|
174
124
|
}
|
|
175
125
|
|
|
176
126
|
/**
|
|
@@ -179,28 +129,16 @@ declare class RdxProgressTrackDirective {
|
|
|
179
129
|
* @group Components
|
|
180
130
|
*/
|
|
181
131
|
declare class RdxProgressIndicatorDirective {
|
|
182
|
-
protected readonly progress:
|
|
183
|
-
labelId: _angular_core.InputSignal<string>;
|
|
184
|
-
valueId: _angular_core.InputSignal<string>;
|
|
185
|
-
minState: _angular_core.Signal<number>;
|
|
186
|
-
maxState: _angular_core.Signal<number>;
|
|
187
|
-
valueState: _angular_core.Signal<number | null>;
|
|
188
|
-
percentageState: _angular_core.Signal<number | null>;
|
|
189
|
-
valueLabelState: _angular_core.Signal<string | undefined>;
|
|
190
|
-
progressState: _angular_core.Signal<_radix_ng_primitives_progress.ProgressState>;
|
|
191
|
-
completeState: _angular_core.Signal<boolean>;
|
|
192
|
-
progressingState: _angular_core.Signal<boolean>;
|
|
193
|
-
indeterminateState: _angular_core.Signal<boolean>;
|
|
194
|
-
};
|
|
132
|
+
protected readonly progress: _radix_ng_primitives_progress.RdxProgressRootContext;
|
|
195
133
|
protected readonly dataAttr: (value: boolean) => "" | undefined;
|
|
196
|
-
static ɵfac:
|
|
197
|
-
static ɵdir:
|
|
134
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RdxProgressIndicatorDirective, never>;
|
|
135
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RdxProgressIndicatorDirective, "[rdxProgressIndicator]", ["rdxProgressIndicator"], {}, {}, never, never, true, never>;
|
|
198
136
|
}
|
|
199
137
|
|
|
200
138
|
declare class RdxProgressModule {
|
|
201
|
-
static ɵfac:
|
|
202
|
-
static ɵmod:
|
|
203
|
-
static ɵinj:
|
|
139
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RdxProgressModule, never>;
|
|
140
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<RdxProgressModule, never, [typeof RdxProgressRootDirective, typeof RdxProgressLabelDirective, typeof RdxProgressValueDirective, typeof RdxProgressTrackDirective, typeof RdxProgressIndicatorDirective], [typeof RdxProgressRootDirective, typeof RdxProgressLabelDirective, typeof RdxProgressValueDirective, typeof RdxProgressTrackDirective, typeof RdxProgressIndicatorDirective]>;
|
|
141
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<RdxProgressModule>;
|
|
204
142
|
}
|
|
205
143
|
|
|
206
144
|
export { RdxProgressIndicatorDirective, RdxProgressLabelDirective, RdxProgressModule, RdxProgressRootDirective, RdxProgressTrackDirective, RdxProgressValueDirective, injectProgressRootContext, provideProgressRootContext };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { Signal } from '@angular/core';
|
|
3
3
|
import * as _radix_ng_primitives_core from '@radix-ng/primitives/core';
|
|
4
|
-
import { RdxFormValueControl, BooleanInput, RdxCancelableChangeEventDetails } from '@radix-ng/primitives/core';
|
|
4
|
+
import { RdxFormUiControlBase, RdxFormValueControl, BooleanInput, RdxCancelableChangeEventDetails, RdxFormUiTouchTarget } from '@radix-ng/primitives/core';
|
|
5
5
|
import { ControlValueAccessor } from '@angular/forms';
|
|
6
6
|
import * as i1 from '@radix-ng/primitives/composite';
|
|
7
7
|
import * as _radix_ng_primitives_radio from '@radix-ng/primitives/radio';
|
|
@@ -26,7 +26,7 @@ interface RadioRootContext {
|
|
|
26
26
|
}
|
|
27
27
|
declare const injectRadioRootContext: _radix_ng_primitives_core.InjectContext<RadioRootContext>;
|
|
28
28
|
declare const provideRadioRootContext: (useFactory: () => RadioRootContext) => _angular_core.Provider;
|
|
29
|
-
declare class RdxRadioGroupDirective implements ControlValueAccessor, RdxFormValueControl<string | null> {
|
|
29
|
+
declare class RdxRadioGroupDirective extends RdxFormUiControlBase implements ControlValueAccessor, RdxFormValueControl<string | null> {
|
|
30
30
|
private readonly elementRef;
|
|
31
31
|
private readonly compositeRoot;
|
|
32
32
|
/**
|
|
@@ -51,6 +51,9 @@ declare class RdxRadioGroupDirective implements ControlValueAccessor, RdxFormVal
|
|
|
51
51
|
readonly onValueChange: _angular_core.OutputEmitterRef<RdxRadioValueChangeEvent>;
|
|
52
52
|
private readonly disable;
|
|
53
53
|
readonly disabledState: Signal<boolean>;
|
|
54
|
+
readonly invalidState: Signal<boolean>;
|
|
55
|
+
readonly touchedState: Signal<boolean>;
|
|
56
|
+
readonly dirtyState: Signal<boolean>;
|
|
54
57
|
private readonly arrowNavigation;
|
|
55
58
|
private readonly itemMetadata;
|
|
56
59
|
private readonly disabledIndices;
|
|
@@ -71,6 +74,8 @@ declare class RdxRadioGroupDirective implements ControlValueAccessor, RdxFormVal
|
|
|
71
74
|
* @ignore
|
|
72
75
|
*/
|
|
73
76
|
select(value: string | null, event?: Event, reason?: RdxRadioValueChangeReason): void;
|
|
77
|
+
/** @ignore Bridge the CVA `onTouched` so `markAsTouched()` also notifies Reactive/template forms. */
|
|
78
|
+
protected formUiTouchTarget(): RdxFormUiTouchTarget;
|
|
74
79
|
/**
|
|
75
80
|
* Update the value of the radio group.
|
|
76
81
|
* @param value The new value of the radio group.
|
|
@@ -93,7 +98,6 @@ declare class RdxRadioGroupDirective implements ControlValueAccessor, RdxFormVal
|
|
|
93
98
|
setDisabledState(isDisabled: boolean): void;
|
|
94
99
|
setArrowNavigation(value: boolean): void;
|
|
95
100
|
isArrowNavigation(): boolean;
|
|
96
|
-
protected onKeydown(): void;
|
|
97
101
|
/**
|
|
98
102
|
* Marks the control touched when focus leaves the whole group (Base UI `RadioGroup` parity and the
|
|
99
103
|
* ADR 0004 CVA strategy) — moving focus between items stays inside, so `relatedTarget` is checked.
|