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,5 +1,5 @@
1
1
  <script>
2
- import { createEventDispatcher, onMount, onDestroy, afterUpdate } from 'svelte';
2
+ import { onMount, onDestroy, getContext } from 'svelte';
3
3
  import {
4
4
  colorClasses,
5
5
  routerClasses,
@@ -7,159 +7,171 @@
7
7
  actionsClasses,
8
8
  actionsAttrs,
9
9
  } from '../shared/mixins.js';
10
- import { classNames, plainText, isStringProp, createEmitter } from '../shared/utils.js';
11
- import { restProps } from '../shared/rest-props.js';
10
+
11
+ import { classNames, isStringProp } from '../shared/utils.js';
12
12
  import { app, f7ready } from '../shared/f7.js';
13
13
  import { useTooltip } from '../shared/use-tooltip.js';
14
14
  import { useSmartSelect } from '../shared/use-smart-select.js';
15
15
  import { useRouteProps } from '../shared/use-route-props.js';
16
- import { getReactiveContext } from '../shared/get-reactive-context.js';
17
16
 
18
17
  import Badge from './badge.svelte';
18
+ import SnippetRender from './snippet-render.svelte';
19
19
 
20
- const emit = createEmitter(createEventDispatcher, $$props);
21
-
22
- let className = undefined;
23
- export { className as class };
24
-
25
- export let title = undefined;
26
- export let text = undefined;
27
- export let media = undefined;
28
- export let subtitle = undefined;
29
- export let header = undefined;
30
- export let footer = undefined;
31
-
32
- // Tooltip
33
- export let tooltip = undefined;
34
- export let tooltipTrigger = undefined;
35
-
36
- // Link Props
37
- export let link = undefined;
38
- export let tabLink = undefined;
39
- export let tabLinkActive = false;
40
- export let selected = false;
41
- export let href = undefined;
42
- export let target = undefined;
43
-
44
- export let after = undefined;
45
- export let badge = undefined;
46
- export let badgeColor = undefined;
47
-
48
- export let mediaItem = false;
49
- export let mediaList = false;
50
- export let groupTitle = false;
51
- export let swipeout = false;
52
- export let swipeoutOpened = false;
53
- export let sortable = undefined;
54
- export let sortableOpposite = undefined;
55
- export let accordionItem = false;
56
- export let accordionItemOpened = false;
57
-
58
- // Smart Select
59
- export let smartSelect = false;
60
- export let smartSelectParams = undefined;
61
-
62
- // Links Chevron (Arrow) Icon
63
- export let noChevron = undefined;
64
- export let chevronCenter = undefined;
65
-
66
- // Inputs
67
- export let checkbox = undefined;
68
- export let checkboxIcon = undefined;
69
- export let radio = undefined;
70
- export let radioIcon = undefined;
71
- export let checked = undefined;
72
- export let indeterminate = undefined;
73
- export let name = undefined;
74
- export let value = undefined;
75
- export let readonly = undefined;
76
- export let required = undefined;
77
- export let disabled = undefined;
78
- export let virtualListIndex = undefined;
20
+ let {
21
+ class: className,
22
+ title = undefined,
23
+ text = undefined,
24
+ media = undefined,
25
+ subtitle = undefined,
26
+ header = undefined,
27
+ footer = undefined,
28
+ tooltip = undefined,
29
+ tooltipTrigger = undefined,
30
+ link = undefined,
31
+ tabLink = undefined,
32
+ tabLinkActive = false,
33
+ selected = false,
34
+ href = undefined,
35
+ target = undefined,
36
+ after = undefined,
37
+ badge = undefined,
38
+ badgeColor = undefined,
39
+ mediaItem = false,
40
+ mediaList = false,
41
+ groupTitle = false,
42
+ swipeout = false,
43
+ swipeoutOpened = false,
44
+ sortable = undefined,
45
+ sortableOpposite = undefined,
46
+ accordionItem = false,
47
+ accordionItemOpened = false,
48
+ smartSelect = false,
49
+ smartSelectParams = undefined,
50
+ noChevron = undefined,
51
+ chevronCenter = undefined,
52
+ checkbox = undefined,
53
+ checkboxIcon = undefined,
54
+ radio = undefined,
55
+ radioIcon = undefined,
56
+ checked = undefined,
57
+ indeterminate = undefined,
58
+ name = undefined,
59
+ value = undefined,
60
+ readonly = undefined,
61
+ required = undefined,
62
+ disabled = undefined,
63
+ virtualListIndex = undefined,
64
+ routeProps = undefined,
79
65
 
80
- export let routeProps = undefined;
66
+ contentStart,
67
+ content,
68
+ contentEnd,
69
+ innerStart,
70
+ inner,
71
+ innerEnd,
72
+ root,
73
+ rootStart,
74
+ rootEnd,
75
+ beforeTitle,
76
+ afterTitle,
77
+ afterStart,
78
+ afterEnd,
79
+ children,
80
+ ...restProps
81
+ } = $props();
81
82
 
82
- let el;
83
- let linkEl;
84
- let innerEl;
83
+ let el = $state(undefined);
84
+ let linkEl = $state(undefined);
85
+ let innerEl = $state(undefined);
85
86
  let inputEl;
86
87
 
87
- let f7SmartSelect;
88
+ let f7SmartSelect = $state(undefined);
88
89
 
89
90
  export function smartSelectInstance() {
90
91
  return f7SmartSelect;
91
92
  }
92
93
 
93
- let ListContext =
94
- getReactiveContext('ListContext', (value) => {
95
- ListContext = value || {};
96
- }) || {};
94
+ const ListContext =
95
+ getContext('ListContext') ||
96
+ (() => ({
97
+ value: {},
98
+ }));
97
99
 
98
- $: isMedia = mediaList || mediaItem || ListContext.listIsMedia;
99
- $: isSortable = sortable === true || sortable === false ? sortable : ListContext.listIsSortable;
100
- $: isSortableOpposite = sortableOpposite || ListContext.listIsSortableOpposite;
101
- $: isSimple = ListContext.listIsSimple;
100
+ const isMedia = $derived(mediaList || mediaItem || ListContext().value.listIsMedia);
101
+ const isSortable = $derived(
102
+ sortable === true || sortable === false ? sortable : ListContext().value.listIsSortable,
103
+ );
104
+ const isSortableOpposite = $derived(
105
+ sortableOpposite || ListContext().value.listIsSortableOpposite,
106
+ );
107
+ const isSimple = $derived(ListContext().value.listIsSimple);
102
108
 
103
- $: liClasses = classNames(
104
- className,
105
- {
106
- 'list-group-title': groupTitle,
107
- 'media-item': isMedia,
108
- swipeout,
109
- 'accordion-item': accordionItem,
110
- 'accordion-item-opened': accordionItemOpened,
111
- disabled: disabled && !(radio || checkbox),
112
- 'no-chevron': noChevron,
113
- 'chevron-center': chevronCenter,
114
- 'disallow-sorting': sortable === false,
115
- },
116
- colorClasses($$props),
109
+ const liClasses = $derived(
110
+ classNames(
111
+ className,
112
+ {
113
+ 'list-group-title': groupTitle,
114
+ 'media-item': isMedia,
115
+ swipeout,
116
+ 'accordion-item': accordionItem,
117
+ 'accordion-item-opened': accordionItemOpened,
118
+ disabled: disabled && !(radio || checkbox),
119
+ 'no-chevron': noChevron,
120
+ 'chevron-center': chevronCenter,
121
+ 'disallow-sorting': sortable === false,
122
+ },
123
+ colorClasses(restProps),
124
+ ),
117
125
  );
118
126
 
119
- $: contentClasses = classNames(
120
- className,
121
- 'item-content',
122
- {
123
- 'item-checkbox': checkbox,
124
- 'item-radio': radio,
125
- 'item-checkbox-icon-start': checkbox && checkboxIcon === 'start',
126
- 'item-checkbox-icon-end': checkbox && checkboxIcon === 'end',
127
- 'item-radio-icon-start': radio && radioIcon === 'start',
128
- 'item-radio-icon-end': radio && radioIcon === 'end',
129
- },
130
- colorClasses($$props),
127
+ const contentClasses = $derived(
128
+ classNames(
129
+ className,
130
+ 'item-content',
131
+ {
132
+ 'item-checkbox': checkbox,
133
+ 'item-radio': radio,
134
+ 'item-checkbox-icon-start': checkbox && checkboxIcon === 'start',
135
+ 'item-checkbox-icon-end': checkbox && checkboxIcon === 'end',
136
+ 'item-radio-icon-start': radio && radioIcon === 'start',
137
+ 'item-radio-icon-end': radio && radioIcon === 'end',
138
+ },
139
+ colorClasses(restProps),
140
+ ),
131
141
  );
132
142
 
133
- $: linkClasses = classNames(
134
- {
135
- 'item-link': true,
136
- 'smart-select': smartSelect,
137
- 'tab-link': tabLink || tabLink === '',
138
- 'tab-link-active': tabLinkActive,
139
- 'item-selected': selected,
140
- },
141
- routerClasses($$props),
142
- actionsClasses($$props),
143
+ const linkClasses = $derived(
144
+ classNames(
145
+ {
146
+ 'item-link': true,
147
+ 'smart-select': smartSelect,
148
+ 'tab-link': tabLink || tabLink === '',
149
+ 'tab-link-active': tabLinkActive,
150
+ 'item-selected': selected,
151
+ },
152
+ routerClasses(restProps),
153
+ actionsClasses(restProps),
154
+ ),
143
155
  );
144
156
 
145
- $: linkAttrs = {
157
+ const linkAttrs = $derived({
146
158
  href: href === false ? undefined : link === true ? href || '' : link || href,
147
159
  target,
148
160
  'data-tab': (isStringProp(tabLink) && tabLink) || undefined,
149
- ...routerAttrs($$props),
150
- ...actionsAttrs($$props),
151
- };
161
+ ...routerAttrs(restProps),
162
+ ...actionsAttrs(restProps),
163
+ });
152
164
 
153
- $: isLink = link || href || smartSelect || accordionItem;
165
+ const isLink = $derived(link || href || smartSelect || accordionItem);
154
166
 
155
167
  /* eslint-disable no-undef */
156
- $: hasMedia = typeof media !== 'undefined' || $$slots.media;
157
- $: hasTitle = typeof title !== 'undefined' || $$slots.title;
158
- $: hasHeader = typeof header !== 'undefined' || $$slots.header;
159
- $: hasFooter = typeof footer !== 'undefined' || $$slots.footer;
160
- $: hasSubtitle = typeof subtitle !== 'undefined' || $$slots.subtitle;
161
- $: hasText = typeof text !== 'undefined' || $$slots.text;
162
- $: hasAfter = typeof after !== 'undefined' || typeof badge !== 'undefined' || $$slots.after;
168
+ const hasMedia = $derived(typeof media !== 'undefined');
169
+ const hasTitle = $derived(typeof title !== 'undefined');
170
+ const hasHeader = $derived(typeof header !== 'undefined');
171
+ const hasFooter = $derived(typeof footer !== 'undefined');
172
+ const hasSubtitle = $derived(typeof subtitle !== 'undefined');
173
+ const hasText = $derived(typeof text !== 'undefined');
174
+ const hasAfter = $derived(typeof after !== 'undefined' || typeof badge !== 'undefined');
163
175
  /* eslint-enable no-undef */
164
176
 
165
177
  let initialWatchedOpened = false;
@@ -175,84 +187,103 @@
175
187
  app.f7.swipeout.close(el);
176
188
  }
177
189
  }
178
- $: watchSwipeoutOpened(swipeoutOpened);
190
+ $effect(() => watchSwipeoutOpened(swipeoutOpened));
179
191
 
180
192
  function onClick(event) {
181
193
  if (event.target.tagName.toLowerCase() !== 'input') {
182
- emit('click', event);
194
+ restProps.onClick?.(event);
195
+ restProps.onclick?.(event);
183
196
  }
184
197
  }
185
198
  function onSwipeoutOverswipeEnter(eventEl) {
186
199
  if (eventEl !== el) return;
187
- emit('swipeoutOverswipeEnter');
200
+ restProps.onSwipeoutOverswipeEnter?.(event);
201
+ restProps.onswipeoutoverswipeenter?.(event);
188
202
  }
189
203
  function onSwipeoutOverswipeExit(eventEl) {
190
204
  if (eventEl !== el) return;
191
- emit('swipeoutOverswipeExit');
205
+ restProps.onSwipeoutOverswipeExit?.(event);
206
+ restProps.onswipeoutoverswipeexit?.(event);
192
207
  }
193
208
  function onSwipeoutDeleted(eventEl) {
194
209
  if (eventEl !== el) return;
195
- emit('swipeoutDeleted');
210
+ restProps.onSwipeoutDeleted?.(event);
211
+ restProps.onswipeoutdeleted?.(event);
196
212
  }
197
213
  function onSwipeoutDelete(eventEl) {
198
214
  if (eventEl !== el) return;
199
- emit('swipeoutDelete');
215
+ restProps.onSwipeoutDelete?.(event);
216
+ restProps.onswipeoutdelete?.(event);
200
217
  }
201
218
  function onSwipeoutClose(eventEl) {
202
219
  if (eventEl !== el) return;
203
- emit('swipeoutClose');
220
+ restProps.onSwipeoutClose?.(event);
221
+ restProps.onswipeoutclose?.(event);
204
222
  }
205
223
  function onSwipeoutClosed(eventEl) {
206
224
  if (eventEl !== el) return;
207
- emit('swipeoutClosed');
225
+ restProps.onSwipeoutClosed?.(event);
226
+ restProps.onswipeoutclosed?.(event);
208
227
  }
209
228
  function onSwipeoutOpen(eventEl) {
210
229
  if (eventEl !== el) return;
211
- emit('swipeoutOpen');
230
+ restProps.onSwipeoutOpen?.(event);
231
+ restProps.onswipeoutopen?.(event);
212
232
  }
213
233
  function onSwipeoutOpened(eventEl) {
214
234
  if (eventEl !== el) return;
215
- emit('swipeoutOpened');
235
+ restProps.onSwipeoutOpened?.(event);
236
+ restProps.onswipeoutopened?.(event);
216
237
  }
217
238
  function onSwipeout(eventEl, progress) {
218
239
  if (eventEl !== el) return;
219
- emit('swipeout', progress);
240
+ restProps.onSwipeout?.(progress);
241
+ restProps.onswipeout?.(progress);
220
242
  }
221
243
  function onAccBeforeClose(eventEl, prevent) {
222
244
  if (eventEl !== el) return;
223
- emit('accordionBeforeClose', [prevent]);
245
+ restProps.onAccordionBeforeClose?.(prevent);
246
+ restProps.onaccordionbeforeclose?.(prevent);
224
247
  }
225
248
  function onAccClose(eventEl) {
226
249
  if (eventEl !== el) return;
227
- emit('accordionClose');
250
+ restProps.onAccordionClose?.(event);
251
+ restProps.onaccordionclose?.(event);
228
252
  }
229
253
  function onAccClosed(eventEl) {
230
254
  if (eventEl !== el) return;
231
- emit('accordionClosed');
255
+ restProps.onAccordionClosed?.(event);
256
+ restProps.onaccordionclosed?.(event);
232
257
  }
233
258
  function onAccBeforeOpen(eventEl, prevent) {
234
259
  if (eventEl !== el) return;
235
- emit('accordionBeforeOpen', [prevent]);
260
+ restProps.onAccordionBeforeOpen?.(prevent);
261
+ restProps.onaccordionbeforeopen?.(prevent);
236
262
  }
237
263
  function onAccOpen(eventEl) {
238
264
  if (eventEl !== el) return;
239
- emit('accordionOpen');
265
+ restProps.onAccordionOpen?.(event);
266
+ restProps.onaccordionopen?.(event);
240
267
  }
241
268
  function onAccOpened(eventEl) {
242
269
  if (eventEl !== el) return;
243
- emit('accordionOpened');
270
+ restProps.onAccordionOpened?.(event);
271
+ restProps.onaccordionopened?.(event);
244
272
  }
245
273
  function onChange(event) {
246
- emit('change', [event]);
274
+ restProps.onChange?.(event);
275
+ restProps.onchange?.(event);
247
276
  checked = event.target.checked;
248
277
  }
249
278
 
250
- useSmartSelect(
251
- { smartSelect, smartSelectParams },
252
- (instance) => {
253
- f7SmartSelect = instance;
254
- },
255
- () => linkEl,
279
+ $effect(() =>
280
+ useSmartSelect(
281
+ { smartSelect, smartSelectParams },
282
+ (instance) => {
283
+ f7SmartSelect = instance;
284
+ },
285
+ () => linkEl,
286
+ ),
256
287
  );
257
288
 
258
289
  onMount(() => {
@@ -285,7 +316,7 @@
285
316
  });
286
317
  });
287
318
 
288
- afterUpdate(() => {
319
+ $effect(() => {
289
320
  if (inputEl) {
290
321
  inputEl.indeterminate = indeterminate;
291
322
  }
@@ -315,29 +346,36 @@
315
346
  });
316
347
  </script>
317
348
 
349
+ <!-- svelte-ignore a11y_click_events_have_key_events -->
350
+ <!-- svelte-ignore a11y_no_noninteractive_element_interactions -->
351
+ <!-- svelte-ignore a11y_no_static_element_interactions -->
352
+
318
353
  <!-- svelte-ignore a11y-missing-attribute -->
319
354
  {#if groupTitle}
320
355
  <li
321
- on:click={onClick}
356
+ onclick={onClick}
322
357
  bind:this={el}
323
358
  use:useTooltip={{ tooltip, tooltipTrigger }}
324
359
  class={liClasses}
325
360
  data-virtual-list-index={virtualListIndex}
326
- {...restProps($$restProps)}
361
+ {...restProps}
327
362
  >
328
- <span><slot>{plainText(title)}</slot></span>
363
+ <span>
364
+ <SnippetRender content={title} />
365
+ {@render children?.()}
366
+ </span>
329
367
  </li>
330
368
  {:else if isSimple}
331
369
  <li
332
- on:click={onClick}
370
+ onclick={onClick}
333
371
  bind:this={el}
334
372
  use:useTooltip={{ tooltip, tooltipTrigger }}
335
373
  class={liClasses}
336
374
  data-virtual-list-index={virtualListIndex}
337
- {...restProps($$restProps)}
375
+ {...restProps}
338
376
  >
339
- {plainText(title)}
340
- <slot />
377
+ <SnippetRender content={title} />
378
+ {@render children?.()}
341
379
  </li>
342
380
  {:else}
343
381
  <li
@@ -345,9 +383,9 @@
345
383
  use:useTooltip={{ tooltip, tooltipTrigger }}
346
384
  class={liClasses}
347
385
  data-virtual-list-index={virtualListIndex}
348
- {...restProps($$restProps)}
386
+ {...restProps}
349
387
  >
350
- <slot name="root-start" />
388
+ <SnippetRender content={rootStart} />
351
389
  {#if swipeout}
352
390
  <div class="swipeout-content">
353
391
  {#if isLink}
@@ -356,127 +394,117 @@
356
394
  use:useRouteProps={routeProps}
357
395
  class={linkClasses}
358
396
  {...linkAttrs}
359
- on:click={onClick}
397
+ onclick={onClick}
360
398
  >
361
399
  <!-- Item content start -->
362
400
  <div class={contentClasses}>
363
- <slot name="content-start" />
401
+ <SnippetRender content={contentStart} />
364
402
  {#if isSortable && sortable !== false && isSortableOpposite}
365
403
  <div class="sortable-handler" />
366
404
  {/if}
367
405
  {#if hasMedia}
368
406
  <div class="item-media">
369
- {#if typeof media !== 'undefined'}
407
+ {#if typeof media === 'function'}
408
+ {@render media?.()}
409
+ {:else if typeof media === 'string'}
370
410
  <img src={media} />
371
411
  {/if}
372
- <slot name="media" />
373
412
  </div>
374
413
  {/if}
375
414
  <div bind:this={innerEl} class="item-inner">
376
- <slot name="inner-start" />
415
+ <SnippetRender content={innerStart} />
377
416
  {#if isMedia}
378
417
  {#if hasHeader}
379
418
  <div class="item-header">
380
- {plainText(header)}
381
- <slot name="header" />
419
+ <SnippetRender content={header} />
382
420
  </div>
383
421
  {/if}
384
422
  <div class="item-title-row">
385
- <slot name="before-title" />
423
+ <SnippetRender content={beforeTitle} />
386
424
  {#if hasTitle}
387
425
  <div class="item-title">
388
- {plainText(title)}
389
- <slot name="title" />
426
+ <SnippetRender content={title} />
390
427
  </div>
391
428
  {/if}
392
- <slot name="after-title" />
429
+ <SnippetRender content={afterTitle} />
393
430
  {#if hasAfter}
394
431
  <div class="item-after">
395
- <slot name="after-start" />
396
- {#if typeof after !== 'undefined'}
397
- <span>{plainText(after)}</span>
398
- {/if}
432
+ <SnippetRender content={afterStart} />
433
+ <SnippetRender content={after} />
399
434
  {#if typeof badge !== 'undefined'}
400
- <Badge color={badgeColor}>{plainText(badge)}</Badge>
435
+ <Badge color={badgeColor}><SnippetRender content={badge} /></Badge>
401
436
  {/if}
402
- <slot name="after" />
403
- <slot name="after-end" />
437
+
438
+ <SnippetRender content={afterEnd} />
404
439
  </div>
405
440
  {/if}
406
441
  </div>
407
442
  {#if hasSubtitle}
408
443
  <div class="item-subtitle">
409
- {plainText(subtitle)}
410
- <slot name="subtitle" />
444
+ <SnippetRender content={subtitle} />
411
445
  </div>
412
446
  {/if}
413
447
  {#if hasText}
414
448
  <div class="item-text">
415
- {plainText(text)}
416
- <slot name="text" />
449
+ <SnippetRender content={text} />
417
450
  </div>
418
451
  {/if}
419
- <slot name="inner" />
452
+ <SnippetRender content={inner} />
420
453
  {#if !(swipeout || accordionItem)}
421
- <slot />
454
+ {@render children?.()}
422
455
  {/if}
423
456
  {#if hasFooter}
424
457
  <div class="item-footer">
425
- {plainText(footer)}
426
- <slot name="footer" />
458
+ <SnippetRender content={footer} />
427
459
  </div>
428
460
  {/if}
429
461
  {:else}
430
- <slot name="before-title" />
462
+ <SnippetRender content={beforeTitle} />
431
463
  {#if hasTitle || hasHeader || hasFooter}
432
464
  <div class="item-title">
433
465
  {#if hasHeader}
434
466
  <div class="item-header">
435
- {plainText(header)}
436
- <slot name="header" />
467
+ <SnippetRender content={header} />
437
468
  </div>
438
469
  {/if}
439
- {plainText(title)}
440
- <slot name="title" />
470
+ <SnippetRender content={title} />
441
471
  {#if hasFooter}
442
472
  <div class="item-footer">
443
- {plainText(footer)}
444
- <slot name="footer" />
473
+ <SnippetRender content={footer} />
445
474
  </div>
446
475
  {/if}
447
476
  </div>
448
477
  {/if}
449
- <slot name="after-title" />
478
+ <SnippetRender content={afterTitle} />
450
479
  {#if hasAfter}
451
480
  <div class="item-after">
452
- <slot name="after-start" />
453
- {#if typeof after !== 'undefined'}
454
- <span>{plainText(after)}</span>
455
- {/if}
481
+ <SnippetRender content={afterStart} />
482
+ <SnippetRender content={after} />
456
483
  {#if typeof badge !== 'undefined'}
457
- <Badge color={badgeColor}>{plainText(badge)}</Badge>
484
+ <Badge color={badgeColor}><SnippetRender content={badge} /></Badge>
458
485
  {/if}
459
- <slot name="after" />
460
- <slot name="after-end" />
486
+
487
+ <SnippetRender content={afterEnd} />
461
488
  </div>
462
489
  {/if}
463
- <slot name="inner" />
490
+ <SnippetRender content={inner} />
464
491
  {#if !(swipeout || accordionItem)}
465
- <slot />
492
+ {@render children?.()}
466
493
  {/if}
467
494
  {/if}
468
- <slot name="inner-end" />
495
+ <SnippetRender content={innerEnd} />
469
496
  </div>
470
- <slot name="content" />
471
- <slot name="content-end" />
497
+ <!-- prettier-ignore -->
498
+ <SnippetRender content={content} />
499
+ <SnippetRender content={contentEnd} />
472
500
  </div>
473
501
  <!-- Item content end -->
474
502
  </a>
475
503
  {:else}
476
504
  <!-- Item content start -->
477
505
  {#if checkbox || radio}
478
- <label class={contentClasses} on:click={onClick}>
479
- <slot name="content-start" />
506
+ <label class={contentClasses} onclick={onClick}>
507
+ <SnippetRender content={contentStart} />
480
508
  {#if isSortable && sortable !== false && isSortableOpposite}
481
509
  <div class="sortable-handler" />
482
510
  {/if}
@@ -489,226 +517,204 @@
489
517
  {disabled}
490
518
  {required}
491
519
  type={radio ? 'radio' : 'checkbox'}
492
- on:change={onChange}
520
+ onchange={onChange}
493
521
  />
494
522
  <i class={`icon icon-${radio ? 'radio' : 'checkbox'}`} />
495
523
  {#if hasMedia}
496
524
  <div class="item-media">
497
- {#if typeof media !== 'undefined'}
525
+ {#if typeof media === 'function'}
526
+ {@render media?.()}
527
+ {:else if typeof media === 'string'}
498
528
  <img src={media} />
499
529
  {/if}
500
- <slot name="media" />
501
530
  </div>
502
531
  {/if}
503
532
  <div bind:this={innerEl} class="item-inner">
504
- <slot name="inner-start" />
533
+ <SnippetRender content={innerStart} />
505
534
  {#if isMedia}
506
535
  {#if hasHeader}
507
536
  <div class="item-header">
508
- {plainText(header)}
509
- <slot name="header" />
537
+ <SnippetRender content={header} />
510
538
  </div>
511
539
  {/if}
512
540
  <div class="item-title-row">
513
- <slot name="before-title" />
541
+ <SnippetRender content={beforeTitle} />
514
542
  {#if hasTitle}
515
543
  <div class="item-title">
516
- {plainText(title)}
517
- <slot name="title" />
544
+ <SnippetRender content={title} />
518
545
  </div>
519
546
  {/if}
520
- <slot name="after-title" />
547
+ <SnippetRender content={afterTitle} />
521
548
  {#if hasAfter}
522
549
  <div class="item-after">
523
- <slot name="after-start" />
524
- {#if typeof after !== 'undefined'}
525
- <span>{plainText(after)}</span>
526
- {/if}
550
+ <SnippetRender content={afterStart} />
551
+ <SnippetRender content={after} />
527
552
  {#if typeof badge !== 'undefined'}
528
- <Badge color={badgeColor}>{plainText(badge)}</Badge>
553
+ <Badge color={badgeColor}><SnippetRender content={badge} /></Badge>
529
554
  {/if}
530
- <slot name="after" />
531
- <slot name="after-end" />
555
+
556
+ <SnippetRender content={afterEnd} />
532
557
  </div>
533
558
  {/if}
534
559
  </div>
535
560
  {#if hasSubtitle}
536
561
  <div class="item-subtitle">
537
- {plainText(subtitle)}
538
- <slot name="subtitle" />
562
+ <SnippetRender content={subtitle} />
539
563
  </div>
540
564
  {/if}
541
565
  {#if hasText}
542
566
  <div class="item-text">
543
- {plainText(text)}
544
- <slot name="text" />
567
+ <SnippetRender content={text} />
545
568
  </div>
546
569
  {/if}
547
- <slot name="inner" />
570
+ <SnippetRender content={inner} />
548
571
  {#if !(swipeout || accordionItem)}
549
- <slot />
572
+ {@render children?.()}
550
573
  {/if}
551
574
  {#if hasFooter}
552
575
  <div class="item-footer">
553
- {plainText(footer)}
554
- <slot name="footer" />
576
+ <SnippetRender content={footer} />
555
577
  </div>
556
578
  {/if}
557
579
  {:else}
558
- <slot name="before-title" />
580
+ <SnippetRender content={beforeTitle} />
559
581
  {#if hasTitle || hasHeader || hasFooter}
560
582
  <div class="item-title">
561
583
  {#if hasHeader}
562
584
  <div class="item-header">
563
- {plainText(header)}
564
- <slot name="header" />
585
+ <SnippetRender content={header} />
565
586
  </div>
566
587
  {/if}
567
- {plainText(title)}
568
- <slot name="title" />
588
+ <SnippetRender content={title} />
569
589
  {#if hasFooter}
570
590
  <div class="item-footer">
571
- {plainText(footer)}
572
- <slot name="footer" />
591
+ <SnippetRender content={footer} />
573
592
  </div>
574
593
  {/if}
575
594
  </div>
576
595
  {/if}
577
- <slot name="after-title" />
596
+ <SnippetRender content={afterTitle} />
578
597
  {#if hasAfter}
579
598
  <div class="item-after">
580
- <slot name="after-start" />
581
- {#if typeof after !== 'undefined'}
582
- <span>{plainText(after)}</span>
583
- {/if}
599
+ <SnippetRender content={afterStart} />
600
+ <SnippetRender content={after} />
584
601
  {#if typeof badge !== 'undefined'}
585
- <Badge color={badgeColor}>{plainText(badge)}</Badge>
602
+ <Badge color={badgeColor}><SnippetRender content={badge} /></Badge>
586
603
  {/if}
587
- <slot name="after" />
588
- <slot name="after-end" />
604
+
605
+ <SnippetRender content={afterEnd} />
589
606
  </div>
590
607
  {/if}
591
- <slot name="inner" />
608
+ <SnippetRender content={inner} />
592
609
  {#if !(swipeout || accordionItem)}
593
- <slot />
610
+ {@render children?.()}
594
611
  {/if}
595
612
  {/if}
596
- <slot name="inner-end" />
613
+ <SnippetRender content={innerEnd} />
597
614
  </div>
598
- <slot name="content" />
599
- <slot name="content-end" />
615
+ <SnippetRender {content} />
616
+ <SnippetRender content={contentEnd} />
600
617
  </label>
601
618
  {:else}
602
- <div class={contentClasses} on:click={onClick}>
603
- <slot name="content-start" />
619
+ <div class={contentClasses} onclick={onClick}>
620
+ <SnippetRender content={contentStart} />
604
621
  {#if isSortable && sortable !== false && isSortableOpposite}
605
622
  <div class="sortable-handler" />
606
623
  {/if}
607
624
  {#if hasMedia}
608
625
  <div class="item-media">
609
- {#if typeof media !== 'undefined'}
626
+ {#if typeof media === 'function'}
627
+ {@render media?.()}
628
+ {:else if typeof media === 'string'}
610
629
  <img src={media} />
611
630
  {/if}
612
- <slot name="media" />
613
631
  </div>
614
632
  {/if}
615
633
  <div bind:this={innerEl} class="item-inner">
616
- <slot name="inner-start" />
634
+ <SnippetRender content={innerStart} />
617
635
  {#if isMedia}
618
636
  {#if hasHeader}
619
637
  <div class="item-header">
620
- {plainText(header)}
621
- <slot name="header" />
638
+ <SnippetRender content={header} />
622
639
  </div>
623
640
  {/if}
624
641
  <div class="item-title-row">
625
- <slot name="before-title" />
642
+ <SnippetRender content={beforeTitle} />
626
643
  {#if hasTitle}
627
644
  <div class="item-title">
628
- {plainText(title)}
629
- <slot name="title" />
645
+ <SnippetRender content={title} />
630
646
  </div>
631
647
  {/if}
632
- <slot name="after-title" />
648
+ <SnippetRender content={afterTitle} />
633
649
  {#if hasAfter}
634
650
  <div class="item-after">
635
- <slot name="after-start" />
636
- {#if typeof after !== 'undefined'}
637
- <span>{plainText(after)}</span>
638
- {/if}
651
+ <SnippetRender content={afterStart} />
652
+ <SnippetRender content={after} />
639
653
  {#if typeof badge !== 'undefined'}
640
- <Badge color={badgeColor}>{plainText(badge)}</Badge>
654
+ <Badge color={badgeColor}><SnippetRender content={badge} /></Badge>
641
655
  {/if}
642
- <slot name="after" />
643
- <slot name="after-end" />
656
+
657
+ <SnippetRender content={afterEnd} />
644
658
  </div>
645
659
  {/if}
646
660
  </div>
647
661
  {#if hasSubtitle}
648
662
  <div class="item-subtitle">
649
- {plainText(subtitle)}
650
- <slot name="subtitle" />
663
+ <SnippetRender content={subtitle} />
651
664
  </div>
652
665
  {/if}
653
666
  {#if hasText}
654
667
  <div class="item-text">
655
- {plainText(text)}
656
- <slot name="text" />
668
+ <SnippetRender content={text} />
657
669
  </div>
658
670
  {/if}
659
- <slot name="inner" />
671
+ <SnippetRender content={inner} />
660
672
  {#if !(swipeout || accordionItem)}
661
- <slot />
673
+ {@render children?.()}
662
674
  {/if}
663
675
  {#if hasFooter}
664
676
  <div class="item-footer">
665
- {plainText(footer)}
666
- <slot name="footer" />
677
+ <SnippetRender content={footer} />
667
678
  </div>
668
679
  {/if}
669
680
  {:else}
670
- <slot name="before-title" />
681
+ <SnippetRender content={beforeTitle} />
671
682
  {#if hasTitle || hasHeader || hasFooter}
672
683
  <div class="item-title">
673
684
  {#if hasHeader}
674
685
  <div class="item-header">
675
- {plainText(header)}
676
- <slot name="header" />
686
+ <SnippetRender content={header} />
677
687
  </div>
678
688
  {/if}
679
- {plainText(title)}
680
- <slot name="title" />
689
+ <SnippetRender content={title} />
681
690
  {#if hasFooter}
682
691
  <div class="item-footer">
683
- {plainText(footer)}
684
- <slot name="footer" />
692
+ <SnippetRender content={footer} />
685
693
  </div>
686
694
  {/if}
687
695
  </div>
688
696
  {/if}
689
- <slot name="after-title" />
697
+ <SnippetRender content={afterTitle} />
690
698
  {#if hasAfter}
691
699
  <div class="item-after">
692
- <slot name="after-start" />
693
- {#if typeof after !== 'undefined'}
694
- <span>{plainText(after)}</span>
695
- {/if}
700
+ <SnippetRender content={afterStart} />
701
+ <SnippetRender content={after} />
696
702
  {#if typeof badge !== 'undefined'}
697
- <Badge color={badgeColor}>{plainText(badge)}</Badge>
703
+ <Badge color={badgeColor}><SnippetRender content={badge} /></Badge>
698
704
  {/if}
699
- <slot name="after" />
700
- <slot name="after-end" />
705
+
706
+ <SnippetRender content={afterEnd} />
701
707
  </div>
702
708
  {/if}
703
- <slot name="inner" />
709
+ <SnippetRender content={inner} />
704
710
  {#if !(swipeout || accordionItem)}
705
- <slot />
711
+ {@render children?.()}
706
712
  {/if}
707
713
  {/if}
708
- <slot name="inner-end" />
714
+ <SnippetRender content={innerEnd} />
709
715
  </div>
710
- <slot name="content" />
711
- <slot name="content-end" />
716
+ <SnippetRender {content} />
717
+ <SnippetRender content={contentEnd} />
712
718
  </div>
713
719
  {/if}
714
720
  <!-- Item content end -->
@@ -720,127 +726,116 @@
720
726
  use:useRouteProps={routeProps}
721
727
  class={linkClasses}
722
728
  {...linkAttrs}
723
- on:click={onClick}
729
+ onclick={onClick}
724
730
  >
725
731
  <!-- Item content start -->
726
732
  <div class={contentClasses}>
727
- <slot name="content-start" />
733
+ <SnippetRender content={contentStart} />
728
734
  {#if isSortable && sortable !== false && isSortableOpposite}
729
735
  <div class="sortable-handler" />
730
736
  {/if}
731
737
  {#if hasMedia}
732
738
  <div class="item-media">
733
- {#if typeof media !== 'undefined'}
739
+ {#if typeof media === 'function'}
740
+ {@render media?.()}
741
+ {:else if typeof media === 'string'}
734
742
  <img src={media} />
735
743
  {/if}
736
- <slot name="media" />
737
744
  </div>
738
745
  {/if}
739
746
  <div bind:this={innerEl} class="item-inner">
740
- <slot name="inner-start" />
747
+ <SnippetRender content={innerStart} />
741
748
  {#if isMedia}
742
749
  {#if hasHeader}
743
750
  <div class="item-header">
744
- {plainText(header)}
745
- <slot name="header" />
751
+ <SnippetRender content={header} />
746
752
  </div>
747
753
  {/if}
748
754
  <div class="item-title-row">
749
- <slot name="before-title" />
755
+ <SnippetRender content={beforeTitle} />
750
756
  {#if hasTitle}
751
757
  <div class="item-title">
752
- {plainText(title)}
753
- <slot name="title" />
758
+ <SnippetRender content={title} />
754
759
  </div>
755
760
  {/if}
756
- <slot name="after-title" />
761
+ <SnippetRender content={afterTitle} />
757
762
  {#if hasAfter}
758
763
  <div class="item-after">
759
- <slot name="after-start" />
760
- {#if typeof after !== 'undefined'}
761
- <span>{plainText(after)}</span>
762
- {/if}
764
+ <SnippetRender content={afterStart} />
765
+ <SnippetRender content={after} />
763
766
  {#if typeof badge !== 'undefined'}
764
- <Badge color={badgeColor}>{plainText(badge)}</Badge>
767
+ <Badge color={badgeColor}><SnippetRender content={badge} /></Badge>
765
768
  {/if}
766
- <slot name="after" />
767
- <slot name="after-end" />
769
+
770
+ <SnippetRender content={afterEnd} />
768
771
  </div>
769
772
  {/if}
770
773
  </div>
771
774
  {#if hasSubtitle}
772
775
  <div class="item-subtitle">
773
- {plainText(subtitle)}
774
- <slot name="subtitle" />
776
+ <SnippetRender content={subtitle} />
775
777
  </div>
776
778
  {/if}
777
779
  {#if hasText}
778
780
  <div class="item-text">
779
- {plainText(text)}
780
- <slot name="text" />
781
+ <SnippetRender content={text} />
781
782
  </div>
782
783
  {/if}
783
- <slot name="inner" />
784
+ <SnippetRender content={inner} />
784
785
  {#if !(swipeout || accordionItem)}
785
- <slot />
786
+ {@render children?.()}
786
787
  {/if}
787
788
  {#if hasFooter}
788
789
  <div class="item-footer">
789
- {plainText(footer)}
790
- <slot name="footer" />
790
+ <SnippetRender content={footer} />
791
791
  </div>
792
792
  {/if}
793
793
  {:else}
794
- <slot name="before-title" />
794
+ <SnippetRender content={beforeTitle} />
795
795
  {#if hasTitle || hasHeader || hasFooter}
796
796
  <div class="item-title">
797
797
  {#if hasHeader}
798
798
  <div class="item-header">
799
- {plainText(header)}
800
- <slot name="header" />
799
+ <SnippetRender content={header} />
801
800
  </div>
802
801
  {/if}
803
- {plainText(title)}
804
- <slot name="title" />
802
+ <SnippetRender content={title} />
805
803
  {#if hasFooter}
806
804
  <div class="item-footer">
807
- {plainText(footer)}
808
- <slot name="footer" />
805
+ <SnippetRender content={footer} />
809
806
  </div>
810
807
  {/if}
811
808
  </div>
812
809
  {/if}
813
- <slot name="after-title" />
810
+ <SnippetRender content={afterTitle} />
814
811
  {#if hasAfter}
815
812
  <div class="item-after">
816
- <slot name="after-start" />
817
- {#if typeof after !== 'undefined'}
818
- <span>{plainText(after)}</span>
819
- {/if}
813
+ <SnippetRender content={afterStart} />
814
+ <SnippetRender content={after} />
820
815
  {#if typeof badge !== 'undefined'}
821
- <Badge color={badgeColor}>{plainText(badge)}</Badge>
816
+ <Badge color={badgeColor}><SnippetRender content={badge} /></Badge>
822
817
  {/if}
823
- <slot name="after" />
824
- <slot name="after-end" />
818
+
819
+ <SnippetRender content={afterEnd} />
825
820
  </div>
826
821
  {/if}
827
- <slot name="inner" />
822
+ <SnippetRender content={inner} />
828
823
  {#if !(swipeout || accordionItem)}
829
- <slot />
824
+ {@render children?.()}
830
825
  {/if}
831
826
  {/if}
832
- <slot name="inner-end" />
827
+ <SnippetRender content={innerEnd} />
833
828
  </div>
834
- <slot name="content" />
835
- <slot name="content-end" />
829
+ <SnippetRender {content} />
830
+ <SnippetRender content={contentEnd} />
836
831
  </div>
837
832
  <!-- Item content end -->
838
833
  </a>
839
834
  {:else}
840
835
  <!-- Item content start -->
841
836
  {#if checkbox || radio}
842
- <label class={contentClasses} on:click={onClick}>
843
- <slot name="content-start" />
837
+ <label class={contentClasses} onclick={onClick}>
838
+ <SnippetRender content={contentStart} />
844
839
  {#if isSortable && sortable !== false && isSortableOpposite}
845
840
  <div class="sortable-handler" />
846
841
  {/if}
@@ -853,226 +848,204 @@
853
848
  {disabled}
854
849
  {required}
855
850
  type={radio ? 'radio' : 'checkbox'}
856
- on:change={onChange}
851
+ onchange={onChange}
857
852
  />
858
853
  <i class={`icon icon-${radio ? 'radio' : 'checkbox'}`} />
859
854
  {#if hasMedia}
860
855
  <div class="item-media">
861
- {#if typeof media !== 'undefined'}
856
+ {#if typeof media === 'function'}
857
+ {@render media?.()}
858
+ {:else if typeof media === 'string'}
862
859
  <img src={media} />
863
860
  {/if}
864
- <slot name="media" />
865
861
  </div>
866
862
  {/if}
867
863
  <div bind:this={innerEl} class="item-inner">
868
- <slot name="inner-start" />
864
+ <SnippetRender content={innerStart} />
869
865
  {#if isMedia}
870
866
  {#if hasHeader}
871
867
  <div class="item-header">
872
- {plainText(header)}
873
- <slot name="header" />
868
+ <SnippetRender content={header} />
874
869
  </div>
875
870
  {/if}
876
871
  <div class="item-title-row">
877
- <slot name="before-title" />
872
+ <SnippetRender content={beforeTitle} />
878
873
  {#if hasTitle}
879
874
  <div class="item-title">
880
- {plainText(title)}
881
- <slot name="title" />
875
+ <SnippetRender content={title} />
882
876
  </div>
883
877
  {/if}
884
- <slot name="after-title" />
878
+ <SnippetRender content={afterTitle} />
885
879
  {#if hasAfter}
886
880
  <div class="item-after">
887
- <slot name="after-start" />
888
- {#if typeof after !== 'undefined'}
889
- <span>{plainText(after)}</span>
890
- {/if}
881
+ <SnippetRender content={afterStart} />
882
+ <SnippetRender content={after} />
891
883
  {#if typeof badge !== 'undefined'}
892
- <Badge color={badgeColor}>{plainText(badge)}</Badge>
884
+ <Badge color={badgeColor}><SnippetRender content={badge} /></Badge>
893
885
  {/if}
894
- <slot name="after" />
895
- <slot name="after-end" />
886
+
887
+ <SnippetRender content={afterEnd} />
896
888
  </div>
897
889
  {/if}
898
890
  </div>
899
891
  {#if hasSubtitle}
900
892
  <div class="item-subtitle">
901
- {plainText(subtitle)}
902
- <slot name="subtitle" />
893
+ <SnippetRender content={subtitle} />
903
894
  </div>
904
895
  {/if}
905
896
  {#if hasText}
906
897
  <div class="item-text">
907
- {plainText(text)}
908
- <slot name="text" />
898
+ <SnippetRender content={text} />
909
899
  </div>
910
900
  {/if}
911
- <slot name="inner" />
901
+ <SnippetRender content={inner} />
912
902
  {#if !(swipeout || accordionItem)}
913
- <slot />
903
+ {@render children?.()}
914
904
  {/if}
915
905
  {#if hasFooter}
916
906
  <div class="item-footer">
917
- {plainText(footer)}
918
- <slot name="footer" />
907
+ <SnippetRender content={footer} />
919
908
  </div>
920
909
  {/if}
921
910
  {:else}
922
- <slot name="before-title" />
911
+ <SnippetRender content={beforeTitle} />
923
912
  {#if hasTitle || hasHeader || hasFooter}
924
913
  <div class="item-title">
925
914
  {#if hasHeader}
926
915
  <div class="item-header">
927
- {plainText(header)}
928
- <slot name="header" />
916
+ <SnippetRender content={header} />
929
917
  </div>
930
918
  {/if}
931
- {plainText(title)}
932
- <slot name="title" />
919
+ <SnippetRender content={title} />
933
920
  {#if hasFooter}
934
921
  <div class="item-footer">
935
- {plainText(footer)}
936
- <slot name="footer" />
922
+ <SnippetRender content={footer} />
937
923
  </div>
938
924
  {/if}
939
925
  </div>
940
926
  {/if}
941
- <slot name="after-title" />
927
+ <SnippetRender content={afterTitle} />
942
928
  {#if hasAfter}
943
929
  <div class="item-after">
944
- <slot name="after-start" />
945
- {#if typeof after !== 'undefined'}
946
- <span>{plainText(after)}</span>
947
- {/if}
930
+ <SnippetRender content={afterStart} />
931
+ <SnippetRender content={after} />
948
932
  {#if typeof badge !== 'undefined'}
949
- <Badge color={badgeColor}>{plainText(badge)}</Badge>
933
+ <Badge color={badgeColor}><SnippetRender content={badge} /></Badge>
950
934
  {/if}
951
- <slot name="after" />
952
- <slot name="after-end" />
935
+
936
+ <SnippetRender content={afterEnd} />
953
937
  </div>
954
938
  {/if}
955
- <slot name="inner" />
939
+ <SnippetRender content={inner} />
956
940
  {#if !(swipeout || accordionItem)}
957
- <slot />
941
+ {@render children?.()}
958
942
  {/if}
959
943
  {/if}
960
- <slot name="inner-end" />
944
+ <SnippetRender content={innerEnd} />
961
945
  </div>
962
- <slot name="content" />
963
- <slot name="content-end" />
946
+ <SnippetRender {content} />
947
+ <SnippetRender content={contentEnd} />
964
948
  </label>
965
949
  {:else}
966
- <div class={contentClasses} on:click={onClick}>
967
- <slot name="content-start" />
950
+ <div class={contentClasses} onclick={onClick}>
951
+ <SnippetRender content={contentStart} />
968
952
  {#if isSortable && sortable !== false && isSortableOpposite}
969
953
  <div class="sortable-handler" />
970
954
  {/if}
971
955
  {#if hasMedia}
972
956
  <div class="item-media">
973
- {#if typeof media !== 'undefined'}
957
+ {#if typeof media === 'function'}
958
+ {@render media?.()}
959
+ {:else if typeof media === 'string'}
974
960
  <img src={media} />
975
961
  {/if}
976
- <slot name="media" />
977
962
  </div>
978
963
  {/if}
979
964
  <div bind:this={innerEl} class="item-inner">
980
- <slot name="inner-start" />
965
+ <SnippetRender content={innerStart} />
981
966
  {#if isMedia}
982
967
  {#if hasHeader}
983
968
  <div class="item-header">
984
- {plainText(header)}
985
- <slot name="header" />
969
+ <SnippetRender content={header} />
986
970
  </div>
987
971
  {/if}
988
972
  <div class="item-title-row">
989
- <slot name="before-title" />
973
+ <SnippetRender content={beforeTitle} />
990
974
  {#if hasTitle}
991
975
  <div class="item-title">
992
- {plainText(title)}
993
- <slot name="title" />
976
+ <SnippetRender content={title} />
994
977
  </div>
995
978
  {/if}
996
- <slot name="after-title" />
979
+ <SnippetRender content={afterTitle} />
997
980
  {#if hasAfter}
998
981
  <div class="item-after">
999
- <slot name="after-start" />
1000
- {#if typeof after !== 'undefined'}
1001
- <span>{plainText(after)}</span>
1002
- {/if}
982
+ <SnippetRender content={afterStart} />
983
+ <SnippetRender content={after} />
1003
984
  {#if typeof badge !== 'undefined'}
1004
- <Badge color={badgeColor}>{plainText(badge)}</Badge>
985
+ <Badge color={badgeColor}><SnippetRender content={badge} /></Badge>
1005
986
  {/if}
1006
- <slot name="after" />
1007
- <slot name="after-end" />
987
+
988
+ <SnippetRender content={afterEnd} />
1008
989
  </div>
1009
990
  {/if}
1010
991
  </div>
1011
992
  {#if hasSubtitle}
1012
993
  <div class="item-subtitle">
1013
- {plainText(subtitle)}
1014
- <slot name="subtitle" />
994
+ <SnippetRender content={subtitle} />
1015
995
  </div>
1016
996
  {/if}
1017
997
  {#if hasText}
1018
998
  <div class="item-text">
1019
- {plainText(text)}
1020
- <slot name="text" />
999
+ <SnippetRender content={text} />
1021
1000
  </div>
1022
1001
  {/if}
1023
- <slot name="inner" />
1002
+ <SnippetRender content={inner} />
1024
1003
  {#if !(swipeout || accordionItem)}
1025
- <slot />
1004
+ {@render children?.()}
1026
1005
  {/if}
1027
1006
  {#if hasFooter}
1028
1007
  <div class="item-footer">
1029
- {plainText(footer)}
1030
- <slot name="footer" />
1008
+ <SnippetRender content={footer} />
1031
1009
  </div>
1032
1010
  {/if}
1033
1011
  {:else}
1034
- <slot name="before-title" />
1012
+ <SnippetRender content={beforeTitle} />
1035
1013
  {#if hasTitle || hasHeader || hasFooter}
1036
1014
  <div class="item-title">
1037
1015
  {#if hasHeader}
1038
1016
  <div class="item-header">
1039
- {plainText(header)}
1040
- <slot name="header" />
1017
+ <SnippetRender content={header} />
1041
1018
  </div>
1042
1019
  {/if}
1043
- {plainText(title)}
1044
- <slot name="title" />
1020
+ <SnippetRender content={title} />
1045
1021
  {#if hasFooter}
1046
1022
  <div class="item-footer">
1047
- {plainText(footer)}
1048
- <slot name="footer" />
1023
+ <SnippetRender content={footer} />
1049
1024
  </div>
1050
1025
  {/if}
1051
1026
  </div>
1052
1027
  {/if}
1053
- <slot name="after-title" />
1028
+ <SnippetRender content={afterTitle} />
1054
1029
  {#if hasAfter}
1055
1030
  <div class="item-after">
1056
- <slot name="after-start" />
1057
- {#if typeof after !== 'undefined'}
1058
- <span>{plainText(after)}</span>
1059
- {/if}
1031
+ <SnippetRender content={afterStart} />
1032
+ <SnippetRender content={after} />
1060
1033
  {#if typeof badge !== 'undefined'}
1061
- <Badge color={badgeColor}>{plainText(badge)}</Badge>
1034
+ <Badge color={badgeColor}><SnippetRender content={badge} /></Badge>
1062
1035
  {/if}
1063
- <slot name="after" />
1064
- <slot name="after-end" />
1036
+
1037
+ <SnippetRender content={afterEnd} />
1065
1038
  </div>
1066
1039
  {/if}
1067
- <slot name="inner" />
1040
+ <SnippetRender content={inner} />
1068
1041
  {#if !(swipeout || accordionItem)}
1069
- <slot />
1042
+ {@render children?.()}
1070
1043
  {/if}
1071
1044
  {/if}
1072
- <slot name="inner-end" />
1045
+ <SnippetRender content={innerEnd} />
1073
1046
  </div>
1074
- <slot name="content" />
1075
- <slot name="content-end" />
1047
+ <SnippetRender {content} />
1048
+ <SnippetRender content={contentEnd} />
1076
1049
  </div>
1077
1050
  {/if}
1078
1051
  <!-- Item content end -->
@@ -1081,9 +1054,9 @@
1081
1054
  <div class="sortable-handler" />
1082
1055
  {/if}
1083
1056
  {#if swipeout || accordionItem}
1084
- <slot />
1057
+ {@render children?.()}
1085
1058
  {/if}
1086
- <slot name="root" />
1087
- <slot name="root-end" />
1059
+ <SnippetRender content={root} />
1060
+ <SnippetRender content={rootStart} />
1088
1061
  </li>
1089
1062
  {/if}