framework7-svelte 8.3.4 → 9.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.
Files changed (194) hide show
  1. package/components/accordion-content.d.ts +11 -5
  2. package/components/accordion-content.svelte +8 -6
  3. package/components/accordion-item.d.ts +23 -11
  4. package/components/accordion-item.svelte +27 -25
  5. package/components/accordion-toggle.d.ts +11 -5
  6. package/components/accordion-toggle.svelte +8 -6
  7. package/components/accordion.d.ts +11 -5
  8. package/components/accordion.svelte +11 -10
  9. package/components/actions-button.d.ts +14 -6
  10. package/components/actions-button.svelte +21 -19
  11. package/components/actions-group.d.ts +11 -5
  12. package/components/actions-group.svelte +4 -7
  13. package/components/actions-label.d.ts +11 -5
  14. package/components/actions-label.svelte +13 -23
  15. package/components/actions.d.ts +31 -21
  16. package/components/actions.svelte +50 -54
  17. package/components/app.d.ts +11 -5
  18. package/components/app.svelte +6 -7
  19. package/components/area-chart.d.ts +13 -6
  20. package/components/area-chart.svelte +42 -46
  21. package/components/badge.d.ts +11 -5
  22. package/components/badge.svelte +10 -9
  23. package/components/block-footer.d.ts +11 -5
  24. package/components/block-footer.svelte +8 -6
  25. package/components/block-header.d.ts +11 -5
  26. package/components/block-header.svelte +8 -6
  27. package/components/block-title.d.ts +11 -5
  28. package/components/block-title.svelte +12 -10
  29. package/components/block.d.ts +11 -5
  30. package/components/block.svelte +76 -76
  31. package/components/breadcrumbs-collapsed.d.ts +12 -6
  32. package/components/breadcrumbs-collapsed.svelte +10 -15
  33. package/components/breadcrumbs-item.d.ts +12 -6
  34. package/components/breadcrumbs-item.svelte +9 -8
  35. package/components/breadcrumbs-separator.d.ts +10 -5
  36. package/components/breadcrumbs-separator.svelte +9 -5
  37. package/components/breadcrumbs.d.ts +11 -6
  38. package/components/breadcrumbs.svelte +8 -6
  39. package/components/button.d.ts +44 -37
  40. package/components/button.svelte +107 -103
  41. package/components/card-content.d.ts +11 -5
  42. package/components/card-content.svelte +11 -10
  43. package/components/card-footer.d.ts +11 -5
  44. package/components/card-footer.svelte +8 -6
  45. package/components/card-header.d.ts +11 -5
  46. package/components/card-header.svelte +8 -6
  47. package/components/card.d.ts +43 -31
  48. package/components/card.svelte +78 -67
  49. package/components/checkbox.d.ts +20 -13
  50. package/components/checkbox.svelte +32 -30
  51. package/components/chip.d.ts +22 -15
  52. package/components/chip.svelte +54 -60
  53. package/components/fab-backdrop.d.ts +10 -5
  54. package/components/fab-backdrop.svelte +5 -7
  55. package/components/fab-button.d.ts +17 -11
  56. package/components/fab-button.svelte +20 -29
  57. package/components/fab-buttons.d.ts +11 -5
  58. package/components/fab-buttons.svelte +5 -12
  59. package/components/fab.d.ts +22 -13
  60. package/components/fab.svelte +55 -51
  61. package/components/gauge.d.ts +24 -19
  62. package/components/gauge.svelte +25 -25
  63. package/components/icon.d.ts +19 -13
  64. package/components/icon.svelte +65 -63
  65. package/components/input.d.ts +78 -61
  66. package/components/input.svelte +171 -154
  67. package/components/link.d.ts +28 -21
  68. package/components/link.svelte +67 -65
  69. package/components/list-button.d.ts +22 -15
  70. package/components/list-button.svelte +56 -44
  71. package/components/list-group.d.ts +16 -10
  72. package/components/list-group.svelte +38 -34
  73. package/components/list-index.d.ts +20 -13
  74. package/components/list-index.svelte +23 -24
  75. package/components/list-input.d.ts +91 -64
  76. package/components/list-input.svelte +254 -205
  77. package/components/list-item.d.ts +98 -63
  78. package/components/list-item.svelte +412 -439
  79. package/components/list.d.ts +72 -54
  80. package/components/list.svelte +151 -147
  81. package/components/login-screen-title.d.ts +11 -5
  82. package/components/login-screen-title.svelte +4 -6
  83. package/components/login-screen.d.ts +20 -10
  84. package/components/login-screen.svelte +39 -42
  85. package/components/message.d.ts +48 -29
  86. package/components/message.svelte +123 -88
  87. package/components/messagebar-attachment.d.ts +17 -9
  88. package/components/messagebar-attachment.svelte +16 -18
  89. package/components/messagebar-attachments.d.ts +11 -5
  90. package/components/messagebar-attachments.svelte +6 -6
  91. package/components/messagebar-sheet-image.d.ts +19 -10
  92. package/components/messagebar-sheet-image.svelte +30 -22
  93. package/components/messagebar-sheet-item.d.ts +11 -5
  94. package/components/messagebar-sheet-item.svelte +4 -6
  95. package/components/messagebar-sheet.d.ts +11 -5
  96. package/components/messagebar-sheet.svelte +4 -6
  97. package/components/messagebar.d.ts +53 -31
  98. package/components/messagebar.svelte +100 -77
  99. package/components/messages-title.d.ts +11 -5
  100. package/components/messages-title.svelte +4 -6
  101. package/components/messages.d.ts +26 -20
  102. package/components/messages.svelte +32 -32
  103. package/components/nav-left.d.ts +19 -12
  104. package/components/nav-left.svelte +23 -39
  105. package/components/nav-right.d.ts +11 -6
  106. package/components/nav-right.svelte +4 -15
  107. package/components/nav-title-large.d.ts +11 -5
  108. package/components/nav-title-large.svelte +4 -6
  109. package/components/nav-title.d.ts +13 -8
  110. package/components/nav-title.svelte +25 -20
  111. package/components/navbar.d.ts +47 -28
  112. package/components/navbar.svelte +100 -111
  113. package/components/page-content.d.ts +41 -29
  114. package/components/page-content.svelte +58 -50
  115. package/components/page.d.ts +71 -46
  116. package/components/page.svelte +102 -82
  117. package/components/panel.d.ts +51 -35
  118. package/components/panel.svelte +94 -99
  119. package/components/photo-browser.d.ts +50 -41
  120. package/components/photo-browser.svelte +48 -47
  121. package/components/pie-chart.d.ts +13 -6
  122. package/components/pie-chart.svelte +29 -27
  123. package/components/popover.d.ts +28 -19
  124. package/components/popover.svelte +45 -48
  125. package/components/popup.d.ts +37 -23
  126. package/components/popup.svelte +68 -57
  127. package/components/preloader.d.ts +10 -5
  128. package/components/preloader.svelte +30 -31
  129. package/components/progressbar.d.ts +11 -6
  130. package/components/progressbar.svelte +13 -17
  131. package/components/radio.d.ts +19 -12
  132. package/components/radio.svelte +19 -23
  133. package/components/range.d.ts +35 -27
  134. package/components/range.svelte +47 -44
  135. package/components/routable-modals.d.ts +9 -4
  136. package/components/routable-modals.svelte +9 -8
  137. package/components/router-context-provider.d.ts +11 -6
  138. package/components/router-context-provider.svelte +2 -4
  139. package/components/searchbar.d.ts +60 -43
  140. package/components/searchbar.svelte +115 -104
  141. package/components/segmented.d.ts +21 -15
  142. package/components/segmented.svelte +38 -35
  143. package/components/sheet.d.ts +47 -30
  144. package/components/sheet.svelte +94 -76
  145. package/components/snippet-render.d.ts +24 -0
  146. package/components/snippet-render.svelte +9 -0
  147. package/components/stepper.d.ts +53 -43
  148. package/components/stepper.svelte +83 -79
  149. package/components/subnavbar.d.ts +13 -8
  150. package/components/subnavbar.svelte +12 -20
  151. package/components/swipeout-actions.d.ts +14 -8
  152. package/components/swipeout-actions.svelte +14 -13
  153. package/components/swipeout-button.d.ts +20 -13
  154. package/components/swipeout-button.svelte +31 -31
  155. package/components/tab.d.ts +14 -8
  156. package/components/tab.svelte +20 -28
  157. package/components/tabs.d.ts +15 -9
  158. package/components/tabs.svelte +27 -26
  159. package/components/text-editor.d.ts +44 -24
  160. package/components/text-editor.svelte +56 -41
  161. package/components/toggle.d.ts +22 -15
  162. package/components/toggle.svelte +33 -37
  163. package/components/toolbar-pane.d.ts +24 -0
  164. package/components/toolbar-pane.svelte +14 -0
  165. package/components/toolbar.d.ts +30 -20
  166. package/components/toolbar.svelte +61 -53
  167. package/components/treeview-item.d.ts +36 -17
  168. package/components/treeview-item.svelte +101 -81
  169. package/components/treeview.d.ts +11 -5
  170. package/components/treeview.svelte +4 -6
  171. package/components/use-icon.d.ts +9 -4
  172. package/components/use-icon.svelte +1 -1
  173. package/components/view.d.ts +76 -65
  174. package/components/view.svelte +66 -48
  175. package/components/views.d.ts +11 -5
  176. package/components/views.svelte +12 -15
  177. package/framework7-svelte.d.ts +3 -1
  178. package/framework7-svelte.js +6 -4
  179. package/package.json +2 -2
  180. package/shared/components-router.js +28 -25
  181. package/shared/f7.js +1 -7
  182. package/shared/mixins.js +5 -5
  183. package/shared/modal-state-classes.js +4 -5
  184. package/shared/plugin.js +1 -4
  185. package/shared/rest-props.js +1 -4
  186. package/shared/use-icon.js +2 -5
  187. package/shared/use-store.js +9 -9
  188. package/shared/use-tab.js +3 -3
  189. package/shared/use-tooltip.js +3 -4
  190. package/shared/utils.js +2 -8
  191. package/shared/get-reactive-context.js +0 -16
  192. package/shared/list-context.js +0 -10
  193. package/shared/router-context.js +0 -8
  194. package/shared/set-reactive-context.js +0 -26
@@ -1,56 +1,56 @@
1
1
 
2
- import { SvelteComponent } from 'svelte';
2
+ import { SvelteComponent, Snippet } from 'svelte';
3
3
  import { HTMLAttributes } from 'svelte/elements';
4
4
 
5
5
  import { Calendar, ColorPicker, TextEditor } from 'framework7/types';
6
6
 
7
7
 
8
- interface InputProps {
9
- type ?: string;
10
- name ?: string;
11
- value ?: string | number | Array<any> | Date | Object;
12
- defaultValue ?: string | number | Array<any>;
13
- inputmode ?: string;
14
- placeholder ?: string;
15
- inputId ?: string | number;
16
- size ?: string | number;
17
- accept ?: string | number;
18
- autocomplete ?: string;
19
- autocorrect ?: string;
20
- autocapitalize ?: string;
21
- spellcheck ?: string;
22
- autofocus ?: boolean;
23
- autosave ?: string;
24
- checked ?: boolean;
25
- disabled ?: boolean;
26
- max ?: string | number;
27
- min ?: string | number;
28
- step ?: string | number;
29
- maxlength ?: string | number;
30
- minlength ?: string | number;
31
- multiple ?: boolean;
32
- readonly ?: boolean;
33
- required ?: boolean;
34
- pattern ?: string;
35
- validate ?: boolean | string;
36
- validateOnBlur ?: boolean;
37
- onValidate ?: Function;
38
- tabindex ?: string | number;
39
- resizable ?: boolean;
40
- clearButton ?: boolean;
41
- noFormStoreData ?: boolean;
42
- noStoreData ?: boolean;
43
- ignoreStoreData ?: boolean;
44
- errorMessage ?: string;
45
- errorMessageForce ?: boolean;
46
- info ?: string;
47
- outline ?: boolean;
48
- wrap ?: boolean;
49
- dropdown ?: string | boolean;
50
- calendarParams ?: Calendar.Parameters;
51
- colorPickerParams ?: ColorPicker.Parameters;
52
- textEditorParams ?: TextEditor.Parameters;
53
- inputStyle ?: string;
8
+ interface Props {
9
+ type?: string;
10
+ name?: string;
11
+ value?: string | number | Array<any> | Date | Object;
12
+ defaultValue?: string | number | Array<any>;
13
+ inputmode?: string;
14
+ placeholder?: string;
15
+ inputId?: string | number;
16
+ size?: string | number;
17
+ accept?: string | number;
18
+ autocomplete?: string;
19
+ autocorrect?: string;
20
+ autocapitalize?: string;
21
+ spellcheck?: string;
22
+ autofocus?: boolean;
23
+ autosave?: string;
24
+ checked?: boolean;
25
+ disabled?: boolean;
26
+ max?: string | number;
27
+ min?: string | number;
28
+ step?: string | number;
29
+ maxlength?: string | number;
30
+ minlength?: string | number;
31
+ multiple?: boolean;
32
+ readonly?: boolean;
33
+ required?: boolean;
34
+ pattern?: string;
35
+ validate?: boolean | string;
36
+ validateOnBlur?: boolean;
37
+ onValidate?: Function;
38
+ tabindex?: string | number;
39
+ resizable?: boolean;
40
+ clearButton?: boolean;
41
+ noFormStoreData?: boolean;
42
+ noStoreData?: boolean;
43
+ ignoreStoreData?: boolean;
44
+ errorMessage?: string | Snippet;
45
+ errorMessageForce?: boolean;
46
+ info?: string | Snippet;
47
+ outline?: boolean;
48
+ wrap?: boolean;
49
+ dropdown?: string | boolean;
50
+ calendarParams?: Calendar.Parameters;
51
+ colorPickerParams?: ColorPicker.Parameters;
52
+ textEditorParams?: TextEditor.Parameters;
53
+ inputStyle?: string;
54
54
  color?: string;
55
55
  colorTheme?: string;
56
56
  textColor?: string;
@@ -58,25 +58,42 @@ interface InputProps {
58
58
  borderColor?: string;
59
59
  rippleColor?: string;
60
60
  dark?: boolean;
61
- onCalendarChange ?: (calendarValue?: any) => void;
62
- onColorPickerChange ?: (colorPickerValue?: any) => void;
63
- onTextareaResize ?: (event?: any) => void;
64
- onInputNotEmpty ?: (event?: any) => void;
65
- onInputEmpty ?: (event?: any) => void;
66
- onInputClear ?: (event?: any) => void;
67
- onInput ?: (...args: any[]) => void;
68
- onFocus ?: (...args: any[]) => void;
69
- onBlur ?: (...args: any[]) => void;
70
- onChange ?: (...args: any[]) => void;
71
- onTextEditorChange ?: (...args: any[]) => void;
61
+ onCalendarChange?: (calendarValue?: any) => void;
62
+ onColorPickerChange?: (colorPickerValue?: any) => void;
63
+ onTextareaResize?: (event?: any) => void;
64
+ onInputNotEmpty?: (event?: any) => void;
65
+ onInputEmpty?: (event?: any) => void;
66
+ onInputClear?: (event?: any) => void;
67
+ onInput?: (...args: any[]) => void;
68
+ onFocus?: (...args: any[]) => void;
69
+ onBlur?: (...args: any[]) => void;
70
+ onChange?: (...args: any[]) => void;
71
+ onTextEditorChange?: (...args: any[]) => void;
72
+ children?: Snippet;
73
+ ontextarearesize?: () => void;
74
+ oninputnotempty?: () => void;
75
+ oninputempty?: () => void;
76
+ oninputclear?: () => void;
77
+ oninput?: () => void;
78
+ onfocus?: () => void;
79
+ onblur?: () => void;
80
+ onchange?: () => void;
81
+ ontexteditorchange?: () => void;
82
+ oncalendarchange?: () => void;
83
+ oncolorpickerchange?: () => void;
72
84
  }
73
85
 
86
+ interface InputProps {}
87
+ interface InputProps extends Props {}
88
+
89
+ interface InputEvents extends Record<'',{}>{}
90
+
74
91
 
75
92
 
76
93
  declare class Input extends SvelteComponent<
77
- InputProps & Omit<HTMLAttributes<HTMLElementTagNameMap['div']>, keyof InputProps>,
78
- { textareaResize: CustomEvent<void>; inputNotEmpty: CustomEvent<void>; inputEmpty: CustomEvent<void>; inputClear: CustomEvent<void>; input: CustomEvent<void>; focus: CustomEvent<void>; blur: CustomEvent<void>; change: CustomEvent<void>; textEditorChange: CustomEvent<void>; calendarChange: CustomEvent<void>; colorpickerChange: CustomEvent<void>; },
79
- { 'default' : {}; 'error-message' : {}; 'info' : {}; }
94
+ InputProps,
95
+ InputEvents,
96
+ { }
80
97
  > {}
81
98
 
82
99
  export { InputProps };
@@ -1,81 +1,80 @@
1
1
  <script>
2
- import { createEventDispatcher, onMount, afterUpdate, onDestroy } from 'svelte';
2
+ import { onMount, onDestroy } from 'svelte';
3
3
  import { colorClasses } from '../shared/mixins.js';
4
- import { classNames, createEmitter } from '../shared/utils.js';
5
- import { restProps } from '../shared/rest-props.js';
4
+ import { classNames } from '../shared/utils.js';
6
5
  import { app, f7ready } from '../shared/f7.js';
7
6
  import Toggle from './toggle.svelte';
8
7
  import Range from './range.svelte';
9
8
  import TextEditor from './text-editor.svelte';
10
9
 
11
- const emit = createEmitter(createEventDispatcher, $$props);
12
-
13
- let className = undefined;
14
- export { className as class };
15
-
16
- export let type = undefined;
17
- export let name = undefined;
18
- export let value = undefined;
19
- export let placeholder = undefined;
20
- export let inputId = undefined;
21
- export let size = undefined;
22
- export let accept = undefined;
23
- export let autocomplete = undefined;
24
- export let autocorrect = undefined;
25
- export let autocapitalize = undefined;
26
- export let spellcheck = undefined;
27
- export let autofocus = undefined;
28
- export let autosave = undefined;
29
- export let checked = undefined;
30
- export let disabled = undefined;
31
- export let max = undefined;
32
- export let min = undefined;
33
- export let step = undefined;
34
- export let maxlength = undefined;
35
- export let minlength = undefined;
36
- export let multiple = undefined;
37
- export let readonly = undefined;
38
- export let required = undefined;
39
- export let inputStyle = undefined;
40
- export let pattern = undefined;
41
- export let validate = undefined;
42
- export let validateOnBlur = undefined;
43
- export let onValidate = undefined;
44
- export let tabindex = undefined;
45
- export let resizable = undefined;
46
- export let clearButton = undefined;
47
-
48
- // Form
49
- export let noFormStoreData = undefined;
50
- export let noStoreData = undefined;
51
- export let ignoreStoreData = undefined;
52
-
53
- // Error, Info
54
- export let errorMessage = undefined;
55
- export let errorMessageForce = undefined;
56
- export let info = undefined;
57
-
58
- // Outline
59
- export let outline = undefined;
60
-
61
- // Components
62
- export let wrap = true;
63
- export let dropdown = 'auto';
64
-
65
- // Datepicker
66
- export let calendarParams = undefined;
67
- // Colorpicker
68
- export let colorPickerParams = undefined;
69
- // Text editor
70
- export let textEditorParams = undefined;
10
+ let {
11
+ class: className,
12
+ type = undefined,
13
+ name = undefined,
14
+ value = undefined,
15
+ placeholder = undefined,
16
+ inputId = undefined,
17
+ size = undefined,
18
+ accept = undefined,
19
+ autocomplete = undefined,
20
+ autocorrect = undefined,
21
+ autocapitalize = undefined,
22
+ spellcheck = undefined,
23
+ autofocus = undefined,
24
+ autosave = undefined,
25
+ checked = undefined,
26
+ disabled = undefined,
27
+ max = undefined,
28
+ min = undefined,
29
+ step = undefined,
30
+ maxlength = undefined,
31
+ minlength = undefined,
32
+ multiple = undefined,
33
+ readonly = undefined,
34
+ required = undefined,
35
+ inputStyle = undefined,
36
+ pattern = undefined,
37
+ validate = undefined,
38
+ validateOnBlur = undefined,
39
+ onValidate = undefined,
40
+ tabindex = undefined,
41
+ resizable = undefined,
42
+ clearButton = undefined,
43
+
44
+ // Form
45
+ noFormStoreData = undefined,
46
+ noStoreData = undefined,
47
+ ignoreStoreData = undefined,
48
+
49
+ // Error, Info
50
+ errorMessage = undefined,
51
+ errorMessageForce = undefined,
52
+ info = undefined,
53
+
54
+ // Outline
55
+ outline = undefined,
56
+
57
+ // Components
58
+ wrap = true,
59
+ dropdown = 'auto',
60
+
61
+ // Datepicker
62
+ calendarParams = undefined,
63
+ // Colorpicker
64
+ colorPickerParams = undefined,
65
+ // Text editor
66
+ textEditorParams = undefined,
67
+
68
+ ...restProps
69
+ } = $props();
71
70
 
72
71
  // State
73
- let inputEl;
74
- let inputFocused = false;
75
- let inputInvalid = false;
76
- let updateInputOnDidUpdate = false;
77
- let f7Calendar;
78
- let f7ColorPicker;
72
+ let inputEl = $state(null);
73
+ let inputFocused = $state(false);
74
+ let inputInvalid = $state(false);
75
+ let updateInputOnDidUpdate = $state(false);
76
+ let f7Calendar = $state(null);
77
+ let f7ColorPicker = $state(null);
79
78
 
80
79
  function domValue() {
81
80
  if (!inputEl) return undefined;
@@ -125,14 +124,16 @@
125
124
  }
126
125
  }
127
126
 
128
- $: watchValue(value);
127
+ $effect(() => {
128
+ watchValue(value);
129
+ });
129
130
 
130
- $: inputType = type === 'datepicker' || type === 'colorpicker' ? 'text' : type;
131
+ const inputType = $derived(type === 'datepicker' || type === 'colorpicker' ? 'text' : type);
131
132
 
132
133
  // eslint-disable-next-line
133
- $: needsValue = type !== 'file' && type !== 'datepicker' && type !== 'colorpicker';
134
+ const needsValue = $derived(type !== 'file' && type !== 'datepicker' && type !== 'colorpicker');
134
135
 
135
- $: inputValue = (() => {
136
+ const inputValue = $derived.by(() => {
136
137
  let v;
137
138
  if (typeof value !== 'undefined') {
138
139
  v = value;
@@ -141,50 +142,54 @@
141
142
  }
142
143
  if (typeof v === 'undefined' || v === null) return '';
143
144
  return v;
144
- })();
145
-
146
- $: wrapClasses = classNames(
147
- className,
148
- 'input',
149
- {
150
- 'input-outline': outline,
151
- 'input-dropdown': dropdown === 'auto' ? type === 'select' : dropdown,
152
- 'input-invalid': (errorMessage && errorMessageForce) || inputInvalid,
153
- },
154
- colorClasses($$props),
155
- );
156
-
157
- $: inputClassName = classNames(!wrap && className, {
158
- resizable: inputType === 'textarea' && resizable,
159
- 'no-store-data': noFormStoreData || noStoreData || ignoreStoreData,
160
- 'input-invalid': (errorMessage && errorMessageForce) || inputInvalid,
161
- 'input-with-value': inputHasValue(),
162
- 'input-focused': inputFocused,
163
145
  });
164
146
 
165
- // eslint-disable-next-line
166
- $: hasInfoSlots = $$slots.info;
167
- // eslint-disable-next-line
168
- $: hasErrorSlots = $$slots['error-message'];
147
+ const wrapClasses = $derived(
148
+ classNames(
149
+ className,
150
+ 'input',
151
+ {
152
+ 'input-outline': outline,
153
+ 'input-dropdown': dropdown === 'auto' ? type === 'select' : dropdown,
154
+ 'input-invalid': (errorMessage && errorMessageForce) || inputInvalid,
155
+ },
156
+ colorClasses(restProps),
157
+ ),
158
+ );
159
+
160
+ const inputClassName = $derived(
161
+ classNames(!wrap && className, {
162
+ resizable: inputType === 'textarea' && resizable,
163
+ 'no-store-data': noFormStoreData || noStoreData || ignoreStoreData,
164
+ 'input-invalid': (errorMessage && errorMessageForce) || inputInvalid,
165
+ 'input-with-value': inputHasValue(),
166
+ 'input-focused': inputFocused,
167
+ }),
168
+ );
169
169
 
170
170
  function onTextareaResize(event) {
171
- emit('textareaResize', [event]);
171
+ restProps.ontextarearesize?.(event);
172
+ restProps.onTextareaResize?.(event);
172
173
  }
173
174
 
174
175
  function onInputNotEmpty(event) {
175
- emit('inputNotEmpty', [event]);
176
+ restProps.onInputNotEmpty?.(event);
177
+ restProps.oninputnotempty?.(event);
176
178
  }
177
179
 
178
180
  function onInputEmpty(event) {
179
- emit('inputEmpty', [event]);
181
+ restProps.onInputEmpty?.(event);
182
+ restProps.oninputempty?.(event);
180
183
  }
181
184
 
182
185
  function onInputClear(event) {
183
- emit('inputClear', [event]);
186
+ restProps.onInputClear?.(event);
187
+ restProps.oninputclear?.(event);
184
188
  }
185
189
 
186
190
  function onInput(...args) {
187
- emit('input', [...args]);
191
+ restProps.onInput?.(...args);
192
+ restProps.oninput?.(...args);
188
193
 
189
194
  if (!(validateOnBlur || validateOnBlur === '') && (validate || validate === '') && inputEl) {
190
195
  validateInput(inputEl);
@@ -195,13 +200,15 @@
195
200
  }
196
201
 
197
202
  function onFocus(...args) {
198
- emit('focus', [...args]);
203
+ restProps.onFocus?.(...args);
204
+ restProps.onfocus?.(...args);
199
205
 
200
206
  inputFocused = true;
201
207
  }
202
208
 
203
209
  function onBlur(...args) {
204
- emit('blur', [...args]);
210
+ restProps.onBlur?.(...args);
211
+ restProps.onblur?.(...args);
205
212
 
206
213
  if ((validate || validate === '' || validateOnBlur || validateOnBlur === '') && inputEl) {
207
214
  validateInput();
@@ -210,10 +217,12 @@
210
217
  }
211
218
 
212
219
  function onChange(...args) {
213
- emit('change', [...args]);
220
+ restProps.onChange?.(...args);
221
+ restProps.onchange?.(...args);
214
222
 
215
223
  if (type === 'texteditor') {
216
- emit('textEditorChange', [args[1]]);
224
+ restProps.ontexteditorchange?.(args[1]);
225
+ restProps.onTextEditorChange?.(args[1]);
217
226
  value = args[1];
218
227
  }
219
228
  }
@@ -238,7 +247,8 @@
238
247
  value,
239
248
  on: {
240
249
  change(calendar, calendarValue) {
241
- emit('calendarChange', [calendarValue]);
250
+ restProps.onCalendarChange?.(calendarValue);
251
+ restProps.oncalendarchange?.(calendarValue);
242
252
  value = calendarValue;
243
253
  },
244
254
  },
@@ -251,7 +261,8 @@
251
261
  value,
252
262
  on: {
253
263
  change(colorPicker, colorPickerValue) {
254
- emit('colorpickerChange', [colorPickerValue]);
264
+ restProps.onColorPickerChange?.(colorPickerValue);
265
+ restProps.oncolorpickerchange?.(colorPickerValue);
255
266
  value = colorPickerValue;
256
267
  },
257
268
  },
@@ -277,7 +288,7 @@
277
288
  });
278
289
  });
279
290
 
280
- afterUpdate(() => {
291
+ $effect(() => {
281
292
  if (!app.f7) return;
282
293
  if (updateInputOnDidUpdate) {
283
294
  if (!inputEl) return;
@@ -317,7 +328,7 @@
317
328
 
318
329
  <!-- svelte-ignore a11y-autofocus -->
319
330
  {#if wrap}
320
- <div class={wrapClasses} {...restProps($$restProps)}>
331
+ <div class={wrapClasses} {...restProps}>
321
332
  {#if type === 'select'}
322
333
  <select
323
334
  bind:this={inputEl}
@@ -355,13 +366,13 @@
355
366
  {tabindex}
356
367
  data-error-message={errorMessageForce ? undefined : errorMessage}
357
368
  class={inputClassName}
358
- on:focus={onFocus}
359
- on:blur={onBlur}
360
- on:input={onInput}
361
- on:change={onChange}
369
+ onfocus={onFocus}
370
+ onblur={onBlur}
371
+ oninput={onInput}
372
+ onchange={onChange}
362
373
  value={inputValue}
363
374
  >
364
- <slot />
375
+ {@render children?.()}
365
376
  </select>
366
377
  {:else if type === 'textarea'}
367
378
  <textarea
@@ -400,14 +411,14 @@
400
411
  {tabindex}
401
412
  data-error-message={errorMessageForce ? undefined : errorMessage}
402
413
  class={inputClassName}
403
- on:focus={onFocus}
404
- on:blur={onBlur}
405
- on:input={onInput}
406
- on:change={onChange}
414
+ onfocus={onFocus}
415
+ onblur={onBlur}
416
+ oninput={onInput}
417
+ onchange={onChange}
407
418
  value={inputValue}
408
- />
419
+ ></textarea>
409
420
  {:else if type === 'toggle'}
410
- <Toggle {checked} {readonly} {name} {value} {disabled} id={inputId} on:change={onChange} />
421
+ <Toggle {checked} {readonly} {name} {value} {disabled} id={inputId} onchange={onChange} />
411
422
  {:else if type === 'range'}
412
423
  <Range
413
424
  {value}
@@ -418,7 +429,7 @@
418
429
  {name}
419
430
  id={inputId}
420
431
  input={true}
421
- on:rangeChange={onChange}
432
+ onRangeChange={onChange}
422
433
  />
423
434
  {:else if type === 'texteditor'}
424
435
  <TextEditor
@@ -469,24 +480,30 @@
469
480
  tabIndex={tabindex}
470
481
  data-error-message={errorMessageForce ? undefined : errorMessage}
471
482
  class={inputClassName}
472
- on:focus={onFocus}
473
- on:blur={onBlur}
474
- on:input={onInput}
475
- on:change={onChange}
483
+ onfocus={onFocus}
484
+ onblur={onBlur}
485
+ oninput={onInput}
486
+ onchange={onChange}
476
487
  value={type === 'datepicker' || type === 'colorpicker' || type === 'file' ? '' : inputValue}
477
488
  />
478
489
  {/if}
479
- {#if (errorMessage || hasErrorSlots) && errorMessageForce}
490
+ {#if errorMessage && errorMessageForce}
480
491
  <div class="input-error-message">
481
- {errorMessage}
482
- <slot name="error-message" />
492
+ {#if typeof errorMessage === 'function'}
493
+ {@render errorMessage?.()}
494
+ {:else}
495
+ {errorMessage}
496
+ {/if}
483
497
  </div>
484
498
  {/if}
485
- {#if clearButton}<span class="input-clear-button" />{/if}
486
- {#if info || hasInfoSlots}
499
+ {#if clearButton}<span class="input-clear-button"></span>{/if}
500
+ {#if info}
487
501
  <div class="input-info">
488
- {info}
489
- <slot name="info" />
502
+ {#if typeof info === 'function'}
503
+ {@render info?.()}
504
+ {:else}
505
+ {info}
506
+ {/if}
490
507
  </div>
491
508
  {/if}
492
509
  </div>
@@ -527,14 +544,14 @@
527
544
  {tabindex}
528
545
  data-error-message={errorMessageForce ? undefined : errorMessage}
529
546
  class={inputClassName}
530
- on:focus={onFocus}
531
- on:blur={onBlur}
532
- on:input={onInput}
533
- on:change={onChange}
547
+ onfocus={onFocus}
548
+ onblur={onBlur}
549
+ oninput={onInput}
550
+ onchange={onChange}
534
551
  value={inputValue}
535
- {...restProps($$restProps)}
552
+ {...restProps}
536
553
  >
537
- <slot />
554
+ {@render children?.()}
538
555
  </select>
539
556
  {:else if type === 'textarea'}
540
557
  <textarea
@@ -573,13 +590,13 @@
573
590
  {tabindex}
574
591
  data-error-message={errorMessageForce ? undefined : errorMessage}
575
592
  class={inputClassName}
576
- on:focus={onFocus}
577
- on:blur={onBlur}
578
- on:input={onInput}
579
- on:change={onChange}
593
+ onfocus={onFocus}
594
+ onblur={onBlur}
595
+ oninput={onInput}
596
+ onchange={onChange}
580
597
  value={inputValue}
581
- {...restProps($$restProps)}
582
- />
598
+ {...restProps}
599
+ ></textarea>
583
600
  {:else if type === 'toggle'}
584
601
  <Toggle
585
602
  {checked}
@@ -588,8 +605,8 @@
588
605
  {value}
589
606
  {disabled}
590
607
  id={inputId}
591
- on:change={onChange}
592
- {...restProps($$restProps)}
608
+ onchange={onChange}
609
+ {...restProps}
593
610
  />
594
611
  {:else if type === 'range'}
595
612
  <Range
@@ -601,8 +618,8 @@
601
618
  {name}
602
619
  id={inputId}
603
620
  input={true}
604
- on:rangeChange={onChange}
605
- {...restProps($$restProps)}
621
+ onRangeChange={onChange}
622
+ {...restProps}
606
623
  />
607
624
  {:else if type === 'texteditor'}
608
625
  <TextEditor
@@ -614,7 +631,7 @@
614
631
  onTextEditorInput={onInput}
615
632
  onTextEditorChange={onChange}
616
633
  {...textEditorParams}
617
- {...restProps($$restProps)}
634
+ {...restProps}
618
635
  />
619
636
  {:else}
620
637
  <input
@@ -654,11 +671,11 @@
654
671
  tabIndex={tabindex}
655
672
  data-error-message={errorMessageForce ? undefined : errorMessage}
656
673
  class={inputClassName}
657
- on:focus={onFocus}
658
- on:blur={onBlur}
659
- on:input={onInput}
660
- on:change={onChange}
674
+ onfocus={onFocus}
675
+ onblur={onBlur}
676
+ oninput={onInput}
677
+ onchange={onChange}
661
678
  value={type === 'datepicker' || type === 'colorpicker' || type === 'file' ? '' : inputValue}
662
- {...restProps($$restProps)}
679
+ {...restProps}
663
680
  />
664
681
  {/if}