framework7-react 9.0.5 → 9.1.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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Framework7 React 9.0.5
2
+ * Framework7 React 9.1.0
3
3
  * Build full featured iOS & Android apps using Framework7 & React
4
4
  * https://framework7.io/react/
5
5
  *
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * Released under the MIT License
9
9
  *
10
- * Released on: May 27, 2026
10
+ * Released on: June 29, 2026
11
11
  */
12
12
  import Framework7React from './shared/plugin.js';
13
13
  import { f7, f7ready, theme } from './shared/f7.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "framework7-react",
3
- "version": "9.0.5",
3
+ "version": "9.1.0",
4
4
  "description": "Build full featured iOS & Android apps using Framework7 & React",
5
5
  "type": "module",
6
6
  "exports": {
@@ -50,5 +50,5 @@
50
50
  "type": "patreon",
51
51
  "url": "https://www.patreon.com/framework7"
52
52
  },
53
- "releaseDate": "May 27, 2026"
53
+ "releaseDate": "June 29, 2026"
54
54
  }
@@ -55,7 +55,7 @@ export default {
55
55
  const childrenAfter = getChildrenArray(el);
56
56
  if (hasSameChildren(childrenBefore, childrenAfter)) return;
57
57
  f7events.off('viewRouterDidUpdate', onDidUpdate);
58
- const pageEl = el.children[el.children.length - 1];
58
+ const pageEl = childrenAfter.find(child => child.classList.contains('page') && !childrenBefore.includes(child)) || el.children[el.children.length - 1];
59
59
  pageData.el = pageEl;
60
60
  resolve(pageEl);
61
61
  resolved = true;
@@ -16,9 +16,14 @@ export const routerOpenIn = (router, url, options) => {
16
16
  }
17
17
  }
18
18
  };
19
+ // Allow passing modal-specific params via a `<type>Options` object
20
+ // (e.g. sheetOptions, popupOptions, popoverOptions, panelOptions, loginScreenOptions)
21
+ const openInType = options.openIn.split(':')[0];
19
22
  const params = {
20
- ...options
23
+ ...options,
24
+ ...(options[`${openInType}Options`] || {})
21
25
  };
26
+ delete params[`${openInType}Options`];
22
27
  if (options.openIn === 'popup') {
23
28
  params.component = function DynamicPopup() {
24
29
  return /*#__PURE__*/React.createElement(Popup, {
package/shared/utils.js CHANGED
@@ -33,6 +33,7 @@ export function extend(...args) {
33
33
  const keysArray = Object.keys(Object(nextSource));
34
34
  for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {
35
35
  const nextKey = keysArray[nextIndex];
36
+ if (nextKey === '__proto__' || nextKey === 'constructor' || nextKey === 'prototype') continue; // eslint-disable-line
36
37
  const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);
37
38
  if (desc !== undefined && desc.enumerable) {
38
39
  if (!deep) {