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,21 +1,20 @@
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 { Popover } from 'framework7/types';
6
6
 
7
7
 
8
- interface PopoverProps {
9
- opened ?: boolean;
10
- animate ?: boolean;
11
- targetEl ?: string | object;
12
- arrow ?: boolean;
13
- backdrop ?: boolean;
14
- backdropEl ?: string | object;
15
- closeByBackdropClick ?: boolean;
16
- closeByOutsideClick ?: boolean;
17
- closeOnEscape ?: boolean;
18
- containerEl ?: string | object;
8
+ interface Props {
9
+ opened?: boolean;
10
+ animate?: boolean;
11
+ targetEl?: string | object;
12
+ backdrop?: boolean;
13
+ backdropEl?: string | object;
14
+ closeByBackdropClick?: boolean;
15
+ closeByOutsideClick?: boolean;
16
+ closeOnEscape?: boolean;
17
+ containerEl?: string | object;
19
18
  verticalPosition?: string;
20
19
  color?: string;
21
20
  colorTheme?: string;
@@ -24,18 +23,28 @@ interface PopoverProps {
24
23
  borderColor?: string;
25
24
  rippleColor?: string;
26
25
  dark?: boolean;
27
- onPopoverOpen ?: (instance?: Popover.Popover) => void;
28
- onPopoverOpened ?: (instance?: Popover.Popover) => void;
29
- onPopoverClose ?: (instance?: Popover.Popover) => void;
30
- onPopoverClosed ?: (instance?: Popover.Popover) => void;
26
+ onPopoverOpen?: (instance?: Popover.Popover) => void;
27
+ onPopoverOpened?: (instance?: Popover.Popover) => void;
28
+ onPopoverClose?: (instance?: Popover.Popover) => void;
29
+ onPopoverClosed?: (instance?: Popover.Popover) => void;
30
+ children?: Snippet;
31
+ onpopoveropen?: () => void;
32
+ onpopoveropened?: () => void;
33
+ onpopoverclose?: () => void;
34
+ onpopoverclosed?: () => void;
31
35
  }
32
36
 
37
+ interface PopoverProps {}
38
+ interface PopoverProps extends Props {}
39
+
40
+ interface PopoverEvents extends Record<'',{}>{}
41
+
33
42
 
34
43
 
35
44
  declare class Popover extends SvelteComponent<
36
- PopoverProps & Omit<HTMLAttributes<HTMLElementTagNameMap['div']>, keyof PopoverProps>,
37
- { popoverOpen: CustomEvent<void>; popoverOpened: CustomEvent<void>; popoverClose: CustomEvent<void>; popoverClosed: CustomEvent<void>; },
38
- { 'default' : {}; }
45
+ PopoverProps,
46
+ PopoverEvents,
47
+ { }
39
48
  > {}
40
49
 
41
50
  export { PopoverProps };
@@ -1,66 +1,67 @@
1
1
  <script>
2
- import { createEventDispatcher, onMount, 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 { modalStateClasses } from '../shared/modal-state-classes.js';
8
7
 
9
- const emit = createEmitter(createEventDispatcher, $$props);
8
+ let {
9
+ class: className,
10
+ style = '',
11
+ opened = undefined,
12
+ animate = undefined,
13
+ targetEl = undefined,
14
+ backdrop = undefined,
15
+ backdropEl = undefined,
16
+ closeByBackdropClick = undefined,
17
+ closeByOutsideClick = undefined,
18
+ closeOnEscape = undefined,
19
+ containerEl = undefined,
20
+ verticalPosition = undefined,
21
+ children,
22
+ ...restProps
23
+ } = $props();
10
24
 
11
- let className = undefined;
12
- export { className as class };
13
-
14
- export let style = '';
15
- export let opened = undefined;
16
- export let animate = undefined;
17
- export let targetEl = undefined;
18
- export let arrow = undefined;
19
- export let backdrop = undefined;
20
- export let backdropEl = undefined;
21
- export let closeByBackdropClick = undefined;
22
- export let closeByOutsideClick = undefined;
23
- export let closeOnEscape = undefined;
24
- export let containerEl = undefined;
25
- export let verticalPosition = undefined;
26
-
27
- let el;
25
+ let el = $state(null);
28
26
  let f7Popover;
29
27
 
30
- const state = {
31
- isOpened: opened,
32
- isClosing: false,
33
- };
28
+ let isOpened = $state(opened);
29
+ let isClosing = $state(false);
34
30
 
35
31
  export function instance() {
36
32
  return f7Popover;
37
33
  }
38
34
 
39
- $: classes = classNames(className, 'popover', modalStateClasses(state), colorClasses($$props));
35
+ const classes = $derived(
36
+ classNames(
37
+ className,
38
+ 'popover',
39
+ modalStateClasses({ isOpened, isClosing }),
40
+ colorClasses(restProps),
41
+ ),
42
+ );
40
43
 
41
44
  function onOpen(instance) {
42
- Object.assign(state, {
43
- isOpened: true,
44
- isClosing: false,
45
- });
46
- emit('popoverOpen', [instance]);
45
+ isOpened = true;
46
+ isClosing = false;
47
+ restProps.onPopoverOpen?.(instance);
48
+ restProps.onpopoveropen?.(instance);
47
49
  opened = true;
48
50
  }
49
51
  function onOpened(instance) {
50
- emit('popoverOpened', [instance]);
52
+ restProps.onPopoverOpened?.(instance);
53
+ restProps.onpopoveropened?.(instance);
51
54
  }
52
55
  function onClose(instance) {
53
- Object.assign(state, {
54
- isOpened: false,
55
- isClosing: true,
56
- });
57
- emit('popoverClose', [instance]);
56
+ isOpened = false;
57
+ isClosing = true;
58
+ restProps.onPopoverClose?.(instance);
59
+ restProps.onpopoverclose?.(instance);
58
60
  }
59
61
  function onClosed(instance) {
60
- Object.assign(state, {
61
- isClosing: false,
62
- });
63
- emit('popoverClosed', [instance]);
62
+ isClosing = false;
63
+ restProps.onPopoverClosed?.(instance);
64
+ restProps.onpopoverclosed?.(instance);
64
65
  opened = false;
65
66
  }
66
67
 
@@ -75,7 +76,7 @@
75
76
  else f7Popover.close();
76
77
  }
77
78
 
78
- $: watchOpened(opened);
79
+ $effect(() => watchOpened(opened));
79
80
 
80
81
  onMount(() => {
81
82
  const params = {
@@ -95,7 +96,6 @@
95
96
  if (typeof closeByOutsideClick !== 'undefined')
96
97
  params.closeByOutsideClick = closeByOutsideClick;
97
98
  if (typeof closeOnEscape !== 'undefined') params.closeOnEscape = closeOnEscape;
98
- if (typeof arrow !== 'undefined') params.arrow = arrow;
99
99
  if (typeof backdrop !== 'undefined') params.backdrop = backdrop;
100
100
  if (typeof backdropEl !== 'undefined') params.backdropEl = backdropEl;
101
101
  if (typeof containerEl !== 'undefined') params.containerEl = containerEl;
@@ -115,11 +115,8 @@
115
115
  });
116
116
  </script>
117
117
 
118
- <div class={classes} bind:this={el} {style} {...restProps($$restProps)}>
119
- {#if arrow !== false}
120
- <div class="popover-arrow" />
121
- {/if}
118
+ <div class={classes} bind:this={el} {style} {...restProps}>
122
119
  <div class="popover-inner">
123
- <slot popover={f7Popover} />
120
+ {@render children?.(f7Popover)}
124
121
  </div>
125
122
  </div>
@@ -1,21 +1,21 @@
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 { Popup } from 'framework7/types';
6
6
 
7
7
 
8
- interface PopupProps {
9
- tabletFullscreen ?: boolean;
10
- opened ?: boolean;
11
- animate ?: boolean;
12
- backdrop ?: boolean;
13
- backdropEl ?: string | object;
14
- closeByBackdropClick ?: boolean;
15
- closeOnEscape ?: boolean;
16
- swipeToClose ?: boolean | string;
17
- swipeHandler ?: string | object;
18
- push ?: boolean;
8
+ interface Props {
9
+ tabletFullscreen?: boolean;
10
+ opened?: boolean;
11
+ animate?: boolean;
12
+ backdrop?: boolean;
13
+ backdropEl?: string | object;
14
+ closeByBackdropClick?: boolean;
15
+ closeOnEscape?: boolean;
16
+ swipeToClose?: boolean | string;
17
+ swipeHandler?: string | object;
18
+ push?: boolean;
19
19
  containerEl?: string | object;
20
20
  color?: string;
21
21
  colorTheme?: string;
@@ -24,22 +24,36 @@ interface PopupProps {
24
24
  borderColor?: string;
25
25
  rippleColor?: string;
26
26
  dark?: boolean;
27
- onPopupSwipeStart ?: (instance?: Popup.Popup) => void;
28
- onPopupSwipeMove ?: (instance?: Popup.Popup) => void;
29
- onPopupSwipeEnd ?: (instance?: Popup.Popup) => void;
30
- onPopupSwipeClose ?: (instance?: Popup.Popup) => void;
31
- onPopupOpen ?: (instance?: Popup.Popup) => void;
32
- onPopupOpened ?: (instance?: Popup.Popup) => void;
33
- onPopupClose ?: (instance?: Popup.Popup) => void;
34
- onPopupClosed ?: (instance?: Popup.Popup) => void;
27
+ onPopupSwipeStart?: (instance?: Popup.Popup) => void;
28
+ onPopupSwipeMove?: (instance?: Popup.Popup) => void;
29
+ onPopupSwipeEnd?: (instance?: Popup.Popup) => void;
30
+ onPopupSwipeClose?: (instance?: Popup.Popup) => void;
31
+ onPopupOpen?: (instance?: Popup.Popup) => void;
32
+ onPopupOpened?: (instance?: Popup.Popup) => void;
33
+ onPopupClose?: (instance?: Popup.Popup) => void;
34
+ onPopupClosed?: (instance?: Popup.Popup) => void;
35
+ children?: Snippet;
36
+ onpopupswipestart?: () => void;
37
+ onpopupswipemove?: () => void;
38
+ onpopupswipeend?: () => void;
39
+ onpopupswipeclose?: () => void;
40
+ onpopupopen?: () => void;
41
+ onpopupopened?: () => void;
42
+ onpopupclose?: () => void;
43
+ onpopupclosed?: () => void;
35
44
  }
36
45
 
46
+ interface PopupProps {}
47
+ interface PopupProps extends Props {}
48
+
49
+ interface PopupEvents extends Record<'',{}>{}
50
+
37
51
 
38
52
 
39
53
  declare class Popup extends SvelteComponent<
40
- PopupProps & Omit<HTMLAttributes<HTMLElementTagNameMap['div']>, keyof PopupProps>,
41
- { popupSwipeStart: CustomEvent<void>; popupSwipeMove: CustomEvent<void>; popupSwipeEnd: CustomEvent<void>; popupSwipeClose: CustomEvent<void>; popupOpen: CustomEvent<void>; popupOpened: CustomEvent<void>; popupClose: CustomEvent<void>; popupClosed: CustomEvent<void>; },
42
- { 'default' : {}; }
54
+ PopupProps,
55
+ PopupEvents,
56
+ { }
43
57
  > {}
44
58
 
45
59
  export { PopupProps };
@@ -1,92 +1,97 @@
1
1
  <script>
2
- import { createEventDispatcher, onMount, 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 { modalStateClasses } from '../shared/modal-state-classes.js';
8
7
 
9
- const emit = createEmitter(createEventDispatcher, $$props);
8
+ let {
9
+ class: className,
10
+ style = '',
11
+ tabletFullscreen = undefined,
12
+ opened = undefined,
13
+ animate = undefined,
14
+ backdrop = undefined,
15
+ backdropEl = undefined,
16
+ closeByBackdropClick = undefined,
17
+ closeOnEscape = undefined,
18
+ swipeToClose = false,
19
+ swipeHandler = undefined,
20
+ push = undefined,
21
+ containerEl = undefined,
22
+ children,
23
+ ...restProps
24
+ } = $props();
10
25
 
11
- let className = undefined;
12
- export { className as class };
13
-
14
- export let style = '';
15
- export let tabletFullscreen = undefined;
16
- export let opened = undefined;
17
- export let animate = undefined;
18
- export let backdrop = undefined;
19
- export let backdropEl = undefined;
20
- export let closeByBackdropClick = undefined;
21
- export let closeOnEscape = undefined;
22
- export let swipeToClose = false;
23
- export let swipeHandler = undefined;
24
- export let push = undefined;
25
- export let containerEl = undefined;
26
-
27
- let el;
26
+ let el = $state(null);
28
27
  let f7Popup;
29
28
 
30
- const state = {
31
- isOpened: opened,
32
- isClosing: false,
33
- };
29
+ let isOpened = $state(opened);
30
+ let isClosing = $state(false);
31
+ let isPushIn = $state(false);
32
+ let isPushClosing = $state(false);
34
33
 
35
34
  export function instance() {
36
35
  return f7Popup;
37
36
  }
38
37
 
39
- $: classes = classNames(
40
- className,
41
- 'popup',
42
- {
43
- 'popup-tablet-fullscreen': tabletFullscreen,
44
- 'popup-push': push,
45
- },
46
- modalStateClasses(state),
47
- colorClasses($$props),
38
+ const classes = $derived(
39
+ classNames(
40
+ className,
41
+ 'popup',
42
+ {
43
+ 'popup-tablet-fullscreen': tabletFullscreen,
44
+ 'popup-push': push,
45
+ 'popup-push-in': !isClosing && push && isPushIn,
46
+ 'popup-push-closing': isClosing && push && isPushClosing,
47
+ },
48
+ modalStateClasses({ isOpened, isClosing }),
49
+ colorClasses(restProps),
50
+ ),
48
51
  );
49
52
 
50
53
  function onSwipeStart(instance) {
51
- emit('popupSwipeStart', [instance]);
54
+ restProps.onPopupSwipeStart?.(instance);
55
+ restProps.onpopupswipestart?.(instance);
52
56
  }
53
57
  function onSwipeMove(instance) {
54
- emit('popupSwipeMove', [instance]);
58
+ restProps.onPopupSwipeMove?.(instance);
59
+ restProps.onpopupswipemove?.(instance);
55
60
  }
56
61
  function onSwipeEnd(instance) {
57
- emit('popupSwipeEnd', [instance]);
62
+ restProps.onPopupSwipeEnd?.(instance);
63
+ restProps.onpopupswipeend?.(instance);
58
64
  }
59
65
  function onSwipeClose(instance) {
60
- emit('popupSwipeClose', [instance]);
66
+ restProps.onPopupSwipeClose?.(instance);
67
+ restProps.onpopupswipeclose?.(instance);
61
68
  }
62
69
 
63
70
  function onOpen(instance) {
64
- Object.assign(state, {
65
- isOpened: true,
66
- isClosing: false,
67
- });
68
- emit('popupOpen', [instance]);
71
+ isOpened = true;
72
+ isClosing = false;
73
+ restProps.onPopupOpen?.(instance);
74
+ restProps.onpopupopen?.(instance);
69
75
  opened = true;
70
76
  }
71
77
  function onOpened(instance) {
72
- emit('popupOpened', [instance]);
78
+ restProps.onPopupOpened?.(instance);
79
+ restProps.onpopupopened?.(instance);
73
80
  }
74
81
  function onClose(instance) {
75
- Object.assign(state, {
76
- isOpened: false,
77
- isClosing: true,
78
- });
79
- emit('popupClose', [instance]);
82
+ isOpened = false;
83
+ isClosing = true;
84
+ restProps.onPopupClose?.(instance);
85
+ restProps.onpopupclose?.(instance);
80
86
  }
81
87
  function onClosed(instance) {
82
- Object.assign(state, {
83
- isClosing: false,
84
- });
85
- emit('popupClosed', [instance]);
88
+ isClosing = false;
89
+ restProps.onPopupClosed?.(instance);
90
+ restProps.onpopupclosed?.(instance);
86
91
  opened = false;
87
92
  }
88
93
 
89
- let initialWatched = false;
94
+ let initialWatched = $state(false);
90
95
  function watchOpened(openedPassed) {
91
96
  if (!initialWatched) {
92
97
  initialWatched = true;
@@ -97,7 +102,7 @@
97
102
  else f7Popup.close();
98
103
  }
99
104
 
100
- $: watchOpened(opened);
105
+ $effect(() => watchOpened(opened));
101
106
 
102
107
  onMount(() => {
103
108
  const popupParams = {
@@ -111,6 +116,12 @@
111
116
  opened: onOpened,
112
117
  close: onClose,
113
118
  closed: onClosed,
119
+ pushIn(p, v) {
120
+ isPushIn = v;
121
+ },
122
+ pushClosing(p, v) {
123
+ isPushClosing = v;
124
+ },
114
125
  },
115
126
  };
116
127
  if (typeof closeByBackdropClick !== 'undefined')
@@ -136,6 +147,6 @@
136
147
  });
137
148
  </script>
138
149
 
139
- <div class={classes} bind:this={el} {style} {...restProps($$restProps)}>
140
- <slot popup={f7Popup} />
150
+ <div class={classes} bind:this={el} {style} {...restProps}>
151
+ {@render children?.(f7Popup)}
141
152
  </div>
@@ -1,10 +1,10 @@
1
1
 
2
- import { SvelteComponent } from 'svelte';
2
+ import { SvelteComponent, Snippet } from 'svelte';
3
3
  import { HTMLAttributes } from 'svelte/elements';
4
4
 
5
5
 
6
- interface PreloaderProps {
7
- size ?: number | string;
6
+ interface Props {
7
+ size?: number | string;
8
8
  color?: string;
9
9
  colorTheme?: string;
10
10
  textColor?: string;
@@ -14,11 +14,16 @@ interface PreloaderProps {
14
14
  dark?: boolean;
15
15
  }
16
16
 
17
+ interface PreloaderProps {}
18
+ interface PreloaderProps extends Props {}
19
+
20
+ interface PreloaderEvents extends Record<'',{}>{}
21
+
17
22
 
18
23
 
19
24
  declare class Preloader extends SvelteComponent<
20
- PreloaderProps & Omit<HTMLAttributes<HTMLElementTagNameMap['div']>, keyof PreloaderProps>,
21
- { },
25
+ PreloaderProps,
26
+ PreloaderEvents,
22
27
  { }
23
28
  > {}
24
29
 
@@ -1,39 +1,38 @@
1
1
  <script>
2
- import { restProps } from '../shared/rest-props.js';
3
2
  import { colorClasses } from '../shared/mixins.js';
4
3
  import { classNames } from '../shared/utils.js';
5
4
  import { useTheme } from '../shared/use-theme.js';
6
-
7
- export let style = undefined;
8
-
9
- let className = undefined;
10
- export { className as class };
11
- export let size = undefined;
5
+ let { class: className, size = undefined, style = undefined, children, ...restProps } = $props();
12
6
 
13
7
  let theme = useTheme((t) => {
14
8
  theme = t;
15
9
  });
16
10
 
17
- $: sizeComputed =
18
- size && typeof size === 'string' && size.indexOf('px') >= 0 ? size.replace('px', '') : size;
11
+ const sizeComputed = $derived(
12
+ size && typeof size === 'string' && size.indexOf('px') >= 0 ? size.replace('px', '') : size,
13
+ );
19
14
 
20
- $: preloaderStyle = (
21
- (style || '') +
22
- (sizeComputed
23
- ? `;width: ${sizeComputed}px; height: ${sizeComputed}px; --f7-preloader-size: ${sizeComputed}px`
24
- : '')
25
- ).replace(';;', ';');
15
+ const preloaderStyle = $derived(
16
+ (
17
+ (style || '') +
18
+ (sizeComputed
19
+ ? `;width: ${sizeComputed}px; height: ${sizeComputed}px; --f7-preloader-size: ${sizeComputed}px`
20
+ : '')
21
+ ).replace(';;', ';'),
22
+ );
26
23
 
27
- $: classes = classNames(
28
- className,
29
- {
30
- preloader: true,
31
- },
32
- colorClasses($$props),
24
+ const classes = $derived(
25
+ classNames(
26
+ className,
27
+ {
28
+ preloader: true,
29
+ },
30
+ colorClasses(restProps),
31
+ ),
33
32
  );
34
33
  </script>
35
34
 
36
- <span style={preloaderStyle} class={classes} {...restProps($$restProps)}>
35
+ <span style={preloaderStyle} class={classes} {...restProps}>
37
36
  {#if theme && theme.md}
38
37
  <span class="preloader-inner">
39
38
  <svg viewBox="0 0 36 36">
@@ -42,14 +41,14 @@
42
41
  </span>
43
42
  {:else if theme && theme.ios}
44
43
  <span class="preloader-inner">
45
- <span class="preloader-inner-line" />
46
- <span class="preloader-inner-line" />
47
- <span class="preloader-inner-line" />
48
- <span class="preloader-inner-line" />
49
- <span class="preloader-inner-line" />
50
- <span class="preloader-inner-line" />
51
- <span class="preloader-inner-line" />
52
- <span class="preloader-inner-line" />
44
+ <span class="preloader-inner-line"></span>
45
+ <span class="preloader-inner-line"></span>
46
+ <span class="preloader-inner-line"></span>
47
+ <span class="preloader-inner-line"></span>
48
+ <span class="preloader-inner-line"></span>
49
+ <span class="preloader-inner-line"></span>
50
+ <span class="preloader-inner-line"></span>
51
+ <span class="preloader-inner-line"></span>
53
52
  </span>
54
- {:else}<span class="preloader-inner" />{/if}
53
+ {:else}<span class="preloader-inner"></span>{/if}
55
54
  </span>
@@ -1,11 +1,11 @@
1
1
 
2
- import { SvelteComponent } from 'svelte';
2
+ import { SvelteComponent, Snippet } from 'svelte';
3
3
  import { HTMLAttributes } from 'svelte/elements';
4
4
 
5
5
 
6
- interface ProgressbarProps {
7
- progress ?: number;
8
- infinite ?: boolean;
6
+ interface Props {
7
+ progress?: number;
8
+ infinite?: boolean;
9
9
  color?: string;
10
10
  colorTheme?: string;
11
11
  textColor?: string;
@@ -15,11 +15,16 @@ interface ProgressbarProps {
15
15
  dark?: boolean;
16
16
  }
17
17
 
18
+ interface ProgressbarProps {}
19
+ interface ProgressbarProps extends Props {}
20
+
21
+ interface ProgressbarEvents extends Record<'',{}>{}
22
+
18
23
 
19
24
 
20
25
  declare class Progressbar extends SvelteComponent<
21
- ProgressbarProps & Omit<HTMLAttributes<HTMLElementTagNameMap['div']>, keyof ProgressbarProps>,
22
- { },
26
+ ProgressbarProps,
27
+ ProgressbarEvents,
23
28
  { }
24
29
  > {}
25
30
 
@@ -1,32 +1,28 @@
1
1
  <script>
2
2
  import { colorClasses } from '../shared/mixins.js';
3
3
  import { classNames } from '../shared/utils.js';
4
- import { restProps } from '../shared/rest-props.js';
5
4
  import { app } from '../shared/f7.js';
5
+ let { class: className, progress = 0, infinite = false, ...restProps } = $props();
6
6
 
7
- let className = undefined;
8
- export { className as class };
9
-
10
- export let progress = 0;
11
- export let infinite = false;
12
-
13
- let el;
7
+ let el = $state(null);
14
8
 
15
9
  export function set(progress, speed) {
16
10
  if (!app.f7) return;
17
11
  app.f7.progressbar.set(el, progress, speed);
18
12
  }
19
13
 
20
- $: classes = classNames(
21
- className,
22
- 'progressbar',
23
- {
24
- 'progressbar-infinite': infinite,
25
- },
26
- colorClasses($$props),
14
+ const classes = $derived(
15
+ classNames(
16
+ className,
17
+ 'progressbar',
18
+ {
19
+ 'progressbar-infinite': infinite,
20
+ },
21
+ colorClasses(restProps),
22
+ ),
27
23
  );
28
24
  </script>
29
25
 
30
- <span bind:this={el} class={classes} data-progress={progress} {...restProps($$restProps)}>
31
- <span style={`transform: ${progress ? `translate3d(${-100 + progress}%, 0, 0)` : ''}`} />
26
+ <span bind:this={el} class={classes} data-progress={progress} {...restProps}>
27
+ <span style={`transform: ${progress ? `translate3d(${-100 + progress}%, 0, 0)` : ''}`}></span>
32
28
  </span>