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.
- package/components/accordion-content.d.ts +11 -5
- package/components/accordion-content.svelte +8 -6
- package/components/accordion-item.d.ts +23 -11
- package/components/accordion-item.svelte +27 -25
- package/components/accordion-toggle.d.ts +11 -5
- package/components/accordion-toggle.svelte +8 -6
- package/components/accordion.d.ts +11 -5
- package/components/accordion.svelte +11 -10
- package/components/actions-button.d.ts +14 -6
- package/components/actions-button.svelte +21 -19
- package/components/actions-group.d.ts +11 -5
- package/components/actions-group.svelte +4 -7
- package/components/actions-label.d.ts +11 -5
- package/components/actions-label.svelte +13 -23
- package/components/actions.d.ts +31 -21
- package/components/actions.svelte +50 -54
- package/components/app.d.ts +11 -5
- package/components/app.svelte +6 -7
- package/components/area-chart.d.ts +13 -6
- package/components/area-chart.svelte +42 -46
- package/components/badge.d.ts +11 -5
- package/components/badge.svelte +10 -9
- package/components/block-footer.d.ts +11 -5
- package/components/block-footer.svelte +8 -6
- package/components/block-header.d.ts +11 -5
- package/components/block-header.svelte +8 -6
- package/components/block-title.d.ts +11 -5
- package/components/block-title.svelte +12 -10
- package/components/block.d.ts +11 -5
- package/components/block.svelte +76 -76
- package/components/breadcrumbs-collapsed.d.ts +12 -6
- package/components/breadcrumbs-collapsed.svelte +10 -15
- package/components/breadcrumbs-item.d.ts +12 -6
- package/components/breadcrumbs-item.svelte +9 -8
- package/components/breadcrumbs-separator.d.ts +10 -5
- package/components/breadcrumbs-separator.svelte +9 -5
- package/components/breadcrumbs.d.ts +11 -6
- package/components/breadcrumbs.svelte +8 -6
- package/components/button.d.ts +44 -37
- package/components/button.svelte +107 -103
- package/components/card-content.d.ts +11 -5
- package/components/card-content.svelte +11 -10
- package/components/card-footer.d.ts +11 -5
- package/components/card-footer.svelte +8 -6
- package/components/card-header.d.ts +11 -5
- package/components/card-header.svelte +8 -6
- package/components/card.d.ts +43 -31
- package/components/card.svelte +78 -67
- package/components/checkbox.d.ts +20 -13
- package/components/checkbox.svelte +32 -30
- package/components/chip.d.ts +22 -15
- package/components/chip.svelte +54 -60
- package/components/fab-backdrop.d.ts +10 -5
- package/components/fab-backdrop.svelte +5 -7
- package/components/fab-button.d.ts +17 -11
- package/components/fab-button.svelte +20 -29
- package/components/fab-buttons.d.ts +11 -5
- package/components/fab-buttons.svelte +5 -12
- package/components/fab.d.ts +22 -13
- package/components/fab.svelte +55 -51
- package/components/gauge.d.ts +24 -19
- package/components/gauge.svelte +25 -25
- package/components/icon.d.ts +19 -13
- package/components/icon.svelte +65 -63
- package/components/input.d.ts +78 -61
- package/components/input.svelte +171 -154
- package/components/link.d.ts +28 -21
- package/components/link.svelte +67 -65
- package/components/list-button.d.ts +22 -15
- package/components/list-button.svelte +56 -44
- package/components/list-group.d.ts +16 -10
- package/components/list-group.svelte +38 -34
- package/components/list-index.d.ts +20 -13
- package/components/list-index.svelte +23 -24
- package/components/list-input.d.ts +91 -64
- package/components/list-input.svelte +254 -205
- package/components/list-item.d.ts +98 -63
- package/components/list-item.svelte +412 -439
- package/components/list.d.ts +72 -54
- package/components/list.svelte +151 -147
- package/components/login-screen-title.d.ts +11 -5
- package/components/login-screen-title.svelte +4 -6
- package/components/login-screen.d.ts +20 -10
- package/components/login-screen.svelte +39 -42
- package/components/message.d.ts +48 -29
- package/components/message.svelte +123 -88
- package/components/messagebar-attachment.d.ts +17 -9
- package/components/messagebar-attachment.svelte +16 -18
- package/components/messagebar-attachments.d.ts +11 -5
- package/components/messagebar-attachments.svelte +6 -6
- package/components/messagebar-sheet-image.d.ts +19 -10
- package/components/messagebar-sheet-image.svelte +30 -22
- package/components/messagebar-sheet-item.d.ts +11 -5
- package/components/messagebar-sheet-item.svelte +4 -6
- package/components/messagebar-sheet.d.ts +11 -5
- package/components/messagebar-sheet.svelte +4 -6
- package/components/messagebar.d.ts +53 -31
- package/components/messagebar.svelte +100 -77
- package/components/messages-title.d.ts +11 -5
- package/components/messages-title.svelte +4 -6
- package/components/messages.d.ts +26 -20
- package/components/messages.svelte +32 -32
- package/components/nav-left.d.ts +19 -12
- package/components/nav-left.svelte +23 -39
- package/components/nav-right.d.ts +11 -6
- package/components/nav-right.svelte +4 -15
- package/components/nav-title-large.d.ts +11 -5
- package/components/nav-title-large.svelte +4 -6
- package/components/nav-title.d.ts +13 -8
- package/components/nav-title.svelte +25 -20
- package/components/navbar.d.ts +47 -28
- package/components/navbar.svelte +100 -111
- package/components/page-content.d.ts +41 -29
- package/components/page-content.svelte +58 -50
- package/components/page.d.ts +71 -46
- package/components/page.svelte +102 -82
- package/components/panel.d.ts +51 -35
- package/components/panel.svelte +94 -99
- package/components/photo-browser.d.ts +50 -41
- package/components/photo-browser.svelte +48 -47
- package/components/pie-chart.d.ts +13 -6
- package/components/pie-chart.svelte +29 -27
- package/components/popover.d.ts +28 -19
- package/components/popover.svelte +45 -48
- package/components/popup.d.ts +37 -23
- package/components/popup.svelte +68 -57
- package/components/preloader.d.ts +10 -5
- package/components/preloader.svelte +30 -31
- package/components/progressbar.d.ts +11 -6
- package/components/progressbar.svelte +13 -17
- package/components/radio.d.ts +19 -12
- package/components/radio.svelte +19 -23
- package/components/range.d.ts +35 -27
- package/components/range.svelte +47 -44
- package/components/routable-modals.d.ts +9 -4
- package/components/routable-modals.svelte +9 -8
- package/components/router-context-provider.d.ts +11 -6
- package/components/router-context-provider.svelte +2 -4
- package/components/searchbar.d.ts +60 -43
- package/components/searchbar.svelte +115 -104
- package/components/segmented.d.ts +21 -15
- package/components/segmented.svelte +38 -35
- package/components/sheet.d.ts +47 -30
- package/components/sheet.svelte +94 -76
- package/components/snippet-render.d.ts +24 -0
- package/components/snippet-render.svelte +9 -0
- package/components/stepper.d.ts +53 -43
- package/components/stepper.svelte +83 -79
- package/components/subnavbar.d.ts +13 -8
- package/components/subnavbar.svelte +12 -20
- package/components/swipeout-actions.d.ts +14 -8
- package/components/swipeout-actions.svelte +14 -13
- package/components/swipeout-button.d.ts +20 -13
- package/components/swipeout-button.svelte +31 -31
- package/components/tab.d.ts +14 -8
- package/components/tab.svelte +20 -28
- package/components/tabs.d.ts +15 -9
- package/components/tabs.svelte +27 -26
- package/components/text-editor.d.ts +44 -24
- package/components/text-editor.svelte +56 -41
- package/components/toggle.d.ts +22 -15
- package/components/toggle.svelte +33 -37
- package/components/toolbar-pane.d.ts +24 -0
- package/components/toolbar-pane.svelte +14 -0
- package/components/toolbar.d.ts +30 -20
- package/components/toolbar.svelte +61 -53
- package/components/treeview-item.d.ts +36 -17
- package/components/treeview-item.svelte +101 -81
- package/components/treeview.d.ts +11 -5
- package/components/treeview.svelte +4 -6
- package/components/use-icon.d.ts +9 -4
- package/components/use-icon.svelte +1 -1
- package/components/view.d.ts +76 -65
- package/components/view.svelte +66 -48
- package/components/views.d.ts +11 -5
- package/components/views.svelte +12 -15
- package/framework7-svelte.d.ts +3 -1
- package/framework7-svelte.js +6 -4
- package/package.json +2 -2
- package/shared/components-router.js +28 -25
- package/shared/f7.js +1 -7
- package/shared/mixins.js +5 -5
- package/shared/modal-state-classes.js +4 -5
- package/shared/plugin.js +1 -4
- package/shared/rest-props.js +1 -4
- package/shared/use-icon.js +2 -5
- package/shared/use-store.js +9 -9
- package/shared/use-tab.js +3 -3
- package/shared/use-tooltip.js +3 -4
- package/shared/utils.js +2 -8
- package/shared/get-reactive-context.js +0 -16
- package/shared/list-context.js +0 -10
- package/shared/router-context.js +0 -8
- package/shared/set-reactive-context.js +0 -26
package/components/view.svelte
CHANGED
|
@@ -1,39 +1,46 @@
|
|
|
1
1
|
<script>
|
|
2
|
-
import { onMount, onDestroy,
|
|
2
|
+
import { onMount, onDestroy, tick } from 'svelte';
|
|
3
3
|
import { app, f7ready } from '../shared/f7.js';
|
|
4
4
|
import { colorClasses } from '../shared/mixins.js';
|
|
5
|
-
import { classNames, noUndefinedProps,
|
|
5
|
+
import { classNames, noUndefinedProps, getRouterId } from '../shared/utils.js';
|
|
6
6
|
import { getRouterInitialComponent } from '../shared/get-router-initial-component.js';
|
|
7
7
|
import { useTab } from '../shared/use-tab.js';
|
|
8
8
|
|
|
9
9
|
import RouterContextProvider from './router-context-provider.svelte';
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
11
|
+
let {
|
|
12
|
+
class: className,
|
|
13
|
+
id = undefined,
|
|
14
|
+
style = undefined,
|
|
15
|
+
init = true,
|
|
16
|
+
url = undefined,
|
|
17
|
+
children,
|
|
18
|
+
...restProps
|
|
19
|
+
} = $props();
|
|
20
|
+
|
|
21
|
+
const {
|
|
22
|
+
main,
|
|
23
|
+
tab,
|
|
24
|
+
tabActive,
|
|
25
|
+
browserHistoryInitialMatch = true,
|
|
26
|
+
initRouterOnTabShow,
|
|
27
|
+
} = restProps;
|
|
28
|
+
|
|
29
|
+
const shouldInitRouter = $derived(!(initRouterOnTabShow && tab && !tabActive));
|
|
30
|
+
|
|
31
|
+
let initialPage = $state(null);
|
|
32
|
+
let initialRoute = $state(null);
|
|
33
|
+
let el = $state(null);
|
|
34
|
+
let routerData = $state(null);
|
|
35
|
+
let f7View = $state(null);
|
|
30
36
|
|
|
31
37
|
export function instance() {
|
|
32
38
|
return f7View;
|
|
33
39
|
}
|
|
34
40
|
|
|
35
41
|
function onViewInit(view) {
|
|
36
|
-
|
|
42
|
+
restProps.onViewInit?.(view);
|
|
43
|
+
restProps.onviewinit?.(view);
|
|
37
44
|
if (!init) {
|
|
38
45
|
f7View = view;
|
|
39
46
|
routerData.instance = view;
|
|
@@ -45,7 +52,7 @@
|
|
|
45
52
|
f7View = app.f7.views.create(el, {
|
|
46
53
|
routerId,
|
|
47
54
|
init: false,
|
|
48
|
-
...noUndefinedProps(
|
|
55
|
+
...noUndefinedProps({ url, ...restProps }),
|
|
49
56
|
browserHistoryInitialMatch,
|
|
50
57
|
on: {
|
|
51
58
|
init: onViewInit,
|
|
@@ -67,39 +74,47 @@
|
|
|
67
74
|
}
|
|
68
75
|
}
|
|
69
76
|
|
|
70
|
-
let pages = initialPage ? [initialPage] : [];
|
|
77
|
+
let pages = $state(initialPage ? [initialPage] : []);
|
|
71
78
|
|
|
72
79
|
function onResize(view, width) {
|
|
73
|
-
|
|
80
|
+
restProps.onViewResize?.(width);
|
|
81
|
+
restProps.onviewresize?.(width);
|
|
74
82
|
}
|
|
75
83
|
function onSwipeBackMove(data) {
|
|
76
|
-
|
|
84
|
+
restProps.onSwipeBackMove?.(data);
|
|
85
|
+
restProps.onswipebackmove?.(data);
|
|
77
86
|
}
|
|
78
87
|
function onSwipeBackBeforeChange(data) {
|
|
79
|
-
|
|
88
|
+
restProps.onSwipeBackBeforeChange?.(data);
|
|
89
|
+
restProps.onswipebackbeforechange?.(data);
|
|
80
90
|
}
|
|
81
91
|
function onSwipeBackAfterChange(data) {
|
|
82
|
-
|
|
92
|
+
restProps.onSwipeBackAfterChange?.(data);
|
|
93
|
+
restProps.onswipebackafterchange?.(data);
|
|
83
94
|
}
|
|
84
95
|
function onSwipeBackBeforeReset(data) {
|
|
85
|
-
|
|
96
|
+
restProps.onSwipeBackBeforeReset?.(data);
|
|
97
|
+
restProps.onswipebackbeforereset?.(data);
|
|
86
98
|
}
|
|
87
99
|
function onSwipeBackAfterReset(data) {
|
|
88
|
-
|
|
100
|
+
restProps.onSwipeBackAfterReset?.(data);
|
|
101
|
+
restProps.onswipebackafterreset?.(data);
|
|
89
102
|
}
|
|
90
103
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
104
|
+
const classes = $derived(
|
|
105
|
+
classNames(
|
|
106
|
+
className,
|
|
107
|
+
'view',
|
|
108
|
+
{
|
|
109
|
+
'view-main': main,
|
|
110
|
+
'tab-active': tabActive,
|
|
111
|
+
tab,
|
|
112
|
+
},
|
|
113
|
+
colorClasses(restProps),
|
|
114
|
+
),
|
|
100
115
|
);
|
|
101
116
|
|
|
102
|
-
useTab(() => el,
|
|
117
|
+
useTab(() => el, restProps);
|
|
103
118
|
|
|
104
119
|
onMount(() => {
|
|
105
120
|
f7ready(() => {
|
|
@@ -108,7 +123,7 @@
|
|
|
108
123
|
routerData.pages = pages;
|
|
109
124
|
routerData.setPages = (newPages) => {
|
|
110
125
|
tick().then(() => {
|
|
111
|
-
pages = newPages;
|
|
126
|
+
pages = [...newPages];
|
|
112
127
|
});
|
|
113
128
|
};
|
|
114
129
|
if (initialPage && initialPage.isAsync && !initialPage.initialComponent) {
|
|
@@ -141,14 +156,14 @@
|
|
|
141
156
|
instance: f7View,
|
|
142
157
|
setPages(newPages) {
|
|
143
158
|
tick().then(() => {
|
|
144
|
-
pages = newPages;
|
|
159
|
+
pages = [...newPages];
|
|
145
160
|
});
|
|
146
161
|
},
|
|
147
162
|
};
|
|
148
163
|
app.f7routers.views.push(routerData);
|
|
149
164
|
routerData.instance = app.f7.views.create(el, {
|
|
150
165
|
routerId,
|
|
151
|
-
...noUndefinedProps(
|
|
166
|
+
...noUndefinedProps(restProps),
|
|
152
167
|
browserHistoryInitialMatch,
|
|
153
168
|
on: {
|
|
154
169
|
init: onViewInit,
|
|
@@ -168,10 +183,13 @@
|
|
|
168
183
|
});
|
|
169
184
|
});
|
|
170
185
|
|
|
171
|
-
|
|
172
|
-
if (!routerData) return;
|
|
186
|
+
const watchPagesAndRouterData = (pages, routerData) => {
|
|
187
|
+
if (!routerData || !pages) return;
|
|
188
|
+
|
|
173
189
|
app.f7events.emit('viewRouterDidUpdate', routerData);
|
|
174
|
-
}
|
|
190
|
+
};
|
|
191
|
+
|
|
192
|
+
$effect(() => watchPagesAndRouterData(pages, routerData));
|
|
175
193
|
|
|
176
194
|
onDestroy(() => {
|
|
177
195
|
if (f7View) {
|
|
@@ -191,10 +209,10 @@
|
|
|
191
209
|
</script>
|
|
192
210
|
|
|
193
211
|
<div class={classes} {style} {id} bind:this={el}>
|
|
194
|
-
|
|
212
|
+
{@render children?.(f7View)}
|
|
195
213
|
{#each pages as page (page.id)}
|
|
196
214
|
<RouterContextProvider route={page.props.f7route} router={page.props.f7router}>
|
|
197
|
-
<
|
|
215
|
+
<page.component {...page.props} />
|
|
198
216
|
</RouterContextProvider>
|
|
199
217
|
{/each}
|
|
200
218
|
</div>
|
package/components/views.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
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
|
|
6
|
+
interface Props {
|
|
7
7
|
tabs?: boolean;
|
|
8
8
|
color?: string;
|
|
9
9
|
colorTheme?: string;
|
|
@@ -12,14 +12,20 @@ interface ViewsProps {
|
|
|
12
12
|
borderColor?: string;
|
|
13
13
|
rippleColor?: string;
|
|
14
14
|
dark?: boolean;
|
|
15
|
+
children?: Snippet;
|
|
15
16
|
}
|
|
16
17
|
|
|
18
|
+
interface ViewsProps {}
|
|
19
|
+
interface ViewsProps extends Props {}
|
|
20
|
+
|
|
21
|
+
interface ViewsEvents extends Record<'',{}>{}
|
|
22
|
+
|
|
17
23
|
|
|
18
24
|
|
|
19
25
|
declare class Views extends SvelteComponent<
|
|
20
|
-
ViewsProps
|
|
21
|
-
|
|
22
|
-
{
|
|
26
|
+
ViewsProps,
|
|
27
|
+
ViewsEvents,
|
|
28
|
+
{ }
|
|
23
29
|
> {}
|
|
24
30
|
|
|
25
31
|
export { ViewsProps };
|
package/components/views.svelte
CHANGED
|
@@ -1,23 +1,20 @@
|
|
|
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';
|
|
4
|
+
let { class: className, tabs = false, children, ...restProps } = $props();
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
tabs,
|
|
16
|
-
},
|
|
17
|
-
colorClasses($$props),
|
|
6
|
+
const classes = $derived(
|
|
7
|
+
classNames(
|
|
8
|
+
className,
|
|
9
|
+
'views',
|
|
10
|
+
{
|
|
11
|
+
tabs,
|
|
12
|
+
},
|
|
13
|
+
colorClasses(restProps),
|
|
14
|
+
),
|
|
18
15
|
);
|
|
19
16
|
</script>
|
|
20
17
|
|
|
21
|
-
<div class={classes} {...restProps
|
|
22
|
-
|
|
18
|
+
<div class={classes} {...restProps}>
|
|
19
|
+
{@render children?.()}
|
|
23
20
|
</div>
|
package/framework7-svelte.d.ts
CHANGED
|
@@ -77,6 +77,7 @@ import SkeletonAvatar from './components/skeleton-avatar.js';
|
|
|
77
77
|
import SkeletonBlock from './components/skeleton-block.js';
|
|
78
78
|
import SkeletonImage from './components/skeleton-image.js';
|
|
79
79
|
import SkeletonText from './components/skeleton-text.js';
|
|
80
|
+
import SnippetRender from './components/snippet-render.js';
|
|
80
81
|
import Stepper from './components/stepper.js';
|
|
81
82
|
import Subnavbar from './components/subnavbar.js';
|
|
82
83
|
import SwipeoutActions from './components/swipeout-actions.js';
|
|
@@ -85,6 +86,7 @@ import Tab from './components/tab.js';
|
|
|
85
86
|
import Tabs from './components/tabs.js';
|
|
86
87
|
import TextEditor from './components/text-editor.js';
|
|
87
88
|
import Toggle from './components/toggle.js';
|
|
89
|
+
import ToolbarPane from './components/toolbar-pane.js';
|
|
88
90
|
import Toolbar from './components/toolbar.js';
|
|
89
91
|
import TreeviewItem from './components/treeview-item.js';
|
|
90
92
|
import Treeview from './components/treeview.js';
|
|
@@ -122,6 +124,6 @@ interface app {
|
|
|
122
124
|
|
|
123
125
|
declare const app: app;
|
|
124
126
|
|
|
125
|
-
export { AccordionContent, AccordionItem, AccordionToggle, Accordion, ActionsButton, ActionsGroup, ActionsLabel, Actions, App, AreaChart, Badge, BlockFooter, BlockHeader, BlockTitle, Block, BreadcrumbsCollapsed, BreadcrumbsItem, BreadcrumbsSeparator, Breadcrumbs, Button, CardContent, CardFooter, CardHeader, Card, Checkbox, Chip, FabBackdrop, FabButton, FabButtons, Fab, Gauge, Icon, Input, Link, ListButton, ListGroup, ListIndex, ListInput, ListItem, List, LoginScreenTitle, LoginScreen, Message, MessagebarAttachment, MessagebarAttachments, MessagebarSheetImage, MessagebarSheetItem, MessagebarSheet, Messagebar, MessagesTitle, Messages, NavLeft, NavRight, NavTitleLarge, NavTitle, Navbar, PageContent, Page, Panel, PhotoBrowser, PieChart, Popover, Popup, Preloader, Progressbar, Radio, Range, RoutableModals, RouterContextProvider, Searchbar, Segmented, Sheet, SkeletonAvatar, SkeletonBlock, SkeletonImage, SkeletonText, Stepper, Subnavbar, SwipeoutActions, SwipeoutButton, Tab, Tabs, TextEditor, Toggle, Toolbar, TreeviewItem, Treeview, UseIcon, View, Views }
|
|
127
|
+
export { AccordionContent, AccordionItem, AccordionToggle, Accordion, ActionsButton, ActionsGroup, ActionsLabel, Actions, App, AreaChart, Badge, BlockFooter, BlockHeader, BlockTitle, Block, BreadcrumbsCollapsed, BreadcrumbsItem, BreadcrumbsSeparator, Breadcrumbs, Button, CardContent, CardFooter, CardHeader, Card, Checkbox, Chip, FabBackdrop, FabButton, FabButtons, Fab, Gauge, Icon, Input, Link, ListButton, ListGroup, ListIndex, ListInput, ListItem, List, LoginScreenTitle, LoginScreen, Message, MessagebarAttachment, MessagebarAttachments, MessagebarSheetImage, MessagebarSheetItem, MessagebarSheet, Messagebar, MessagesTitle, Messages, NavLeft, NavRight, NavTitleLarge, NavTitle, Navbar, PageContent, Page, Panel, PhotoBrowser, PieChart, Popover, Popup, Preloader, Progressbar, Radio, Range, RoutableModals, RouterContextProvider, Searchbar, Segmented, Sheet, SkeletonAvatar, SkeletonBlock, SkeletonImage, SkeletonText, SnippetRender, Stepper, Subnavbar, SwipeoutActions, SwipeoutButton, Tab, Tabs, TextEditor, Toggle, ToolbarPane, Toolbar, TreeviewItem, Treeview, UseIcon, View, Views }
|
|
126
128
|
export { f7, f7ready, theme, useStore, app };
|
|
127
129
|
export default Framework7Svelte;
|
package/framework7-svelte.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Framework7 Svelte
|
|
2
|
+
* Framework7 Svelte 9.0.0
|
|
3
3
|
* Build full featured iOS & Android apps using Framework7 & Svelte
|
|
4
4
|
* https://framework7.io/svelte/
|
|
5
5
|
*
|
|
6
|
-
* Copyright 2014-
|
|
6
|
+
* Copyright 2014-2025 Vladimir Kharlampidi
|
|
7
7
|
*
|
|
8
8
|
* Released under the MIT License
|
|
9
9
|
*
|
|
10
|
-
* Released on:
|
|
10
|
+
* Released on: November 25, 2025
|
|
11
11
|
*/
|
|
12
12
|
import Framework7Svelte from './shared/plugin.js';
|
|
13
13
|
import { f7, f7ready, theme, app } from './shared/f7.js';
|
|
@@ -89,6 +89,7 @@ import SkeletonAvatar from './components/skeleton-avatar.js';
|
|
|
89
89
|
import SkeletonBlock from './components/skeleton-block.js';
|
|
90
90
|
import SkeletonImage from './components/skeleton-image.js';
|
|
91
91
|
import SkeletonText from './components/skeleton-text.js';
|
|
92
|
+
import SnippetRender from './components/snippet-render.svelte';
|
|
92
93
|
import Stepper from './components/stepper.svelte';
|
|
93
94
|
import Subnavbar from './components/subnavbar.svelte';
|
|
94
95
|
import SwipeoutActions from './components/swipeout-actions.svelte';
|
|
@@ -97,6 +98,7 @@ import Tab from './components/tab.svelte';
|
|
|
97
98
|
import Tabs from './components/tabs.svelte';
|
|
98
99
|
import TextEditor from './components/text-editor.svelte';
|
|
99
100
|
import Toggle from './components/toggle.svelte';
|
|
101
|
+
import ToolbarPane from './components/toolbar-pane.svelte';
|
|
100
102
|
import Toolbar from './components/toolbar.svelte';
|
|
101
103
|
import TreeviewItem from './components/treeview-item.svelte';
|
|
102
104
|
import Treeview from './components/treeview.svelte';
|
|
@@ -104,6 +106,6 @@ import UseIcon from './components/use-icon.svelte';
|
|
|
104
106
|
import View from './components/view.svelte';
|
|
105
107
|
import Views from './components/views.svelte';
|
|
106
108
|
|
|
107
|
-
export { AccordionContent, AccordionItem, AccordionToggle, Accordion, ActionsButton, ActionsGroup, ActionsLabel, Actions, App, AreaChart, Badge, BlockFooter, BlockHeader, BlockTitle, Block, BreadcrumbsCollapsed, BreadcrumbsItem, BreadcrumbsSeparator, Breadcrumbs, Button, CardContent, CardFooter, CardHeader, Card, Checkbox, Chip, FabBackdrop, FabButton, FabButtons, Fab, Gauge, Icon, Input, Link, ListButton, ListGroup, ListIndex, ListInput, ListItem, List, LoginScreenTitle, LoginScreen, Message, MessagebarAttachment, MessagebarAttachments, MessagebarSheetImage, MessagebarSheetItem, MessagebarSheet, Messagebar, MessagesTitle, Messages, NavLeft, NavRight, NavTitleLarge, NavTitle, Navbar, PageContent, Page, Panel, PhotoBrowser, PieChart, Popover, Popup, Preloader, Progressbar, Radio, Range, RoutableModals, RouterContextProvider, Searchbar, Segmented, Sheet, SkeletonAvatar, SkeletonBlock, SkeletonImage, SkeletonText, Stepper, Subnavbar, SwipeoutActions, SwipeoutButton, Tab, Tabs, TextEditor, Toggle, Toolbar, TreeviewItem, Treeview, UseIcon, View, Views }
|
|
109
|
+
export { AccordionContent, AccordionItem, AccordionToggle, Accordion, ActionsButton, ActionsGroup, ActionsLabel, Actions, App, AreaChart, Badge, BlockFooter, BlockHeader, BlockTitle, Block, BreadcrumbsCollapsed, BreadcrumbsItem, BreadcrumbsSeparator, Breadcrumbs, Button, CardContent, CardFooter, CardHeader, Card, Checkbox, Chip, FabBackdrop, FabButton, FabButtons, Fab, Gauge, Icon, Input, Link, ListButton, ListGroup, ListIndex, ListInput, ListItem, List, LoginScreenTitle, LoginScreen, Message, MessagebarAttachment, MessagebarAttachments, MessagebarSheetImage, MessagebarSheetItem, MessagebarSheet, Messagebar, MessagesTitle, Messages, NavLeft, NavRight, NavTitleLarge, NavTitle, Navbar, PageContent, Page, Panel, PhotoBrowser, PieChart, Popover, Popup, Preloader, Progressbar, Radio, Range, RoutableModals, RouterContextProvider, Searchbar, Segmented, Sheet, SkeletonAvatar, SkeletonBlock, SkeletonImage, SkeletonText, SnippetRender, Stepper, Subnavbar, SwipeoutActions, SwipeoutButton, Tab, Tabs, TextEditor, Toggle, ToolbarPane, Toolbar, TreeviewItem, Treeview, UseIcon, View, Views }
|
|
108
110
|
export { f7, f7ready, theme, useStore, app };
|
|
109
111
|
export default Framework7Svelte;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "framework7-svelte",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "9.0.0",
|
|
4
4
|
"description": "Build full featured iOS & Android apps using Framework7 & Svelte",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"svelte": "./framework7-svelte.js",
|
|
@@ -50,5 +50,5 @@
|
|
|
50
50
|
"type": "patreon",
|
|
51
51
|
"url": "https://www.patreon.com/framework7"
|
|
52
52
|
},
|
|
53
|
-
"releaseDate": "
|
|
53
|
+
"releaseDate": "November 25, 2025"
|
|
54
54
|
}
|
|
@@ -20,14 +20,14 @@ export default {
|
|
|
20
20
|
openIn(router, navigateUrl, options) {
|
|
21
21
|
return routerOpenIn(router, navigateUrl, options);
|
|
22
22
|
},
|
|
23
|
-
pageComponentLoader(
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
23
|
+
pageComponentLoader({
|
|
24
|
+
routerEl,
|
|
25
|
+
component,
|
|
26
|
+
options,
|
|
27
|
+
resolve,
|
|
28
|
+
reject,
|
|
29
|
+
direction
|
|
30
|
+
}) {
|
|
31
31
|
const router = this;
|
|
32
32
|
const routerId = router.id;
|
|
33
33
|
const el = routerEl;
|
|
@@ -56,13 +56,18 @@ export default {
|
|
|
56
56
|
const childrenAfter = getChildrenArray(el);
|
|
57
57
|
if (hasSameChildren(childrenBefore, childrenAfter)) return;
|
|
58
58
|
app.f7events.off('viewRouterDidUpdate', onDidUpdate);
|
|
59
|
-
const pageEl = el.children[el.children.length - 1];
|
|
59
|
+
const pageEl = el.children[direction === 'backward' ? 0 : el.children.length - 1];
|
|
60
60
|
pageData.el = pageEl;
|
|
61
61
|
resolve(pageEl);
|
|
62
|
+
viewRouter.setPages(viewRouter.pages);
|
|
62
63
|
resolved = true;
|
|
63
64
|
}
|
|
64
65
|
app.f7events.on('viewRouterDidUpdate', onDidUpdate);
|
|
65
|
-
|
|
66
|
+
if (direction === 'backward') {
|
|
67
|
+
viewRouter.pages.unshift(pageData);
|
|
68
|
+
} else {
|
|
69
|
+
viewRouter.pages.push(pageData);
|
|
70
|
+
}
|
|
66
71
|
viewRouter.setPages(viewRouter.pages);
|
|
67
72
|
},
|
|
68
73
|
removePage($pageEl) {
|
|
@@ -101,14 +106,13 @@ export default {
|
|
|
101
106
|
pageEl.parentNode.removeChild(pageEl);
|
|
102
107
|
}
|
|
103
108
|
},
|
|
104
|
-
tabComponentLoader(
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
} = _temp === void 0 ? {} : _temp;
|
|
109
|
+
tabComponentLoader({
|
|
110
|
+
tabEl,
|
|
111
|
+
component,
|
|
112
|
+
options,
|
|
113
|
+
resolve,
|
|
114
|
+
reject
|
|
115
|
+
} = {}) {
|
|
112
116
|
const router = this;
|
|
113
117
|
if (!tabEl) reject();
|
|
114
118
|
let tabRouter;
|
|
@@ -155,13 +159,12 @@ export default {
|
|
|
155
159
|
}
|
|
156
160
|
tabRouter.setTabContent(null);
|
|
157
161
|
},
|
|
158
|
-
modalComponentLoader(
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
} = _temp2 === void 0 ? {} : _temp2;
|
|
162
|
+
modalComponentLoader({
|
|
163
|
+
component,
|
|
164
|
+
options,
|
|
165
|
+
resolve,
|
|
166
|
+
reject
|
|
167
|
+
} = {}) {
|
|
165
168
|
const router = this;
|
|
166
169
|
const modalsRouter = app.f7routers.modals;
|
|
167
170
|
if (!modalsRouter) {
|
package/shared/f7.js
CHANGED
|
@@ -44,13 +44,7 @@ const cleanup = () => {
|
|
|
44
44
|
const f7initEvents = () => {
|
|
45
45
|
app.f7events = new app.Framework7.Events();
|
|
46
46
|
};
|
|
47
|
-
const f7init =
|
|
48
|
-
if (params === void 0) {
|
|
49
|
-
params = {};
|
|
50
|
-
}
|
|
51
|
-
if (init === void 0) {
|
|
52
|
-
init = true;
|
|
53
|
-
}
|
|
47
|
+
const f7init = (rootEl, params = {}, init = true) => {
|
|
54
48
|
const f7Params = extend({}, params, {
|
|
55
49
|
el: rootEl,
|
|
56
50
|
init
|
package/shared/mixins.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { isStringProp } from './utils.js';
|
|
2
|
-
export function colorClasses(props) {
|
|
2
|
+
export function colorClasses(props = {}) {
|
|
3
3
|
const {
|
|
4
4
|
color,
|
|
5
5
|
textColor,
|
|
@@ -17,7 +17,7 @@ export function colorClasses(props) {
|
|
|
17
17
|
[`ripple-color-${rippleColor}`]: rippleColor
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
|
-
export function routerAttrs(props) {
|
|
20
|
+
export function routerAttrs(props = {}) {
|
|
21
21
|
const {
|
|
22
22
|
force,
|
|
23
23
|
reloadCurrent,
|
|
@@ -53,7 +53,7 @@ export function routerAttrs(props) {
|
|
|
53
53
|
'data-open-in': isStringProp(openIn) ? openIn : undefined
|
|
54
54
|
};
|
|
55
55
|
}
|
|
56
|
-
export function routerClasses(props) {
|
|
56
|
+
export function routerClasses(props = {}) {
|
|
57
57
|
const {
|
|
58
58
|
back,
|
|
59
59
|
linkBack,
|
|
@@ -66,7 +66,7 @@ export function routerClasses(props) {
|
|
|
66
66
|
'prevent-router': preventRouter
|
|
67
67
|
};
|
|
68
68
|
}
|
|
69
|
-
export function actionsAttrs(props) {
|
|
69
|
+
export function actionsAttrs(props = {}) {
|
|
70
70
|
const {
|
|
71
71
|
searchbarEnable,
|
|
72
72
|
searchbarDisable,
|
|
@@ -103,7 +103,7 @@ export function actionsAttrs(props) {
|
|
|
103
103
|
'data-card': isStringProp(cardOpen) && cardOpen || isStringProp(cardClose) && cardClose || undefined
|
|
104
104
|
};
|
|
105
105
|
}
|
|
106
|
-
export function actionsClasses(props) {
|
|
106
|
+
export function actionsClasses(props = {}) {
|
|
107
107
|
const {
|
|
108
108
|
searchbarEnable,
|
|
109
109
|
searchbarDisable,
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
export const modalStateClasses =
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
} = _temp === void 0 ? {} : _temp;
|
|
1
|
+
export const modalStateClasses = ({
|
|
2
|
+
isOpened,
|
|
3
|
+
isClosing
|
|
4
|
+
} = {}) => {
|
|
6
5
|
return {
|
|
7
6
|
'modal-in': isOpened && !isClosing,
|
|
8
7
|
'modal-out': isClosing
|
package/shared/plugin.js
CHANGED
|
@@ -4,10 +4,7 @@ import { f7ready, theme, app, f7initEvents, setTheme } from './f7.js';
|
|
|
4
4
|
const Framework7Svelte = {
|
|
5
5
|
name: 'sveltePlugin',
|
|
6
6
|
installed: false,
|
|
7
|
-
install(params) {
|
|
8
|
-
if (params === void 0) {
|
|
9
|
-
params = {};
|
|
10
|
-
}
|
|
7
|
+
install(params = {}) {
|
|
11
8
|
const Framework7 = this;
|
|
12
9
|
app.Framework7 = Framework7;
|
|
13
10
|
if (Framework7Svelte.installed) return;
|
package/shared/rest-props.js
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
const ignoreProps = ['color', 'colorTheme', 'textColor', 'bgColor', 'borderColor', 'rippleColor', 'dark', 'force', 'reloadCurrent', 'reloadPrevious', 'reloadAll', 'reloadDetail', 'animate', 'ignoreCache', 'routeTabId', 'view', 'transition', 'openIn', 'back', 'linkBack', 'external', 'preventRouter', 'searchbarEnable', 'searchbarDisable', 'searchbarClear', 'searchbarToggle', 'panelOpen', 'panelClose', 'panelToggle', 'popupOpen', 'popupClose', 'actionsOpen', 'actionsClose', 'popoverOpen', 'popoverClose', 'loginScreenOpen', 'loginScreenClose', 'sheetOpen', 'sheetClose', 'sortableEnable', 'sortableDisable', 'sortableToggle', 'cardOpen', 'cardClose'];
|
|
2
|
-
export function restProps(rest) {
|
|
3
|
-
if (rest === void 0) {
|
|
4
|
-
rest = {};
|
|
5
|
-
}
|
|
2
|
+
export function restProps(rest = {}) {
|
|
6
3
|
const props = {};
|
|
7
4
|
Object.keys(rest).filter(prop => !ignoreProps.includes(prop)).forEach(key => {
|
|
8
5
|
if (key.indexOf('on') !== 0) {
|
package/shared/use-icon.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
export const useIcon =
|
|
2
|
-
if (props === void 0) {
|
|
3
|
-
props = {};
|
|
4
|
-
}
|
|
1
|
+
export const useIcon = (restProps = {}) => {
|
|
5
2
|
const {
|
|
6
3
|
icon,
|
|
7
4
|
iconMaterial,
|
|
@@ -13,7 +10,7 @@ export const useIcon = function (props) {
|
|
|
13
10
|
iconBadge,
|
|
14
11
|
badgeColor,
|
|
15
12
|
iconBadgeColor
|
|
16
|
-
} =
|
|
13
|
+
} = restProps;
|
|
17
14
|
if (icon || iconMaterial || iconF7 || iconMd || iconIos) {
|
|
18
15
|
return {
|
|
19
16
|
props: {
|
package/shared/use-store.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
// eslint-disable-next-line
|
|
2
2
|
import { onDestroy } from 'svelte';
|
|
3
3
|
import { f7 } from './f7.js';
|
|
4
|
-
export const useStore =
|
|
4
|
+
export const useStore = (...args) => {
|
|
5
5
|
// (store, getter, callback)
|
|
6
|
-
let store =
|
|
7
|
-
let getter =
|
|
8
|
-
let callback =
|
|
9
|
-
if (
|
|
6
|
+
let store = args[0];
|
|
7
|
+
let getter = args[1];
|
|
8
|
+
let callback = args[2];
|
|
9
|
+
if (args.length === 1) {
|
|
10
10
|
// (getter)
|
|
11
11
|
store = f7.store;
|
|
12
|
-
getter =
|
|
13
|
-
} else if (
|
|
12
|
+
getter = args[0];
|
|
13
|
+
} else if (args.length === 2 && typeof args[0] === 'string') {
|
|
14
14
|
// (getter, callback)
|
|
15
15
|
store = f7.store;
|
|
16
|
-
getter =
|
|
17
|
-
callback =
|
|
16
|
+
getter = args[0];
|
|
17
|
+
callback = args[1];
|
|
18
18
|
}
|
|
19
19
|
// eslint-disable-next-line
|
|
20
20
|
const obj = store._gettersPlain[getter];
|
package/shared/use-tab.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
// eslint-disable-next-line
|
|
2
2
|
import { onMount, onDestroy } from 'svelte';
|
|
3
3
|
import { f7, f7ready } from './f7.js';
|
|
4
|
-
export const useTab = (getEl,
|
|
4
|
+
export const useTab = (getEl, restProps = {}) => {
|
|
5
5
|
const onTabShow = el => {
|
|
6
6
|
if (getEl() !== el) return;
|
|
7
|
-
|
|
7
|
+
restProps.onTabShow?.(el);
|
|
8
8
|
};
|
|
9
9
|
const onTabHide = el => {
|
|
10
10
|
if (getEl() !== el) return;
|
|
11
|
-
|
|
11
|
+
restProps.onTabHide?.(el);
|
|
12
12
|
};
|
|
13
13
|
const attachEvents = () => {
|
|
14
14
|
if (!getEl()) return;
|
package/shared/use-tooltip.js
CHANGED
|
@@ -15,10 +15,9 @@ export const useTooltip = (el, props) => {
|
|
|
15
15
|
});
|
|
16
16
|
}
|
|
17
17
|
return {
|
|
18
|
-
update(
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
} = _temp === void 0 ? {} : _temp;
|
|
18
|
+
update({
|
|
19
|
+
tooltip: value
|
|
20
|
+
} = {}) {
|
|
22
21
|
if (!value && f7Tooltip) {
|
|
23
22
|
f7Tooltip.destroy();
|
|
24
23
|
f7Tooltip = null;
|
package/shared/utils.js
CHANGED
|
@@ -14,13 +14,10 @@ export function isObject(o) {
|
|
|
14
14
|
export function now() {
|
|
15
15
|
return Date.now();
|
|
16
16
|
}
|
|
17
|
-
export function extend() {
|
|
17
|
+
export function extend(...args) {
|
|
18
18
|
let deep = true;
|
|
19
19
|
let to;
|
|
20
20
|
let from;
|
|
21
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
22
|
-
args[_key] = arguments[_key];
|
|
23
|
-
}
|
|
24
21
|
if (typeof args[0] === 'boolean') {
|
|
25
22
|
[deep, to] = args;
|
|
26
23
|
args.splice(0, 2);
|
|
@@ -54,11 +51,8 @@ export function extend() {
|
|
|
54
51
|
}
|
|
55
52
|
return to;
|
|
56
53
|
}
|
|
57
|
-
export function classNames() {
|
|
54
|
+
export function classNames(...args) {
|
|
58
55
|
const classes = [];
|
|
59
|
-
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
60
|
-
args[_key2] = arguments[_key2];
|
|
61
|
-
}
|
|
62
56
|
args.forEach(arg => {
|
|
63
57
|
if (typeof arg === 'object' && arg.constructor === Object) {
|
|
64
58
|
Object.keys(arg).forEach(key => {
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
// eslint-disable-next-line
|
|
2
|
-
import { getContext, onDestroy } from 'svelte';
|
|
3
|
-
export const getReactiveContext = (name, setValue) => {
|
|
4
|
-
const ctx = getContext(name);
|
|
5
|
-
if (!ctx) return undefined;
|
|
6
|
-
const {
|
|
7
|
-
value,
|
|
8
|
-
subscribe,
|
|
9
|
-
unsubscribe
|
|
10
|
-
} = ctx;
|
|
11
|
-
subscribe(setValue);
|
|
12
|
-
onDestroy(() => {
|
|
13
|
-
unsubscribe(setValue);
|
|
14
|
-
});
|
|
15
|
-
return value;
|
|
16
|
-
};
|