@xenknight/framework7-vue 0.0.6 → 0.0.8

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.
@@ -0,0 +1,20 @@
1
+
2
+ import { ComponentOptionsMixin, DefineComponent, PropType } from 'vue';
3
+
4
+
5
+ declare const NavbarNew: DefineComponent<
6
+ {
7
+
8
+ },
9
+ () => JSX.Element,
10
+ unknown,
11
+ {},
12
+ {},
13
+ ComponentOptionsMixin,
14
+ ComponentOptionsMixin,
15
+ ("navbar-new:hide" | "navbar-new:show" | "navbar-new:expand" | "navbar-new:collapse" | "navbar-new:transparentshow" | "navbar-new:transparenthide" | "click:back" | "back:click")[],
16
+ "navbar-new:hide" | "navbar-new:show" | "navbar-new:expand" | "navbar-new:collapse" | "navbar-new:transparentshow" | "navbar-new:transparenthide" | "click:back" | "back:click"
17
+ >;
18
+
19
+ export default NavbarNew;
20
+
@@ -0,0 +1,248 @@
1
+ import { createElementVNode as _createElementVNode, renderSlot as _renderSlot, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementBlock as _createElementBlock, normalizeClass as _normalizeClass } from "vue";
2
+ const _hoisted_1 = /*#__PURE__*/_createElementVNode("div", {
3
+ class: "navbar-new-bg"
4
+ }, null, -1);
5
+ const _hoisted_2 = {
6
+ key: 3,
7
+ className: "title-large"
8
+ };
9
+ const _hoisted_3 = {
10
+ className: "title-large-text"
11
+ };
12
+ function render(_ctx, _cache) {
13
+ const _component_f7_nav_left = _resolveComponent("f7-nav-left");
14
+ const _component_f7_nav_title = _resolveComponent("f7-nav-title");
15
+ const _component_f7_nav_right = _resolveComponent("f7-nav-right");
16
+ return _openBlock(), _createElementBlock("div", {
17
+ ref: "elRef",
18
+ class: _normalizeClass(_ctx.classes)
19
+ }, [_hoisted_1, _renderSlot(_ctx.$slots, "before-inner"), _createElementVNode("div", {
20
+ class: _normalizeClass(_ctx.innerClasses)
21
+ }, [_ctx.hasLeft ? (_openBlock(), _createBlock(_component_f7_nav_left, {
22
+ key: 0,
23
+ "back-link": _ctx.backLink,
24
+ "back-link-url": _ctx.backLinkUrl,
25
+ "back-link-force": _ctx.backLinkForce,
26
+ "back-link-show-text": _ctx.backLinkShowText,
27
+ "onBack:click": _ctx.onBackClick
28
+ }, {
29
+ default: _withCtx(() => [_renderSlot(_ctx.$slots, "nav-left"), _renderSlot(_ctx.$slots, "left")]),
30
+ _: 3
31
+ }, 8, ["back-link", "back-link-url", "back-link-force", "back-link-show-text", "onBack:click"])) : _createCommentVNode("", true), _ctx.hasTitle ? (_openBlock(), _createBlock(_component_f7_nav_title, {
32
+ key: 1,
33
+ title: _ctx.title,
34
+ subtitle: _ctx.subtitle
35
+ }, {
36
+ default: _withCtx(() => [_renderSlot(_ctx.$slots, "title")]),
37
+ _: 3
38
+ }, 8, ["title", "subtitle"])) : _createCommentVNode("", true), _ctx.hasRight ? (_openBlock(), _createBlock(_component_f7_nav_right, {
39
+ key: 2
40
+ }, {
41
+ default: _withCtx(() => [_renderSlot(_ctx.$slots, "nav-right"), _renderSlot(_ctx.$slots, "right")]),
42
+ _: 3
43
+ })) : _createCommentVNode("", true), _ctx.hasLargeTitle ? (_openBlock(), _createElementBlock("div", _hoisted_2, [_createElementVNode("div", _hoisted_3, [_createTextVNode(_toDisplayString(_ctx.largeTitle) + " ", 1), _renderSlot(_ctx.$slots, "title-large")])])) : _createCommentVNode("", true), _renderSlot(_ctx.$slots, "default")], 2), _renderSlot(_ctx.$slots, "after-inner")], 2);
44
+ }
45
+ import { computed, ref, onMounted, onBeforeUnmount } from 'vue';
46
+ import { classNames } from '../shared/utils.js';
47
+ import { colorClasses, colorProps } from '../shared/mixins.js';
48
+ import { f7ready, f7 } from '../shared/f7.js';
49
+ import { useTheme } from '../shared/use-theme.js';
50
+ import f7NavLeft from './nav-left.js';
51
+ import f7NavTitle from './nav-title.js';
52
+ import f7NavRight from './nav-right.js';
53
+ export default {
54
+ name: 'f7-navbar-new',
55
+ render,
56
+ components: {
57
+ f7NavLeft,
58
+ f7NavTitle,
59
+ f7NavRight
60
+ },
61
+ props: {
62
+ backLink: [Boolean, String],
63
+ backLinkUrl: String,
64
+ backLinkForce: Boolean,
65
+ backLinkShowText: {
66
+ type: Boolean,
67
+ default: undefined
68
+ },
69
+ sliding: {
70
+ type: Boolean,
71
+ default: true
72
+ },
73
+ title: String,
74
+ subtitle: String,
75
+ hidden: Boolean,
76
+ outline: {
77
+ type: Boolean,
78
+ default: true
79
+ },
80
+ innerClass: String,
81
+ innerClassName: String,
82
+ large: Boolean,
83
+ largeTransparent: Boolean,
84
+ transparent: Boolean,
85
+ titleLarge: String,
86
+ ...colorProps
87
+ },
88
+ emits: ['navbar-new:hide', 'navbar-new:show', 'navbar-new:expand', 'navbar-new:collapse', 'navbar-new:transparentshow', 'navbar-new:transparenthide', 'click:back', 'back:click'],
89
+ setup(props, _ref) {
90
+ let {
91
+ emit,
92
+ slots
93
+ } = _ref;
94
+ let routerPositionClass = '';
95
+ let largeCollapsed = false;
96
+ let routerNavbarRole = null;
97
+ let routerNavbarRoleDetailRoot = false;
98
+ let routerNavbarMasterStack = false;
99
+ let transparentVisible = false;
100
+ const elRef = ref(null);
101
+ const theme = useTheme();
102
+ const onHide = navbarEl => {
103
+ if (elRef.value !== navbarEl) return;
104
+ emit('navbar-new:hide');
105
+ };
106
+ const onShow = navbarEl => {
107
+ if (elRef.value !== navbarEl) return;
108
+ emit('navbar-new:show');
109
+ };
110
+ const onExpand = navbarEl => {
111
+ if (elRef.value !== navbarEl) return;
112
+ largeCollapsed = false;
113
+ emit('navbar-new:expand');
114
+ };
115
+ const onCollapse = navbarEl => {
116
+ if (elRef.value !== navbarEl) return;
117
+ largeCollapsed = true;
118
+ emit('navbar-new:collapse');
119
+ };
120
+ const onNavbarTransparentShow = navbarEl => {
121
+ if (elRef.value !== navbarEl) return;
122
+ transparentVisible = true;
123
+ emit('navbar-new:transparentshow');
124
+ };
125
+ const onNavbarTransparentHide = navbarEl => {
126
+ if (elRef.value !== navbarEl) return;
127
+ transparentVisible = false;
128
+ emit('navbar-new:transparenthide');
129
+ };
130
+ const onNavbarPosition = (navbarEl, position) => {
131
+ if (elRef.value !== navbarEl) return;
132
+ routerPositionClass = position ? `navbar-${position}` : '';
133
+ };
134
+ const onNavbarRole = (navbarEl, rolesData) => {
135
+ if (elRef.value !== navbarEl) return;
136
+ routerNavbarRole = rolesData.role;
137
+ routerNavbarRoleDetailRoot = rolesData.detailRoot;
138
+ };
139
+ const onNavbarMasterStack = navbarEl => {
140
+ if (elRef.value !== navbarEl) return;
141
+ routerNavbarMasterStack = true;
142
+ };
143
+ const onNavbarMasterUnstack = navbarEl => {
144
+ if (elRef.value !== navbarEl) return;
145
+ routerNavbarMasterStack = false;
146
+ };
147
+ const hide = animate => {
148
+ if (!f7) return;
149
+ f7.navbarNew.hide(elRef.value, animate);
150
+ };
151
+ const show = animate => {
152
+ if (!f7) return;
153
+ f7.navbarNew.show(elRef.value, animate);
154
+ };
155
+ const size = () => {
156
+ if (!f7) return;
157
+ f7.navbarNew.size(elRef.value);
158
+ };
159
+ const onBackClick = event => {
160
+ emit('back:click', event);
161
+ emit('click:back', event);
162
+ };
163
+ onMounted(() => {
164
+ if (!elRef.value) return;
165
+ f7ready(() => {
166
+ f7.navbarNew.size(elRef.value);
167
+ f7.on('navbarNewShow', onShow);
168
+ f7.on('navbarNewHide', onHide);
169
+ f7.on('navbarNewCollapse', onCollapse);
170
+ f7.on('navbarNewExpand', onExpand);
171
+ f7.on('navbarPosition', onNavbarPosition);
172
+ f7.on('navbarRole', onNavbarRole);
173
+ f7.on('navbarMasterStack', onNavbarMasterStack);
174
+ f7.on('navbarMasterUnstack', onNavbarMasterUnstack);
175
+ f7.on('navbarNewTransparentShow', onNavbarTransparentShow);
176
+ f7.on('navbarNewTransparentHide', onNavbarTransparentHide);
177
+ });
178
+ });
179
+ onBeforeUnmount(() => {
180
+ if (!f7) return;
181
+ f7.off('navbarNewShow', onShow);
182
+ f7.off('navbarNewHide', onHide);
183
+ f7.off('navbarNewCollapse', onCollapse);
184
+ f7.off('navbarNewExpand', onExpand);
185
+ f7.off('navbarPosition', onNavbarPosition);
186
+ f7.off('navbarRole', onNavbarRole);
187
+ f7.off('navbarMasterStack', onNavbarMasterStack);
188
+ f7.off('navbarMasterUnstack', onNavbarMasterUnstack);
189
+ f7.off('navbarNewTransparentShow', onNavbarTransparentShow);
190
+ f7.off('navbarNewTransparentHide', onNavbarTransparentHide);
191
+ });
192
+ const addLeftTitleClass = computed(() => theme.value && theme.value.ios && f7 && !(f7.params.navbarNew && f7.params.navbarNew.iosCenterTitle));
193
+ const addCenterTitleClass = computed(() => theme.value && theme.value.md && f7 && f7.params.navbarNew && f7.params.navbarNew.mdCenterTitle);
194
+ const isLarge = computed(() => props.large || props.largeTransparent);
195
+ const isTransparent = computed(() => props.transparent || isLarge.value && props.largeTransparent);
196
+ const isTransparentVisible = computed(() => isTransparent.value && transparentVisible);
197
+ const classes = computed(() => classNames('navbar-new', routerPositionClass, {
198
+ 'navbar-new-hidden': props.hidden,
199
+ 'navbar-new-large': isLarge.value,
200
+ 'navbar-new-large-collapsed': isLarge.value && largeCollapsed,
201
+ 'navbar-new-transparent': isTransparent.value,
202
+ 'navbar-new-transparent-visible': isTransparentVisible.value,
203
+ 'navbar-master': routerNavbarRole === 'master',
204
+ 'navbar-master-detail': routerNavbarRole === 'detail',
205
+ 'navbar-master-detail-root': routerNavbarRoleDetailRoot === true,
206
+ 'navbar-master-stacked': routerNavbarMasterStack === true,
207
+ 'no-outline': !props.outline
208
+ }, colorClasses(props)));
209
+ const largeTitle = computed(() => {
210
+ let largeTitleText = props.titleLarge;
211
+ if (!largeTitleText && props.large && props.title) largeTitleText = props.title;
212
+ return largeTitleText;
213
+ });
214
+ const hasLeft = computed(() => {
215
+ return props.backLink || slots['nav-left'] || slots.left;
216
+ });
217
+ const hasTitle = computed(() => {
218
+ return props.title || props.subtitle || slots.title;
219
+ });
220
+ const hasRight = computed(() => {
221
+ return slots['nav-right'] || slots.right;
222
+ });
223
+ const hasLargeTitle = computed(() => {
224
+ return largeTitle.value || slots['title-large'];
225
+ });
226
+ const innerClasses = computed(() => {
227
+ return classNames('navbar-new-inner', props.innerClass, props.innerClassName, {
228
+ sliding: props.sliding,
229
+ 'navbar-new-inner-left-title': addLeftTitleClass.value,
230
+ 'navbar-new-inner-centered-title': addCenterTitleClass.value
231
+ });
232
+ });
233
+ return {
234
+ elRef,
235
+ classes,
236
+ innerClasses,
237
+ hide,
238
+ show,
239
+ size,
240
+ largeTitle,
241
+ hasLeft,
242
+ hasTitle,
243
+ hasRight,
244
+ hasLargeTitle,
245
+ onBackClick
246
+ };
247
+ }
248
+ };
@@ -78,7 +78,7 @@ export default {
78
78
  const onPageInit = page => {
79
79
  if (elRef.value !== page.el) return;
80
80
  if (typeof props.withSubnavbar === 'undefined' && typeof props.subnavbar === 'undefined') {
81
- if (page.$navbarEl && page.$navbarEl.length && page.$navbarEl.find('.subnavbar').length || page.$el.children('.navbar').find('.subnavbar').length) {
81
+ if (page.$navbarEl && page.$navbarEl.length && page.$navbarEl.find('.subnavbar').length || page.$navbarNewEl && page.$navbarNewEl.length && page.$navbarNewEl.find('.subnavbar').length || page.$el.children('.navbar').find('.subnavbar').length || page.$el.children('.navbar-new').find('.subnavbar').length) {
82
82
  hasSubnavbar = true;
83
83
  }
84
84
  }
@@ -86,6 +86,9 @@ export default {
86
86
  if (page.$navbarEl && page.$navbarEl.hasClass('navbar-large')) {
87
87
  hasNavbarLarge = true;
88
88
  }
89
+ if (page.$navbarNewEl && page.$navbarNewEl.hasClass('navbar-new-large')) {
90
+ hasNavbarLarge = true;
91
+ }
89
92
  }
90
93
  emit('page:init', page);
91
94
  };
@@ -157,6 +160,20 @@ export default {
157
160
  if (elRef.value !== pageEl) return;
158
161
  hasNavbarLargeCollapsed = false;
159
162
  };
163
+ const onNavbarNewCollapse = navbarEl => {
164
+ if (!elRef.value || !navbarEl) return;
165
+ const pageEl = navbarEl.closest('.page');
166
+ if (pageEl === elRef.value) {
167
+ hasNavbarLargeCollapsed = true;
168
+ }
169
+ };
170
+ const onNavbarNewExpand = navbarEl => {
171
+ if (!elRef.value || !navbarEl) return;
172
+ const pageEl = navbarEl.closest('.page');
173
+ if (pageEl === elRef.value) {
174
+ hasNavbarLargeCollapsed = false;
175
+ }
176
+ };
160
177
  const onCardOpened = (cardEl, pageEl) => {
161
178
  if (elRef.value !== pageEl) return;
162
179
  hasCardExpandableOpened = true;
@@ -208,6 +225,8 @@ export default {
208
225
  f7.on('pageMasterUnstack', onPageMasterUnstack);
209
226
  f7.on('pageNavbarLargeCollapsed', onPageNavbarLargeCollapsed);
210
227
  f7.on('pageNavbarLargeExpanded', onPageNavbarLargeExpanded);
228
+ f7.on('navbarNewCollapse', onNavbarNewCollapse);
229
+ f7.on('navbarNewExpand', onNavbarNewExpand);
211
230
  f7.on('cardOpened', onCardOpened);
212
231
  f7.on('cardClose', onCardClose);
213
232
  f7.on('pageTabShow', onPageTabShow);
@@ -231,6 +250,8 @@ export default {
231
250
  f7.off('pageMasterUnstack', onPageMasterUnstack);
232
251
  f7.off('pageNavbarLargeCollapsed', onPageNavbarLargeCollapsed);
233
252
  f7.off('pageNavbarLargeExpanded', onPageNavbarLargeExpanded);
253
+ f7.off('navbarNewCollapse', onNavbarNewCollapse);
254
+ f7.off('navbarNewExpand', onNavbarNewExpand);
234
255
  f7.off('cardOpened', onCardOpened);
235
256
  f7.off('cardClose', onCardClose);
236
257
  f7.off('pageTabShow', onPageTabShow);
@@ -251,7 +272,7 @@ export default {
251
272
  'page-with-card-opened': hasCardExpandableOpened === true,
252
273
  'login-screen-page': props.loginScreen
253
274
  }, colorClasses(props)));
254
- const fixedTags = 'navbar toolbar tabbar subnavbar searchbar messagebar fab list-index panel'.split(' ').map(tagName => `f7-${tagName}`);
275
+ const fixedTags = 'navbar navbar-new toolbar tabbar subnavbar searchbar messagebar fab list-index panel'.split(' ').map(tagName => `f7-${tagName}`);
255
276
  return () => {
256
277
  const fixedList = [];
257
278
  const staticList = [];
@@ -277,6 +298,9 @@ export default {
277
298
  if (tag === 'f7-navbar') {
278
299
  if (vnode.props && (vnode.props.large || vnode.props.large === '')) hasNavbarLargeComputed = true;
279
300
  }
301
+ if (tag === 'f7-navbar-new') {
302
+ if (vnode.props && (vnode.props.large || vnode.props.largeTransparent || vnode.props.large === '')) hasNavbarLargeComputed = true;
303
+ }
280
304
  if (typeof hasMessages === 'undefined' && tag === 'f7-messages') hasMessages = true;
281
305
  if (fixedTags.indexOf(tag) >= 0) {
282
306
  isFixedTag = true;
@@ -290,7 +314,7 @@ export default {
290
314
  if ((hasSubnavbarComputed || hasSubnavbar) && typeof props.subnavbar === 'undefined' && typeof props.withSubnavbar === 'undefined' && classesValue.indexOf('page-with-subnavbar') < 0) {
291
315
  classesValue += ' page-with-subnavbar';
292
316
  }
293
- if ((hasNavbarLargeComputed || hasNavbarLarge) && typeof props.navbarLarge === 'undefined' && typeof props.withNavbarLarge === 'undefined' && classesValue.indexOf('page-with-navbar-large') < 0) {
317
+ if ((hasNavbarLargeComputed || hasNavbarLarge) && typeof props.navbarLarge === 'undefined' && typeof props.withNavbarLarge === 'undefined' && classesValue.indexOf('page-with-navbar-large') < 0 && classesValue.indexOf('page-with-navbar-new-large') < 0) {
294
318
  classesValue += ' page-with-navbar-large';
295
319
  }
296
320
  if (!props.pageContent) {
@@ -0,0 +1,20 @@
1
+
2
+ import { ComponentOptionsMixin, DefineComponent, PropType } from 'vue';
3
+
4
+
5
+ declare const SearchbarNew: DefineComponent<
6
+ {
7
+
8
+ },
9
+ () => JSX.Element,
10
+ unknown,
11
+ {},
12
+ {},
13
+ ComponentOptionsMixin,
14
+ ComponentOptionsMixin,
15
+ ("change" | "input" | "focus" | "blur" | "submit" | "click:clear" | "click:disable" | "searchbar-new:search" | "searchbar-new:clear" | "searchbar-new:enable" | "searchbar-new:disable" | "update:value")[],
16
+ "change" | "input" | "focus" | "blur" | "submit" | "click:clear" | "click:disable" | "searchbar-new:search" | "searchbar-new:clear" | "searchbar-new:enable" | "searchbar-new:disable" | "update:value"
17
+ >;
18
+
19
+ export default SearchbarNew;
20
+
@@ -0,0 +1,291 @@
1
+ import { renderSlot as _renderSlot, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, resolveDynamicComponent as _resolveDynamicComponent, normalizeClass as _normalizeClass, withCtx as _withCtx, createBlock as _createBlock } from "vue";
2
+ const _hoisted_1 = {
3
+ class: "searchbar-new-inner"
4
+ };
5
+ const _hoisted_2 = {
6
+ class: "searchbar-new-input-wrap"
7
+ };
8
+ const _hoisted_3 = ["value", "placeholder", "spellcheck"];
9
+ const _hoisted_4 = /*#__PURE__*/_createElementVNode("i", {
10
+ class: "searchbar-new-icon"
11
+ }, null, -1);
12
+ const _hoisted_5 = /*#__PURE__*/_createElementVNode("i", {
13
+ class: "icon icon-close"
14
+ }, null, -1);
15
+ const _hoisted_6 = {
16
+ key: 0
17
+ };
18
+ function render(_ctx, _cache) {
19
+ return _openBlock(), _createBlock(_resolveDynamicComponent(_ctx.tag), {
20
+ ref: "elRef",
21
+ class: _normalizeClass(_ctx.classes),
22
+ onSubmit: _ctx.onSubmit
23
+ }, {
24
+ default: _withCtx(() => [_renderSlot(_ctx.$slots, "before-inner"), _createElementVNode("div", _hoisted_1, [_renderSlot(_ctx.$slots, "inner-start"), _createElementVNode("div", _hoisted_2, [_renderSlot(_ctx.$slots, "input-wrap-start"), _createElementVNode("input", {
25
+ value: _ctx.value,
26
+ placeholder: _ctx.placeholder,
27
+ spellcheck: _ctx.spellcheck,
28
+ type: "search",
29
+ onInput: _cache[0] || (_cache[0] = function () {
30
+ return _ctx.onInput && _ctx.onInput(...arguments);
31
+ }),
32
+ onChange: _cache[1] || (_cache[1] = function () {
33
+ return _ctx.onChange && _ctx.onChange(...arguments);
34
+ }),
35
+ onFocus: _cache[2] || (_cache[2] = function () {
36
+ return _ctx.onFocus && _ctx.onFocus(...arguments);
37
+ }),
38
+ onBlur: _cache[3] || (_cache[3] = function () {
39
+ return _ctx.onBlur && _ctx.onBlur(...arguments);
40
+ })
41
+ }, null, 40, _hoisted_3), _hoisted_4, _ctx.clearButton ? (_openBlock(), _createElementBlock("span", {
42
+ key: 0,
43
+ class: "input-clear-button",
44
+ onClick: _cache[4] || (_cache[4] = function () {
45
+ return _ctx.onClearButtonClick && _ctx.onClearButtonClick(...arguments);
46
+ })
47
+ })) : _createCommentVNode("", true), _renderSlot(_ctx.$slots, "input-wrap-end")]), _ctx.disableButton ? (_openBlock(), _createElementBlock("span", {
48
+ key: 0,
49
+ class: "searchbar-new-disable-button",
50
+ onClick: _cache[5] || (_cache[5] = function () {
51
+ return _ctx.onDisableButtonClick && _ctx.onDisableButtonClick(...arguments);
52
+ })
53
+ }, [_hoisted_5, _ctx.disableButtonText ? (_openBlock(), _createElementBlock("span", _hoisted_6, _toDisplayString(_ctx.disableButtonText), 1)) : _createCommentVNode("", true)])) : _createCommentVNode("", true), _renderSlot(_ctx.$slots, "inner-end"), _renderSlot(_ctx.$slots, "default")]), _renderSlot(_ctx.$slots, "after-inner")]),
54
+ _: 3
55
+ }, 40, ["class", "onSubmit"]);
56
+ }
57
+ import { computed, ref, onMounted, onBeforeUnmount } from 'vue';
58
+ import { classNames, noUndefinedProps } from '../shared/utils.js';
59
+ import { colorClasses, colorProps } from '../shared/mixins.js';
60
+ import { f7ready, f7 } from '../shared/f7.js';
61
+ export default {
62
+ name: 'f7-searchbar-new',
63
+ render,
64
+ props: {
65
+ outline: {
66
+ type: Boolean,
67
+ default: true
68
+ },
69
+ form: {
70
+ type: Boolean,
71
+ default: true
72
+ },
73
+ placeholder: {
74
+ type: String,
75
+ default: 'Search'
76
+ },
77
+ spellcheck: {
78
+ type: Boolean,
79
+ default: undefined
80
+ },
81
+ disableButton: {
82
+ type: Boolean,
83
+ default: true
84
+ },
85
+ disableButtonText: {
86
+ type: String,
87
+ default: 'Cancel'
88
+ },
89
+ clearButton: {
90
+ type: Boolean,
91
+ default: true
92
+ },
93
+ // Input Value
94
+ value: [String, Number, Array],
95
+ // SB Params
96
+ inputEvents: {
97
+ type: String,
98
+ default: 'change input compositionend'
99
+ },
100
+ expandable: Boolean,
101
+ inline: Boolean,
102
+ searchContainer: [String, Object],
103
+ searchIn: {
104
+ type: String,
105
+ default: '.item-title'
106
+ },
107
+ searchItem: {
108
+ type: String,
109
+ default: 'li'
110
+ },
111
+ searchGroup: {
112
+ type: String,
113
+ default: '.list-group'
114
+ },
115
+ searchGroupTitle: {
116
+ type: String,
117
+ default: '.list-group-title'
118
+ },
119
+ foundEl: {
120
+ type: [String, Object],
121
+ default: '.searchbar-new-found'
122
+ },
123
+ notFoundEl: {
124
+ type: [String, Object],
125
+ default: '.searchbar-new-not-found'
126
+ },
127
+ backdrop: {
128
+ type: Boolean,
129
+ default: undefined
130
+ },
131
+ backdropEl: [String, Object],
132
+ hideOnEnableEl: {
133
+ type: [String, Object],
134
+ default: '.searchbar-new-hide-on-enable'
135
+ },
136
+ hideOnSearchEl: {
137
+ type: [String, Object],
138
+ default: '.searchbar-new-hide-on-search'
139
+ },
140
+ ignore: {
141
+ type: String,
142
+ default: '.searchbar-new-ignore'
143
+ },
144
+ customSearch: {
145
+ type: Boolean,
146
+ default: false
147
+ },
148
+ removeDiacritics: {
149
+ type: Boolean,
150
+ default: false
151
+ },
152
+ hideGroupTitles: {
153
+ type: Boolean,
154
+ default: true
155
+ },
156
+ hideGroups: {
157
+ type: Boolean,
158
+ default: true
159
+ },
160
+ init: {
161
+ type: Boolean,
162
+ default: true
163
+ },
164
+ ...colorProps
165
+ },
166
+ emits: ['change', 'input', 'focus', 'blur', 'submit', 'click:clear', 'click:disable', 'searchbar-new:search', 'searchbar-new:clear', 'searchbar-new:enable', 'searchbar-new:disable', 'update:value'],
167
+ setup(props, _ref) {
168
+ let {
169
+ emit
170
+ } = _ref;
171
+ let f7Searchbar = null;
172
+ const elRef = ref(null);
173
+ const search = query => {
174
+ if (!f7Searchbar) return undefined;
175
+ return f7Searchbar.search(query);
176
+ };
177
+ const enable = () => {
178
+ if (!f7Searchbar) return undefined;
179
+ return f7Searchbar.enable();
180
+ };
181
+ const disable = () => {
182
+ if (!f7Searchbar) return undefined;
183
+ return f7Searchbar.disable();
184
+ };
185
+ const toggle = () => {
186
+ if (!f7Searchbar) return undefined;
187
+ return f7Searchbar.toggle();
188
+ };
189
+ const clear = () => {
190
+ if (!f7Searchbar) return undefined;
191
+ return f7Searchbar.clear();
192
+ };
193
+ const onChange = event => {
194
+ emit('change', event);
195
+ };
196
+ const onInput = event => {
197
+ emit('input', event);
198
+ emit('update:value', event.target.value);
199
+ };
200
+ const onFocus = event => {
201
+ emit('focus', event);
202
+ };
203
+ const onBlur = event => {
204
+ emit('blur', event);
205
+ };
206
+ const onSubmit = event => {
207
+ emit('submit', event);
208
+ };
209
+ const onClearButtonClick = event => {
210
+ emit('click:clear', event);
211
+ };
212
+ const onDisableButtonClick = event => {
213
+ emit('click:disable', event);
214
+ };
215
+ onMounted(() => {
216
+ if (!props.init) return;
217
+ f7ready(() => {
218
+ const params = noUndefinedProps({
219
+ el: elRef.value,
220
+ inputEvents: props.inputEvents,
221
+ searchContainer: props.searchContainer,
222
+ searchIn: props.searchIn,
223
+ searchItem: props.searchItem,
224
+ searchGroup: props.searchGroup,
225
+ searchGroupTitle: props.searchGroupTitle,
226
+ hideOnEnableEl: props.hideOnEnableEl,
227
+ hideOnSearchEl: props.hideOnSearchEl,
228
+ foundEl: props.foundEl,
229
+ notFoundEl: props.notFoundEl,
230
+ backdrop: props.backdrop,
231
+ backdropEl: props.backdropEl,
232
+ disableButton: props.disableButton,
233
+ ignore: props.ignore,
234
+ customSearch: props.customSearch,
235
+ removeDiacritics: props.removeDiacritics,
236
+ hideGroupTitles: props.hideGroupTitles,
237
+ hideGroups: props.hideGroups,
238
+ expandable: props.expandable,
239
+ inline: props.inline,
240
+ on: {
241
+ search(searchbar, query, previousQuery) {
242
+ emit('searchbar-new:search', searchbar, query, previousQuery);
243
+ },
244
+ clear(searchbar, previousQuery) {
245
+ emit('searchbar-new:clear', searchbar, previousQuery);
246
+ },
247
+ enable(searchbar) {
248
+ emit('searchbar-new:enable', searchbar);
249
+ },
250
+ disable(searchbar) {
251
+ emit('searchbar-new:disable', searchbar);
252
+ }
253
+ }
254
+ });
255
+ Object.keys(params).forEach(key => {
256
+ if (params[key] === '') {
257
+ delete params[key];
258
+ }
259
+ });
260
+ f7Searchbar = f7.searchbarNew.create(params);
261
+ });
262
+ });
263
+ onBeforeUnmount(() => {
264
+ if (f7Searchbar && f7Searchbar.destroy) f7Searchbar.destroy();
265
+ f7Searchbar = null;
266
+ });
267
+ const classes = computed(() => classNames('searchbar-new', {
268
+ 'searchbar-new-inline': props.inline,
269
+ 'no-outline': !props.outline,
270
+ 'searchbar-new-expandable': props.expandable
271
+ }, colorClasses(props)));
272
+ const tag = computed(() => props.form ? 'form' : 'div');
273
+ return {
274
+ elRef,
275
+ tag,
276
+ classes,
277
+ search,
278
+ enable,
279
+ disable,
280
+ toggle,
281
+ clear,
282
+ onChange,
283
+ onInput,
284
+ onFocus,
285
+ onBlur,
286
+ onSubmit,
287
+ onClearButtonClick,
288
+ onDisableButtonClick
289
+ };
290
+ }
291
+ };
@@ -0,0 +1,20 @@
1
+
2
+ import { ComponentOptionsMixin, DefineComponent, PropType } from 'vue';
3
+
4
+
5
+ declare const ToolbarNew: DefineComponent<
6
+ {
7
+
8
+ },
9
+ () => JSX.Element,
10
+ unknown,
11
+ {},
12
+ {},
13
+ ComponentOptionsMixin,
14
+ ComponentOptionsMixin,
15
+ ("toolbar-new:hide" | "toolbar-new:show")[],
16
+ "toolbar-new:hide" | "toolbar-new:show"
17
+ >;
18
+
19
+ export default ToolbarNew;
20
+
@@ -0,0 +1,135 @@
1
+ import { renderSlot as _renderSlot, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass } from "vue";
2
+ const _hoisted_1 = {
3
+ key: 0,
4
+ className: "toolbar-new-inner"
5
+ };
6
+ function render(_ctx, _cache) {
7
+ return _openBlock(), _createElementBlock("div", {
8
+ ref: "elRef",
9
+ class: _normalizeClass(_ctx.classes)
10
+ }, [_renderSlot(_ctx.$slots, "before-inner"), _ctx.inner ? (_openBlock(), _createElementBlock("div", _hoisted_1, [_renderSlot(_ctx.$slots, "default")])) : _renderSlot(_ctx.$slots, "default", {
11
+ key: 1
12
+ }), _renderSlot(_ctx.$slots, "after-inner")], 2);
13
+ }
14
+ import { computed, ref, provide, onMounted, onBeforeUnmount } from 'vue';
15
+ import { classNames } from '../shared/utils.js';
16
+ import { colorClasses, colorProps } from '../shared/mixins.js';
17
+ import { f7 } from '../shared/f7.js';
18
+ import { useTheme } from '../shared/use-theme.js';
19
+ export default {
20
+ name: 'f7-toolbar-new',
21
+ render,
22
+ props: {
23
+ tabbar: Boolean,
24
+ icons: Boolean,
25
+ scrollable: Boolean,
26
+ hidden: Boolean,
27
+ outline: {
28
+ type: Boolean,
29
+ default: true
30
+ },
31
+ position: {
32
+ type: String,
33
+ default: undefined
34
+ },
35
+ topMd: {
36
+ type: Boolean,
37
+ default: undefined
38
+ },
39
+ topIos: {
40
+ type: Boolean,
41
+ default: undefined
42
+ },
43
+ top: {
44
+ type: Boolean,
45
+ default: undefined
46
+ },
47
+ bottomMd: {
48
+ type: Boolean,
49
+ default: undefined
50
+ },
51
+ bottomIos: {
52
+ type: Boolean,
53
+ default: undefined
54
+ },
55
+ bottom: {
56
+ type: Boolean,
57
+ default: undefined
58
+ },
59
+ inner: {
60
+ type: Boolean,
61
+ default: true
62
+ },
63
+ ...colorProps
64
+ },
65
+ emits: ['toolbar-new:hide', 'toolbar-new:show'],
66
+ setup(props, _ref) {
67
+ let {
68
+ emit
69
+ } = _ref;
70
+ const elRef = ref(null);
71
+ const theme = useTheme();
72
+ const onHide = toolbarEl => {
73
+ if (elRef.value !== toolbarEl) return;
74
+ emit('toolbar-new:hide');
75
+ };
76
+ const onShow = toolbarEl => {
77
+ if (elRef.value !== toolbarEl) return;
78
+ emit('toolbar-new:show');
79
+ };
80
+ const hide = animate => {
81
+ if (!f7) return;
82
+ f7.toolbarNew.hide(elRef.value, animate);
83
+ };
84
+ const show = animate => {
85
+ if (!f7) return;
86
+ f7.toolbarNew.show(elRef.value, animate);
87
+ };
88
+ onMounted(() => {
89
+ if (props.tabbar && f7 && elRef.value) {
90
+ f7.toolbarNew.setHighlight(elRef.value);
91
+ }
92
+ f7.on('toolbarNewShow', onShow);
93
+ f7.on('toolbarNewHide', onHide);
94
+ });
95
+ onBeforeUnmount(() => {
96
+ f7.off('toolbarNewShow', onShow);
97
+ f7.off('toolbarNewHide', onHide);
98
+ });
99
+ const TabbarNewContext = computed(() => ({
100
+ tabbarHasIcons: props.icons
101
+ }));
102
+ provide('TabbarNewContext', TabbarNewContext);
103
+ const classes = computed(() => {
104
+ const {
105
+ tabbar,
106
+ bottomMd,
107
+ bottomIos,
108
+ bottom,
109
+ position,
110
+ topMd,
111
+ topIos,
112
+ top,
113
+ icons,
114
+ scrollable,
115
+ hidden,
116
+ outline
117
+ } = props;
118
+ return classNames('toolbar-new', {
119
+ 'tabbar-new': tabbar,
120
+ 'toolbar-new-bottom': theme.value && theme.value.md && bottomMd || theme.value && theme.value.ios && bottomIos || bottom || position === 'bottom',
121
+ 'toolbar-new-top': theme.value && theme.value.md && topMd || theme.value && theme.value.ios && topIos || top || position === 'top',
122
+ 'tabbar-new-icons': icons,
123
+ 'tabbar-new-scrollable': scrollable,
124
+ 'toolbar-new-hidden': hidden,
125
+ 'no-outline': !outline
126
+ }, colorClasses(props));
127
+ });
128
+ return {
129
+ classes,
130
+ elRef,
131
+ hide,
132
+ show
133
+ };
134
+ }
135
+ };
@@ -0,0 +1,19 @@
1
+
2
+ import { ComponentOptionsMixin, DefineComponent, PropType } from 'vue';
3
+
4
+
5
+ declare const ToolbarPaneNew: DefineComponent<
6
+ {
7
+
8
+ },
9
+ () => JSX.Element,
10
+ unknown,
11
+ {},
12
+ {},
13
+ ComponentOptionsMixin,
14
+ ComponentOptionsMixin,
15
+
16
+ >;
17
+
18
+ export default ToolbarPaneNew;
19
+
@@ -0,0 +1,22 @@
1
+ import { renderSlot as _renderSlot, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock } from "vue";
2
+ function render(_ctx, _cache) {
3
+ return _openBlock(), _createElementBlock("div", {
4
+ ref: "elRef",
5
+ class: _normalizeClass(_ctx.classes)
6
+ }, [_renderSlot(_ctx.$slots, "default")], 2);
7
+ }
8
+ import { computed } from 'vue';
9
+ import { classNames } from '../shared/utils.js';
10
+ export default {
11
+ name: 'f7-toolbar-pane-new',
12
+ render,
13
+ props: {},
14
+ setup() {
15
+ const classes = computed(() => {
16
+ return classNames('toolbar-new-pane');
17
+ });
18
+ return {
19
+ classes
20
+ };
21
+ }
22
+ };
@@ -57,6 +57,7 @@ import f7NavLeft from './components/nav-left.js';
57
57
  import f7NavRight from './components/nav-right.js';
58
58
  import f7NavTitleLarge from './components/nav-title-large.js';
59
59
  import f7NavTitle from './components/nav-title.js';
60
+ import f7NavbarNew from './components/navbar-new.js';
60
61
  import f7Navbar from './components/navbar.js';
61
62
  import f7PageContent from './components/page-content.js';
62
63
  import f7Page from './components/page.js';
@@ -70,6 +71,7 @@ import f7Progressbar from './components/progressbar.js';
70
71
  import f7Radio from './components/radio.js';
71
72
  import f7Range from './components/range.js';
72
73
  import f7RoutableModals from './components/routable-modals.js';
74
+ import f7SearchbarNew from './components/searchbar-new.js';
73
75
  import f7Searchbar from './components/searchbar.js';
74
76
  import f7Segmented from './components/segmented.js';
75
77
  import f7Sheet from './components/sheet.js';
@@ -85,6 +87,8 @@ import f7Tab from './components/tab.js';
85
87
  import f7Tabs from './components/tabs.js';
86
88
  import f7TextEditor from './components/text-editor.js';
87
89
  import f7Toggle from './components/toggle.js';
90
+ import f7ToolbarNew from './components/toolbar-new.js';
91
+ import f7ToolbarPaneNew from './components/toolbar-pane-new.js';
88
92
  import f7Toolbar from './components/toolbar.js';
89
93
  import f7TreeviewItem from './components/treeview-item.js';
90
94
  import f7Treeview from './components/treeview.js';
@@ -92,7 +96,7 @@ import f7UseIcon from './components/use-icon.js';
92
96
  import f7View from './components/view.js';
93
97
  import f7Views from './components/views.js';
94
98
 
95
- export { f7AccordionContent, f7AccordionItem, f7AccordionToggle, f7Accordion, f7ActionsButton, f7ActionsGroup, f7ActionsLabel, f7Actions, f7App, f7AreaChart, f7Badge, f7BlockFooter, f7BlockHeader, f7BlockTitle, f7Block, f7BreadcrumbsCollapsed, f7BreadcrumbsItem, f7BreadcrumbsSeparator, f7Breadcrumbs, f7Button, f7CardContent, f7CardFooter, f7CardHeader, f7Card, f7Checkbox, f7Chip, f7FabBackdrop, f7FabButton, f7FabButtons, f7Fab, f7Gauge, f7Icon, f7Input, f7Link, f7ListButton, f7ListGroup, f7ListIndex, f7ListInput, f7ListItem, f7List, f7LoginScreenTitle, f7LoginScreen, f7Message, f7MessagebarAttachment, f7MessagebarAttachments, f7MessagebarSheetImage, f7MessagebarSheetItem, f7MessagebarSheet, f7Messagebar, f7MessagesTitle, f7Messages, f7NavLeft, f7NavRight, f7NavTitleLarge, f7NavTitle, f7Navbar, f7PageContent, f7Page, f7Panel, f7PhotoBrowser, f7PieChart, f7Popover, f7Popup, f7Preloader, f7Progressbar, f7Radio, f7Range, f7RoutableModals, f7Searchbar, f7Segmented, f7Sheet, f7SkeletonAvatar, f7SkeletonBlock, f7SkeletonImage, f7SkeletonText, f7Stepper, f7Subnavbar, f7SwipeoutActions, f7SwipeoutButton, f7Tab, f7Tabs, f7TextEditor, f7Toggle, f7Toolbar, f7TreeviewItem, f7Treeview, f7UseIcon, f7View, f7Views }
99
+ export { f7AccordionContent, f7AccordionItem, f7AccordionToggle, f7Accordion, f7ActionsButton, f7ActionsGroup, f7ActionsLabel, f7Actions, f7App, f7AreaChart, f7Badge, f7BlockFooter, f7BlockHeader, f7BlockTitle, f7Block, f7BreadcrumbsCollapsed, f7BreadcrumbsItem, f7BreadcrumbsSeparator, f7Breadcrumbs, f7Button, f7CardContent, f7CardFooter, f7CardHeader, f7Card, f7Checkbox, f7Chip, f7FabBackdrop, f7FabButton, f7FabButtons, f7Fab, f7Gauge, f7Icon, f7Input, f7Link, f7ListButton, f7ListGroup, f7ListIndex, f7ListInput, f7ListItem, f7List, f7LoginScreenTitle, f7LoginScreen, f7Message, f7MessagebarAttachment, f7MessagebarAttachments, f7MessagebarSheetImage, f7MessagebarSheetItem, f7MessagebarSheet, f7Messagebar, f7MessagesTitle, f7Messages, f7NavLeft, f7NavRight, f7NavTitleLarge, f7NavTitle, f7NavbarNew, f7Navbar, f7PageContent, f7Page, f7Panel, f7PhotoBrowser, f7PieChart, f7Popover, f7Popup, f7Preloader, f7Progressbar, f7Radio, f7Range, f7RoutableModals, f7SearchbarNew, f7Searchbar, f7Segmented, f7Sheet, f7SkeletonAvatar, f7SkeletonBlock, f7SkeletonImage, f7SkeletonText, f7Stepper, f7Subnavbar, f7SwipeoutActions, f7SwipeoutButton, f7Tab, f7Tabs, f7TextEditor, f7Toggle, f7ToolbarNew, f7ToolbarPaneNew, f7Toolbar, f7TreeviewItem, f7Treeview, f7UseIcon, f7View, f7Views }
96
100
  export { f7, f7ready, theme, useStore, setTheme };
97
101
  export default Framework7Vue;
98
102
 
@@ -152,6 +156,7 @@ function registerComponents(app) {
152
156
  app.component('f7-nav-right', f7NavRight);
153
157
  app.component('f7-nav-title-large', f7NavTitleLarge);
154
158
  app.component('f7-nav-title', f7NavTitle);
159
+ app.component('f7-navbar-new', f7NavbarNew);
155
160
  app.component('f7-navbar', f7Navbar);
156
161
  app.component('f7-page-content', f7PageContent);
157
162
  app.component('f7-page', f7Page);
@@ -165,6 +170,7 @@ function registerComponents(app) {
165
170
  app.component('f7-radio', f7Radio);
166
171
  app.component('f7-range', f7Range);
167
172
  app.component('f7-routable-modals', f7RoutableModals);
173
+ app.component('f7-searchbar-new', f7SearchbarNew);
168
174
  app.component('f7-searchbar', f7Searchbar);
169
175
  app.component('f7-segmented', f7Segmented);
170
176
  app.component('f7-sheet', f7Sheet);
@@ -180,6 +186,8 @@ function registerComponents(app) {
180
186
  app.component('f7-tabs', f7Tabs);
181
187
  app.component('f7-text-editor', f7TextEditor);
182
188
  app.component('f7-toggle', f7Toggle);
189
+ app.component('f7-toolbar-new', f7ToolbarNew);
190
+ app.component('f7-toolbar-pane-new', f7ToolbarPaneNew);
183
191
  app.component('f7-toolbar', f7Toolbar);
184
192
  app.component('f7-treeview-item', f7TreeviewItem);
185
193
  app.component('f7-treeview', f7Treeview);
@@ -56,6 +56,7 @@ import f7NavLeft from './components/nav-left.js';
56
56
  import f7NavRight from './components/nav-right.js';
57
57
  import f7NavTitleLarge from './components/nav-title-large.js';
58
58
  import f7NavTitle from './components/nav-title.js';
59
+ import f7NavbarNew from './components/navbar-new.js';
59
60
  import f7Navbar from './components/navbar.js';
60
61
  import f7PageContent from './components/page-content.js';
61
62
  import f7Page from './components/page.js';
@@ -69,6 +70,7 @@ import f7Progressbar from './components/progressbar.js';
69
70
  import f7Radio from './components/radio.js';
70
71
  import f7Range from './components/range.js';
71
72
  import f7RoutableModals from './components/routable-modals.js';
73
+ import f7SearchbarNew from './components/searchbar-new.js';
72
74
  import f7Searchbar from './components/searchbar.js';
73
75
  import f7Segmented from './components/segmented.js';
74
76
  import f7Sheet from './components/sheet.js';
@@ -84,6 +86,8 @@ import f7Tab from './components/tab.js';
84
86
  import f7Tabs from './components/tabs.js';
85
87
  import f7TextEditor from './components/text-editor.js';
86
88
  import f7Toggle from './components/toggle.js';
89
+ import f7ToolbarNew from './components/toolbar-new.js';
90
+ import f7ToolbarPaneNew from './components/toolbar-pane-new.js';
87
91
  import f7Toolbar from './components/toolbar.js';
88
92
  import f7TreeviewItem from './components/treeview-item.js';
89
93
  import f7Treeview from './components/treeview.js';
@@ -116,6 +120,6 @@ declare const useStore: useStore;
116
120
 
117
121
  declare const setTheme: (theme: string) => void;
118
122
 
119
- export { f7AccordionContent, f7AccordionItem, f7AccordionToggle, f7Accordion, f7ActionsButton, f7ActionsGroup, f7ActionsLabel, f7Actions, f7App, f7AreaChart, f7Badge, f7BlockFooter, f7BlockHeader, f7BlockTitle, f7Block, f7BreadcrumbsCollapsed, f7BreadcrumbsItem, f7BreadcrumbsSeparator, f7Breadcrumbs, f7Button, f7CardContent, f7CardFooter, f7CardHeader, f7Card, f7Checkbox, f7Chip, f7FabBackdrop, f7FabButton, f7FabButtons, f7Fab, f7Gauge, f7Icon, f7Input, f7Link, f7ListButton, f7ListGroup, f7ListIndex, f7ListInput, f7ListItem, f7List, f7LoginScreenTitle, f7LoginScreen, f7Message, f7MessagebarAttachment, f7MessagebarAttachments, f7MessagebarSheetImage, f7MessagebarSheetItem, f7MessagebarSheet, f7Messagebar, f7MessagesTitle, f7Messages, f7NavLeft, f7NavRight, f7NavTitleLarge, f7NavTitle, f7Navbar, f7PageContent, f7Page, f7Panel, f7PhotoBrowser, f7PieChart, f7Popover, f7Popup, f7Preloader, f7Progressbar, f7Radio, f7Range, f7RoutableModals, f7Searchbar, f7Segmented, f7Sheet, f7SkeletonAvatar, f7SkeletonBlock, f7SkeletonImage, f7SkeletonText, f7Stepper, f7Subnavbar, f7SwipeoutActions, f7SwipeoutButton, f7Tab, f7Tabs, f7TextEditor, f7Toggle, f7Toolbar, f7TreeviewItem, f7Treeview, f7UseIcon, f7View, f7Views }
123
+ export { f7AccordionContent, f7AccordionItem, f7AccordionToggle, f7Accordion, f7ActionsButton, f7ActionsGroup, f7ActionsLabel, f7Actions, f7App, f7AreaChart, f7Badge, f7BlockFooter, f7BlockHeader, f7BlockTitle, f7Block, f7BreadcrumbsCollapsed, f7BreadcrumbsItem, f7BreadcrumbsSeparator, f7Breadcrumbs, f7Button, f7CardContent, f7CardFooter, f7CardHeader, f7Card, f7Checkbox, f7Chip, f7FabBackdrop, f7FabButton, f7FabButtons, f7Fab, f7Gauge, f7Icon, f7Input, f7Link, f7ListButton, f7ListGroup, f7ListIndex, f7ListInput, f7ListItem, f7List, f7LoginScreenTitle, f7LoginScreen, f7Message, f7MessagebarAttachment, f7MessagebarAttachments, f7MessagebarSheetImage, f7MessagebarSheetItem, f7MessagebarSheet, f7Messagebar, f7MessagesTitle, f7Messages, f7NavLeft, f7NavRight, f7NavTitleLarge, f7NavTitle, f7NavbarNew, f7Navbar, f7PageContent, f7Page, f7Panel, f7PhotoBrowser, f7PieChart, f7Popover, f7Popup, f7Preloader, f7Progressbar, f7Radio, f7Range, f7RoutableModals, f7SearchbarNew, f7Searchbar, f7Segmented, f7Sheet, f7SkeletonAvatar, f7SkeletonBlock, f7SkeletonImage, f7SkeletonText, f7Stepper, f7Subnavbar, f7SwipeoutActions, f7SwipeoutButton, f7Tab, f7Tabs, f7TextEditor, f7Toggle, f7ToolbarNew, f7ToolbarPaneNew, f7Toolbar, f7TreeviewItem, f7Treeview, f7UseIcon, f7View, f7Views }
120
124
  export { f7, f7ready, theme, useStore, setTheme };
121
125
  export default Framework7Vue;
package/framework7-vue.js CHANGED
@@ -1,13 +1,13 @@
1
1
  /**
2
- * Framework7 Vue 0.0.5
2
+ * Framework7 Vue 0.0.7
3
3
  * Build full featured iOS & Android apps using Framework7 & Vue
4
4
  * https://framework7.io/vue/
5
5
  *
6
- * Copyright 2014-2025 Vladimir Kharlampidi
6
+ * Copyright 2014-2026 Vladimir Kharlampidi
7
7
  *
8
8
  * Released under the MIT License
9
9
  *
10
- * Released on: December 19, 2025
10
+ * Released on: January 1, 2026
11
11
  */
12
12
  import Framework7Vue from './shared/plugin.js';
13
13
  import { f7, f7ready, theme, setTheme } from './shared/f7.js';
@@ -68,6 +68,7 @@ import f7NavLeft from './components/nav-left.js';
68
68
  import f7NavRight from './components/nav-right.js';
69
69
  import f7NavTitleLarge from './components/nav-title-large.js';
70
70
  import f7NavTitle from './components/nav-title.js';
71
+ import f7NavbarNew from './components/navbar-new.js';
71
72
  import f7Navbar from './components/navbar.js';
72
73
  import f7PageContent from './components/page-content.js';
73
74
  import f7Page from './components/page.js';
@@ -81,6 +82,7 @@ import f7Progressbar from './components/progressbar.js';
81
82
  import f7Radio from './components/radio.js';
82
83
  import f7Range from './components/range.js';
83
84
  import f7RoutableModals from './components/routable-modals.js';
85
+ import f7SearchbarNew from './components/searchbar-new.js';
84
86
  import f7Searchbar from './components/searchbar.js';
85
87
  import f7Segmented from './components/segmented.js';
86
88
  import f7Sheet from './components/sheet.js';
@@ -96,6 +98,8 @@ import f7Tab from './components/tab.js';
96
98
  import f7Tabs from './components/tabs.js';
97
99
  import f7TextEditor from './components/text-editor.js';
98
100
  import f7Toggle from './components/toggle.js';
101
+ import f7ToolbarNew from './components/toolbar-new.js';
102
+ import f7ToolbarPaneNew from './components/toolbar-pane-new.js';
99
103
  import f7Toolbar from './components/toolbar.js';
100
104
  import f7TreeviewItem from './components/treeview-item.js';
101
105
  import f7Treeview from './components/treeview.js';
@@ -103,6 +107,6 @@ import f7UseIcon from './components/use-icon.js';
103
107
  import f7View from './components/view.js';
104
108
  import f7Views from './components/views.js';
105
109
 
106
- export { f7AccordionContent, f7AccordionItem, f7AccordionToggle, f7Accordion, f7ActionsButton, f7ActionsGroup, f7ActionsLabel, f7Actions, f7App, f7AreaChart, f7Badge, f7BlockFooter, f7BlockHeader, f7BlockTitle, f7Block, f7BreadcrumbsCollapsed, f7BreadcrumbsItem, f7BreadcrumbsSeparator, f7Breadcrumbs, f7Button, f7CardContent, f7CardFooter, f7CardHeader, f7Card, f7Checkbox, f7Chip, f7FabBackdrop, f7FabButton, f7FabButtons, f7Fab, f7Gauge, f7Icon, f7Input, f7Link, f7ListButton, f7ListGroup, f7ListIndex, f7ListInput, f7ListItem, f7List, f7LoginScreenTitle, f7LoginScreen, f7Message, f7MessagebarAttachment, f7MessagebarAttachments, f7MessagebarSheetImage, f7MessagebarSheetItem, f7MessagebarSheet, f7Messagebar, f7MessagesTitle, f7Messages, f7NavLeft, f7NavRight, f7NavTitleLarge, f7NavTitle, f7Navbar, f7PageContent, f7Page, f7Panel, f7PhotoBrowser, f7PieChart, f7Popover, f7Popup, f7Preloader, f7Progressbar, f7Radio, f7Range, f7RoutableModals, f7Searchbar, f7Segmented, f7Sheet, f7SkeletonAvatar, f7SkeletonBlock, f7SkeletonImage, f7SkeletonText, f7Stepper, f7Subnavbar, f7SwipeoutActions, f7SwipeoutButton, f7Tab, f7Tabs, f7TextEditor, f7Toggle, f7Toolbar, f7TreeviewItem, f7Treeview, f7UseIcon, f7View, f7Views }
110
+ export { f7AccordionContent, f7AccordionItem, f7AccordionToggle, f7Accordion, f7ActionsButton, f7ActionsGroup, f7ActionsLabel, f7Actions, f7App, f7AreaChart, f7Badge, f7BlockFooter, f7BlockHeader, f7BlockTitle, f7Block, f7BreadcrumbsCollapsed, f7BreadcrumbsItem, f7BreadcrumbsSeparator, f7Breadcrumbs, f7Button, f7CardContent, f7CardFooter, f7CardHeader, f7Card, f7Checkbox, f7Chip, f7FabBackdrop, f7FabButton, f7FabButtons, f7Fab, f7Gauge, f7Icon, f7Input, f7Link, f7ListButton, f7ListGroup, f7ListIndex, f7ListInput, f7ListItem, f7List, f7LoginScreenTitle, f7LoginScreen, f7Message, f7MessagebarAttachment, f7MessagebarAttachments, f7MessagebarSheetImage, f7MessagebarSheetItem, f7MessagebarSheet, f7Messagebar, f7MessagesTitle, f7Messages, f7NavLeft, f7NavRight, f7NavTitleLarge, f7NavTitle, f7NavbarNew, f7Navbar, f7PageContent, f7Page, f7Panel, f7PhotoBrowser, f7PieChart, f7Popover, f7Popup, f7Preloader, f7Progressbar, f7Radio, f7Range, f7RoutableModals, f7SearchbarNew, f7Searchbar, f7Segmented, f7Sheet, f7SkeletonAvatar, f7SkeletonBlock, f7SkeletonImage, f7SkeletonText, f7Stepper, f7Subnavbar, f7SwipeoutActions, f7SwipeoutButton, f7Tab, f7Tabs, f7TextEditor, f7Toggle, f7ToolbarNew, f7ToolbarPaneNew, f7Toolbar, f7TreeviewItem, f7Treeview, f7UseIcon, f7View, f7Views }
107
111
  export { f7, f7ready, theme, useStore, setTheme };
108
112
  export default Framework7Vue;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xenknight/framework7-vue",
3
- "version": "0.0.6",
3
+ "version": "0.0.8",
4
4
  "description": "Build full featured iOS & Android apps using Framework7 & Vue",
5
5
  "type": "module",
6
6
  "exports": {