@ng-forge/dynamic-forms-ionic 1.3.0-next.2 → 1.3.0-next.4

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.
Files changed (48) hide show
  1. package/README.md +0 -2
  2. package/fesm2022/ng-forge-dynamic-forms-ionic-ionic-field-errors-wrapper.component-bXoq9uY6.mjs +64 -0
  3. package/fesm2022/ng-forge-dynamic-forms-ionic-ionic-field-errors-wrapper.component-bXoq9uY6.mjs.map +1 -0
  4. package/fesm2022/ng-forge-dynamic-forms-ionic-lazy-addon-button.mjs +129 -34
  5. package/fesm2022/ng-forge-dynamic-forms-ionic-lazy-addon-button.mjs.map +1 -1
  6. package/fesm2022/ng-forge-dynamic-forms-ionic-lazy-addon-icon.mjs +118 -35
  7. package/fesm2022/ng-forge-dynamic-forms-ionic-lazy-addon-icon.mjs.map +1 -1
  8. package/fesm2022/ng-forge-dynamic-forms-ionic-lazy-button.mjs +113 -33
  9. package/fesm2022/ng-forge-dynamic-forms-ionic-lazy-button.mjs.map +1 -1
  10. package/fesm2022/ng-forge-dynamic-forms-ionic-lazy-checkbox.mjs +124 -24
  11. package/fesm2022/ng-forge-dynamic-forms-ionic-lazy-checkbox.mjs.map +1 -1
  12. package/fesm2022/ng-forge-dynamic-forms-ionic-lazy-datepicker.mjs +374 -90
  13. package/fesm2022/ng-forge-dynamic-forms-ionic-lazy-datepicker.mjs.map +1 -1
  14. package/fesm2022/ng-forge-dynamic-forms-ionic-lazy-input.mjs +262 -126
  15. package/fesm2022/ng-forge-dynamic-forms-ionic-lazy-input.mjs.map +1 -1
  16. package/fesm2022/ng-forge-dynamic-forms-ionic-lazy-multi-checkbox.mjs +191 -64
  17. package/fesm2022/ng-forge-dynamic-forms-ionic-lazy-multi-checkbox.mjs.map +1 -1
  18. package/fesm2022/ng-forge-dynamic-forms-ionic-lazy-radio.mjs +178 -27
  19. package/fesm2022/ng-forge-dynamic-forms-ionic-lazy-radio.mjs.map +1 -1
  20. package/fesm2022/ng-forge-dynamic-forms-ionic-lazy-select.mjs +163 -27
  21. package/fesm2022/ng-forge-dynamic-forms-ionic-lazy-select.mjs.map +1 -1
  22. package/fesm2022/ng-forge-dynamic-forms-ionic-lazy-slider.mjs +144 -27
  23. package/fesm2022/ng-forge-dynamic-forms-ionic-lazy-slider.mjs.map +1 -1
  24. package/fesm2022/ng-forge-dynamic-forms-ionic-lazy-textarea.mjs +157 -45
  25. package/fesm2022/ng-forge-dynamic-forms-ionic-lazy-textarea.mjs.map +1 -1
  26. package/fesm2022/ng-forge-dynamic-forms-ionic-lazy-toggle.mjs +386 -75
  27. package/fesm2022/ng-forge-dynamic-forms-ionic-lazy-toggle.mjs.map +1 -1
  28. package/fesm2022/ng-forge-dynamic-forms-ionic-shared.mjs +139 -62
  29. package/fesm2022/ng-forge-dynamic-forms-ionic-shared.mjs.map +1 -1
  30. package/fesm2022/ng-forge-dynamic-forms-ionic.mjs +238 -251
  31. package/fesm2022/ng-forge-dynamic-forms-ionic.mjs.map +1 -1
  32. package/package.json +2 -3
  33. package/types/ng-forge-dynamic-forms-ionic-lazy-addon-button.d.ts +28 -28
  34. package/types/ng-forge-dynamic-forms-ionic-lazy-addon-icon.d.ts +24 -17
  35. package/types/ng-forge-dynamic-forms-ionic-lazy-button.d.ts +92 -86
  36. package/types/ng-forge-dynamic-forms-ionic-lazy-checkbox.d.ts +24 -18
  37. package/types/ng-forge-dynamic-forms-ionic-lazy-datepicker.d.ts +59 -34
  38. package/types/ng-forge-dynamic-forms-ionic-lazy-input.d.ts +69 -57
  39. package/types/ng-forge-dynamic-forms-ionic-lazy-multi-checkbox.d.ts +34 -23
  40. package/types/ng-forge-dynamic-forms-ionic-lazy-radio.d.ts +31 -20
  41. package/types/ng-forge-dynamic-forms-ionic-lazy-select.d.ts +37 -26
  42. package/types/ng-forge-dynamic-forms-ionic-lazy-slider.d.ts +53 -38
  43. package/types/ng-forge-dynamic-forms-ionic-lazy-textarea.d.ts +29 -23
  44. package/types/ng-forge-dynamic-forms-ionic-lazy-toggle.d.ts +119 -55
  45. package/types/ng-forge-dynamic-forms-ionic-shared.d.ts +78 -83
  46. package/types/ng-forge-dynamic-forms-ionic.d.ts +243 -266
  47. package/fesm2022/ng-forge-dynamic-forms-ionic-ionic-field-errors-wrapper.component-CN0CagvT.mjs +0 -26
  48. package/fesm2022/ng-forge-dynamic-forms-ionic-ionic-field-errors-wrapper.component-CN0CagvT.mjs.map +0 -1
@@ -1,330 +1,310 @@
1
- import { FormEvent, FormSubmitEvent, NextPageEvent, PreviousPageEvent, AppendArrayItemEvent, ArrayAllowedChildren, PrependArrayItemEvent, InsertArrayItemEvent, RemoveAtIndexEvent, PopArrayItemEvent, ShiftArrayItemEvent, DynamicText, TextAddon, TemplateAddon, ValueType, NarrowFields, RegisteredFieldTypes, InferFormValue, FormConfig } from '@ng-forge/dynamic-forms';
2
- import { ButtonField, CheckboxField, DatepickerField, DatepickerProps, InputField, InputProps, MultiCheckboxField, RadioField, SelectField, SelectProps, SliderField, TextareaField, TextareaProps, ToggleField, FieldTypeDefinition, WrapperTypeDefinition } from '@ng-forge/dynamic-forms/integration';
3
- import { IonicIconAddon, IonicButtonAddon, IonicConfig } from '@ng-forge/dynamic-forms-ionic/shared';
4
- export { IONIC_CONFIG, IONIC_INPUT_TYPE_OVERRIDE, IonicAddon, IonicButtonAddon, IonicConfig, IonicIconAddon } from '@ng-forge/dynamic-forms-ionic/shared';
5
- import { IonicButtonFieldComponent as IonicButtonFieldComponent$1 } from '@ng-forge/dynamic-forms-ionic/lazy/button';
6
- import { IonicCheckboxFieldComponent as IonicCheckboxFieldComponent$1 } from '@ng-forge/dynamic-forms-ionic/lazy/checkbox';
7
- import { IonicDatepickerFieldComponent as IonicDatepickerFieldComponent$1 } from '@ng-forge/dynamic-forms-ionic/lazy/datepicker';
8
- import { IonicInputFieldComponent as IonicInputFieldComponent$1 } from '@ng-forge/dynamic-forms-ionic/lazy/input';
9
- import { IonicMultiCheckboxFieldComponent as IonicMultiCheckboxFieldComponent$1 } from '@ng-forge/dynamic-forms-ionic/lazy/multi-checkbox';
10
- import { IonicRadioFieldComponent as IonicRadioFieldComponent$1 } from '@ng-forge/dynamic-forms-ionic/lazy/radio';
11
- import { IonicSelectFieldComponent as IonicSelectFieldComponent$1 } from '@ng-forge/dynamic-forms-ionic/lazy/select';
12
- import { IonicSliderFieldComponent as IonicSliderFieldComponent$1 } from '@ng-forge/dynamic-forms-ionic/lazy/slider';
13
- import { IonicTextareaFieldComponent as IonicTextareaFieldComponent$1 } from '@ng-forge/dynamic-forms-ionic/lazy/textarea';
14
- import { IonicToggleFieldComponent as IonicToggleFieldComponent$1 } from '@ng-forge/dynamic-forms-ionic/lazy/toggle';
15
- import { IonicIconAddonComponent as IonicIconAddonComponent$1 } from '@ng-forge/dynamic-forms-ionic/lazy/addon-icon';
16
- import { IonicButtonAddonComponent as IonicButtonAddonComponent$1 } from '@ng-forge/dynamic-forms-ionic/lazy/addon-button';
17
- import { Provider } from '@angular/core';
18
-
1
+ import { AppendArrayItemEvent, ArrayAllowedChildren, DynamicText, FormConfig, FormEvent, FormSubmitEvent, InferFormValue, InsertArrayItemEvent, NarrowFields, NextPageEvent, PopArrayItemEvent, PrependArrayItemEvent, PreviousPageEvent, RegisteredFieldTypes, RemoveAtIndexEvent, ShiftArrayItemEvent, TemplateAddon, TextAddon, ValueType } from "@ng-forge/dynamic-forms";
2
+ import { ButtonField, CheckboxField, DatepickerField, DatepickerProps, FieldTypeDefinition, InputField, InputProps, MultiCheckboxField, RadioField, SelectField, SelectProps, SliderField, TextareaField, TextareaProps, ToggleField, WrapperTypeDefinition } from "@ng-forge/dynamic-forms/integration";
3
+ import { Provider } from "@angular/core";
4
+ import { IONIC_CONFIG, IONIC_INPUT_TYPE_OVERRIDE, IonicAddon, IonicButtonAddon, IonicButtonAddon as IonicButtonAddon$1, IonicConfig, IonicConfig as IonicConfig$1, IonicIconAddon, IonicIconAddon as IonicIconAddon$1 } from "@ng-forge/dynamic-forms-ionic/shared";
5
+ import "@angular/forms/signals";
6
+ import { IonicButtonFieldComponent as IonicButtonFieldComponent$1 } from "@ng-forge/dynamic-forms-ionic/lazy/button";
7
+ import { IonicCheckboxFieldComponent as IonicCheckboxFieldComponent$1 } from "@ng-forge/dynamic-forms-ionic/lazy/checkbox";
8
+ import { IonicDatepickerFieldComponent as IonicDatepickerFieldComponent$1 } from "@ng-forge/dynamic-forms-ionic/lazy/datepicker";
9
+ import { IonicInputFieldComponent as IonicInputFieldComponent$1 } from "@ng-forge/dynamic-forms-ionic/lazy/input";
10
+ import { IonicMultiCheckboxFieldComponent as IonicMultiCheckboxFieldComponent$1 } from "@ng-forge/dynamic-forms-ionic/lazy/multi-checkbox";
11
+ import { IonicRadioFieldComponent as IonicRadioFieldComponent$1 } from "@ng-forge/dynamic-forms-ionic/lazy/radio";
12
+ import { IonicSelectFieldComponent as IonicSelectFieldComponent$1 } from "@ng-forge/dynamic-forms-ionic/lazy/select";
13
+ import { IonicSliderFieldComponent as IonicSliderFieldComponent$1 } from "@ng-forge/dynamic-forms-ionic/lazy/slider";
14
+ import { IonicTextareaFieldComponent as IonicTextareaFieldComponent$1 } from "@ng-forge/dynamic-forms-ionic/lazy/textarea";
15
+ import { IonicToggleFieldComponent as IonicToggleFieldComponent$1 } from "@ng-forge/dynamic-forms-ionic/lazy/toggle";
16
+ import { IonicIconAddonComponent as IonicIconAddonComponent$1 } from "@ng-forge/dynamic-forms-ionic/lazy/addon-icon";
17
+ import { IonicButtonAddonComponent as IonicButtonAddonComponent$1 } from "@ng-forge/dynamic-forms-ionic/lazy/addon-button";
19
18
  interface IonicButtonProps {
20
- expand?: 'full' | 'block';
21
- fill?: 'clear' | 'outline' | 'solid' | 'default';
22
- shape?: 'round';
23
- size?: 'small' | 'default' | 'large';
24
- color?: 'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'danger' | 'light' | 'medium' | 'dark';
25
- strong?: boolean;
26
- type?: 'button' | 'submit' | 'reset';
19
+ expand?: 'full' | 'block';
20
+ fill?: 'clear' | 'outline' | 'solid' | 'default';
21
+ shape?: 'round';
22
+ size?: 'small' | 'default' | 'large';
23
+ color?: 'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'danger' | 'light' | 'medium' | 'dark';
24
+ strong?: boolean;
25
+ type?: 'button' | 'submit' | 'reset';
27
26
  }
28
27
  type IonicButtonField<TEvent extends FormEvent> = ButtonField<IonicButtonProps, TEvent>;
29
28
  /** Specific button field types with preconfigured events */
30
29
  /** Submit button field - automatically disabled when form is invalid */
31
30
  type IonicSubmitButtonField = Omit<IonicButtonField<FormSubmitEvent>, 'event' | 'type' | 'eventArgs'> & {
32
- type: 'submit';
31
+ type: 'submit';
33
32
  };
34
33
  /** Next page button field - with preconfigured NextPageEvent */
35
34
  type IonicNextButtonField = Omit<IonicButtonField<NextPageEvent>, 'event' | 'type' | 'eventArgs'> & {
36
- type: 'next';
35
+ type: 'next';
37
36
  };
38
37
  /** Previous page button field - with preconfigured PreviousPageEvent */
39
38
  type IonicPreviousButtonField = Omit<IonicButtonField<PreviousPageEvent>, 'event' | 'type' | 'eventArgs'> & {
40
- type: 'previous';
39
+ type: 'previous';
41
40
  };
42
41
  /** Add array item button field - dispatches AppendArrayItemEvent */
43
42
  type IonicAddArrayItemButtonField = Omit<IonicButtonField<AppendArrayItemEvent>, 'event' | 'type' | 'eventArgs'> & {
44
- type: 'add-array-item' | 'addArrayItem';
45
- /**
46
- * The key of the array field to add items to.
47
- * Required when the button is placed outside the array.
48
- * When inside an array, this is automatically determined from context.
49
- */
50
- arrayKey?: string;
51
- /**
52
- * Template for the new array item. REQUIRED.
53
- * - Single field (ArrayAllowedChildren): Creates a primitive item (field's value is extracted directly)
54
- * - Array of fields (ArrayAllowedChildren[]): Creates an object item (fields merged into object)
55
- */
56
- template: ArrayAllowedChildren | readonly ArrayAllowedChildren[];
43
+ type: 'add-array-item' | 'addArrayItem';
44
+ /**
45
+ * The key of the array field to add items to.
46
+ * Required when the button is placed outside the array.
47
+ * When inside an array, this is automatically determined from context.
48
+ */
49
+ arrayKey?: string;
50
+ /**
51
+ * Template for the new array item. REQUIRED.
52
+ * - Single field (ArrayAllowedChildren): Creates a primitive item (field's value is extracted directly)
53
+ * - Array of fields (ArrayAllowedChildren[]): Creates an object item (fields merged into object)
54
+ */
55
+ template: ArrayAllowedChildren | readonly ArrayAllowedChildren[];
57
56
  };
58
57
  /** Prepend array item button field - dispatches PrependArrayItemEvent (adds at beginning) */
59
58
  type IonicPrependArrayItemButtonField = Omit<IonicButtonField<PrependArrayItemEvent>, 'event' | 'type' | 'eventArgs'> & {
60
- type: 'prepend-array-item' | 'prependArrayItem';
61
- /**
62
- * The key of the array field to prepend items to.
63
- * Required when the button is placed outside the array.
64
- * When inside an array, this is automatically determined from context.
65
- */
66
- arrayKey?: string;
67
- /**
68
- * Template for the new array item. REQUIRED.
69
- * - Single field (ArrayAllowedChildren): Creates a primitive item (field's value is extracted directly)
70
- * - Array of fields (ArrayAllowedChildren[]): Creates an object item (fields merged into object)
71
- */
72
- template: ArrayAllowedChildren | readonly ArrayAllowedChildren[];
59
+ type: 'prepend-array-item' | 'prependArrayItem';
60
+ /**
61
+ * The key of the array field to prepend items to.
62
+ * Required when the button is placed outside the array.
63
+ * When inside an array, this is automatically determined from context.
64
+ */
65
+ arrayKey?: string;
66
+ /**
67
+ * Template for the new array item. REQUIRED.
68
+ * - Single field (ArrayAllowedChildren): Creates a primitive item (field's value is extracted directly)
69
+ * - Array of fields (ArrayAllowedChildren[]): Creates an object item (fields merged into object)
70
+ */
71
+ template: ArrayAllowedChildren | readonly ArrayAllowedChildren[];
73
72
  };
74
73
  /** Insert array item button field - dispatches InsertArrayItemEvent (adds at specific index) */
75
74
  type IonicInsertArrayItemButtonField = Omit<IonicButtonField<InsertArrayItemEvent>, 'event' | 'type' | 'eventArgs'> & {
76
- type: 'insert-array-item' | 'insertArrayItem';
77
- /**
78
- * The key of the array field to insert items into.
79
- * Required when the button is placed outside the array.
80
- * When inside an array, this is automatically determined from context.
81
- */
82
- arrayKey?: string;
83
- /** The index at which to insert the new item. */
84
- index: number;
85
- /**
86
- * Template for the new array item. REQUIRED.
87
- * - Single field (ArrayAllowedChildren): Creates a primitive item (field's value is extracted directly)
88
- * - Array of fields (ArrayAllowedChildren[]): Creates an object item (fields merged into object)
89
- */
90
- template: ArrayAllowedChildren | readonly ArrayAllowedChildren[];
75
+ type: 'insert-array-item' | 'insertArrayItem';
76
+ /**
77
+ * The key of the array field to insert items into.
78
+ * Required when the button is placed outside the array.
79
+ * When inside an array, this is automatically determined from context.
80
+ */
81
+ arrayKey?: string;
82
+ /** The index at which to insert the new item. */
83
+ index: number;
84
+ /**
85
+ * Template for the new array item. REQUIRED.
86
+ * - Single field (ArrayAllowedChildren): Creates a primitive item (field's value is extracted directly)
87
+ * - Array of fields (ArrayAllowedChildren[]): Creates an object item (fields merged into object)
88
+ */
89
+ template: ArrayAllowedChildren | readonly ArrayAllowedChildren[];
91
90
  };
92
91
  /** Remove array item button field - dispatches RemoveAtIndexEvent or PopArrayItemEvent */
93
92
  type IonicRemoveArrayItemButtonField = Omit<IonicButtonField<RemoveAtIndexEvent>, 'event' | 'type' | 'eventArgs'> & {
94
- type: 'remove-array-item' | 'removeArrayItem';
95
- /**
96
- * The key of the array field to remove items from.
97
- * Required when the button is placed outside the array.
98
- * When inside an array, this is automatically determined from context.
99
- */
100
- arrayKey?: string;
93
+ type: 'remove-array-item' | 'removeArrayItem';
94
+ /**
95
+ * The key of the array field to remove items from.
96
+ * Required when the button is placed outside the array.
97
+ * When inside an array, this is automatically determined from context.
98
+ */
99
+ arrayKey?: string;
101
100
  };
102
101
  /** Pop array item button field - dispatches PopArrayItemEvent (removes last item) */
103
102
  type IonicPopArrayItemButtonField = Omit<IonicButtonField<PopArrayItemEvent>, 'event' | 'type' | 'eventArgs'> & {
104
- type: 'pop-array-item' | 'popArrayItem';
105
- /**
106
- * The key of the array field to remove the last item from.
107
- * REQUIRED - must specify which array to pop from.
108
- */
109
- arrayKey: string;
103
+ type: 'pop-array-item' | 'popArrayItem';
104
+ /**
105
+ * The key of the array field to remove the last item from.
106
+ * REQUIRED - must specify which array to pop from.
107
+ */
108
+ arrayKey: string;
110
109
  };
111
110
  /** Shift array item button field - dispatches ShiftArrayItemEvent (removes first item) */
112
111
  type IonicShiftArrayItemButtonField = Omit<IonicButtonField<ShiftArrayItemEvent>, 'event' | 'type' | 'eventArgs'> & {
113
- type: 'shift-array-item' | 'shiftArrayItem';
114
- /**
115
- * The key of the array field to remove the first item from.
116
- * REQUIRED - must specify which array to shift from.
117
- */
118
- arrayKey: string;
112
+ type: 'shift-array-item' | 'shiftArrayItem';
113
+ /**
114
+ * The key of the array field to remove the first item from.
115
+ * REQUIRED - must specify which array to shift from.
116
+ */
117
+ arrayKey: string;
119
118
  };
120
-
121
119
  interface IonicCheckboxProps {
122
- labelPlacement?: 'start' | 'end' | 'fixed' | 'stacked';
123
- justify?: 'start' | 'end' | 'space-between';
124
- color?: 'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'danger';
125
- indeterminate?: boolean;
126
- hint?: DynamicText;
120
+ labelPlacement?: 'start' | 'end' | 'fixed' | 'stacked';
121
+ justify?: 'start' | 'end' | 'space-between';
122
+ color?: 'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'danger';
123
+ indeterminate?: boolean;
124
+ hint?: DynamicText;
127
125
  }
128
126
  type IonicCheckboxField = CheckboxField<IonicCheckboxProps>;
129
-
130
127
  interface IonicDatepickerProps extends DatepickerProps {
131
- presentation?: 'date' | 'date-time' | 'time' | 'time-date' | 'month' | 'month-year' | 'year';
132
- multiple?: boolean;
133
- preferWheel?: boolean;
134
- showDefaultButtons?: boolean;
135
- showDefaultTitle?: boolean;
136
- showDefaultTimeLabel?: boolean;
137
- showClearButton?: boolean;
138
- doneText?: string;
139
- cancelText?: string;
140
- size?: 'cover' | 'fixed';
141
- color?: 'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'danger';
142
- hint?: DynamicText;
128
+ presentation?: 'date' | 'date-time' | 'time' | 'time-date' | 'month' | 'month-year' | 'year';
129
+ multiple?: boolean;
130
+ preferWheel?: boolean;
131
+ showDefaultButtons?: boolean;
132
+ showDefaultTitle?: boolean;
133
+ showDefaultTimeLabel?: boolean;
134
+ showClearButton?: boolean;
135
+ doneText?: string;
136
+ cancelText?: string;
137
+ size?: 'cover' | 'fixed';
138
+ color?: 'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'danger';
139
+ hint?: DynamicText;
140
+ /** BCP 47 locale for the picker and the displayed value. Defaults to the browser locale. */
141
+ locale?: string;
143
142
  }
144
143
  type IonicDatepickerField = DatepickerField<IonicDatepickerProps>;
145
-
146
144
  interface IonicInputProps extends InputProps {
147
- fill?: 'solid' | 'outline';
148
- shape?: 'round';
149
- labelPlacement?: 'start' | 'end' | 'fixed' | 'stacked' | 'floating';
150
- color?: 'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'danger' | 'light' | 'medium' | 'dark';
151
- hint?: DynamicText;
152
- errorText?: DynamicText;
153
- counter?: boolean;
154
- clearInput?: boolean;
145
+ fill?: 'solid' | 'outline';
146
+ shape?: 'round';
147
+ labelPlacement?: 'start' | 'end' | 'fixed' | 'stacked' | 'floating';
148
+ color?: 'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'danger' | 'light' | 'medium' | 'dark';
149
+ hint?: DynamicText;
150
+ errorText?: DynamicText;
151
+ counter?: boolean;
152
+ clearInput?: boolean;
155
153
  }
156
154
  /**
157
155
  * Module-augmentable seam for adding custom addon types to `ion-input` at
158
156
  * the type level. Pair with `withCustomAddon(...)` for the runtime side:
159
157
  */
160
- interface IonicAddonExtensions {
161
- }
158
+ interface IonicAddonExtensions {}
162
159
  type IonicAddonExtension = IonicAddonExtensions[keyof IonicAddonExtensions];
163
160
  /** Addon types accepted by `ion-input`. */
164
- type IonicInputAddon = IonicIconAddon | IonicButtonAddon | TextAddon | TemplateAddon | IonicAddonExtension;
161
+ type IonicInputAddon = IonicIconAddon$1 | IonicButtonAddon$1 | TextAddon | TemplateAddon | IonicAddonExtension;
165
162
  type IonicInputField = InputField<IonicInputProps> & {
166
- addons?: ReadonlyArray<IonicInputAddon>;
163
+ addons?: ReadonlyArray<IonicInputAddon>;
167
164
  };
168
-
169
165
  interface IonicMultiCheckboxProps {
170
- labelPlacement?: 'start' | 'end' | 'fixed' | 'stacked';
171
- justify?: 'start' | 'end' | 'space-between';
172
- color?: 'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'danger';
173
- hint?: DynamicText;
166
+ labelPlacement?: 'start' | 'end' | 'fixed' | 'stacked';
167
+ justify?: 'start' | 'end' | 'space-between';
168
+ color?: 'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'danger';
169
+ hint?: DynamicText;
174
170
  }
175
171
  type IonicMultiCheckboxField<T> = MultiCheckboxField<T, IonicMultiCheckboxProps>;
176
-
177
172
  interface IonicRadioProps {
178
- labelPlacement?: 'start' | 'end' | 'fixed' | 'stacked';
179
- justify?: 'start' | 'end' | 'space-between';
180
- color?: 'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'danger';
181
- compareWith?: (o1: ValueType, o2: ValueType) => boolean;
182
- hint?: DynamicText;
173
+ labelPlacement?: 'start' | 'end' | 'fixed' | 'stacked';
174
+ justify?: 'start' | 'end' | 'space-between';
175
+ color?: 'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'danger';
176
+ compareWith?: (o1: ValueType, o2: ValueType) => boolean;
177
+ hint?: DynamicText;
183
178
  }
184
179
  type IonicRadioField<T> = RadioField<T, IonicRadioProps>;
185
-
186
180
  interface IonicSelectProps extends SelectProps {
187
- multiple?: boolean;
188
- interface?: 'action-sheet' | 'popover' | 'alert';
189
- interfaceOptions?: unknown;
190
- cancelText?: string;
191
- okText?: string;
192
- fill?: 'solid' | 'outline';
193
- shape?: 'round';
194
- labelPlacement?: 'start' | 'end' | 'fixed' | 'stacked' | 'floating';
195
- color?: 'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'danger';
196
- compareWith?: (o1: ValueType, o2: ValueType) => boolean;
197
- hint?: DynamicText;
181
+ multiple?: boolean;
182
+ interface?: 'action-sheet' | 'popover' | 'alert';
183
+ interfaceOptions?: unknown;
184
+ cancelText?: string;
185
+ okText?: string;
186
+ fill?: 'solid' | 'outline';
187
+ shape?: 'round';
188
+ labelPlacement?: 'start' | 'end' | 'fixed' | 'stacked' | 'floating';
189
+ color?: 'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'danger';
190
+ compareWith?: (o1: ValueType, o2: ValueType) => boolean;
191
+ hint?: DynamicText;
198
192
  }
199
193
  type IonicSelectField<T> = SelectField<T, IonicSelectProps>;
200
-
201
194
  interface IonicSliderProps {
202
- /**
203
- * Adapter-level override for the slider minimum.
204
- * Field-level `minValue` (or the validator `min`) takes precedence.
205
- */
206
- min?: number;
207
- /**
208
- * Adapter-level override for the slider maximum.
209
- * Field-level `maxValue` (or the validator `max`) takes precedence.
210
- */
211
- max?: number;
212
- /**
213
- * Adapter-level override for the slider step increment.
214
- * Field-level `step` on `SliderField` takes precedence.
215
- */
216
- step?: number;
217
- dualKnobs?: boolean;
218
- pin?: boolean;
219
- pinFormatter?: (value: number) => string | number;
220
- ticks?: boolean;
221
- snaps?: boolean;
222
- color?: 'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'danger';
223
- labelPlacement?: 'start' | 'end' | 'fixed' | 'stacked';
224
- hint?: DynamicText;
195
+ /**
196
+ * Adapter-level override for the slider minimum.
197
+ * Field-level `minValue` (or the validator `min`) takes precedence.
198
+ */
199
+ min?: number;
200
+ /**
201
+ * Adapter-level override for the slider maximum.
202
+ * Field-level `maxValue` (or the validator `max`) takes precedence.
203
+ */
204
+ max?: number;
205
+ /**
206
+ * Adapter-level override for the slider step increment.
207
+ * Field-level `step` on `SliderField` takes precedence.
208
+ */
209
+ step?: number;
210
+ dualKnobs?: boolean;
211
+ pin?: boolean;
212
+ pinFormatter?: (value: number) => string | number;
213
+ ticks?: boolean;
214
+ snaps?: boolean;
215
+ color?: 'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'danger';
216
+ labelPlacement?: 'start' | 'end' | 'fixed' | 'stacked';
217
+ hint?: DynamicText;
225
218
  }
226
219
  type IonicSliderField = SliderField<IonicSliderProps>;
227
-
228
220
  interface IonicTextareaProps extends TextareaProps {
229
- autoGrow?: boolean;
230
- counter?: boolean;
231
- fill?: 'solid' | 'outline';
232
- shape?: 'round';
233
- labelPlacement?: 'start' | 'end' | 'fixed' | 'stacked' | 'floating';
234
- hint?: DynamicText;
235
- errorText?: DynamicText;
236
- color?: 'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'danger' | 'light' | 'medium' | 'dark';
221
+ autoGrow?: boolean;
222
+ counter?: boolean;
223
+ fill?: 'solid' | 'outline';
224
+ shape?: 'round';
225
+ labelPlacement?: 'start' | 'end' | 'fixed' | 'stacked' | 'floating';
226
+ hint?: DynamicText;
227
+ errorText?: DynamicText;
228
+ color?: 'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'danger' | 'light' | 'medium' | 'dark';
237
229
  }
238
230
  type IonicTextareaField = TextareaField<IonicTextareaProps>;
239
-
240
231
  interface IonicToggleProps {
241
- labelPlacement?: 'start' | 'end' | 'fixed' | 'stacked';
242
- justify?: 'start' | 'end' | 'space-between';
243
- color?: 'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'danger';
244
- enableOnOffLabels?: boolean;
245
- hint?: DynamicText;
232
+ labelPlacement?: 'start' | 'end' | 'fixed' | 'stacked';
233
+ justify?: 'start' | 'end' | 'space-between';
234
+ color?: 'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'danger';
235
+ enableOnOffLabels?: boolean;
236
+ hint?: DynamicText;
246
237
  }
247
238
  type IonicToggleField = ToggleField<IonicToggleProps>;
248
-
249
239
  /**
250
240
  * Ionic field type definitions
251
241
  * Follows the FieldTypeDefinition interface for proper registry integration
252
242
  */
253
- declare const IONIC_FIELD_TYPES: FieldTypeDefinition[];
254
-
243
+ export declare const IONIC_FIELD_TYPES: FieldTypeDefinition[];
255
244
  /**
256
245
  * Ionic field type constants
257
246
  * Based on available field components in the /fields folder
258
247
  */
259
- declare const IonicField: {
260
- readonly Input: "input";
261
- readonly Select: "select";
262
- readonly Checkbox: "checkbox";
263
- readonly Button: "button";
264
- readonly Submit: "submit";
265
- readonly Next: "next";
266
- readonly Previous: "previous";
267
- readonly AddArrayItem: "add-array-item";
268
- readonly PrependArrayItem: "prepend-array-item";
269
- readonly InsertArrayItem: "insert-array-item";
270
- readonly RemoveArrayItem: "remove-array-item";
271
- readonly PopArrayItem: "pop-array-item";
272
- readonly ShiftArrayItem: "shift-array-item";
273
- readonly Textarea: "textarea";
274
- readonly Radio: "radio";
275
- readonly MultiCheckbox: "multi-checkbox";
276
- readonly Datepicker: "datepicker";
277
- readonly Slider: "slider";
278
- readonly Toggle: "toggle";
248
+ export declare const IonicField: {
249
+ readonly Input: "input";
250
+ readonly Select: "select";
251
+ readonly Checkbox: "checkbox";
252
+ readonly Button: "button";
253
+ readonly Submit: "submit";
254
+ readonly Next: "next";
255
+ readonly Previous: "previous";
256
+ readonly AddArrayItem: "add-array-item";
257
+ readonly PrependArrayItem: "prepend-array-item";
258
+ readonly InsertArrayItem: "insert-array-item";
259
+ readonly RemoveArrayItem: "remove-array-item";
260
+ readonly PopArrayItem: "pop-array-item";
261
+ readonly ShiftArrayItem: "shift-array-item";
262
+ readonly Textarea: "textarea";
263
+ readonly Radio: "radio";
264
+ readonly MultiCheckbox: "multi-checkbox";
265
+ readonly Datepicker: "datepicker";
266
+ readonly Slider: "slider";
267
+ readonly Toggle: "toggle";
279
268
  };
280
269
  type IonicFieldType = (typeof IonicField)[keyof typeof IonicField];
281
-
282
270
  /** Ionic-specific props that can be set at form level and cascade to all fields. */
283
- type IonicFormProps = IonicConfig;
271
+ type IonicFormProps = IonicConfig$1;
284
272
  /** Ionic-specific FormConfig with type-safe defaultProps. */
285
273
  type IonicFormConfig<TFields extends NarrowFields | RegisteredFieldTypes[] = RegisteredFieldTypes[], TValue = InferFormValue<TFields extends readonly RegisteredFieldTypes[] ? TFields : RegisteredFieldTypes[]>> = FormConfig<TFields, TValue, IonicFormProps>;
286
-
287
- /**
288
- * Module augmentation for @ng-forge/dynamic-form
289
- * This file augments the FieldRegistryLeaves interface to include
290
- * all Ionic field types provided by this library.
291
- */
292
-
293
274
  declare module '@ng-forge/dynamic-forms' {
294
- interface FieldRegistryLeaves {
295
- input: IonicInputField;
296
- select: IonicSelectField<unknown>;
297
- checkbox: IonicCheckboxField;
298
- button: IonicButtonField<FormEvent>;
299
- submit: IonicSubmitButtonField;
300
- next: IonicNextButtonField;
301
- previous: IonicPreviousButtonField;
302
- textarea: IonicTextareaField;
303
- radio: IonicRadioField<unknown>;
304
- 'multi-checkbox': IonicMultiCheckboxField<unknown>;
305
- datepicker: IonicDatepickerField;
306
- slider: IonicSliderField;
307
- toggle: IonicToggleField;
308
- addArrayItem: IonicAddArrayItemButtonField;
309
- 'add-array-item': IonicAddArrayItemButtonField;
310
- prependArrayItem: IonicPrependArrayItemButtonField;
311
- 'prepend-array-item': IonicPrependArrayItemButtonField;
312
- insertArrayItem: IonicInsertArrayItemButtonField;
313
- 'insert-array-item': IonicInsertArrayItemButtonField;
314
- removeArrayItem: IonicRemoveArrayItemButtonField;
315
- 'remove-array-item': IonicRemoveArrayItemButtonField;
316
- popArrayItem: IonicPopArrayItemButtonField;
317
- 'pop-array-item': IonicPopArrayItemButtonField;
318
- shiftArrayItem: IonicShiftArrayItemButtonField;
319
- 'shift-array-item': IonicShiftArrayItemButtonField;
320
- }
275
+ interface FieldRegistryLeaves {
276
+ input: IonicInputField;
277
+ select: IonicSelectField<unknown>;
278
+ checkbox: IonicCheckboxField;
279
+ button: IonicButtonField<FormEvent>;
280
+ submit: IonicSubmitButtonField;
281
+ next: IonicNextButtonField;
282
+ previous: IonicPreviousButtonField;
283
+ textarea: IonicTextareaField;
284
+ radio: IonicRadioField<unknown>;
285
+ 'multi-checkbox': IonicMultiCheckboxField<unknown>;
286
+ datepicker: IonicDatepickerField;
287
+ slider: IonicSliderField;
288
+ toggle: IonicToggleField;
289
+ addArrayItem: IonicAddArrayItemButtonField;
290
+ 'add-array-item': IonicAddArrayItemButtonField;
291
+ prependArrayItem: IonicPrependArrayItemButtonField;
292
+ 'prepend-array-item': IonicPrependArrayItemButtonField;
293
+ insertArrayItem: IonicInsertArrayItemButtonField;
294
+ 'insert-array-item': IonicInsertArrayItemButtonField;
295
+ removeArrayItem: IonicRemoveArrayItemButtonField;
296
+ 'remove-array-item': IonicRemoveArrayItemButtonField;
297
+ popArrayItem: IonicPopArrayItemButtonField;
298
+ 'pop-array-item': IonicPopArrayItemButtonField;
299
+ shiftArrayItem: IonicShiftArrayItemButtonField;
300
+ 'shift-array-item': IonicShiftArrayItemButtonField;
301
+ }
321
302
  }
322
-
323
303
  /** Field type definitions for Ionic components. */
324
304
  type IonicFieldTypes = FieldTypeDefinition[];
325
305
  type IonicConfigFeature = {
326
- ɵkind: 'ionic-config';
327
- ɵproviders: Provider[];
306
+ ɵkind: 'ionic-config';
307
+ ɵproviders: Provider[];
328
308
  };
329
309
  /**
330
310
  * Default `withIonicFields()` shape — field defs + the auto-included
@@ -341,45 +321,42 @@ type IonicFieldsWithConfig = [...IonicFieldTypes, IonicAddonsFeature, WrapperTyp
341
321
  * @returns Tuple of field type definitions, the addons feature, and
342
322
  * optionally a config feature.
343
323
  */
344
- declare function withIonicFields(): IonicFieldsWithAddons;
345
- declare function withIonicFields(config: IonicConfig): IonicFieldsWithConfig;
346
- declare function withIonicFields(config: IonicConfig | undefined): IonicFieldsWithAddons | IonicFieldsWithConfig;
324
+ export declare function withIonicFields(): IonicFieldsWithAddons;
325
+ export declare function withIonicFields(config: IonicConfig$1): IonicFieldsWithConfig;
326
+ export declare function withIonicFields(config: IonicConfig$1 | undefined): IonicFieldsWithAddons | IonicFieldsWithConfig;
347
327
  /**
348
328
  * Feature type discriminant for the Ionic addons feature. Matches core's
349
329
  * `'addons'` type so providers flow through the standard addon-type pipeline
350
330
  * in `provideDynamicForm`.
351
331
  */
352
332
  type IonicAddonsFeature = {
353
- ɵkind: 'addons';
354
- ɵproviders: Provider[];
333
+ ɵkind: 'addons';
334
+ ɵproviders: Provider[];
355
335
  };
356
336
  /** Register Ionic-shipped addon types (`ion-icon`, `ion-button`) standalone. */
357
- declare function withIonicAddons(): IonicAddonsFeature;
358
-
337
+ export declare function withIonicAddons(): IonicAddonsFeature;
359
338
  /** Class type of the component in `@ng-forge/dynamic-forms-ionic/lazy/button`. Import it from there to use the class as a value. */
360
- type IonicButtonFieldComponent<TEvent extends FormEvent> = IonicButtonFieldComponent$1<TEvent>;
339
+ export type IonicButtonFieldComponent<TEvent extends FormEvent> = IonicButtonFieldComponent$1<TEvent>;
361
340
  /** Class type of the component in `@ng-forge/dynamic-forms-ionic/lazy/checkbox`. Import it from there to use the class as a value. */
362
- type IonicCheckboxFieldComponent = IonicCheckboxFieldComponent$1;
341
+ export type IonicCheckboxFieldComponent = IonicCheckboxFieldComponent$1;
363
342
  /** Class type of the component in `@ng-forge/dynamic-forms-ionic/lazy/datepicker`. Import it from there to use the class as a value. */
364
- type IonicDatepickerFieldComponent = IonicDatepickerFieldComponent$1;
343
+ export type IonicDatepickerFieldComponent = IonicDatepickerFieldComponent$1;
365
344
  /** Class type of the component in `@ng-forge/dynamic-forms-ionic/lazy/input`. Import it from there to use the class as a value. */
366
- type IonicInputFieldComponent = IonicInputFieldComponent$1;
345
+ export type IonicInputFieldComponent = IonicInputFieldComponent$1;
367
346
  /** Class type of the component in `@ng-forge/dynamic-forms-ionic/lazy/multi-checkbox`. Import it from there to use the class as a value. */
368
- type IonicMultiCheckboxFieldComponent = IonicMultiCheckboxFieldComponent$1;
347
+ export type IonicMultiCheckboxFieldComponent = IonicMultiCheckboxFieldComponent$1;
369
348
  /** Class type of the component in `@ng-forge/dynamic-forms-ionic/lazy/radio`. Import it from there to use the class as a value. */
370
- type IonicRadioFieldComponent = IonicRadioFieldComponent$1;
349
+ export type IonicRadioFieldComponent = IonicRadioFieldComponent$1;
371
350
  /** Class type of the component in `@ng-forge/dynamic-forms-ionic/lazy/select`. Import it from there to use the class as a value. */
372
- type IonicSelectFieldComponent = IonicSelectFieldComponent$1;
351
+ export type IonicSelectFieldComponent = IonicSelectFieldComponent$1;
373
352
  /** Class type of the component in `@ng-forge/dynamic-forms-ionic/lazy/slider`. Import it from there to use the class as a value. */
374
- type IonicSliderFieldComponent = IonicSliderFieldComponent$1;
353
+ export type IonicSliderFieldComponent = IonicSliderFieldComponent$1;
375
354
  /** Class type of the component in `@ng-forge/dynamic-forms-ionic/lazy/textarea`. Import it from there to use the class as a value. */
376
- type IonicTextareaFieldComponent = IonicTextareaFieldComponent$1;
355
+ export type IonicTextareaFieldComponent = IonicTextareaFieldComponent$1;
377
356
  /** Class type of the component in `@ng-forge/dynamic-forms-ionic/lazy/toggle`. Import it from there to use the class as a value. */
378
- type IonicToggleFieldComponent = IonicToggleFieldComponent$1;
357
+ export type IonicToggleFieldComponent = IonicToggleFieldComponent$1;
379
358
  /** Class type of the component in `@ng-forge/dynamic-forms-ionic/lazy/addon-icon`. Import it from there to use the class as a value. */
380
- type IonicIconAddonComponent = IonicIconAddonComponent$1;
359
+ export type IonicIconAddonComponent = IonicIconAddonComponent$1;
381
360
  /** Class type of the component in `@ng-forge/dynamic-forms-ionic/lazy/addon-button`. Import it from there to use the class as a value. */
382
- type IonicButtonAddonComponent = IonicButtonAddonComponent$1;
383
-
384
- export { IONIC_FIELD_TYPES, IonicField, withIonicAddons, withIonicFields };
385
- export type { IonicAddArrayItemButtonField, IonicAddonExtensions, IonicButtonAddonComponent, IonicButtonField, IonicButtonFieldComponent, IonicButtonProps, IonicCheckboxField, IonicCheckboxFieldComponent, IonicCheckboxProps, IonicDatepickerField, IonicDatepickerFieldComponent, IonicDatepickerProps, IonicFieldType, IonicFormConfig, IonicFormProps, IonicIconAddonComponent, IonicInputAddon, IonicInputField, IonicInputFieldComponent, IonicInputProps, IonicInsertArrayItemButtonField, IonicMultiCheckboxField, IonicMultiCheckboxFieldComponent, IonicMultiCheckboxProps, IonicNextButtonField, IonicPopArrayItemButtonField, IonicPrependArrayItemButtonField, IonicPreviousButtonField, IonicRadioField, IonicRadioFieldComponent, IonicRadioProps, IonicRemoveArrayItemButtonField, IonicSelectField, IonicSelectFieldComponent, IonicSelectProps, IonicShiftArrayItemButtonField, IonicSliderField, IonicSliderFieldComponent, IonicSliderProps, IonicSubmitButtonField, IonicTextareaField, IonicTextareaFieldComponent, IonicTextareaProps, IonicToggleField, IonicToggleFieldComponent, IonicToggleProps };
361
+ export type IonicButtonAddonComponent = IonicButtonAddonComponent$1;
362
+ export { IONIC_CONFIG, IONIC_INPUT_TYPE_OVERRIDE, type IonicAddArrayItemButtonField, type IonicAddon, type IonicAddonExtensions, type IonicButtonAddon, type IonicButtonField, type IonicButtonProps, type IonicCheckboxField, type IonicCheckboxProps, type IonicConfig, type IonicDatepickerField, type IonicDatepickerProps, type IonicFieldType, type IonicFormConfig, type IonicFormProps, type IonicIconAddon, type IonicInputAddon, type IonicInputField, type IonicInputProps, type IonicInsertArrayItemButtonField, type IonicMultiCheckboxField, type IonicMultiCheckboxProps, type IonicNextButtonField, type IonicPopArrayItemButtonField, type IonicPrependArrayItemButtonField, type IonicPreviousButtonField, type IonicRadioField, type IonicRadioProps, type IonicRemoveArrayItemButtonField, type IonicSelectField, type IonicSelectProps, type IonicShiftArrayItemButtonField, type IonicSliderField, type IonicSliderProps, type IonicSubmitButtonField, type IonicTextareaField, type IonicTextareaProps, type IonicToggleField, type IonicToggleProps };