@mk-kit/ui 0.41.0 → 0.43.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/THIRD_PARTY_NOTICES.md +4 -2
- package/fesm2022/mk-kit-ui-block-editor.mjs +4 -2
- package/fesm2022/mk-kit-ui-block-editor.mjs.map +1 -1
- package/fesm2022/mk-kit-ui-checkbox.mjs +4 -2
- package/fesm2022/mk-kit-ui-checkbox.mjs.map +1 -1
- package/fesm2022/mk-kit-ui-core.mjs +218 -1
- package/fesm2022/mk-kit-ui-core.mjs.map +1 -1
- package/fesm2022/mk-kit-ui-data.mjs +801 -16
- package/fesm2022/mk-kit-ui-data.mjs.map +1 -1
- package/fesm2022/mk-kit-ui-datetime.mjs +90 -52
- package/fesm2022/mk-kit-ui-datetime.mjs.map +1 -1
- package/fesm2022/mk-kit-ui-directives.mjs +395 -2
- package/fesm2022/mk-kit-ui-directives.mjs.map +1 -1
- package/fesm2022/mk-kit-ui-dnd.mjs +183 -29
- package/fesm2022/mk-kit-ui-dnd.mjs.map +1 -1
- package/fesm2022/mk-kit-ui-dynamic-form.mjs +149 -2
- package/fesm2022/mk-kit-ui-dynamic-form.mjs.map +1 -1
- package/fesm2022/mk-kit-ui-feedback.mjs +1 -1
- package/fesm2022/mk-kit-ui-feedback.mjs.map +1 -1
- package/fesm2022/mk-kit-ui-forms.mjs +331 -81
- package/fesm2022/mk-kit-ui-forms.mjs.map +1 -1
- package/fesm2022/mk-kit-ui-icon-extended.mjs +425 -0
- package/fesm2022/mk-kit-ui-icon-extended.mjs.map +1 -0
- package/fesm2022/mk-kit-ui-icon.mjs +296 -459
- package/fesm2022/mk-kit-ui-icon.mjs.map +1 -1
- package/fesm2022/mk-kit-ui-query-builder.mjs +1 -1
- package/fesm2022/mk-kit-ui-query-builder.mjs.map +1 -1
- package/fesm2022/mk-kit-ui-rich-text.mjs +4 -2
- package/fesm2022/mk-kit-ui-rich-text.mjs.map +1 -1
- package/fesm2022/mk-kit-ui-table.mjs +36 -8
- package/fesm2022/mk-kit-ui-table.mjs.map +1 -1
- package/fesm2022/mk-kit-ui.mjs +1 -0
- package/fesm2022/mk-kit-ui.mjs.map +1 -1
- package/package.json +5 -1
- package/schematics/migrate-primeng/transform.js +4 -1
- package/schematics/ng-add/index.js +30 -2
- package/schematics/ng-add/schema.json +6 -0
- package/styles/mk-kit.css +604 -0
- package/types/mk-kit-ui-block-editor.d.ts +2 -0
- package/types/mk-kit-ui-checkbox.d.ts +2 -0
- package/types/mk-kit-ui-core.d.ts +119 -2
- package/types/mk-kit-ui-data.d.ts +359 -3
- package/types/mk-kit-ui-datetime.d.ts +41 -19
- package/types/mk-kit-ui-directives.d.ts +234 -3
- package/types/mk-kit-ui-dnd.d.ts +96 -14
- package/types/mk-kit-ui-dynamic-form.d.ts +44 -1
- package/types/mk-kit-ui-forms.d.ts +160 -20
- package/types/mk-kit-ui-icon-extended.d.ts +83 -0
- package/types/mk-kit-ui-icon.d.ts +100 -17
- package/types/mk-kit-ui-rich-text.d.ts +2 -0
- package/types/mk-kit-ui-table.d.ts +38 -21
- package/types/mk-kit-ui.d.ts +1 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { OnDestroy, Signal, ElementRef, TemplateRef, OnInit } from '@angular/core';
|
|
3
|
+
import { Field } from '@angular/forms/signals';
|
|
3
4
|
import * as _mk_kit_ui_core from '@mk-kit/ui/core';
|
|
4
5
|
import { MkFieldContext, MkSize, MkVariant, MkTone, MkCodeLanguage, MkPlacement } from '@mk-kit/ui/core';
|
|
5
6
|
export { MkCodeLanguage, mkHighlight } from '@mk-kit/ui/core';
|
|
@@ -29,6 +30,29 @@ export * from '@mk-kit/ui/checkbox';
|
|
|
29
30
|
* is touched or dirty, or its form has been submitted; `errorOn` changes that.
|
|
30
31
|
* `required` and the disabled styling are derived from the control too.
|
|
31
32
|
*
|
|
33
|
+
* ## Signal Forms
|
|
34
|
+
*
|
|
35
|
+
* The same applies to a control bound with Signal Forms' `[formField]`
|
|
36
|
+
* directive (`@angular/forms/signals`): the field adopts the projected
|
|
37
|
+
* `FormField` binding and reads `touched()` / `dirty()` / `invalid()` /
|
|
38
|
+
* `errors()` / `required()` / `disabled()` from its `FieldState`. Errors
|
|
39
|
+
* written by the schema (`required(p.email)`, `minLength(p.name, 2)`, …) are
|
|
40
|
+
* rendered through the same `validation` i18n table, a `message` supplied to
|
|
41
|
+
* the schema rule wins over the table, and `errorMessages` / `errorOn` work
|
|
42
|
+
* unchanged. Calling `submit()` marks every field touched, so errors surface
|
|
43
|
+
* on a failed submit exactly as with `formControlName`. When the control is
|
|
44
|
+
* not projected (or lives deeper), point the field at it with `[field]`.
|
|
45
|
+
*
|
|
46
|
+
* ```html
|
|
47
|
+
* <mk-form-field label="Email">
|
|
48
|
+
* <input mkInput type="email" [formField]="f.email" />
|
|
49
|
+
* </mk-form-field>
|
|
50
|
+
*
|
|
51
|
+
* <mk-form-field label="Country" [field]="f.country">
|
|
52
|
+
* <mk-select [formField]="f.country" [options]="countries" />
|
|
53
|
+
* </mk-form-field>
|
|
54
|
+
* ```
|
|
55
|
+
*
|
|
32
56
|
* ```html
|
|
33
57
|
* <!-- automatic: message + required marker come from the validators -->
|
|
34
58
|
* <mk-form-field label="Email">
|
|
@@ -90,9 +114,24 @@ declare class MkFormField implements MkFieldContext {
|
|
|
90
114
|
* `formControl`; the placeholder stays hidden until the label has moved.
|
|
91
115
|
*/
|
|
92
116
|
readonly labelPosition: _angular_core.InputSignal<"top" | "float">;
|
|
117
|
+
/**
|
|
118
|
+
* Signal Forms field to read state from explicitly (`[field]="f.email"`).
|
|
119
|
+
* Not needed when the projected control carries the `[formField]` binding —
|
|
120
|
+
* the wrapper finds that itself; set it when the control is nested deeper
|
|
121
|
+
* or when the wrapper should follow a field it does not contain.
|
|
122
|
+
*/
|
|
123
|
+
readonly field: _angular_core.InputSignal<Field<unknown> | null>;
|
|
93
124
|
private readonly host;
|
|
94
125
|
/** The projected control's form binding, when it has one. */
|
|
95
126
|
private readonly ngControl;
|
|
127
|
+
/** The projected control's Signal Forms `[formField]` binding, when it has one. */
|
|
128
|
+
private readonly signalField;
|
|
129
|
+
/**
|
|
130
|
+
* The Signal Forms field state driving this wrapper — the explicit `field`
|
|
131
|
+
* input first, else the projected `[formField]` binding. `undefined` for a
|
|
132
|
+
* reactive-forms / template-driven control.
|
|
133
|
+
*/
|
|
134
|
+
private readonly fieldState;
|
|
96
135
|
/** A control inside the field has focus. */
|
|
97
136
|
protected readonly focused: _angular_core.WritableSignal<boolean>;
|
|
98
137
|
/** Last value read straight from a native control (fallback when no NgControl). */
|
|
@@ -136,7 +175,7 @@ declare class MkFormField implements MkFieldContext {
|
|
|
136
175
|
*/
|
|
137
176
|
readonly describedBy: _angular_core.Signal<string | null>;
|
|
138
177
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MkFormField, never>;
|
|
139
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MkFormField, "mk-form-field", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "errorMessages": { "alias": "errorMessages"; "required": false; "isSignal": true; }; "errorOn": { "alias": "errorOn"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "labelPosition": { "alias": "labelPosition"; "required": false; "isSignal": true; }; }, {}, ["ngControl"], ["*"], true, never>;
|
|
178
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MkFormField, "mk-form-field", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "errorMessages": { "alias": "errorMessages"; "required": false; "isSignal": true; }; "errorOn": { "alias": "errorOn"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "labelPosition": { "alias": "labelPosition"; "required": false; "isSignal": true; }; "field": { "alias": "field"; "required": false; "isSignal": true; }; }, {}, ["ngControl", "signalField"], ["*"], true, never>;
|
|
140
179
|
}
|
|
141
180
|
|
|
142
181
|
/** One field-level error to surface in {@link MkFormErrorSummary}. */
|
|
@@ -170,6 +209,24 @@ interface MkFormError {
|
|
|
170
209
|
* `formControlName` must be a static attribute (`formControlName="email"`,
|
|
171
210
|
* the usual form) rather than a binding.
|
|
172
211
|
*
|
|
212
|
+
* ## Signal Forms
|
|
213
|
+
*
|
|
214
|
+
* Point `field` at a Signal Forms root (`[field]="f"`) instead of `form` and
|
|
215
|
+
* the summary reads `errorSummary()` from the `FieldTree`: one entry per
|
|
216
|
+
* invalid field, keyed by dotted path in `labels` / `errorMessages` like the
|
|
217
|
+
* reactive path. With the default `showOn="submit"` an entry appears once its
|
|
218
|
+
* field is touched — `submit()` marks every field touched, so a failed submit
|
|
219
|
+
* lists them all. Clicking an entry focuses the control bound with
|
|
220
|
+
* `[formField]`. When the summary sits inside the `<form>`, focus also moves
|
|
221
|
+
* to it after the form's `submit` event, as with `ngSubmit`.
|
|
222
|
+
*
|
|
223
|
+
* ```html
|
|
224
|
+
* <form (submit)="save($event)">
|
|
225
|
+
* <mk-form-error-summary [field]="f" [labels]="{ email: 'Email address' }" />
|
|
226
|
+
* …
|
|
227
|
+
* </form>
|
|
228
|
+
* ```
|
|
229
|
+
*
|
|
173
230
|
* ```html
|
|
174
231
|
* <!-- automatic -->
|
|
175
232
|
* <form [formGroup]="form" (ngSubmit)="submit()">
|
|
@@ -197,12 +254,17 @@ declare class MkFormErrorSummary {
|
|
|
197
254
|
readonly errors: _angular_core.InputSignal<readonly MkFormError[]>;
|
|
198
255
|
/** Collect errors from this control tree instead of passing them in. */
|
|
199
256
|
readonly form: _angular_core.InputSignal<AbstractControl<any, any, any> | null>;
|
|
257
|
+
/**
|
|
258
|
+
* Collect errors from this Signal Forms field (usually the root returned by
|
|
259
|
+
* `form()`) instead of `form`. Entries are keyed by dotted path for `labels`.
|
|
260
|
+
*/
|
|
261
|
+
readonly field: _angular_core.InputSignal<Field<unknown> | null>;
|
|
200
262
|
/** Field names for automatic entries, keyed by control path. */
|
|
201
263
|
readonly labels: _angular_core.InputSignal<Readonly<Record<string, string>>>;
|
|
202
264
|
/** Per-key wording for automatic entries, as on `mk-form-field`. */
|
|
203
265
|
readonly errorMessages: _angular_core.InputSignal<Readonly<Record<string, string | ((err: any) => string)>> | null>;
|
|
204
266
|
/** When automatic entries appear. Defaults to after the form is submitted. */
|
|
205
|
-
readonly showOn: _angular_core.InputSignal<"
|
|
267
|
+
readonly showOn: _angular_core.InputSignal<"submit" | "always">;
|
|
206
268
|
/** Heading shown above the list. */
|
|
207
269
|
readonly summaryTitle: _angular_core.InputSignal<string>;
|
|
208
270
|
/**
|
|
@@ -217,6 +279,12 @@ declare class MkFormErrorSummary {
|
|
|
217
279
|
constructor();
|
|
218
280
|
/** Whether the surrounding form (if any) has been submitted. */
|
|
219
281
|
private readonly submitted;
|
|
282
|
+
/**
|
|
283
|
+
* Entries collected from `field` (a Signal Forms root), each with the element
|
|
284
|
+
* carrying the field's `[formField]` binding so a click can focus it the way
|
|
285
|
+
* `focusBoundControl()` would.
|
|
286
|
+
*/
|
|
287
|
+
private readonly signalEntries;
|
|
220
288
|
/** Entries collected from `form`, when one is set and they should show. */
|
|
221
289
|
private readonly autoErrors;
|
|
222
290
|
/** The entries actually rendered — an explicit `errors` list wins. */
|
|
@@ -235,7 +303,7 @@ declare class MkFormErrorSummary {
|
|
|
235
303
|
*/
|
|
236
304
|
private fieldIdFor;
|
|
237
305
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MkFormErrorSummary, never>;
|
|
238
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MkFormErrorSummary, "mk-form-error-summary", ["mkFormErrorSummary"], { "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "form": { "alias": "form"; "required": false; "isSignal": true; }; "labels": { "alias": "labels"; "required": false; "isSignal": true; }; "errorMessages": { "alias": "errorMessages"; "required": false; "isSignal": true; }; "showOn": { "alias": "showOn"; "required": false; "isSignal": true; }; "summaryTitle": { "alias": "summaryTitle"; "required": false; "isSignal": true; }; "autoFocus": { "alias": "autoFocus"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
306
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MkFormErrorSummary, "mk-form-error-summary", ["mkFormErrorSummary"], { "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "form": { "alias": "form"; "required": false; "isSignal": true; }; "field": { "alias": "field"; "required": false; "isSignal": true; }; "labels": { "alias": "labels"; "required": false; "isSignal": true; }; "errorMessages": { "alias": "errorMessages"; "required": false; "isSignal": true; }; "showOn": { "alias": "showOn"; "required": false; "isSignal": true; }; "summaryTitle": { "alias": "summaryTitle"; "required": false; "isSignal": true; }; "autoFocus": { "alias": "autoFocus"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
239
307
|
}
|
|
240
308
|
|
|
241
309
|
/**
|
|
@@ -261,6 +329,8 @@ declare class MkFormErrorSummary {
|
|
|
261
329
|
*/
|
|
262
330
|
declare class MkInput implements ControlValueAccessor {
|
|
263
331
|
private readonly field;
|
|
332
|
+
/** Signal Forms: gates `invalid` until the bound field is touched or dirty. */
|
|
333
|
+
private readonly fieldTouched;
|
|
264
334
|
private readonly group;
|
|
265
335
|
private readonly host;
|
|
266
336
|
private readonly initialId;
|
|
@@ -381,6 +451,8 @@ declare class MkInputGroup {
|
|
|
381
451
|
*/
|
|
382
452
|
declare class MkSubmitInput implements ControlValueAccessor {
|
|
383
453
|
private readonly field;
|
|
454
|
+
/** Signal Forms: gates `invalid` until the bound field is touched or dirty. */
|
|
455
|
+
private readonly fieldTouched;
|
|
384
456
|
/** Localised strings (override globally via `provideMkI18n`). */
|
|
385
457
|
protected readonly i18n: _mk_kit_ui_core.MkI18nStrings;
|
|
386
458
|
private readonly inputRef;
|
|
@@ -565,6 +637,8 @@ interface MkSelectOption {
|
|
|
565
637
|
*/
|
|
566
638
|
declare class MkSelect implements ControlValueAccessor, OnDestroy {
|
|
567
639
|
private readonly field;
|
|
640
|
+
/** Signal Forms: gates `invalid` until the bound field is touched or dirty. */
|
|
641
|
+
private readonly fieldTouched;
|
|
568
642
|
/** Localised strings (override globally via `provideMkI18n`). */
|
|
569
643
|
protected readonly i18n: _mk_kit_ui_core.MkI18nStrings;
|
|
570
644
|
private readonly triggerRef;
|
|
@@ -578,6 +652,8 @@ declare class MkSelect implements ControlValueAccessor, OnDestroy {
|
|
|
578
652
|
readonly size: _angular_core.InputSignal<MkSize>;
|
|
579
653
|
/** Force invalid styling + `aria-invalid` when used standalone. */
|
|
580
654
|
readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
655
|
+
/** Mark required (adds `aria-required`). Set by Signal Forms' `[formField]` from the schema. */
|
|
656
|
+
readonly required: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
581
657
|
/** Disable the control. */
|
|
582
658
|
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
583
659
|
/** Two-way selected value. */
|
|
@@ -617,7 +693,7 @@ declare class MkSelect implements ControlValueAccessor, OnDestroy {
|
|
|
617
693
|
registerOnTouched(fn: () => void): void;
|
|
618
694
|
setDisabledState(isDisabled: boolean): void;
|
|
619
695
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MkSelect, never>;
|
|
620
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MkSelect, "mk-select", never, { "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
|
|
696
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MkSelect, "mk-select", never, { "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
|
|
621
697
|
}
|
|
622
698
|
|
|
623
699
|
/** One row of an `mk-listbox`. */
|
|
@@ -665,6 +741,8 @@ type Row = {
|
|
|
665
741
|
*/
|
|
666
742
|
declare class MkListbox implements ControlValueAccessor, OnDestroy {
|
|
667
743
|
private readonly field;
|
|
744
|
+
/** Signal Forms: gates `invalid` until the bound field is touched or dirty. */
|
|
745
|
+
private readonly fieldTouched;
|
|
668
746
|
protected readonly i18n: _mk_kit_ui_core.MkI18nStrings;
|
|
669
747
|
private readonly listRef;
|
|
670
748
|
/** The rows to choose from. */
|
|
@@ -773,6 +851,8 @@ interface MkCascaderOption {
|
|
|
773
851
|
*/
|
|
774
852
|
declare class MkCascader implements ControlValueAccessor, OnDestroy {
|
|
775
853
|
private readonly field;
|
|
854
|
+
/** Signal Forms: gates `invalid` until the bound field is touched or dirty. */
|
|
855
|
+
private readonly fieldTouched;
|
|
776
856
|
protected readonly i18n: _mk_kit_ui_core.MkI18nStrings;
|
|
777
857
|
private readonly host;
|
|
778
858
|
private readonly injector;
|
|
@@ -906,6 +986,8 @@ type MkAutocompleteFilterMode = 'contains' | 'startsWith' | 'none';
|
|
|
906
986
|
*/
|
|
907
987
|
declare class MkAutocomplete implements ControlValueAccessor {
|
|
908
988
|
private readonly field;
|
|
989
|
+
/** Signal Forms: gates `invalid` until the bound field is touched or dirty. */
|
|
990
|
+
private readonly fieldTouched;
|
|
909
991
|
/** Localised strings (override globally via `provideMkI18n`). */
|
|
910
992
|
protected readonly i18n: _mk_kit_ui_core.MkI18nStrings;
|
|
911
993
|
private readonly announcer;
|
|
@@ -923,6 +1005,8 @@ declare class MkAutocomplete implements ControlValueAccessor {
|
|
|
923
1005
|
readonly size: _angular_core.InputSignal<MkSize>;
|
|
924
1006
|
/** Force invalid styling + `aria-invalid` when used standalone. */
|
|
925
1007
|
readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1008
|
+
/** Mark required (adds `aria-required`). Set by Signal Forms' `[formField]` from the schema. */
|
|
1009
|
+
readonly required: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
926
1010
|
/** Disable the control. */
|
|
927
1011
|
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
928
1012
|
/** How the option list is filtered against the typed text. */
|
|
@@ -984,7 +1068,7 @@ declare class MkAutocomplete implements ControlValueAccessor {
|
|
|
984
1068
|
registerOnTouched(fn: () => void): void;
|
|
985
1069
|
setDisabledState(isDisabled: boolean): void;
|
|
986
1070
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MkAutocomplete, never>;
|
|
987
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MkAutocomplete, "mk-autocomplete", never, { "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "filterMode": { "alias": "filterMode"; "required": false; "isSignal": true; }; "minChars": { "alias": "minChars"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "requireSelection": { "alias": "requireSelection"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "search": "search"; "optionSelected": "optionSelected"; }, never, never, true, never>;
|
|
1071
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MkAutocomplete, "mk-autocomplete", never, { "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "filterMode": { "alias": "filterMode"; "required": false; "isSignal": true; }; "minChars": { "alias": "minChars"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "requireSelection": { "alias": "requireSelection"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "search": "search"; "optionSelected": "optionSelected"; }, never, never, true, never>;
|
|
988
1072
|
}
|
|
989
1073
|
|
|
990
1074
|
/** How mention suggestions are narrowed against the typed query. */
|
|
@@ -1199,6 +1283,8 @@ type MkMultiSelectFilterMode = 'contains' | 'startsWith' | 'none';
|
|
|
1199
1283
|
*/
|
|
1200
1284
|
declare class MkMultiSelect implements ControlValueAccessor, Validator {
|
|
1201
1285
|
private readonly field;
|
|
1286
|
+
/** Signal Forms: gates `invalid` until the bound field is touched or dirty. */
|
|
1287
|
+
private readonly fieldTouched;
|
|
1202
1288
|
private readonly host;
|
|
1203
1289
|
/** Localised strings (override globally via `provideMkI18n`). */
|
|
1204
1290
|
protected readonly i18n: _mk_kit_ui_core.MkI18nStrings;
|
|
@@ -1214,6 +1300,8 @@ declare class MkMultiSelect implements ControlValueAccessor, Validator {
|
|
|
1214
1300
|
readonly size: _angular_core.InputSignal<MkSize>;
|
|
1215
1301
|
/** Force invalid styling + `aria-invalid` when used standalone. */
|
|
1216
1302
|
readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1303
|
+
/** Mark required (adds `aria-required`). Set by Signal Forms' `[formField]` from the schema. */
|
|
1304
|
+
readonly required: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1217
1305
|
/** Disable the control. */
|
|
1218
1306
|
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1219
1307
|
/** How the option list is filtered against the typed text. */
|
|
@@ -1305,7 +1393,7 @@ declare class MkMultiSelect implements ControlValueAccessor, Validator {
|
|
|
1305
1393
|
validate(control: AbstractControl): ValidationErrors | null;
|
|
1306
1394
|
registerOnValidatorChange(fn: () => void): void;
|
|
1307
1395
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MkMultiSelect, never>;
|
|
1308
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MkMultiSelect, "mk-multi-select", never, { "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "filterMode": { "alias": "filterMode"; "required": false; "isSignal": true; }; "minChars": { "alias": "minChars"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "closeOnSelect": { "alias": "closeOnSelect"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "search": "search"; "optionAdded": "optionAdded"; "optionRemoved": "optionRemoved"; }, never, never, true, never>;
|
|
1396
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MkMultiSelect, "mk-multi-select", never, { "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "filterMode": { "alias": "filterMode"; "required": false; "isSignal": true; }; "minChars": { "alias": "minChars"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "closeOnSelect": { "alias": "closeOnSelect"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "search": "search"; "optionAdded": "optionAdded"; "optionRemoved": "optionRemoved"; }, never, never, true, never>;
|
|
1309
1397
|
}
|
|
1310
1398
|
|
|
1311
1399
|
/**
|
|
@@ -1321,6 +1409,8 @@ declare class MkMultiSelect implements ControlValueAccessor, Validator {
|
|
|
1321
1409
|
*/
|
|
1322
1410
|
declare class MkTagInput implements ControlValueAccessor, Validator {
|
|
1323
1411
|
private readonly field;
|
|
1412
|
+
/** Signal Forms: gates `invalid` until the bound field is touched or dirty. */
|
|
1413
|
+
private readonly fieldTouched;
|
|
1324
1414
|
protected readonly i18n: _mk_kit_ui_core.MkI18nStrings;
|
|
1325
1415
|
private readonly announcer;
|
|
1326
1416
|
private readonly host;
|
|
@@ -1343,6 +1433,8 @@ declare class MkTagInput implements ControlValueAccessor, Validator {
|
|
|
1343
1433
|
readonly separators: _angular_core.InputSignal<readonly string[]>;
|
|
1344
1434
|
/** Force invalid styling + `aria-invalid` when used standalone. */
|
|
1345
1435
|
readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1436
|
+
/** Mark required (adds `aria-required`). Set by Signal Forms' `[formField]` from the schema. */
|
|
1437
|
+
readonly required: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1346
1438
|
/** Disable the control. */
|
|
1347
1439
|
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1348
1440
|
/** Control size. Ignored when nested in an `mk-form-field`. */
|
|
@@ -1395,7 +1487,7 @@ declare class MkTagInput implements ControlValueAccessor, Validator {
|
|
|
1395
1487
|
validate(control: AbstractControl): ValidationErrors | null;
|
|
1396
1488
|
registerOnValidatorChange(fn: () => void): void;
|
|
1397
1489
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MkTagInput, never>;
|
|
1398
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MkTagInput, "mk-tag-input", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "allowDuplicates": { "alias": "allowDuplicates"; "required": false; "isSignal": true; }; "addOnBlur": { "alias": "addOnBlur"; "required": false; "isSignal": true; }; "separators": { "alias": "separators"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "added": "added"; "removed": "removed"; }, never, never, true, never>;
|
|
1490
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MkTagInput, "mk-tag-input", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "allowDuplicates": { "alias": "allowDuplicates"; "required": false; "isSignal": true; }; "addOnBlur": { "alias": "addOnBlur"; "required": false; "isSignal": true; }; "separators": { "alias": "separators"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "added": "added"; "removed": "removed"; }, never, never, true, never>;
|
|
1399
1491
|
}
|
|
1400
1492
|
|
|
1401
1493
|
/** A single password rule with its current pass/fail state. */
|
|
@@ -1416,6 +1508,8 @@ interface MkPasswordRule {
|
|
|
1416
1508
|
*/
|
|
1417
1509
|
declare class MkPasswordInput implements ControlValueAccessor, Validator {
|
|
1418
1510
|
private readonly field;
|
|
1511
|
+
/** Signal Forms: gates `invalid` until the bound field is touched or dirty. */
|
|
1512
|
+
private readonly fieldTouched;
|
|
1419
1513
|
protected readonly i18n: _mk_kit_ui_core.MkI18nStrings;
|
|
1420
1514
|
private readonly inputRef;
|
|
1421
1515
|
/** Two-way value. */
|
|
@@ -1522,6 +1616,8 @@ type MkTransferSide = 'available' | 'selected';
|
|
|
1522
1616
|
declare class MkTransferList implements ControlValueAccessor {
|
|
1523
1617
|
private readonly host;
|
|
1524
1618
|
private readonly field;
|
|
1619
|
+
/** Signal Forms: gates `invalid` until the bound field is touched or dirty. */
|
|
1620
|
+
private readonly fieldTouched;
|
|
1525
1621
|
protected readonly i18n: _mk_kit_ui_core.MkI18nStrings;
|
|
1526
1622
|
private readonly announcer;
|
|
1527
1623
|
private readonly injector;
|
|
@@ -1681,10 +1777,12 @@ declare class MkRepeaterEmpty {
|
|
|
1681
1777
|
*
|
|
1682
1778
|
* With `reorderable`, each row gets a drag handle wired through the dnd
|
|
1683
1779
|
* module's touch-safe handle-based configuration (a swipe on the row body
|
|
1684
|
-
* still scrolls the page).
|
|
1685
|
-
*
|
|
1686
|
-
*
|
|
1687
|
-
*
|
|
1780
|
+
* still scrolls the page). The handle button is the only control the dnd
|
|
1781
|
+
* layer adds — rows stay plain list items, so the inputs and buttons inside
|
|
1782
|
+
* them are never nested in an interactive role. Reordering also works by
|
|
1783
|
+
* keyboard: focus the handle and press Space/Enter to pick up, arrows to
|
|
1784
|
+
* move, Space/Enter to drop, Escape to cancel. Each completed reorder is
|
|
1785
|
+
* announced via {@link MkLiveAnnouncer}.
|
|
1688
1786
|
*
|
|
1689
1787
|
* ```html
|
|
1690
1788
|
* <mk-repeater [(items)]="rows" [min]="1" [max]="10" reorderable
|
|
@@ -1783,6 +1881,8 @@ declare class MkRepeater<T = unknown> implements ControlValueAccessor {
|
|
|
1783
1881
|
*/
|
|
1784
1882
|
declare class MkTreeSelect implements ControlValueAccessor {
|
|
1785
1883
|
private readonly field;
|
|
1884
|
+
/** Signal Forms: gates `invalid` until the bound field is touched or dirty. */
|
|
1885
|
+
private readonly fieldTouched;
|
|
1786
1886
|
protected readonly i18n: _mk_kit_ui_core.MkI18nStrings;
|
|
1787
1887
|
private readonly host;
|
|
1788
1888
|
private readonly injector;
|
|
@@ -2098,6 +2198,8 @@ declare class MkCodeEditor implements ControlValueAccessor, OnDestroy {
|
|
|
2098
2198
|
protected readonly describedBy: _angular_core.Signal<string | null>;
|
|
2099
2199
|
/** Parse error for JSON content, or `null` when valid / empty / plaintext. */
|
|
2100
2200
|
protected readonly jsonError: _angular_core.Signal<string | null>;
|
|
2201
|
+
/** Signal Forms: gates `invalid` until the bound field is touched or dirty. */
|
|
2202
|
+
private readonly fieldTouched;
|
|
2101
2203
|
protected readonly isInvalid: _angular_core.Signal<boolean>;
|
|
2102
2204
|
/** `aria-describedby` merging the field's ids with the JSON error id. */
|
|
2103
2205
|
protected readonly ariaDescribedBy: _angular_core.Signal<string | null>;
|
|
@@ -2154,6 +2256,8 @@ declare class MkCodeEditor implements ControlValueAccessor, OnDestroy {
|
|
|
2154
2256
|
*/
|
|
2155
2257
|
declare class MkRating implements ControlValueAccessor, Validator {
|
|
2156
2258
|
private readonly field;
|
|
2259
|
+
/** Signal Forms: gates `invalid` until the bound field is touched or dirty. */
|
|
2260
|
+
private readonly fieldTouched;
|
|
2157
2261
|
protected readonly i18n: _mk_kit_ui_core.MkI18nStrings;
|
|
2158
2262
|
/** Number of stars. */
|
|
2159
2263
|
readonly max: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
@@ -2220,14 +2324,16 @@ declare class MkRating implements ControlValueAccessor, Validator {
|
|
|
2220
2324
|
*/
|
|
2221
2325
|
declare class MkNumberInput implements ControlValueAccessor, Validator {
|
|
2222
2326
|
private readonly field;
|
|
2327
|
+
/** Signal Forms: gates `invalid` until the bound field is touched or dirty. */
|
|
2328
|
+
private readonly fieldTouched;
|
|
2223
2329
|
protected readonly i18n: _mk_kit_ui_core.MkI18nStrings;
|
|
2224
2330
|
private readonly inputRef;
|
|
2225
2331
|
/** Minimum value. */
|
|
2226
2332
|
/** Accessible name when the control is used without an `mk-form-field` label. */
|
|
2227
2333
|
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
2228
|
-
readonly min: _angular_core.
|
|
2334
|
+
readonly min: _angular_core.InputSignalWithTransform<number | null, number | null | undefined>;
|
|
2229
2335
|
/** Maximum value. */
|
|
2230
|
-
readonly max: _angular_core.
|
|
2336
|
+
readonly max: _angular_core.InputSignalWithTransform<number | null, number | null | undefined>;
|
|
2231
2337
|
/** Step increment for buttons + Arrow keys. */
|
|
2232
2338
|
readonly step: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
2233
2339
|
/** Two-way value. */
|
|
@@ -2238,6 +2344,8 @@ declare class MkNumberInput implements ControlValueAccessor, Validator {
|
|
|
2238
2344
|
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
2239
2345
|
/** Force invalid styling when standalone. */
|
|
2240
2346
|
readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
2347
|
+
/** Mark required (adds `aria-required`). Set by Signal Forms' `[formField]` from the schema. */
|
|
2348
|
+
readonly required: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
2241
2349
|
/** Control size. Ignored inside an `mk-form-field`. */
|
|
2242
2350
|
readonly size: _angular_core.InputSignal<MkSize>;
|
|
2243
2351
|
protected readonly inputId: string;
|
|
@@ -2272,7 +2380,7 @@ declare class MkNumberInput implements ControlValueAccessor, Validator {
|
|
|
2272
2380
|
validate(control: AbstractControl): ValidationErrors | null;
|
|
2273
2381
|
registerOnValidatorChange(fn: () => void): void;
|
|
2274
2382
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MkNumberInput, never>;
|
|
2275
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MkNumberInput, "mk-number-input", never, { "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
|
|
2383
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MkNumberInput, "mk-number-input", never, { "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
|
|
2276
2384
|
}
|
|
2277
2385
|
|
|
2278
2386
|
type MkNumericKeypadMode = 'pin' | 'quantity' | 'amount';
|
|
@@ -2312,9 +2420,9 @@ declare class MkNumericKeypad implements ControlValueAccessor, Validator {
|
|
|
2312
2420
|
/** PIN length (`pin` mode only). Reaching it emits `submit`. */
|
|
2313
2421
|
readonly length: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
2314
2422
|
/** Lower bound reported through the validator (`quantity`/`amount`). */
|
|
2315
|
-
readonly min: _angular_core.
|
|
2423
|
+
readonly min: _angular_core.InputSignalWithTransform<number | null, number | null | undefined>;
|
|
2316
2424
|
/** Upper bound reported through the validator (`quantity`/`amount`). */
|
|
2317
|
-
readonly max: _angular_core.
|
|
2425
|
+
readonly max: _angular_core.InputSignalWithTransform<number | null, number | null | undefined>;
|
|
2318
2426
|
/** Mask the echo row in `pin` mode. Default `true`. */
|
|
2319
2427
|
readonly mask: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
2320
2428
|
/** Show the echo row above the keys. Default `true`. */
|
|
@@ -2506,6 +2614,8 @@ declare class MkOnScreenKeyboardTrigger {
|
|
|
2506
2614
|
*/
|
|
2507
2615
|
declare class MkOtp implements ControlValueAccessor, Validator {
|
|
2508
2616
|
private readonly field;
|
|
2617
|
+
/** Signal Forms: gates `invalid` until the bound field is touched or dirty. */
|
|
2618
|
+
private readonly fieldTouched;
|
|
2509
2619
|
protected readonly i18n: _mk_kit_ui_core.MkI18nStrings;
|
|
2510
2620
|
private readonly cells;
|
|
2511
2621
|
/** Number of character boxes. */
|
|
@@ -2632,6 +2742,8 @@ interface CountryOption {
|
|
|
2632
2742
|
*/
|
|
2633
2743
|
declare class MkPhoneInput implements ControlValueAccessor {
|
|
2634
2744
|
private readonly field;
|
|
2745
|
+
/** Signal Forms: gates `invalid` until the bound field is touched or dirty. */
|
|
2746
|
+
private readonly fieldTouched;
|
|
2635
2747
|
/** Localised strings (override globally via `provideMkI18n`). */
|
|
2636
2748
|
protected readonly i18n: _mk_kit_ui_core.MkI18nStrings;
|
|
2637
2749
|
private readonly triggerRef;
|
|
@@ -2773,6 +2885,8 @@ declare function mkPostalCodeValidator(country: string, formats?: readonly MkPos
|
|
|
2773
2885
|
*/
|
|
2774
2886
|
declare class MkPostalCodeInput implements ControlValueAccessor, Validator {
|
|
2775
2887
|
private readonly field;
|
|
2888
|
+
/** Signal Forms: gates `invalid` until the bound field is touched or dirty. */
|
|
2889
|
+
private readonly fieldTouched;
|
|
2776
2890
|
/** Localised strings (override globally via `provideMkI18n`). */
|
|
2777
2891
|
protected readonly i18n: _mk_kit_ui_core.MkI18nStrings;
|
|
2778
2892
|
/** ISO 3166-1 alpha-2 country whose format applies. */
|
|
@@ -2865,6 +2979,8 @@ interface LocaleInfo {
|
|
|
2865
2979
|
*/
|
|
2866
2980
|
declare class MkCurrencyInput implements ControlValueAccessor, Validator {
|
|
2867
2981
|
private readonly field;
|
|
2982
|
+
/** Signal Forms: gates `invalid` until the bound field is touched or dirty. */
|
|
2983
|
+
private readonly fieldTouched;
|
|
2868
2984
|
/** Localised strings (override globally via `provideMkI18n`). */
|
|
2869
2985
|
protected readonly i18n: _mk_kit_ui_core.MkI18nStrings;
|
|
2870
2986
|
/** ISO 4217 currency code (`PLN`, `USD`, …). Empty = plain decimal. */
|
|
@@ -2876,9 +2992,9 @@ declare class MkCurrencyInput implements ControlValueAccessor, Validator {
|
|
|
2876
2992
|
/** Max fraction digits; defaults to the currency's convention (else 2). */
|
|
2877
2993
|
readonly decimals: _angular_core.InputSignal<number | null>;
|
|
2878
2994
|
/** Clamp the value to at least this on blur. */
|
|
2879
|
-
readonly min: _angular_core.
|
|
2995
|
+
readonly min: _angular_core.InputSignalWithTransform<number | null, number | null | undefined>;
|
|
2880
2996
|
/** Clamp the value to at most this on blur. */
|
|
2881
|
-
readonly max: _angular_core.
|
|
2997
|
+
readonly max: _angular_core.InputSignalWithTransform<number | null, number | null | undefined>;
|
|
2882
2998
|
/** Allow a leading minus sign. */
|
|
2883
2999
|
readonly allowNegative: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
2884
3000
|
/** Control size. Ignored when nested in an `mk-form-field`. */
|
|
@@ -2967,6 +3083,8 @@ declare function mkLuhnCheck(digits: string): boolean;
|
|
|
2967
3083
|
*/
|
|
2968
3084
|
declare class MkCardNumberInput implements ControlValueAccessor, Validator {
|
|
2969
3085
|
private readonly field;
|
|
3086
|
+
/** Signal Forms: gates `invalid` until the bound field is touched or dirty. */
|
|
3087
|
+
private readonly fieldTouched;
|
|
2970
3088
|
/** Localised strings (override globally via `provideMkI18n`). */
|
|
2971
3089
|
protected readonly i18n: _mk_kit_ui_core.MkI18nStrings;
|
|
2972
3090
|
/** Show the detected brand as a badge inside the field. */
|
|
@@ -3066,6 +3184,8 @@ declare function mkIbanValidator(): ValidatorFn;
|
|
|
3066
3184
|
*/
|
|
3067
3185
|
declare class MkIbanInput implements ControlValueAccessor, Validator {
|
|
3068
3186
|
private readonly field;
|
|
3187
|
+
/** Signal Forms: gates `invalid` until the bound field is touched or dirty. */
|
|
3188
|
+
private readonly fieldTouched;
|
|
3069
3189
|
/** Localised strings (override globally via `provideMkI18n`). */
|
|
3070
3190
|
protected readonly i18n: _mk_kit_ui_core.MkI18nStrings;
|
|
3071
3191
|
/** Control size. Ignored when nested in an `mk-form-field`. */
|
|
@@ -3193,6 +3313,8 @@ declare function mkTaxIdValidator(country: string): ValidatorFn;
|
|
|
3193
3313
|
*/
|
|
3194
3314
|
declare class MkTaxIdInput implements ControlValueAccessor, Validator {
|
|
3195
3315
|
private readonly field;
|
|
3316
|
+
/** Signal Forms: gates `invalid` until the bound field is touched or dirty. */
|
|
3317
|
+
private readonly fieldTouched;
|
|
3196
3318
|
/** Localised strings (override globally via `provideMkI18n`). */
|
|
3197
3319
|
protected readonly i18n: _mk_kit_ui_core.MkI18nStrings;
|
|
3198
3320
|
/** ISO 3166-1 alpha-2 country whose format applies. */
|
|
@@ -3275,6 +3397,8 @@ declare class MkTaxIdInput implements ControlValueAccessor, Validator {
|
|
|
3275
3397
|
declare class MkSignaturePad implements ControlValueAccessor, OnDestroy {
|
|
3276
3398
|
private readonly host;
|
|
3277
3399
|
private readonly field;
|
|
3400
|
+
/** Signal Forms: gates `invalid` until the bound field is touched or dirty. */
|
|
3401
|
+
private readonly fieldTouched;
|
|
3278
3402
|
private readonly isBrowser;
|
|
3279
3403
|
/** Localised strings (override globally via `provideMkI18n`). */
|
|
3280
3404
|
protected readonly i18n: _mk_kit_ui_core.MkI18nStrings;
|
|
@@ -3420,6 +3544,8 @@ declare class MkButtonToggleGroup implements ControlValueAccessor {
|
|
|
3420
3544
|
private readonly host;
|
|
3421
3545
|
/** Optional surrounding form field — supplies label/hint/error wiring. */
|
|
3422
3546
|
private readonly field;
|
|
3547
|
+
/** Signal Forms: gates `invalid` until the bound field is touched or dirty. */
|
|
3548
|
+
private readonly fieldTouched;
|
|
3423
3549
|
/** Live list of projected toggle items, in DOM order. */
|
|
3424
3550
|
readonly toggles: _angular_core.Signal<readonly MkButtonToggle[]>;
|
|
3425
3551
|
/** Allow selecting any number of items (toolbar of `aria-pressed` buttons). */
|
|
@@ -3524,6 +3650,8 @@ declare class MkRadio implements OnInit, OnDestroy {
|
|
|
3524
3650
|
declare class MkRadioGroup implements ControlValueAccessor, Validator {
|
|
3525
3651
|
private readonly host;
|
|
3526
3652
|
private readonly field;
|
|
3653
|
+
/** Signal Forms: gates `invalid` until the bound field is touched or dirty. */
|
|
3654
|
+
private readonly fieldTouched;
|
|
3527
3655
|
/** Two-way selected value. */
|
|
3528
3656
|
readonly value: _angular_core.ModelSignal<unknown>;
|
|
3529
3657
|
/** Disable the whole group. */
|
|
@@ -3595,12 +3723,16 @@ declare class MkRadioGroup implements ControlValueAccessor, Validator {
|
|
|
3595
3723
|
*/
|
|
3596
3724
|
declare class MkSwitch implements ControlValueAccessor {
|
|
3597
3725
|
private readonly field;
|
|
3726
|
+
/** Signal Forms: gates `invalid` until the bound field is touched or dirty. */
|
|
3727
|
+
private readonly fieldTouched;
|
|
3598
3728
|
/** Two-way checked (on/off) state. */
|
|
3599
3729
|
readonly checked: _angular_core.ModelSignal<boolean>;
|
|
3600
3730
|
/** Disable the control. */
|
|
3601
3731
|
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
3602
3732
|
/** Force the invalid visual + `aria-invalid` when used standalone. */
|
|
3603
3733
|
readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
3734
|
+
/** Mark required (adds `aria-required`). Set by Signal Forms' `[formField]` from the schema. */
|
|
3735
|
+
readonly required: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
3604
3736
|
/** Control size. */
|
|
3605
3737
|
readonly size: _angular_core.InputSignal<MkSize>;
|
|
3606
3738
|
/** Semantic color tone for the "on" track. */
|
|
@@ -3623,7 +3755,7 @@ declare class MkSwitch implements ControlValueAccessor {
|
|
|
3623
3755
|
registerOnTouched(fn: () => void): void;
|
|
3624
3756
|
setDisabledState(isDisabled: boolean): void;
|
|
3625
3757
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MkSwitch, never>;
|
|
3626
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MkSwitch, "mk-switch", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "tone": { "alias": "tone"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; }, never, ["*"], true, never>;
|
|
3758
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MkSwitch, "mk-switch", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "tone": { "alias": "tone"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; }, never, ["*"], true, never>;
|
|
3627
3759
|
}
|
|
3628
3760
|
|
|
3629
3761
|
/**
|
|
@@ -3640,6 +3772,8 @@ declare class MkSwitch implements ControlValueAccessor {
|
|
|
3640
3772
|
*/
|
|
3641
3773
|
declare class MkSlider implements ControlValueAccessor, Validator, OnDestroy {
|
|
3642
3774
|
private readonly field;
|
|
3775
|
+
/** Signal Forms: gates `invalid` until the bound field is touched or dirty. */
|
|
3776
|
+
private readonly fieldTouched;
|
|
3643
3777
|
private readonly trackRef;
|
|
3644
3778
|
private readonly thumbRef;
|
|
3645
3779
|
/** Minimum value. */
|
|
@@ -3652,6 +3786,8 @@ declare class MkSlider implements ControlValueAccessor, Validator, OnDestroy {
|
|
|
3652
3786
|
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
3653
3787
|
/** Force the invalid visual + `aria-invalid` when used standalone. */
|
|
3654
3788
|
readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
3789
|
+
/** Mark required (adds `aria-required`). Set by Signal Forms' `[formField]` from the schema. */
|
|
3790
|
+
readonly required: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
3655
3791
|
/** Control size (track/thumb thickness). */
|
|
3656
3792
|
readonly size: _angular_core.InputSignal<MkSize>;
|
|
3657
3793
|
/** Semantic color tone for the filled track + thumb. */
|
|
@@ -3705,7 +3841,7 @@ declare class MkSlider implements ControlValueAccessor, Validator, OnDestroy {
|
|
|
3705
3841
|
validate(control: AbstractControl): ValidationErrors | null;
|
|
3706
3842
|
registerOnValidatorChange(fn: () => void): void;
|
|
3707
3843
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MkSlider, never>;
|
|
3708
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MkSlider, "mk-slider", never, { "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "tone": { "alias": "tone"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
|
|
3844
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MkSlider, "mk-slider", never, { "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "tone": { "alias": "tone"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
|
|
3709
3845
|
}
|
|
3710
3846
|
|
|
3711
3847
|
/**
|
|
@@ -3719,6 +3855,8 @@ declare class MkSlider implements ControlValueAccessor, Validator, OnDestroy {
|
|
|
3719
3855
|
*/
|
|
3720
3856
|
declare class MkColorPicker implements ControlValueAccessor {
|
|
3721
3857
|
private readonly field;
|
|
3858
|
+
/** Signal Forms: gates `invalid` until the bound field is touched or dirty. */
|
|
3859
|
+
private readonly fieldTouched;
|
|
3722
3860
|
protected readonly i18n: _mk_kit_ui_core.MkI18nStrings;
|
|
3723
3861
|
private readonly nativeRef;
|
|
3724
3862
|
/** Two-way hex color value. */
|
|
@@ -3778,6 +3916,8 @@ type MkRange = [number, number];
|
|
|
3778
3916
|
declare class MkRangeSlider implements ControlValueAccessor, Validator, OnDestroy {
|
|
3779
3917
|
private readonly host;
|
|
3780
3918
|
private readonly field;
|
|
3919
|
+
/** Signal Forms: gates `invalid` until the bound field is touched or dirty. */
|
|
3920
|
+
private readonly fieldTouched;
|
|
3781
3921
|
protected readonly i18n: _mk_kit_ui_core.MkI18nStrings;
|
|
3782
3922
|
private readonly trackRef;
|
|
3783
3923
|
private readonly thumbRefs;
|