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,33 +1,33 @@
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 PageProps {
7
- name ?: string;
8
- withSubnavbar ?: boolean;
9
- subnavbar ?: boolean;
10
- withNavbarLarge ?: boolean;
11
- navbarLarge ?: boolean;
12
- noNavbar ?: boolean;
13
- noToolbar ?: boolean;
14
- tabs ?: boolean;
15
- pageContent ?: boolean;
16
- noSwipeback ?: boolean;
17
- ptr ?: boolean;
18
- ptrDistance ?: number;
19
- ptrPreloader ?: boolean;
20
- ptrBottom ?: boolean;
21
- ptrMousewheel ?: boolean;
22
- infinite ?: boolean;
23
- infiniteTop ?: boolean;
24
- infiniteDistance ?: number;
25
- infinitePreloader ?: boolean;
26
- hideBarsOnScroll ?: boolean;
27
- hideNavbarOnScroll ?: boolean;
28
- hideToolbarOnScroll ?: boolean;
29
- messagesContent ?: boolean;
30
- loginScreen ?: boolean;
6
+ interface Props {
7
+ name?: string;
8
+ withSubnavbar?: boolean;
9
+ subnavbar?: boolean;
10
+ withNavbarLarge?: boolean;
11
+ navbarLarge?: boolean;
12
+ noNavbar?: boolean;
13
+ noToolbar?: boolean;
14
+ tabs?: boolean;
15
+ pageContent?: boolean;
16
+ noSwipeback?: boolean;
17
+ ptr?: boolean;
18
+ ptrDistance?: number;
19
+ ptrPreloader?: boolean;
20
+ ptrBottom?: boolean;
21
+ ptrMousewheel?: boolean;
22
+ infinite?: boolean;
23
+ infiniteTop?: boolean;
24
+ infiniteDistance?: number;
25
+ infinitePreloader?: boolean;
26
+ hideBarsOnScroll?: boolean;
27
+ hideNavbarOnScroll?: boolean;
28
+ hideToolbarOnScroll?: boolean;
29
+ messagesContent?: boolean;
30
+ loginScreen?: boolean;
31
31
  color?: string;
32
32
  colorTheme?: string;
33
33
  textColor?: string;
@@ -35,31 +35,56 @@ interface PageProps {
35
35
  borderColor?: string;
36
36
  rippleColor?: string;
37
37
  dark?: boolean;
38
- onPtrPullStart ?: (...args: any[]) => void;
39
- onPtrPullMove ?: (...args: any[]) => void;
40
- onPtrPullEnd ?: (...args: any[]) => void;
41
- onPtrRefresh ?: (...args: any[]) => void;
42
- onPtrDone ?: (...args: any[]) => void;
43
- onInfinite ?: (...args: any[]) => void;
44
- onPageMounted ?: (page?: any) => void;
45
- onPageInit ?: (page?: any) => void;
46
- onPageReinit ?: (page?: any) => void;
47
- onPageBeforeIn ?: (page?: any) => void;
48
- onPageBeforeOut ?: (page?: any) => void;
49
- onPageAfterOut ?: (page?: any) => void;
50
- onPageAfterIn ?: (page?: any) => void;
51
- onPageBeforeRemove ?: (page?: any) => void;
52
- onPageBeforeUnmount ?: (page?: any) => void;
53
- onPageTabShow ?: (...args: any[]) => void;
54
- onPageTabHide ?: (...args: any[]) => void;
38
+ onPtrPullStart?: (...args: any[]) => void;
39
+ onPtrPullMove?: (...args: any[]) => void;
40
+ onPtrPullEnd?: (...args: any[]) => void;
41
+ onPtrRefresh?: (...args: any[]) => void;
42
+ onPtrDone?: (...args: any[]) => void;
43
+ onInfinite?: (...args: any[]) => void;
44
+ onPageMounted?: (page?: any) => void;
45
+ onPageInit?: (page?: any) => void;
46
+ onPageReinit?: (page?: any) => void;
47
+ onPageBeforeIn?: (page?: any) => void;
48
+ onPageBeforeOut?: (page?: any) => void;
49
+ onPageAfterOut?: (page?: any) => void;
50
+ onPageAfterIn?: (page?: any) => void;
51
+ onPageBeforeRemove?: (page?: any) => void;
52
+ onPageBeforeUnmount?: (page?: any) => void;
53
+ onPageTabShow?: (...args: any[]) => void;
54
+ onPageTabHide?: (...args: any[]) => void;
55
+ fixedContent?: Snippet;
56
+ staticContent?: Snippet;
57
+ children?: Snippet;
58
+ onptrpullstart?: () => void;
59
+ onptrpullmove?: () => void;
60
+ onptrpullend?: () => void;
61
+ onptrrefresh?: () => void;
62
+ onptrdone?: () => void;
63
+ oninfinite?: () => void;
64
+ onpagemounted?: () => void;
65
+ onpageinit?: () => void;
66
+ onpagereinit?: () => void;
67
+ onpagebeforein?: () => void;
68
+ onpagebeforeout?: () => void;
69
+ onpageafterout?: () => void;
70
+ onpageafterin?: () => void;
71
+ onpagebeforeremove?: () => void;
72
+ onpagebeforeunmount?: () => void;
73
+ ontabshow?: () => void;
74
+ ontabhide?: () => void;
55
75
  }
56
76
 
77
+ interface PageProps {}
78
+ interface PageProps extends Props {}
79
+
80
+ interface PageEvents extends Record<'',{}>{}
81
+
57
82
 
58
83
 
59
84
  declare class Page extends SvelteComponent<
60
- PageProps & Omit<HTMLAttributes<HTMLElementTagNameMap['div']>, keyof PageProps>,
61
- { ptrPullStart: CustomEvent<void>; ptrPullMove: CustomEvent<void>; ptrPullEnd: CustomEvent<void>; ptrRefresh: CustomEvent<void>; ptrDone: CustomEvent<void>; infinite: CustomEvent<void>; pageMounted: CustomEvent<void>; pageInit: CustomEvent<void>; pageReinit: CustomEvent<void>; pageBeforeIn: CustomEvent<void>; pageBeforeOut: CustomEvent<void>; pageAfterOut: CustomEvent<void>; pageAfterIn: CustomEvent<void>; pageBeforeRemove: CustomEvent<void>; pageBeforeUnmount: CustomEvent<void>; pageTabShow: CustomEvent<void>; pageTabHide: CustomEvent<void>; },
62
- { 'fixed' : {}; 'static' : {}; 'default' : {}; }
85
+ PageProps,
86
+ PageEvents,
87
+ { }
63
88
  > {}
64
89
 
65
90
  export { PageProps };
@@ -1,43 +1,42 @@
1
1
  <script>
2
- import { onMount, afterUpdate, onDestroy, createEventDispatcher } from 'svelte';
3
- import { restProps } from '../shared/rest-props.js';
2
+ import { onMount, onDestroy } from 'svelte';
4
3
  import { colorClasses } from '../shared/mixins.js';
5
- import { classNames, createEmitter } from '../shared/utils.js';
4
+ import { classNames } from '../shared/utils.js';
6
5
  import { app, f7ready } from '../shared/f7.js';
7
6
 
8
7
  import PageContent from './page-content.svelte';
9
8
 
10
- const emit = createEmitter(createEventDispatcher, $$props);
11
-
12
- // Props
13
- export let name = undefined;
14
- export let withSubnavbar = undefined;
15
- export let subnavbar = undefined;
16
- export let withNavbarLarge = undefined;
17
- export let navbarLarge = undefined;
18
- export let noNavbar = undefined;
19
- export let noToolbar = undefined;
20
- export let tabs = undefined;
21
- export let pageContent = true;
22
- export let noSwipeback = undefined;
23
- // Page Content Props
24
- export let ptr = undefined;
25
- export let ptrDistance = undefined;
26
- export let ptrPreloader = true;
27
- export let ptrBottom = undefined;
28
- export let ptrMousewheel = undefined;
29
- export let infinite = undefined;
30
- export let infiniteTop = undefined;
31
- export let infiniteDistance = undefined;
32
- export let infinitePreloader = true;
33
- export let hideBarsOnScroll = undefined;
34
- export let hideNavbarOnScroll = undefined;
35
- export let hideToolbarOnScroll = undefined;
36
- export let messagesContent = undefined;
37
- export let loginScreen = undefined;
38
-
39
- let className = undefined;
40
- export { className as class };
9
+ let {
10
+ class: className,
11
+ name = undefined,
12
+ withSubnavbar = undefined,
13
+ subnavbar = undefined,
14
+ withNavbarLarge = undefined,
15
+ navbarLarge = undefined,
16
+ noNavbar = undefined,
17
+ noToolbar = undefined,
18
+ tabs = undefined,
19
+ pageContent = true,
20
+ noSwipeback = undefined,
21
+ ptr = undefined,
22
+ ptrDistance = undefined,
23
+ ptrPreloader = true,
24
+ ptrBottom = undefined,
25
+ ptrMousewheel = undefined,
26
+ infinite = undefined,
27
+ infiniteTop = undefined,
28
+ infiniteDistance = undefined,
29
+ infinitePreloader = true,
30
+ hideBarsOnScroll = undefined,
31
+ hideNavbarOnScroll = undefined,
32
+ hideToolbarOnScroll = undefined,
33
+ messagesContent = undefined,
34
+ loginScreen = undefined,
35
+ children,
36
+ fixedContent,
37
+ staticContent,
38
+ ...restProps
39
+ } = $props();
41
40
 
42
41
  // State
43
42
  let el;
@@ -50,59 +49,70 @@
50
49
  let routerPageRoleDetailRoot = false;
51
50
  let routerPageMasterStack = false;
52
51
 
53
- $: forceSubnavbar =
54
- typeof subnavbar === 'undefined' && typeof withSubnavbar === 'undefined' ? hasSubnavbar : false;
52
+ const forceSubnavbar = $derived(
53
+ typeof subnavbar === 'undefined' && typeof withSubnavbar === 'undefined' ? hasSubnavbar : false,
54
+ );
55
55
 
56
- $: forceNavbarLarge =
56
+ const forceNavbarLarge = $derived(
57
57
  typeof navbarLarge === 'undefined' && typeof withNavbarLarge === 'undefined'
58
58
  ? hasNavbarLarge
59
- : false;
59
+ : false,
60
+ );
60
61
 
61
- $: classes = classNames(
62
- className,
63
- 'page',
64
- routerPositionClass,
65
- {
66
- tabs,
67
- 'page-with-subnavbar': subnavbar || withSubnavbar || forceSubnavbar,
68
- 'page-with-navbar-large': navbarLarge || withNavbarLarge || forceNavbarLarge,
69
- 'no-navbar': noNavbar,
70
- 'no-toolbar': noToolbar,
71
- 'no-swipeback': noSwipeback,
72
- 'page-master': routerPageRole === 'master',
73
- 'page-master-detail': routerPageRole === 'detail',
74
- 'page-master-detail-root': routerPageRoleDetailRoot === true,
75
- 'page-master-stacked': routerPageMasterStack === true,
76
- 'page-with-navbar-large-collapsed': hasNavbarLargeCollapsed === true,
77
- 'page-with-card-opened': hasCardExpandableOpened === true,
78
- 'login-screen-page': loginScreen,
79
- },
80
- colorClasses($$props),
62
+ const classes = $derived(
63
+ classNames(
64
+ className,
65
+ 'page',
66
+ routerPositionClass,
67
+ {
68
+ tabs,
69
+ 'page-with-subnavbar': subnavbar || withSubnavbar || forceSubnavbar,
70
+ 'page-with-navbar-large': navbarLarge || withNavbarLarge || forceNavbarLarge,
71
+ 'no-navbar': noNavbar,
72
+ 'no-toolbar': noToolbar,
73
+ 'no-swipeback': noSwipeback,
74
+ 'page-master': routerPageRole === 'master',
75
+ 'page-master-detail': routerPageRole === 'detail',
76
+ 'page-master-detail-root': routerPageRoleDetailRoot === true,
77
+ 'page-master-stacked': routerPageMasterStack === true,
78
+ 'page-with-navbar-large-collapsed': hasNavbarLargeCollapsed === true,
79
+ 'page-with-card-opened': hasCardExpandableOpened === true,
80
+ 'login-screen-page': loginScreen,
81
+ },
82
+ colorClasses(restProps),
83
+ ),
81
84
  );
82
85
 
83
86
  // Handlers
84
87
  function onPtrPullStart() {
85
- emit('ptrPullStart');
88
+ restProps.onPtrPullStart?.();
89
+ restProps.onptrpullstart?.();
86
90
  }
87
91
  function onPtrPullMove() {
88
- emit('ptrPullMove');
92
+ restProps.onPtrPullMove?.();
93
+ restProps.onptrpullmove?.();
89
94
  }
90
95
  function onPtrPullEnd() {
91
- emit('ptrPullEnd');
96
+ restProps.onPtrPullEnd?.();
97
+ restProps.onptrpullend?.();
92
98
  }
93
99
  function onPtrRefresh(done) {
94
- emit('ptrRefresh', [done]);
100
+ restProps.onPtrRefresh?.(done);
101
+ restProps.onptrrefresh?.(done);
95
102
  }
96
103
  function onPtrDone() {
97
- emit('ptrDone');
104
+ restProps.onPtrDone?.();
105
+ restProps.onptrdone?.();
98
106
  }
99
107
  function onInfinite() {
100
- emit('infinite');
108
+ restProps.onInfinite?.();
109
+ restProps.oninfinite?.();
101
110
  }
102
111
  // Main Page Events
103
112
  function onPageMounted(page) {
104
113
  if (el !== page.el) return;
105
- emit('pageMounted', [page]);
114
+ restProps.onPageMounted?.(page);
115
+ restProps.onpagemounted?.(page);
106
116
  }
107
117
  function onPageInit(page) {
108
118
  if (el !== page.el) return;
@@ -124,11 +134,13 @@
124
134
  }
125
135
  }
126
136
 
127
- emit('pageInit', [page]);
137
+ restProps.onPageInit?.(page);
138
+ restProps.onpageinit?.(page);
128
139
  }
129
140
  function onPageReinit(page) {
130
141
  if (el !== page.el) return;
131
- emit('pageReinit', [page]);
142
+ restProps.onPageReinit?.(page);
143
+ restProps.onpagereinit?.(page);
132
144
  }
133
145
  function onPageBeforeIn(page) {
134
146
  if (el !== page.el) return;
@@ -140,11 +152,13 @@
140
152
  routerPositionClass = 'page-previous';
141
153
  }
142
154
  }
143
- emit('pageBeforeIn', [page]);
155
+ restProps.onPageBeforeIn?.(page);
156
+ restProps.onpagebeforein?.(page);
144
157
  }
145
158
  function onPageBeforeOut(page) {
146
159
  if (el !== page.el) return;
147
- emit('pageBeforeOut', [page]);
160
+ restProps.onPageBeforeOut?.(page);
161
+ restProps.onpagebeforeout?.(page);
148
162
  }
149
163
  function onPageAfterOut(page) {
150
164
  if (el !== page.el) return;
@@ -154,12 +168,14 @@
154
168
  if (page.to === 'previous') {
155
169
  routerPositionClass = 'page-previous';
156
170
  }
157
- emit('pageAfterOut', [page]);
171
+ restProps.onPageAfterOut?.(page);
172
+ restProps.onpageafterout?.(page);
158
173
  }
159
174
  function onPageAfterIn(page) {
160
175
  if (el !== page.el) return;
161
176
  routerPositionClass = 'page-current';
162
- emit('pageAfterIn', [page]);
177
+ restProps.onPageAfterIn?.(page);
178
+ restProps.onpageafterin?.(page);
163
179
  }
164
180
  function onPageBeforeRemove(page) {
165
181
  if (el !== page.el) return;
@@ -171,11 +187,13 @@
171
187
  ) {
172
188
  page.$el.prepend(page.$navbarEl);
173
189
  }
174
- emit('pageBeforeRemove', [page]);
190
+ restProps.onPageBeforeRemove?.(page);
191
+ restProps.onpagebeforeremove?.(page);
175
192
  }
176
193
  function onPageBeforeUnmount(page) {
177
194
  if (el !== page.el) return;
178
- emit('pageBeforeUnmount', [page]);
195
+ restProps.onPageBeforeUnmount?.(page);
196
+ restProps.onpagebeforeunmount?.(page);
179
197
  }
180
198
 
181
199
  function onPagePosition(pageEl, position) {
@@ -214,11 +232,13 @@
214
232
 
215
233
  function onPageTabShow(pageEl) {
216
234
  if (el !== pageEl) return;
217
- emit('pageTabShow');
235
+ restProps.onPageTabShow?.();
236
+ restProps.ontabshow?.();
218
237
  }
219
238
  function onPageTabHide(pageEl) {
220
239
  if (el !== pageEl) return;
221
- emit('pageTabHide');
240
+ restProps.onPageTabHide?.();
241
+ restProps.ontabhide?.();
222
242
  }
223
243
 
224
244
  // Mount/destroy
@@ -279,7 +299,7 @@
279
299
  mountPage();
280
300
  });
281
301
  });
282
- afterUpdate(() => {
302
+ $effect(() => {
283
303
  if (el && app.f7) {
284
304
  const dom7 = app.f7.$;
285
305
  const fixedEls = dom7(el).children('.page-content').children('[data-f7-slot="fixed"]');
@@ -296,8 +316,8 @@
296
316
  });
297
317
  </script>
298
318
 
299
- <div bind:this={el} class={classes} data-name={name} {...restProps($$restProps)}>
300
- <slot name="fixed" />
319
+ <div bind:this={el} class={classes} data-name={name} {...restProps}>
320
+ {@render fixedContent?.()}
301
321
  {#if pageContent}
302
322
  <PageContent
303
323
  {ptr}
@@ -321,11 +341,11 @@
321
341
  {onPtrDone}
322
342
  {onInfinite}
323
343
  >
324
- <slot name="static" />
325
- <slot />
344
+ {@render staticContent?.()}
345
+ {@render children?.()}
326
346
  </PageContent>
327
347
  {:else}
328
- <slot name="static" />
329
- <slot />
348
+ {@render staticContent?.()}
349
+ {@render children?.()}
330
350
  {/if}
331
351
  </div>
@@ -1,31 +1,31 @@
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 { Panel } from 'framework7/types';
6
6
 
7
7
 
8
- interface PanelProps {
9
- side ?: string;
10
- effect ?: string;
11
- cover ?: boolean;
12
- reveal ?: boolean;
13
- push ?: boolean;
14
- floating ?: boolean;
15
- left ?: boolean;
16
- right ?: boolean;
17
- opened ?: boolean;
18
- resizable ?: boolean;
19
- backdrop ?: boolean;
20
- backdropEl ?: string;
21
- visibleBreakpoint ?: number;
22
- collapsedBreakpoint ?: number;
23
- swipe ?: boolean;
24
- swipeNoFollow ?: boolean;
25
- swipeOnlyClose ?: boolean;
26
- swipeActiveArea ?: number;
27
- swipeThreshold ?: number;
28
- containerEl ?: string | object;
8
+ interface Props {
9
+ side?: string;
10
+ effect?: string;
11
+ cover?: boolean;
12
+ reveal?: boolean;
13
+ push?: boolean;
14
+ floating?: boolean;
15
+ left?: boolean;
16
+ right?: boolean;
17
+ opened?: boolean;
18
+ resizable?: boolean;
19
+ backdrop?: boolean;
20
+ backdropEl?: string;
21
+ visibleBreakpoint?: number;
22
+ collapsedBreakpoint?: number;
23
+ swipe?: boolean;
24
+ swipeNoFollow?: boolean;
25
+ swipeOnlyClose?: boolean;
26
+ swipeActiveArea?: number;
27
+ swipeThreshold?: number;
28
+ containerEl?: string | object;
29
29
  closeByBackdropClick?: boolean;
30
30
  color?: string;
31
31
  colorTheme?: string;
@@ -34,24 +34,40 @@ interface PanelProps {
34
34
  borderColor?: string;
35
35
  rippleColor?: string;
36
36
  dark?: boolean;
37
- onPanelOpen ?: (event?: any) => void;
38
- onPanelOpened ?: (event?: any) => void;
39
- onPanelClose ?: (event?: any) => void;
40
- onPanelClosed ?: (event?: any) => void;
41
- onPanelBackdropClick ?: (event?: any) => void;
42
- onPanelSwipe ?: (event?: any) => void;
43
- onPanelSwipeOpen ?: (event?: any) => void;
44
- onPanelBreakpoint ?: (event?: any) => void;
45
- onPanelCollapsedBreakpoint ?: (event?: any) => void;
46
- onPanelResize ?: (...args: any[]) => void;
37
+ onPanelOpen?: (event?: any) => void;
38
+ onPanelOpened?: (event?: any) => void;
39
+ onPanelClose?: (event?: any) => void;
40
+ onPanelClosed?: (event?: any) => void;
41
+ onPanelBackdropClick?: (event?: any) => void;
42
+ onPanelSwipe?: (event?: any) => void;
43
+ onPanelSwipeOpen?: (event?: any) => void;
44
+ onPanelBreakpoint?: (event?: any) => void;
45
+ onPanelCollapsedBreakpoint?: (event?: any) => void;
46
+ onPanelResize?: (...args: any[]) => void;
47
+ children?: Snippet;
48
+ onpanelopen?: () => void;
49
+ onpanelopened?: () => void;
50
+ onpanelclose?: () => void;
51
+ onpanelclosed?: () => void;
52
+ onpanelbackdropclick?: () => void;
53
+ onpanelswipe?: () => void;
54
+ onpanelswipeopen?: () => void;
55
+ onpanelbreakpoint?: () => void;
56
+ onpanelcollapsedbreakpoint?: () => void;
57
+ onpanelresize?: () => void;
47
58
  }
48
59
 
60
+ interface PanelProps {}
61
+ interface PanelProps extends Props {}
62
+
63
+ interface PanelEvents extends Record<'',{}>{}
64
+
49
65
 
50
66
 
51
67
  declare class Panel extends SvelteComponent<
52
- PanelProps & Omit<HTMLAttributes<HTMLElementTagNameMap['div']>, keyof PanelProps>,
53
- { panelOpen: CustomEvent<void>; panelOpened: CustomEvent<void>; panelClose: CustomEvent<void>; panelClosed: CustomEvent<void>; panelBackdropClick: CustomEvent<void>; panelSwipe: CustomEvent<void>; panelSwipeOpen: CustomEvent<void>; panelBreakpoint: CustomEvent<void>; panelCollapsedBreakpoint: CustomEvent<void>; panelResize: CustomEvent<void>; },
54
- { 'default' : {}; }
68
+ PanelProps,
69
+ PanelEvents,
70
+ { }
55
71
  > {}
56
72
 
57
73
  export { PanelProps };