@ng-forge/dynamic-forms-ionic 0.9.0-next.1 → 0.9.0-next.11

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ng-forge/dynamic-forms-ionic",
3
- "version": "0.9.0-next.1",
3
+ "version": "0.9.0-next.11",
4
4
  "description": "Ionic integration for @ng-forge/dynamic-forms. Pre-built Ionic form components for mobile and desktop.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -33,7 +33,7 @@
33
33
  "@angular/core": "~21.2.0",
34
34
  "@angular/forms": "~21.2.0",
35
35
  "@ionic/angular": ">=7.0.0",
36
- "@ng-forge/dynamic-forms": "~0.9.0-next.1",
36
+ "@ng-forge/dynamic-forms": "~0.9.0-next.11",
37
37
  "rxjs": ">=7.0.0"
38
38
  },
39
39
  "dependencies": {
@@ -1,9 +1,8 @@
1
- import { FormEvent, NextPageEvent, PreviousPageEvent, AppendArrayItemEvent, ArrayAllowedChildren, PrependArrayItemEvent, InsertArrayItemEvent, RemoveAtIndexEvent, PopArrayItemEvent, ShiftArrayItemEvent, FieldComponent, DynamicText, FormEventConstructor, ArrayItemContext, CheckedFieldComponent, FieldMeta, ValidationMessages, ValueFieldComponent, ValueType, FieldOption, FieldTypeDefinition, NarrowFields, RegisteredFieldTypes, InferFormValue, FormConfig } from '@ng-forge/dynamic-forms';
2
- import * as _ng_forge_dynamic_forms_integration from '@ng-forge/dynamic-forms/integration';
3
- import { ButtonField, EventArgs, CheckboxField, DatepickerField, DatepickerProps, InputMeta, InputField, InputProps, MultiCheckboxField, RadioField, SelectField, SelectProps, SliderField, TextareaField, TextareaProps, TextareaMeta, ToggleField } from '@ng-forge/dynamic-forms/integration';
1
+ import { FormEvent, NextPageEvent, PreviousPageEvent, AppendArrayItemEvent, ArrayAllowedChildren, PrependArrayItemEvent, InsertArrayItemEvent, RemoveAtIndexEvent, PopArrayItemEvent, ShiftArrayItemEvent, DynamicText, CheckedFieldComponent, ValueFieldComponent, ValueType, FieldOption, FieldTypeDefinition, NarrowFields, RegisteredFieldTypes, InferFormValue, FormConfig } from '@ng-forge/dynamic-forms';
2
+ import * as i1 from '@ng-forge/dynamic-forms/integration';
3
+ import { ButtonField, CheckboxField, DatepickerField, DatepickerProps, InputField, InputProps, MultiCheckboxField, RadioField, SelectField, SelectProps, SliderField, TextareaField, TextareaProps, ToggleField } from '@ng-forge/dynamic-forms/integration';
4
4
  import * as _angular_core from '@angular/core';
5
5
  import { InjectionToken, Provider } from '@angular/core';
6
- import { FieldTree } from '@angular/forms/signals';
7
6
 
8
7
  interface IonicButtonProps {
9
8
  expand?: 'full' | 'block';
@@ -15,7 +14,6 @@ interface IonicButtonProps {
15
14
  type?: 'button' | 'submit' | 'reset';
16
15
  }
17
16
  type IonicButtonField<TEvent extends FormEvent> = ButtonField<IonicButtonProps, TEvent>;
18
- type IonicButtonComponent<TEvent extends FormEvent> = FieldComponent<IonicButtonField<TEvent>>;
19
17
  /**
20
18
  * Specific button field types with preconfigured events
21
19
  */
@@ -112,32 +110,14 @@ type ShiftArrayItemButtonField = Omit<IonicButtonField<ShiftArrayItemEvent>, 'ev
112
110
  arrayKey: string;
113
111
  };
114
112
 
115
- declare class IonicButtonFieldComponent<TEvent extends FormEvent> implements IonicButtonComponent<TEvent> {
116
- private readonly eventBus;
117
- private readonly arrayContext;
118
- readonly key: _angular_core.InputSignal<string>;
119
- readonly label: _angular_core.InputSignal<DynamicText>;
120
- readonly disabled: _angular_core.InputSignal<boolean>;
121
- readonly hidden: _angular_core.InputSignal<boolean>;
122
- readonly tabIndex: _angular_core.InputSignal<number | undefined>;
123
- readonly className: _angular_core.InputSignal<string>;
124
- /** Event to dispatch on click. Optional for submit buttons (native form submit handles it). */
125
- readonly event: _angular_core.InputSignal<FormEventConstructor<TEvent> | undefined>;
126
- readonly eventArgs: _angular_core.InputSignal<EventArgs | undefined>;
113
+ declare class IonicButtonFieldComponent<TEvent extends FormEvent> {
114
+ protected readonly action: i1.NgForgeAction<TEvent>;
127
115
  readonly props: _angular_core.InputSignal<IonicButtonProps | undefined>;
128
- readonly eventContext: _angular_core.InputSignal<ArrayItemContext | undefined>;
129
- /** Resolved button type - defaults to 'button' if not specified in props */
130
116
  readonly buttonType: _angular_core.Signal<"button" | "submit" | "reset">;
131
117
  readonly buttonTestId: _angular_core.Signal<string>;
132
- /**
133
- * Handle button click.
134
- * - For submit buttons (type="submit"): do nothing, native form submit handles it
135
- * - For other buttons: dispatch the configured event via EventBus
136
- */
137
118
  onClick(): void;
138
- private dispatchEvent;
139
119
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<IonicButtonFieldComponent<any>, never>;
140
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<IonicButtonFieldComponent<any>, "df-ion-button", never, { "key": { "alias": "key"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "hidden": { "alias": "hidden"; "required": false; "isSignal": true; }; "tabIndex": { "alias": "tabIndex"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "event": { "alias": "event"; "required": false; "isSignal": true; }; "eventArgs": { "alias": "eventArgs"; "required": false; "isSignal": true; }; "props": { "alias": "props"; "required": false; "isSignal": true; }; "eventContext": { "alias": "eventContext"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
120
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<IonicButtonFieldComponent<any>, "df-ion-button", never, { "props": { "alias": "props"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgForgeActionHost; inputs: {}; outputs: {}; }]>;
141
121
  }
142
122
 
143
123
  interface IonicCheckboxProps {
@@ -148,36 +128,14 @@ interface IonicCheckboxProps {
148
128
  hint?: DynamicText;
149
129
  }
150
130
  type IonicCheckboxField = CheckboxField<IonicCheckboxProps>;
131
+ /** @deprecated Scheduled for removal in v1. Use `injectNgForgeField<T>()` for typed access to a field component's directive instance. */
151
132
  type IonicCheckboxComponent = CheckedFieldComponent<IonicCheckboxField>;
152
133
 
153
- declare class IonicCheckboxFieldComponent implements IonicCheckboxComponent {
154
- private readonly elementRef;
155
- readonly field: _angular_core.InputSignal<FieldTree<boolean>>;
156
- readonly key: _angular_core.InputSignal<string>;
157
- readonly label: _angular_core.InputSignal<DynamicText | undefined>;
158
- readonly placeholder: _angular_core.InputSignal<DynamicText | undefined>;
159
- readonly className: _angular_core.InputSignal<string>;
160
- readonly tabIndex: _angular_core.InputSignal<number | undefined>;
134
+ declare class IonicCheckboxFieldComponent {
135
+ protected readonly ngf: i1.TypedNgForgeField<boolean>;
161
136
  readonly props: _angular_core.InputSignal<IonicCheckboxProps | undefined>;
162
- readonly meta: _angular_core.InputSignal<FieldMeta | undefined>;
163
- readonly validationMessages: _angular_core.InputSignal<ValidationMessages | undefined>;
164
- readonly defaultValidationMessages: _angular_core.InputSignal<ValidationMessages | undefined>;
165
- readonly resolvedErrors: _angular_core.Signal<_ng_forge_dynamic_forms_integration.ResolvedError[]>;
166
- readonly showErrors: _angular_core.Signal<boolean>;
167
- readonly errorsToDisplay: _angular_core.Signal<_ng_forge_dynamic_forms_integration.ResolvedError[]>;
168
- constructor();
169
- /** Base ID for error elements */
170
- protected readonly errorId: _angular_core.Signal<string>;
171
- /** Unique ID for the helper text element */
172
- protected readonly hintId: _angular_core.Signal<string>;
173
- /** Whether the field is currently in an invalid state (invalid AND touched) */
174
- protected readonly ariaInvalid: _angular_core.Signal<boolean>;
175
- /** Whether the field has a required validator */
176
- protected readonly ariaRequired: _angular_core.Signal<true | null>;
177
- /** aria-describedby linking to hint OR error elements (mutually exclusive) */
178
- protected readonly ariaDescribedBy: _angular_core.Signal<string | null>;
179
137
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<IonicCheckboxFieldComponent, never>;
180
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<IonicCheckboxFieldComponent, "df-ion-checkbox", never, { "field": { "alias": "field"; "required": true; "isSignal": true; }; "key": { "alias": "key"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "tabIndex": { "alias": "tabIndex"; "required": false; "isSignal": true; }; "props": { "alias": "props"; "required": false; "isSignal": true; }; "meta": { "alias": "meta"; "required": false; "isSignal": true; }; "validationMessages": { "alias": "validationMessages"; "required": false; "isSignal": true; }; "defaultValidationMessages": { "alias": "defaultValidationMessages"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
138
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<IonicCheckboxFieldComponent, "df-ion-checkbox", never, { "props": { "alias": "props"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgForgeFieldHost; inputs: {}; outputs: {}; }]>;
181
139
  }
182
140
 
183
141
  interface IonicDatepickerProps extends DatepickerProps {
@@ -195,45 +153,23 @@ interface IonicDatepickerProps extends DatepickerProps {
195
153
  hint?: DynamicText;
196
154
  }
197
155
  type IonicDatepickerField = DatepickerField<IonicDatepickerProps>;
156
+ /** @deprecated Scheduled for removal in v1. Use `injectNgForgeField<T>()` for typed access to a field component's directive instance. */
198
157
  type IonicDatepickerComponent = ValueFieldComponent<IonicDatepickerField>;
199
158
 
200
- declare class IonicDatepickerFieldComponent implements IonicDatepickerComponent {
201
- private readonly elementRef;
202
- readonly field: _angular_core.InputSignal<FieldTree<Date | null>>;
203
- readonly key: _angular_core.InputSignal<string>;
204
- readonly label: _angular_core.InputSignal<DynamicText | undefined>;
205
- readonly placeholder: _angular_core.InputSignal<DynamicText | undefined>;
206
- readonly className: _angular_core.InputSignal<string>;
207
- readonly tabIndex: _angular_core.InputSignal<number | undefined>;
159
+ declare class IonicDatepickerFieldComponent {
160
+ protected readonly ngf: i1.TypedNgForgeField<Date | null>;
208
161
  readonly minDate: _angular_core.InputSignal<Date | null>;
209
162
  readonly maxDate: _angular_core.InputSignal<Date | null>;
210
163
  readonly startAt: _angular_core.InputSignal<Date | null>;
211
164
  readonly props: _angular_core.InputSignal<IonicDatepickerProps | undefined>;
212
- readonly meta: _angular_core.InputSignal<InputMeta | undefined>;
213
- readonly validationMessages: _angular_core.InputSignal<ValidationMessages | undefined>;
214
- readonly defaultValidationMessages: _angular_core.InputSignal<ValidationMessages | undefined>;
215
- readonly resolvedErrors: _angular_core.Signal<_ng_forge_dynamic_forms_integration.ResolvedError[]>;
216
- readonly showErrors: _angular_core.Signal<boolean>;
217
- readonly errorsToDisplay: _angular_core.Signal<_ng_forge_dynamic_forms_integration.ResolvedError[]>;
218
165
  readonly isModalOpen: _angular_core.WritableSignal<boolean>;
219
- constructor();
220
- /** Base ID for error elements */
221
- protected readonly errorId: _angular_core.Signal<string>;
222
- /** Unique ID for the helper text element */
223
- protected readonly hintId: _angular_core.Signal<string>;
224
- /** Whether the field is currently in an invalid state (invalid AND touched) */
225
- protected readonly ariaInvalid: _angular_core.Signal<boolean>;
226
- /** Whether the field has a required validator */
227
- protected readonly ariaRequired: _angular_core.Signal<true | null>;
228
- /** aria-describedby linking to hint OR error elements (mutually exclusive) */
229
- protected readonly ariaDescribedBy: _angular_core.Signal<string | null>;
230
166
  openModal(): void;
231
167
  closeModal(): void;
232
168
  onDateChange(event: CustomEvent): void;
233
169
  dateToIsoString(date: Date | null | undefined): string | undefined;
234
170
  formatDisplayDate(date: Date | null | undefined): string;
235
171
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<IonicDatepickerFieldComponent, never>;
236
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<IonicDatepickerFieldComponent, "df-ion-datepicker", never, { "field": { "alias": "field"; "required": true; "isSignal": true; }; "key": { "alias": "key"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "tabIndex": { "alias": "tabIndex"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "startAt": { "alias": "startAt"; "required": false; "isSignal": true; }; "props": { "alias": "props"; "required": false; "isSignal": true; }; "meta": { "alias": "meta"; "required": false; "isSignal": true; }; "validationMessages": { "alias": "validationMessages"; "required": false; "isSignal": true; }; "defaultValidationMessages": { "alias": "defaultValidationMessages"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
172
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<IonicDatepickerFieldComponent, "df-ion-datepicker", never, { "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "startAt": { "alias": "startAt"; "required": false; "isSignal": true; }; "props": { "alias": "props"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgForgeFieldHost; inputs: {}; outputs: {}; }]>;
237
173
  }
238
174
 
239
175
  interface IonicInputProps extends InputProps {
@@ -247,41 +183,21 @@ interface IonicInputProps extends InputProps {
247
183
  clearInput?: boolean;
248
184
  }
249
185
  type IonicInputField = InputField<IonicInputProps>;
186
+ /** @deprecated Scheduled for removal in v1. Use `injectNgForgeField<T>()` for typed access to a field component's directive instance. */
250
187
  type IonicInputComponent = ValueFieldComponent<IonicInputField>;
251
188
 
252
- declare class IonicInputFieldComponent implements IonicInputComponent {
189
+ declare class IonicInputFieldComponent {
253
190
  private readonly elementRef;
254
191
  private ionicConfig;
255
- readonly field: _angular_core.InputSignal<FieldTree<string>>;
256
- readonly key: _angular_core.InputSignal<string>;
257
- readonly label: _angular_core.InputSignal<DynamicText | undefined>;
258
- readonly placeholder: _angular_core.InputSignal<DynamicText | undefined>;
259
- readonly className: _angular_core.InputSignal<string>;
260
- readonly tabIndex: _angular_core.InputSignal<number | undefined>;
192
+ protected readonly ngf: i1.TypedNgForgeField<string>;
261
193
  readonly props: _angular_core.InputSignal<IonicInputProps | undefined>;
262
- readonly meta: _angular_core.InputSignal<InputMeta | undefined>;
263
- readonly validationMessages: _angular_core.InputSignal<ValidationMessages | undefined>;
264
- readonly defaultValidationMessages: _angular_core.InputSignal<ValidationMessages | undefined>;
265
- readonly effectiveFill: _angular_core.Signal<"outline" | "solid">;
266
- readonly effectiveShape: _angular_core.Signal<"round" | undefined>;
267
- readonly effectiveLabelPlacement: _angular_core.Signal<"start" | "end" | "fixed" | "stacked" | "floating">;
268
- readonly effectiveColor: _angular_core.Signal<"primary" | "secondary" | "tertiary" | "success" | "warning" | "danger" | "light" | "medium" | "dark" | undefined>;
269
- readonly resolvedErrors: _angular_core.Signal<_ng_forge_dynamic_forms_integration.ResolvedError[]>;
270
- readonly showErrors: _angular_core.Signal<boolean>;
271
- readonly errorsToDisplay: _angular_core.Signal<_ng_forge_dynamic_forms_integration.ResolvedError[]>;
194
+ protected readonly fill: _angular_core.Signal<"outline" | "solid">;
195
+ protected readonly shape: _angular_core.Signal<"round" | undefined>;
196
+ protected readonly labelPlacement: _angular_core.Signal<"start" | "end" | "fixed" | "stacked" | "floating">;
197
+ protected readonly color: _angular_core.Signal<"primary" | "secondary" | "tertiary" | "success" | "warning" | "danger" | "light" | "medium" | "dark" | undefined>;
272
198
  constructor();
273
- /** Base ID for error elements */
274
- protected readonly errorId: _angular_core.Signal<string>;
275
- /** Unique ID for the helper text element */
276
- protected readonly hintId: _angular_core.Signal<string>;
277
- /** Whether the field is currently in an invalid state (invalid AND touched) */
278
- protected readonly ariaInvalid: _angular_core.Signal<boolean>;
279
- /** Whether the field has a required validator */
280
- protected readonly ariaRequired: _angular_core.Signal<true | null>;
281
- /** aria-describedby linking to hint OR error elements (mutually exclusive) */
282
- protected readonly ariaDescribedBy: _angular_core.Signal<string | null>;
283
199
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<IonicInputFieldComponent, never>;
284
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<IonicInputFieldComponent, "df-ion-input", never, { "field": { "alias": "field"; "required": true; "isSignal": true; }; "key": { "alias": "key"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "tabIndex": { "alias": "tabIndex"; "required": false; "isSignal": true; }; "props": { "alias": "props"; "required": false; "isSignal": true; }; "meta": { "alias": "meta"; "required": false; "isSignal": true; }; "validationMessages": { "alias": "validationMessages"; "required": false; "isSignal": true; }; "defaultValidationMessages": { "alias": "defaultValidationMessages"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
200
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<IonicInputFieldComponent, "df-ion-input", never, { "props": { "alias": "props"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgForgeFieldHost; inputs: {}; outputs: {}; }]>;
285
201
  }
286
202
 
287
203
  interface IonicMultiCheckboxProps {
@@ -291,41 +207,20 @@ interface IonicMultiCheckboxProps {
291
207
  hint?: DynamicText;
292
208
  }
293
209
  type IonicMultiCheckboxField<T> = MultiCheckboxField<T, IonicMultiCheckboxProps>;
210
+ /** @deprecated Scheduled for removal in v1. Use `injectNgForgeField<T>()` for typed access to a field component's directive instance. */
294
211
  type IonicMultiCheckboxComponent = ValueFieldComponent<IonicMultiCheckboxField<ValueType>>;
295
212
 
296
- declare class IonicMultiCheckboxFieldComponent implements IonicMultiCheckboxComponent {
297
- private readonly elementRef;
298
- readonly field: _angular_core.InputSignal<FieldTree<ValueType[]>>;
299
- readonly key: _angular_core.InputSignal<string>;
300
- readonly label: _angular_core.InputSignal<DynamicText | undefined>;
301
- readonly placeholder: _angular_core.InputSignal<DynamicText | undefined>;
302
- readonly className: _angular_core.InputSignal<string>;
303
- readonly tabIndex: _angular_core.InputSignal<number | undefined>;
213
+ declare class IonicMultiCheckboxFieldComponent {
214
+ protected readonly ngf: i1.TypedNgForgeField<ValueType[]>;
304
215
  readonly options: _angular_core.InputSignal<FieldOption<ValueType>[]>;
305
216
  readonly props: _angular_core.InputSignal<IonicMultiCheckboxProps | undefined>;
306
- readonly meta: _angular_core.InputSignal<FieldMeta | undefined>;
307
- readonly validationMessages: _angular_core.InputSignal<ValidationMessages | undefined>;
308
- readonly defaultValidationMessages: _angular_core.InputSignal<ValidationMessages | undefined>;
309
- readonly resolvedErrors: _angular_core.Signal<_ng_forge_dynamic_forms_integration.ResolvedError[]>;
310
- readonly showErrors: _angular_core.Signal<boolean>;
311
- readonly errorsToDisplay: _angular_core.Signal<_ng_forge_dynamic_forms_integration.ResolvedError[]>;
312
- /** Base ID for error elements */
313
- protected readonly errorId: _angular_core.Signal<string>;
314
- /** Unique ID for the helper text element */
315
- protected readonly hintId: _angular_core.Signal<string>;
316
- /** Whether the field is currently in an invalid state (invalid AND touched) */
317
- protected readonly ariaInvalid: _angular_core.Signal<boolean>;
318
- /** Whether the field has a required validator */
319
- protected readonly ariaRequired: _angular_core.Signal<true | null>;
320
- /** aria-describedby linking to hint OR error elements (mutually exclusive) */
321
- protected readonly ariaDescribedBy: _angular_core.Signal<string | null>;
322
217
  valueViewModel: _angular_core.WritableSignal<FieldOption<ValueType>[]>;
323
218
  /** Computed map of checked option values for O(1) lookup in template */
324
219
  readonly checkedValuesMap: _angular_core.Signal<Record<string, boolean>>;
325
220
  constructor();
326
221
  onCheckboxChange(option: FieldOption<ValueType>, checked: boolean): void;
327
222
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<IonicMultiCheckboxFieldComponent, never>;
328
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<IonicMultiCheckboxFieldComponent, "df-ion-multi-checkbox", never, { "field": { "alias": "field"; "required": true; "isSignal": true; }; "key": { "alias": "key"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "tabIndex": { "alias": "tabIndex"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "props": { "alias": "props"; "required": false; "isSignal": true; }; "meta": { "alias": "meta"; "required": false; "isSignal": true; }; "validationMessages": { "alias": "validationMessages"; "required": false; "isSignal": true; }; "defaultValidationMessages": { "alias": "defaultValidationMessages"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
223
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<IonicMultiCheckboxFieldComponent, "df-ion-multi-checkbox", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "props": { "alias": "props"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgForgeFieldHost; inputs: {}; outputs: {}; }]>;
329
224
  }
330
225
 
331
226
  interface IonicRadioProps {
@@ -336,38 +231,16 @@ interface IonicRadioProps {
336
231
  hint?: DynamicText;
337
232
  }
338
233
  type IonicRadioField<T> = RadioField<T, IonicRadioProps>;
234
+ /** @deprecated Scheduled for removal in v1. Use `injectNgForgeField<T>()` for typed access to a field component's directive instance. */
339
235
  type IonicRadioComponent = ValueFieldComponent<IonicRadioField<ValueType>>;
340
236
 
341
- declare class IonicRadioFieldComponent implements IonicRadioComponent {
342
- private readonly elementRef;
343
- readonly field: _angular_core.InputSignal<FieldTree<ValueType>>;
344
- readonly key: _angular_core.InputSignal<string>;
345
- readonly label: _angular_core.InputSignal<DynamicText | undefined>;
346
- readonly placeholder: _angular_core.InputSignal<DynamicText | undefined>;
347
- readonly className: _angular_core.InputSignal<string>;
348
- readonly tabIndex: _angular_core.InputSignal<number | undefined>;
237
+ declare class IonicRadioFieldComponent {
238
+ protected readonly ngf: i1.TypedNgForgeField<ValueType>;
349
239
  readonly options: _angular_core.InputSignal<FieldOption<ValueType>[]>;
350
240
  readonly props: _angular_core.InputSignal<IonicRadioProps | undefined>;
351
- readonly meta: _angular_core.InputSignal<FieldMeta | undefined>;
352
- readonly validationMessages: _angular_core.InputSignal<ValidationMessages | undefined>;
353
- readonly defaultValidationMessages: _angular_core.InputSignal<ValidationMessages | undefined>;
354
- readonly resolvedErrors: _angular_core.Signal<_ng_forge_dynamic_forms_integration.ResolvedError[]>;
355
- readonly showErrors: _angular_core.Signal<boolean>;
356
- readonly errorsToDisplay: _angular_core.Signal<_ng_forge_dynamic_forms_integration.ResolvedError[]>;
357
241
  defaultCompare: (value1: any, value2: any) => boolean;
358
- constructor();
359
- /** Base ID for error elements */
360
- protected readonly errorId: _angular_core.Signal<string>;
361
- /** Unique ID for the helper text element */
362
- protected readonly hintId: _angular_core.Signal<string>;
363
- /** Whether the field is currently in an invalid state (invalid AND touched) */
364
- protected readonly ariaInvalid: _angular_core.Signal<boolean>;
365
- /** Whether the field has a required validator */
366
- protected readonly ariaRequired: _angular_core.Signal<true | null>;
367
- /** aria-describedby linking to hint OR error elements (mutually exclusive) */
368
- protected readonly ariaDescribedBy: _angular_core.Signal<string | null>;
369
242
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<IonicRadioFieldComponent, never>;
370
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<IonicRadioFieldComponent, "df-ion-radio", never, { "field": { "alias": "field"; "required": true; "isSignal": true; }; "key": { "alias": "key"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "tabIndex": { "alias": "tabIndex"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "props": { "alias": "props"; "required": false; "isSignal": true; }; "meta": { "alias": "meta"; "required": false; "isSignal": true; }; "validationMessages": { "alias": "validationMessages"; "required": false; "isSignal": true; }; "defaultValidationMessages": { "alias": "defaultValidationMessages"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
243
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<IonicRadioFieldComponent, "df-ion-radio", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "props": { "alias": "props"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgForgeFieldHost; inputs: {}; outputs: {}; }]>;
371
244
  }
372
245
 
373
246
  interface IonicSelectProps extends SelectProps {
@@ -384,38 +257,16 @@ interface IonicSelectProps extends SelectProps {
384
257
  hint?: DynamicText;
385
258
  }
386
259
  type IonicSelectField<T> = SelectField<T, IonicSelectProps>;
260
+ /** @deprecated Scheduled for removal in v1. Use `injectNgForgeField<T>()` for typed access to a field component's directive instance. */
387
261
  type IonicSelectComponent = ValueFieldComponent<IonicSelectField<ValueType>>;
388
262
 
389
- declare class IonicSelectFieldComponent implements IonicSelectComponent {
390
- private readonly elementRef;
391
- readonly field: _angular_core.InputSignal<FieldTree<ValueType>>;
392
- readonly key: _angular_core.InputSignal<string>;
393
- readonly label: _angular_core.InputSignal<DynamicText | undefined>;
394
- readonly placeholder: _angular_core.InputSignal<DynamicText | undefined>;
395
- readonly className: _angular_core.InputSignal<string>;
396
- readonly tabIndex: _angular_core.InputSignal<number | undefined>;
263
+ declare class IonicSelectFieldComponent {
264
+ protected readonly ngf: i1.TypedNgForgeField<ValueType>;
397
265
  readonly options: _angular_core.InputSignal<FieldOption<ValueType>[]>;
398
266
  readonly props: _angular_core.InputSignal<IonicSelectProps | undefined>;
399
- readonly meta: _angular_core.InputSignal<FieldMeta | undefined>;
400
- readonly validationMessages: _angular_core.InputSignal<ValidationMessages | undefined>;
401
- readonly defaultValidationMessages: _angular_core.InputSignal<ValidationMessages | undefined>;
402
- constructor();
403
- readonly resolvedErrors: _angular_core.Signal<_ng_forge_dynamic_forms_integration.ResolvedError[]>;
404
- readonly showErrors: _angular_core.Signal<boolean>;
405
- readonly errorsToDisplay: _angular_core.Signal<_ng_forge_dynamic_forms_integration.ResolvedError[]>;
406
267
  defaultCompare: (value1: any, value2: any) => boolean;
407
- /** Base ID for error elements */
408
- protected readonly errorId: _angular_core.Signal<string>;
409
- /** Unique ID for the helper text element */
410
- protected readonly hintId: _angular_core.Signal<string>;
411
- /** Whether the field is currently in an invalid state (invalid AND touched) */
412
- protected readonly ariaInvalid: _angular_core.Signal<boolean>;
413
- /** Whether the field has a required validator */
414
- protected readonly ariaRequired: _angular_core.Signal<true | null>;
415
- /** aria-describedby linking to hint OR error elements (mutually exclusive) */
416
- protected readonly ariaDescribedBy: _angular_core.Signal<string | null>;
417
268
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<IonicSelectFieldComponent, never>;
418
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<IonicSelectFieldComponent, "df-ion-select", never, { "field": { "alias": "field"; "required": true; "isSignal": true; }; "key": { "alias": "key"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "tabIndex": { "alias": "tabIndex"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "props": { "alias": "props"; "required": false; "isSignal": true; }; "meta": { "alias": "meta"; "required": false; "isSignal": true; }; "validationMessages": { "alias": "validationMessages"; "required": false; "isSignal": true; }; "defaultValidationMessages": { "alias": "defaultValidationMessages"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
269
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<IonicSelectFieldComponent, "df-ion-select", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "props": { "alias": "props"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgForgeFieldHost; inputs: {}; outputs: {}; }]>;
419
270
  }
420
271
 
421
272
  interface IonicSliderProps {
@@ -444,38 +295,16 @@ interface IonicSliderProps {
444
295
  hint?: DynamicText;
445
296
  }
446
297
  type IonicSliderField = SliderField<IonicSliderProps>;
298
+ /** @deprecated Scheduled for removal in v1. Use `injectNgForgeField<T>()` for typed access to a field component's directive instance. */
447
299
  type IonicSliderComponent = ValueFieldComponent<IonicSliderField>;
448
300
 
449
- declare class IonicSliderFieldComponent implements IonicSliderComponent {
450
- private readonly elementRef;
451
- readonly field: _angular_core.InputSignal<FieldTree<number>>;
452
- readonly key: _angular_core.InputSignal<string>;
453
- readonly label: _angular_core.InputSignal<DynamicText | undefined>;
454
- readonly placeholder: _angular_core.InputSignal<DynamicText | undefined>;
455
- readonly className: _angular_core.InputSignal<string>;
456
- readonly tabIndex: _angular_core.InputSignal<number | undefined>;
301
+ declare class IonicSliderFieldComponent {
302
+ protected readonly ngf: i1.TypedNgForgeField<number>;
457
303
  readonly step: _angular_core.InputSignal<number | undefined>;
458
304
  readonly props: _angular_core.InputSignal<IonicSliderProps | undefined>;
459
- readonly meta: _angular_core.InputSignal<FieldMeta | undefined>;
460
- readonly validationMessages: _angular_core.InputSignal<ValidationMessages | undefined>;
461
- readonly defaultValidationMessages: _angular_core.InputSignal<ValidationMessages | undefined>;
462
- constructor();
463
- readonly resolvedErrors: _angular_core.Signal<_ng_forge_dynamic_forms_integration.ResolvedError[]>;
464
- readonly showErrors: _angular_core.Signal<boolean>;
465
- readonly errorsToDisplay: _angular_core.Signal<_ng_forge_dynamic_forms_integration.ResolvedError[]>;
466
305
  protected defaultPinFormatter: (value: number) => string;
467
- /** Base ID for error elements */
468
- protected readonly errorId: _angular_core.Signal<string>;
469
- /** Unique ID for the helper text element */
470
- protected readonly hintId: _angular_core.Signal<string>;
471
- /** Whether the field is currently in an invalid state (invalid AND touched) */
472
- protected readonly ariaInvalid: _angular_core.Signal<boolean>;
473
- /** Whether the field has a required validator */
474
- protected readonly ariaRequired: _angular_core.Signal<true | null>;
475
- /** aria-describedby linking to hint OR error elements (mutually exclusive) */
476
- protected readonly ariaDescribedBy: _angular_core.Signal<string | null>;
477
306
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<IonicSliderFieldComponent, never>;
478
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<IonicSliderFieldComponent, "df-ion-slider", never, { "field": { "alias": "field"; "required": true; "isSignal": true; }; "key": { "alias": "key"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "tabIndex": { "alias": "tabIndex"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "props": { "alias": "props"; "required": false; "isSignal": true; }; "meta": { "alias": "meta"; "required": false; "isSignal": true; }; "validationMessages": { "alias": "validationMessages"; "required": false; "isSignal": true; }; "defaultValidationMessages": { "alias": "defaultValidationMessages"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
307
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<IonicSliderFieldComponent, "df-ion-slider", never, { "step": { "alias": "step"; "required": false; "isSignal": true; }; "props": { "alias": "props"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgForgeFieldHost; inputs: {}; outputs: {}; }, { directive: typeof i1.NgForgeHostControl; inputs: {}; outputs: {}; }]>;
479
308
  }
480
309
 
481
310
  interface IonicTextareaProps extends TextareaProps {
@@ -489,36 +318,16 @@ interface IonicTextareaProps extends TextareaProps {
489
318
  color?: 'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'danger' | 'light' | 'medium' | 'dark';
490
319
  }
491
320
  type IonicTextareaField = TextareaField<IonicTextareaProps>;
321
+ /** @deprecated Scheduled for removal in v1. Use `injectNgForgeField<T>()` for typed access to a field component's directive instance. */
492
322
  type IonicTextareaComponent = ValueFieldComponent<IonicTextareaField>;
493
323
 
494
- declare class IonicTextareaFieldComponent implements IonicTextareaComponent {
324
+ declare class IonicTextareaFieldComponent {
495
325
  private readonly elementRef;
496
- readonly field: _angular_core.InputSignal<FieldTree<string>>;
497
- readonly key: _angular_core.InputSignal<string>;
498
- readonly label: _angular_core.InputSignal<DynamicText | undefined>;
499
- readonly placeholder: _angular_core.InputSignal<DynamicText | undefined>;
500
- readonly className: _angular_core.InputSignal<string>;
501
- readonly tabIndex: _angular_core.InputSignal<number | undefined>;
326
+ protected readonly ngf: i1.TypedNgForgeField<string>;
502
327
  readonly props: _angular_core.InputSignal<IonicTextareaProps | undefined>;
503
- readonly meta: _angular_core.InputSignal<TextareaMeta | undefined>;
504
- readonly validationMessages: _angular_core.InputSignal<ValidationMessages | undefined>;
505
- readonly defaultValidationMessages: _angular_core.InputSignal<ValidationMessages | undefined>;
506
- readonly resolvedErrors: _angular_core.Signal<_ng_forge_dynamic_forms_integration.ResolvedError[]>;
507
- readonly showErrors: _angular_core.Signal<boolean>;
508
- readonly errorsToDisplay: _angular_core.Signal<_ng_forge_dynamic_forms_integration.ResolvedError[]>;
509
328
  constructor();
510
- /** Base ID for error elements */
511
- protected readonly errorId: _angular_core.Signal<string>;
512
- /** Unique ID for the helper text element */
513
- protected readonly hintId: _angular_core.Signal<string>;
514
- /** Whether the field is currently in an invalid state (invalid AND touched) */
515
- protected readonly ariaInvalid: _angular_core.Signal<boolean>;
516
- /** Whether the field has a required validator */
517
- protected readonly ariaRequired: _angular_core.Signal<true | null>;
518
- /** aria-describedby linking to hint OR error elements (mutually exclusive) */
519
- protected readonly ariaDescribedBy: _angular_core.Signal<string | null>;
520
329
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<IonicTextareaFieldComponent, never>;
521
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<IonicTextareaFieldComponent, "df-ion-textarea", never, { "field": { "alias": "field"; "required": true; "isSignal": true; }; "key": { "alias": "key"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "tabIndex": { "alias": "tabIndex"; "required": false; "isSignal": true; }; "props": { "alias": "props"; "required": false; "isSignal": true; }; "meta": { "alias": "meta"; "required": false; "isSignal": true; }; "validationMessages": { "alias": "validationMessages"; "required": false; "isSignal": true; }; "defaultValidationMessages": { "alias": "defaultValidationMessages"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
330
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<IonicTextareaFieldComponent, "df-ion-textarea", never, { "props": { "alias": "props"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgForgeFieldHost; inputs: {}; outputs: {}; }]>;
522
331
  }
523
332
 
524
333
  interface IonicToggleProps {
@@ -529,32 +338,14 @@ interface IonicToggleProps {
529
338
  hint?: DynamicText;
530
339
  }
531
340
  type IonicToggleField = ToggleField<IonicToggleProps>;
341
+ /** @deprecated Scheduled for removal in v1. Use `injectNgForgeField<T>()` for typed access to a field component's directive instance. */
532
342
  type IonicToggleComponent = CheckedFieldComponent<IonicToggleField>;
533
343
 
534
- declare class IonicToggleFieldComponent implements IonicToggleComponent {
535
- private readonly elementRef;
536
- readonly field: _angular_core.InputSignal<FieldTree<boolean>>;
537
- readonly key: _angular_core.InputSignal<string>;
538
- readonly label: _angular_core.InputSignal<DynamicText | undefined>;
539
- readonly placeholder: _angular_core.InputSignal<DynamicText | undefined>;
540
- readonly className: _angular_core.InputSignal<string>;
541
- readonly tabIndex: _angular_core.InputSignal<number | undefined>;
344
+ declare class IonicToggleFieldComponent {
345
+ protected readonly ngf: i1.TypedNgForgeField<boolean>;
542
346
  readonly props: _angular_core.InputSignal<IonicToggleProps | undefined>;
543
- readonly meta: _angular_core.InputSignal<FieldMeta | undefined>;
544
- readonly validationMessages: _angular_core.InputSignal<ValidationMessages | undefined>;
545
- readonly defaultValidationMessages: _angular_core.InputSignal<ValidationMessages | undefined>;
546
- constructor();
547
- readonly resolvedErrors: _angular_core.Signal<_ng_forge_dynamic_forms_integration.ResolvedError[]>;
548
- readonly showErrors: _angular_core.Signal<boolean>;
549
- readonly errorsToDisplay: _angular_core.Signal<_ng_forge_dynamic_forms_integration.ResolvedError[]>;
550
- /** Base ID for error elements */
551
- protected readonly errorId: _angular_core.Signal<string>;
552
- /** Unique ID for the helper text element */
553
- protected readonly hintId: _angular_core.Signal<string>;
554
- /** aria-describedby linking to hint OR error elements (mutually exclusive) */
555
- protected readonly ariaDescribedBy: _angular_core.Signal<string | null>;
556
347
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<IonicToggleFieldComponent, never>;
557
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<IonicToggleFieldComponent, "df-ion-toggle", never, { "field": { "alias": "field"; "required": true; "isSignal": true; }; "key": { "alias": "key"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "tabIndex": { "alias": "tabIndex"; "required": false; "isSignal": true; }; "props": { "alias": "props"; "required": false; "isSignal": true; }; "meta": { "alias": "meta"; "required": false; "isSignal": true; }; "validationMessages": { "alias": "validationMessages"; "required": false; "isSignal": true; }; "defaultValidationMessages": { "alias": "defaultValidationMessages"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
348
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<IonicToggleFieldComponent, "df-ion-toggle", never, { "props": { "alias": "props"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgForgeFieldHost; inputs: {}; outputs: {}; }]>;
558
349
  }
559
350
 
560
351
  /**