@ng-forge/dynamic-forms-ionic 1.0.0-rc.3 → 1.0.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.
@@ -30,8 +30,8 @@ type IonicPreviousButtonField = Omit<IonicButtonField<PreviousPageEvent>, 'event
30
30
  type: 'previous';
31
31
  };
32
32
  /** Add array item button field - dispatches AppendArrayItemEvent */
33
- type AddArrayItemButtonField = Omit<IonicButtonField<AppendArrayItemEvent>, 'event' | 'type' | 'eventArgs'> & {
34
- type: 'addArrayItem';
33
+ type IonicAddArrayItemButtonField = Omit<IonicButtonField<AppendArrayItemEvent>, 'event' | 'type' | 'eventArgs'> & {
34
+ type: 'add-array-item' | 'addArrayItem';
35
35
  /**
36
36
  * The key of the array field to add items to.
37
37
  * Required when the button is placed outside the array.
@@ -46,8 +46,8 @@ type AddArrayItemButtonField = Omit<IonicButtonField<AppendArrayItemEvent>, 'eve
46
46
  template: ArrayAllowedChildren | readonly ArrayAllowedChildren[];
47
47
  };
48
48
  /** Prepend array item button field - dispatches PrependArrayItemEvent (adds at beginning) */
49
- type PrependArrayItemButtonField = Omit<IonicButtonField<PrependArrayItemEvent>, 'event' | 'type' | 'eventArgs'> & {
50
- type: 'prependArrayItem';
49
+ type IonicPrependArrayItemButtonField = Omit<IonicButtonField<PrependArrayItemEvent>, 'event' | 'type' | 'eventArgs'> & {
50
+ type: 'prepend-array-item' | 'prependArrayItem';
51
51
  /**
52
52
  * The key of the array field to prepend items to.
53
53
  * Required when the button is placed outside the array.
@@ -62,8 +62,8 @@ type PrependArrayItemButtonField = Omit<IonicButtonField<PrependArrayItemEvent>,
62
62
  template: ArrayAllowedChildren | readonly ArrayAllowedChildren[];
63
63
  };
64
64
  /** Insert array item button field - dispatches InsertArrayItemEvent (adds at specific index) */
65
- type InsertArrayItemButtonField = Omit<IonicButtonField<InsertArrayItemEvent>, 'event' | 'type' | 'eventArgs'> & {
66
- type: 'insertArrayItem';
65
+ type IonicInsertArrayItemButtonField = Omit<IonicButtonField<InsertArrayItemEvent>, 'event' | 'type' | 'eventArgs'> & {
66
+ type: 'insert-array-item' | 'insertArrayItem';
67
67
  /**
68
68
  * The key of the array field to insert items into.
69
69
  * Required when the button is placed outside the array.
@@ -80,8 +80,8 @@ type InsertArrayItemButtonField = Omit<IonicButtonField<InsertArrayItemEvent>, '
80
80
  template: ArrayAllowedChildren | readonly ArrayAllowedChildren[];
81
81
  };
82
82
  /** Remove array item button field - dispatches RemoveAtIndexEvent or PopArrayItemEvent */
83
- type RemoveArrayItemButtonField = Omit<IonicButtonField<RemoveAtIndexEvent>, 'event' | 'type' | 'eventArgs'> & {
84
- type: 'removeArrayItem';
83
+ type IonicRemoveArrayItemButtonField = Omit<IonicButtonField<RemoveAtIndexEvent>, 'event' | 'type' | 'eventArgs'> & {
84
+ type: 'remove-array-item' | 'removeArrayItem';
85
85
  /**
86
86
  * The key of the array field to remove items from.
87
87
  * Required when the button is placed outside the array.
@@ -90,8 +90,8 @@ type RemoveArrayItemButtonField = Omit<IonicButtonField<RemoveAtIndexEvent>, 'ev
90
90
  arrayKey?: string;
91
91
  };
92
92
  /** Pop array item button field - dispatches PopArrayItemEvent (removes last item) */
93
- type PopArrayItemButtonField = Omit<IonicButtonField<PopArrayItemEvent>, 'event' | 'type' | 'eventArgs'> & {
94
- type: 'popArrayItem';
93
+ type IonicPopArrayItemButtonField = Omit<IonicButtonField<PopArrayItemEvent>, 'event' | 'type' | 'eventArgs'> & {
94
+ type: 'pop-array-item' | 'popArrayItem';
95
95
  /**
96
96
  * The key of the array field to remove the last item from.
97
97
  * REQUIRED - must specify which array to pop from.
@@ -99,8 +99,8 @@ type PopArrayItemButtonField = Omit<IonicButtonField<PopArrayItemEvent>, 'event'
99
99
  arrayKey: string;
100
100
  };
101
101
  /** Shift array item button field - dispatches ShiftArrayItemEvent (removes first item) */
102
- type ShiftArrayItemButtonField = Omit<IonicButtonField<ShiftArrayItemEvent>, 'event' | 'type' | 'eventArgs'> & {
103
- type: 'shiftArrayItem';
102
+ type IonicShiftArrayItemButtonField = Omit<IonicButtonField<ShiftArrayItemEvent>, 'event' | 'type' | 'eventArgs'> & {
103
+ type: 'shift-array-item' | 'shiftArrayItem';
104
104
  /**
105
105
  * The key of the array field to remove the first item from.
106
106
  * REQUIRED - must specify which array to shift from.
@@ -166,8 +166,8 @@ declare class IonicDatepickerFieldComponent {
166
166
  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: {}; }]>;
167
167
  }
168
168
 
169
- /** Decorative icon addon for Ion fields. */
170
- interface IonIconAddon extends BaseAddon {
169
+ /** Decorative icon addon for Ionic fields. */
170
+ interface IonicIconAddon extends BaseAddon {
171
171
  readonly type: 'ion-icon';
172
172
  /** Ionons name (e.g., `'search-outline'`, `'close-outline'`). */
173
173
  readonly icon: string;
@@ -175,19 +175,19 @@ interface IonIconAddon extends BaseAddon {
175
175
  readonly ariaLabel?: DynamicText;
176
176
  }
177
177
  /** Ionic-supported button colour palette. */
178
- type IonButtonColor = 'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'danger' | 'light' | 'medium' | 'dark';
178
+ type IonicButtonColor = 'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'danger' | 'light' | 'medium' | 'dark';
179
179
  /** Ionic-supported button fill variants. */
180
- type IonButtonFill = 'clear' | 'outline' | 'solid' | 'default';
180
+ type IonicButtonFill = 'clear' | 'outline' | 'solid' | 'default';
181
181
  /**
182
182
  * Common shape of every `ion-button` addon — properties that don't
183
183
  * participate in either XOR axis.
184
184
  */
185
- interface IonButtonBase extends BaseAddon {
185
+ interface IonicButtonBase extends BaseAddon {
186
186
  readonly type: 'ion-button';
187
187
  /** Ion button colour. */
188
- readonly color?: IonButtonColor;
188
+ readonly color?: IonicButtonColor;
189
189
  /** Ion button fill style. */
190
- readonly fill?: IonButtonFill;
190
+ readonly fill?: IonicButtonFill;
191
191
  /** Reactive loading state — renders an `<ion-spinner>` when truthy. */
192
192
  readonly loading?: DynamicValue<boolean>;
193
193
  }
@@ -196,7 +196,7 @@ interface IonButtonBase extends BaseAddon {
196
196
  * two click handlers (e.g., `preset` AND `actionRef`) are rejected by
197
197
  * TypeScript. The four shapes:
198
198
  */
199
- type IonButtonClickPreset = {
199
+ type IonicButtonClickPreset = {
200
200
  /** Built-in preset action (e.g., `'clear'`, `'toggle-password-visibility'`). JSON-safe. */
201
201
  readonly preset: AddonActionPreset;
202
202
  readonly actionRef?: never;
@@ -210,54 +210,54 @@ type IonButtonClickPreset = {
210
210
  * usable; once the user augments `DynamicFormActionRegistry`, autocomplete
211
211
  * tightens to the registered keys.
212
212
  */
213
- type IonButtonActionRef = [RegisteredActionRef] extends [never] ? string : RegisteredActionRef;
214
- type IonButtonClickActionRef = {
213
+ type IonicButtonActionRef = [RegisteredActionRef] extends [never] ? string : RegisteredActionRef;
214
+ type IonicButtonClickActionRef = {
215
215
  readonly preset?: never;
216
216
  /** Reference to a handler registered via `withAddonActions(...)`. JSON-safe. */
217
- readonly actionRef: IonButtonActionRef;
217
+ readonly actionRef: IonicButtonActionRef;
218
218
  readonly action?: never;
219
219
  };
220
- type IonButtonClickAction = {
220
+ type IonicButtonClickAction = {
221
221
  readonly preset?: never;
222
222
  readonly actionRef?: never;
223
223
  /** Inline handler — code-only; dropped from JSON-derived configs. Matches the generic `AddonActionHandler` shape used by `withAddonActions(...)`. */
224
224
  readonly action: AddonActionHandler;
225
225
  };
226
- type IonButtonClickNone = {
226
+ type IonicButtonClickNone = {
227
227
  readonly preset?: never;
228
228
  readonly actionRef?: never;
229
229
  readonly action?: never;
230
230
  };
231
- type IonButtonClick = IonButtonClickPreset | IonButtonClickActionRef | IonButtonClickAction | IonButtonClickNone;
231
+ type IonicButtonClick = IonicButtonClickPreset | IonicButtonClickActionRef | IonicButtonClickAction | IonicButtonClickNone;
232
232
  /**
233
233
  * Content axis — XOR enforced at type level so an icon-only button is
234
234
  * forced to declare `ariaLabel`. The three shapes:
235
235
  */
236
- type IonButtonContentIconOnly = {
236
+ type IonicButtonContentIconOnly = {
237
237
  readonly icon: string;
238
238
  readonly label?: never;
239
239
  /** REQUIRED: icon-only buttons must carry an accessible label. */
240
240
  readonly ariaLabel: DynamicText;
241
241
  };
242
- type IonButtonContentLabeled = {
242
+ type IonicButtonContentLabeled = {
243
243
  readonly icon?: string;
244
244
  readonly label: DynamicText;
245
245
  readonly ariaLabel?: DynamicText;
246
246
  };
247
- type IonButtonContentDecorative = {
247
+ type IonicButtonContentDecorative = {
248
248
  readonly icon?: never;
249
249
  readonly label?: never;
250
250
  readonly ariaLabel?: DynamicText;
251
251
  };
252
- type IonButtonContent = IonButtonContentIconOnly | IonButtonContentLabeled | IonButtonContentDecorative;
253
- /** Interactive button addon for Ion fields. */
254
- type IonButtonAddon = IonButtonBase & IonButtonContent & IonButtonClick;
252
+ type IonicButtonContent = IonicButtonContentIconOnly | IonicButtonContentLabeled | IonicButtonContentDecorative;
253
+ /** Interactive button addon for Ionic fields. */
254
+ type IonicButtonAddon = IonicButtonBase & IonicButtonContent & IonicButtonClick;
255
255
  /** Union of all Ion-shipped addon types. */
256
- type IonAddon = IonIconAddon | IonButtonAddon;
256
+ type IonicAddon = IonicIconAddon | IonicButtonAddon;
257
257
  declare module '@ng-forge/dynamic-forms' {
258
258
  interface DynamicFormAddonRegistry {
259
- 'ion-icon': IonIconAddon;
260
- 'ion-button': IonButtonAddon;
259
+ 'ion-icon': IonicIconAddon;
260
+ 'ion-button': IonicButtonAddon;
261
261
  }
262
262
  }
263
263
 
@@ -275,20 +275,20 @@ interface IonicInputProps extends InputProps {
275
275
  * Module-augmentable seam for adding custom addon types to `ion-input` at
276
276
  * the type level. Pair with `withCustomAddon(...)` for the runtime side:
277
277
  */
278
- interface IonAddonExtensions {
278
+ interface IonicAddonExtensions {
279
279
  }
280
- type IonAddonExtension = IonAddonExtensions[keyof IonAddonExtensions];
280
+ type IonicAddonExtension = IonicAddonExtensions[keyof IonicAddonExtensions];
281
281
  /** Addon types accepted by `ion-input`. */
282
- type IonInputAddon = IonIconAddon | IonButtonAddon | TextAddon | TemplateAddon | IonAddonExtension;
282
+ type IonicInputAddon = IonicIconAddon | IonicButtonAddon | TextAddon | TemplateAddon | IonicAddonExtension;
283
283
  type IonicInputField = InputField<IonicInputProps> & {
284
- addons?: ReadonlyArray<IonInputAddon>;
284
+ addons?: ReadonlyArray<IonicInputAddon>;
285
285
  };
286
286
 
287
287
  declare class IonicInputFieldComponent {
288
288
  private readonly elementRef;
289
289
  private ionicConfig;
290
290
  protected readonly ngf: i1.TypedNgForgeField<string>;
291
- protected readonly ngfa: i1.TypedNgForgeAddons<IonInputAddon>;
291
+ protected readonly ngfa: i1.TypedNgForgeAddons<IonicInputAddon>;
292
292
  readonly props: _angular_core.InputSignal<IonicInputProps | undefined>;
293
293
  /**
294
294
  * Wrapper-style host bag pushed by `DfFieldOutlet`. Declared at the
@@ -310,10 +310,10 @@ declare class IonicInputFieldComponent {
310
310
  * <ion-button> Ionic can style); everything else (icon/text/template/
311
311
  * component types) goes through the universal <df-addon-slot> dispatcher
312
312
  * wrapped in <span slot="start|end"> for safe shadow-DOM projection. */
313
- protected readonly buttonPrefixAddons: _angular_core.Signal<_ng_forge_dynamic_forms_ionic.IonButtonAddon[]>;
314
- protected readonly buttonSuffixAddons: _angular_core.Signal<_ng_forge_dynamic_forms_ionic.IonButtonAddon[]>;
315
- protected readonly decorativePrefixAddons: _angular_core.Signal<(_ng_forge_dynamic_forms.TextAddon | _ng_forge_dynamic_forms.TemplateAddon | _ng_forge_dynamic_forms_ionic.IonIconAddon)[]>;
316
- protected readonly decorativeSuffixAddons: _angular_core.Signal<(_ng_forge_dynamic_forms.TextAddon | _ng_forge_dynamic_forms.TemplateAddon | _ng_forge_dynamic_forms_ionic.IonIconAddon)[]>;
313
+ protected readonly buttonPrefixAddons: _angular_core.Signal<_ng_forge_dynamic_forms_ionic.IonicButtonAddon[]>;
314
+ protected readonly buttonSuffixAddons: _angular_core.Signal<_ng_forge_dynamic_forms_ionic.IonicButtonAddon[]>;
315
+ protected readonly decorativePrefixAddons: _angular_core.Signal<(_ng_forge_dynamic_forms.TextAddon | _ng_forge_dynamic_forms.TemplateAddon | _ng_forge_dynamic_forms_ionic.IonicIconAddon)[]>;
316
+ protected readonly decorativeSuffixAddons: _angular_core.Signal<(_ng_forge_dynamic_forms.TextAddon | _ng_forge_dynamic_forms.TemplateAddon | _ng_forge_dynamic_forms_ionic.IonicIconAddon)[]>;
317
317
  /** Set when the component is destroyed — guards async aria-describedby sync against teardown. */
318
318
  private destroyed;
319
319
  constructor();
@@ -533,12 +533,12 @@ declare const IonicField: {
533
533
  readonly Submit: "submit";
534
534
  readonly Next: "next";
535
535
  readonly Previous: "previous";
536
- readonly AddArrayItem: "addArrayItem";
537
- readonly PrependArrayItem: "prependArrayItem";
538
- readonly InsertArrayItem: "insertArrayItem";
539
- readonly RemoveArrayItem: "removeArrayItem";
540
- readonly PopArrayItem: "popArrayItem";
541
- readonly ShiftArrayItem: "shiftArrayItem";
536
+ readonly AddArrayItem: "add-array-item";
537
+ readonly PrependArrayItem: "prepend-array-item";
538
+ readonly InsertArrayItem: "insert-array-item";
539
+ readonly RemoveArrayItem: "remove-array-item";
540
+ readonly PopArrayItem: "pop-array-item";
541
+ readonly ShiftArrayItem: "shift-array-item";
542
542
  readonly Textarea: "textarea";
543
543
  readonly Radio: "radio";
544
544
  readonly MultiCheckbox: "multi-checkbox";
@@ -574,12 +574,18 @@ declare module '@ng-forge/dynamic-forms' {
574
574
  datepicker: IonicDatepickerField;
575
575
  slider: IonicSliderField;
576
576
  toggle: IonicToggleField;
577
- addArrayItem: AddArrayItemButtonField;
578
- prependArrayItem: PrependArrayItemButtonField;
579
- insertArrayItem: InsertArrayItemButtonField;
580
- removeArrayItem: RemoveArrayItemButtonField;
581
- popArrayItem: PopArrayItemButtonField;
582
- shiftArrayItem: ShiftArrayItemButtonField;
577
+ addArrayItem: IonicAddArrayItemButtonField;
578
+ 'add-array-item': IonicAddArrayItemButtonField;
579
+ prependArrayItem: IonicPrependArrayItemButtonField;
580
+ 'prepend-array-item': IonicPrependArrayItemButtonField;
581
+ insertArrayItem: IonicInsertArrayItemButtonField;
582
+ 'insert-array-item': IonicInsertArrayItemButtonField;
583
+ removeArrayItem: IonicRemoveArrayItemButtonField;
584
+ 'remove-array-item': IonicRemoveArrayItemButtonField;
585
+ popArrayItem: IonicPopArrayItemButtonField;
586
+ 'pop-array-item': IonicPopArrayItemButtonField;
587
+ shiftArrayItem: IonicShiftArrayItemButtonField;
588
+ 'shift-array-item': IonicShiftArrayItemButtonField;
583
589
  }
584
590
  }
585
591
 
@@ -620,10 +626,10 @@ type IonicAddonsFeature = {
620
626
  declare function withIonicAddons(): IonicAddonsFeature;
621
627
 
622
628
  /** Renderer for the `ion-button` addon type. */
623
- declare class IonButtonAddonComponent {
624
- protected readonly action: i1.TypedNgForgeAddonAction<IonButtonAddon>;
629
+ declare class IonicButtonAddonComponent {
630
+ protected readonly action: i1.TypedNgForgeAddonAction<IonicButtonAddon>;
625
631
  /** Re-exposed for template binding — same signal stored on the directive. */
626
- protected readonly addon: _angular_core.Signal<IonButtonAddon>;
632
+ protected readonly addon: _angular_core.Signal<IonicButtonAddon>;
627
633
  protected readonly label: _angular_core.Signal<_ng_forge_dynamic_forms.DynamicText | undefined>;
628
634
  protected readonly ariaLabel: _angular_core.Signal<_ng_forge_dynamic_forms.DynamicText | undefined>;
629
635
  protected readonly icon: _angular_core.Signal<string | undefined>;
@@ -638,24 +644,24 @@ declare class IonButtonAddonComponent {
638
644
  * is treated as "no label" so the button doesn't render an invisible text
639
645
  * slot beside the icon. */
640
646
  protected readonly iconOnly: _angular_core.Signal<boolean>;
641
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<IonButtonAddonComponent, never>;
642
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<IonButtonAddonComponent, "df-ion-button-addon", never, {}, {}, never, never, true, [{ directive: typeof i1.NgForgeAddonAction; inputs: {}; outputs: {}; }]>;
647
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<IonicButtonAddonComponent, never>;
648
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<IonicButtonAddonComponent, "df-ion-button-addon", never, {}, {}, never, never, true, [{ directive: typeof i1.NgForgeAddonAction; inputs: {}; outputs: {}; }]>;
643
649
  }
644
650
 
645
651
  /** Renderer for the `ion-icon` addon type. */
646
- declare class IonIconAddonComponent {
647
- readonly addon: _angular_core.InputSignal<IonIconAddon>;
652
+ declare class IonicIconAddonComponent {
653
+ readonly addon: _angular_core.InputSignal<IonicIconAddon>;
648
654
  /** Accepted for contract uniformity — `NgComponentOutlet` setInput is strict; every type must declare it. */
649
655
  readonly fieldInputs: _angular_core.InputSignal<WrapperFieldInputs | undefined>;
650
656
  protected readonly iconName: _angular_core.Signal<string>;
651
657
  protected readonly ariaLabel: _angular_core.Signal<_ng_forge_dynamic_forms.DynamicText | undefined>;
652
658
  protected readonly hasAriaLabel: _angular_core.Signal<boolean>;
653
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<IonIconAddonComponent, never>;
654
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<IonIconAddonComponent, "df-ion-icon-addon", never, { "addon": { "alias": "addon"; "required": true; "isSignal": true; }; "fieldInputs": { "alias": "fieldInputs"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
659
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<IonicIconAddonComponent, never>;
660
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<IonicIconAddonComponent, "df-ion-icon-addon", never, { "addon": { "alias": "addon"; "required": true; "isSignal": true; }; "fieldInputs": { "alias": "fieldInputs"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
655
661
  }
656
662
 
657
663
  /** Per-field writable signal that overrides the input's `type` attribute. */
658
664
  declare const IONIC_INPUT_TYPE_OVERRIDE: InjectionToken<WritableSignal<string | undefined>>;
659
665
 
660
- export { IONIC_CONFIG, IONIC_FIELD_TYPES, IONIC_INPUT_TYPE_OVERRIDE, IonButtonAddonComponent, IonIconAddonComponent, IonicButtonFieldComponent, IonicCheckboxFieldComponent, IonicDatepickerFieldComponent, IonicField, IonicInputFieldComponent, IonicMultiCheckboxFieldComponent, IonicRadioFieldComponent, IonicSelectFieldComponent, IonicSliderFieldComponent, IonicTextareaFieldComponent, IonicToggleFieldComponent, withIonicAddons, withIonicFields };
661
- export type { AddArrayItemButtonField, InsertArrayItemButtonField, IonAddon, IonAddonExtensions, IonButtonAddon, IonIconAddon, IonInputAddon, IonicButtonField, IonicButtonProps, IonicCheckboxField, IonicCheckboxProps, IonicConfig, IonicDatepickerField, IonicDatepickerProps, IonicFieldType, IonicFormConfig, IonicFormProps, IonicInputField, IonicInputProps, IonicMultiCheckboxField, IonicMultiCheckboxProps, IonicNextButtonField, IonicPreviousButtonField, IonicRadioField, IonicRadioProps, IonicSelectField, IonicSelectProps, IonicSliderField, IonicSliderProps, IonicSubmitButtonField, IonicTextareaField, IonicTextareaProps, IonicToggleField, IonicToggleProps, PopArrayItemButtonField, PrependArrayItemButtonField, RemoveArrayItemButtonField, ShiftArrayItemButtonField };
666
+ export { IONIC_CONFIG, IONIC_FIELD_TYPES, IONIC_INPUT_TYPE_OVERRIDE, IonicButtonAddonComponent, IonicButtonFieldComponent, IonicCheckboxFieldComponent, IonicDatepickerFieldComponent, IonicField, IonicIconAddonComponent, IonicInputFieldComponent, IonicMultiCheckboxFieldComponent, IonicRadioFieldComponent, IonicSelectFieldComponent, IonicSliderFieldComponent, IonicTextareaFieldComponent, IonicToggleFieldComponent, withIonicAddons, withIonicFields };
667
+ export type { IonicAddArrayItemButtonField, IonicAddon, IonicAddonExtensions, IonicButtonAddon, IonicButtonField, IonicButtonProps, IonicCheckboxField, IonicCheckboxProps, IonicConfig, IonicDatepickerField, IonicDatepickerProps, IonicFieldType, IonicFormConfig, IonicFormProps, IonicIconAddon, IonicInputAddon, IonicInputField, IonicInputProps, IonicInsertArrayItemButtonField, IonicMultiCheckboxField, IonicMultiCheckboxProps, IonicNextButtonField, IonicPopArrayItemButtonField, IonicPrependArrayItemButtonField, IonicPreviousButtonField, IonicRadioField, IonicRadioProps, IonicRemoveArrayItemButtonField, IonicSelectField, IonicSelectProps, IonicShiftArrayItemButtonField, IonicSliderField, IonicSliderProps, IonicSubmitButtonField, IonicTextareaField, IonicTextareaProps, IonicToggleField, IonicToggleProps };