diff --git a/.changeset/sharp-cars-approve.md b/.changeset/sharp-cars-approve.md
new file mode 100644
index 00000000..5df25ad1
--- /dev/null
+++ b/.changeset/sharp-cars-approve.md
@@ -0,0 +1,13 @@
+---
+'@reown/appkit-bitcoin-react-native': patch
+'@reown/appkit-coinbase-react-native': patch
+'@reown/appkit-common-react-native': patch
+'@reown/appkit-core-react-native': patch
+'@reown/appkit-ethers-react-native': patch
+'@reown/appkit-react-native': patch
+'@reown/appkit-solana-react-native': patch
+'@reown/appkit-ui-react-native': patch
+'@reown/appkit-wagmi-react-native': patch
+---
+
+fix: add modalContentWrapper prop to work around Expo Router modal layering issues
diff --git a/.github/workflows/claude-auto-review.yml b/.github/workflows/claude-auto-review.yml
index 54fc9d0c..1d9c8e03 100644
--- a/.github/workflows/claude-auto-review.yml
+++ b/.github/workflows/claude-auto-review.yml
@@ -28,10 +28,9 @@ jobs:
fetch-depth: 0
- name: Claude Auto Review
- uses: WalletConnect/actions/claude/auto-review@1483e05460107d74c575e31af948ce20f9df6387
+ uses: WalletConnect/actions/claude/auto-review@abf509235bc59f907de7905071c6910a0ac5de94
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
- model: claude-sonnet-4-5-20250929
timeout_minutes: "60"
project_context: |
This is the AppKit React Native SDK, a comprehensive wallet connection and blockchain interaction library for React Native applications.
@@ -51,4 +50,4 @@ jobs:
- **Code Quality**: ESLint + Prettier rules, JSDoc for public APIs, no inline styles
- **Import Organization**: React/RN → External libs → @reown packages → Relative imports
- **Blockchain Support**: Multi-chain with EVM, Solana, and Bitcoin adapters
- - **Developer Experience**: Clean package exports, strongly typed APIs, comprehensive error handling
\ No newline at end of file
+ - **Developer Experience**: Clean package exports, strongly typed APIs, comprehensive error handling
diff --git a/apps/native/package.json b/apps/native/package.json
index ee500f06..e8bc3262 100644
--- a/apps/native/package.json
+++ b/apps/native/package.json
@@ -52,7 +52,7 @@
},
"devDependencies": {
"@babel/core": "7.26.10",
- "@playwright/test": "1.49.1",
+ "@playwright/test": "1.55.1",
"@types/gh-pages": "6",
"@types/node": "22.10.1",
"@types/react": "~18.2.79",
diff --git a/examples/expo-multichain/app/_layout.tsx b/examples/expo-multichain/app/_layout.tsx
index 6119a864..95d4e518 100644
--- a/examples/expo-multichain/app/_layout.tsx
+++ b/examples/expo-multichain/app/_layout.tsx
@@ -96,7 +96,9 @@ export default function RootLayout() {
- {/* This is a workaround for the Android modal issue. https://github.com/expo/expo/issues/32991#issuecomment-2489620459 */}
+ {/* Mount AppKit once in the root layout to avoid Android Expo Router modal layering issues.
+ If your app already uses react-native-screens and transparentModal still hides the modal,
+ pass modalContentWrapper={FullWindowOverlay} here. */}
diff --git a/examples/expo-multichain/package-lock.json b/examples/expo-multichain/package-lock.json
index bfbbdf68..85f0d811 100644
--- a/examples/expo-multichain/package-lock.json
+++ b/examples/expo-multichain/package-lock.json
@@ -1809,7 +1809,9 @@
}
},
"node_modules/@eslint/eslintrc/node_modules/ajv": {
- "version": "6.12.6",
+ "version": "6.14.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz",
+ "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1860,6 +1862,8 @@
},
"node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": {
"version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"dev": true,
"license": "MIT"
},
@@ -1998,15 +2002,6 @@
"xml2js": "0.6.0"
}
},
- "node_modules/@expo/config-plugins/node_modules/brace-expansion": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
- "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
"node_modules/@expo/config-plugins/node_modules/glob": {
"version": "10.5.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
@@ -2042,21 +2037,6 @@
"@pkgjs/parseargs": "^0.11.0"
}
},
- "node_modules/@expo/config-plugins/node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/@expo/config-plugins/node_modules/path-scurry": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
@@ -2088,15 +2068,6 @@
"@babel/highlight": "^7.10.4"
}
},
- "node_modules/@expo/config/node_modules/brace-expansion": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
- "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
"node_modules/@expo/config/node_modules/glob": {
"version": "10.5.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
@@ -2132,21 +2103,6 @@
"@pkgjs/parseargs": "^0.11.0"
}
},
- "node_modules/@expo/config/node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/@expo/config/node_modules/path-scurry": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
@@ -2174,15 +2130,6 @@
"glob": "^10.4.2"
}
},
- "node_modules/@expo/devcert/node_modules/brace-expansion": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
- "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
"node_modules/@expo/devcert/node_modules/debug": {
"version": "3.2.7",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
@@ -2227,21 +2174,6 @@
"@pkgjs/parseargs": "^0.11.0"
}
},
- "node_modules/@expo/devcert/node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/@expo/devcert/node_modules/path-scurry": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
@@ -2314,15 +2246,6 @@
"fingerprint": "bin/cli.js"
}
},
- "node_modules/@expo/fingerprint/node_modules/brace-expansion": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
- "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
"node_modules/@expo/fingerprint/node_modules/glob": {
"version": "10.5.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
@@ -2358,21 +2281,6 @@
"@pkgjs/parseargs": "^0.11.0"
}
},
- "node_modules/@expo/fingerprint/node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/@expo/fingerprint/node_modules/path-scurry": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
@@ -2542,15 +2450,6 @@
}
}
},
- "node_modules/@expo/metro-config/node_modules/brace-expansion": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
- "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
"node_modules/@expo/metro-config/node_modules/glob": {
"version": "10.5.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
@@ -2586,21 +2485,6 @@
"@pkgjs/parseargs": "^0.11.0"
}
},
- "node_modules/@expo/metro-config/node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/@expo/metro-config/node_modules/path-scurry": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
@@ -6041,28 +5925,6 @@
"typescript": ">=4.8.4 <6.0.0"
}
},
- "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
- "version": "2.0.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
- "version": "9.0.5",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/@typescript-eslint/utils": {
"version": "8.41.0",
"dev": true,
@@ -7986,9 +7848,9 @@
}
},
"node_modules/ajv": {
- "version": "8.17.1",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
- "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz",
+ "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==",
"license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.3",
@@ -8495,8 +8357,13 @@
}
},
"node_modules/balanced-match": {
- "version": "1.0.2",
- "license": "MIT"
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
+ "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
+ "license": "MIT",
+ "engines": {
+ "node": "18 || 20 || >=22"
+ }
},
"node_modules/base-x": {
"version": "5.0.1",
@@ -8605,7 +8472,9 @@
"license": "MIT"
},
"node_modules/bn.js": {
- "version": "5.2.2",
+ "version": "5.2.3",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.3.tgz",
+ "integrity": "sha512-EAcmnPkxpntVL+DS7bO1zhcZNvCkxqtkd0ZY53h06GNQ3DEkkGZ/gKgmDv6DdZQGj9BgfSPKtJJ7Dp1GPP8f7w==",
"license": "MIT"
},
"node_modules/boolbase": {
@@ -8661,11 +8530,15 @@
}
},
"node_modules/brace-expansion": {
- "version": "1.1.12",
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz",
+ "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==",
"license": "MIT",
"dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
+ "balanced-match": "^4.0.2"
+ },
+ "engines": {
+ "node": "18 || 20 || >=22"
}
},
"node_modules/braces": {
@@ -9131,10 +9004,6 @@
"node": ">= 0.6"
}
},
- "node_modules/concat-map": {
- "version": "0.0.1",
- "license": "MIT"
- },
"node_modules/connect": {
"version": "3.7.0",
"license": "MIT",
@@ -10374,7 +10243,9 @@
}
},
"node_modules/eslint/node_modules/ajv": {
- "version": "6.12.6",
+ "version": "6.14.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz",
+ "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10390,6 +10261,8 @@
},
"node_modules/eslint/node_modules/json-schema-traverse": {
"version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"dev": true,
"license": "MIT"
},
@@ -10948,15 +10821,6 @@
"expo-modules-autolinking": "bin/expo-modules-autolinking.js"
}
},
- "node_modules/expo-modules-autolinking/node_modules/brace-expansion": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
- "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
"node_modules/expo-modules-autolinking/node_modules/commander": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
@@ -11001,21 +10865,6 @@
"@pkgjs/parseargs": "^0.11.0"
}
},
- "node_modules/expo-modules-autolinking/node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/expo-modules-autolinking/node_modules/path-scurry": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
@@ -11300,15 +11149,6 @@
}
}
},
- "node_modules/expo/node_modules/brace-expansion": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
- "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
"node_modules/expo/node_modules/glob": {
"version": "10.5.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
@@ -11344,21 +11184,6 @@
"@pkgjs/parseargs": "^0.11.0"
}
},
- "node_modules/expo/node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/expo/node_modules/path-scurry": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
@@ -11376,9 +11201,9 @@
}
},
"node_modules/expo/node_modules/picomatch": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz",
- "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.2.tgz",
+ "integrity": "sha512-cfDHL6LStTEKlNilboNtobT/kEa30PtAf2Q1OgszfrG/rpVl1xaFWT9ktfkS306GmHgmnad1Sw4wabhlvFtsTw==",
"license": "MIT",
"engines": {
"node": ">=10"
@@ -11662,7 +11487,9 @@
}
},
"node_modules/flatted": {
- "version": "3.3.3",
+ "version": "3.4.2",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz",
+ "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==",
"dev": true,
"license": "ISC"
},
@@ -11944,9 +11771,9 @@
"license": "MIT"
},
"node_modules/h3": {
- "version": "1.15.5",
- "resolved": "https://registry.npmjs.org/h3/-/h3-1.15.5.tgz",
- "integrity": "sha512-xEyq3rSl+dhGX2Lm0+eFQIAzlDN6Fs0EcC4f7BNUmzaRX/PTzeuM+Tr2lHB8FoXggsQIeXLj8EDVgs5ywxyxmg==",
+ "version": "1.15.9",
+ "resolved": "https://registry.npmjs.org/h3/-/h3-1.15.9.tgz",
+ "integrity": "sha512-H7UPnyIupUOYUQu7f2x7ABVeMyF/IbJjqn20WSXpMdnQB260luADUkSgJU7QTWLutq8h3tUayMQ1DdbSYX5LkA==",
"license": "MIT",
"dependencies": {
"cookie-es": "^1.2.2",
@@ -12058,9 +11885,9 @@
}
},
"node_modules/hono": {
- "version": "4.11.4",
- "resolved": "https://registry.npmjs.org/hono/-/hono-4.11.4.tgz",
- "integrity": "sha512-U7tt8JsyrxSRKspfhtLET79pU8K+tInj5QZXs1jSugO1Vq5dFj3kmZsRldo29mTBfcjDRVRXrEZ6LS63Cog9ZA==",
+ "version": "4.12.7",
+ "resolved": "https://registry.npmjs.org/hono/-/hono-4.12.7.tgz",
+ "integrity": "sha512-jq9l1DM0zVIvsm3lv9Nw9nlJnMNPOcAtsbsgiUhWcFzPE99Gvo6yRTlszSLLYacMeQ6quHD6hMfId8crVHvexw==",
"license": "MIT",
"engines": {
"node": ">=16.9.0"
@@ -13914,13 +13741,18 @@
}
},
"node_modules/minimatch": {
- "version": "3.1.2",
- "license": "ISC",
+ "version": "10.2.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.3.tgz",
+ "integrity": "sha512-Rwi3pnapEqirPSbWbrZaa6N3nmqq4Xer/2XooiOKyV3q12ML06f7MOuc5DVH8ONZIFhwIYQ3yzPH4nt7iWHaTg==",
+ "license": "BlueOak-1.0.0",
"dependencies": {
- "brace-expansion": "^1.1.7"
+ "brace-expansion": "^5.0.2"
},
"engines": {
- "node": "*"
+ "node": "18 || 20 || >=22"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/minimist": {
@@ -14063,9 +13895,9 @@
"license": "MIT"
},
"node_modules/node-forge": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.2.tgz",
- "integrity": "sha512-6xKiQ+cph9KImrRh0VsjH2d8/GXA4FIMlgU4B757iI1ApvcyA9VlouP0yZJha01V+huImO+kKMU7ih+2+E14fw==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.4.0.tgz",
+ "integrity": "sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ==",
"license": "(BSD-3-Clause OR GPL-2.0)",
"engines": {
"node": ">= 6.13.0"
@@ -14678,7 +14510,9 @@
"license": "ISC"
},
"node_modules/picomatch": {
- "version": "2.3.1",
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz",
+ "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==",
"license": "MIT",
"engines": {
"node": ">=8.6"
@@ -16426,35 +16260,18 @@
}
},
"node_modules/socket.io-parser": {
- "version": "4.2.4",
- "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz",
- "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==",
+ "version": "4.2.6",
+ "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.6.tgz",
+ "integrity": "sha512-asJqbVBDsBCJx0pTqw3WfesSY0iRX+2xzWEWzrpcH7L6fLzrhyF8WPI8UaeM4YCuDfpwA/cgsdugMsmtz8EJeg==",
"license": "MIT",
"dependencies": {
"@socket.io/component-emitter": "~3.1.0",
- "debug": "~4.3.1"
+ "debug": "~4.4.1"
},
"engines": {
"node": ">=10.0.0"
}
},
- "node_modules/socket.io-parser/node_modules/debug": {
- "version": "4.3.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
- "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
- "license": "MIT",
- "dependencies": {
- "ms": "^2.1.3"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
"node_modules/sonic-boom": {
"version": "2.8.0",
"license": "MIT",
@@ -16791,15 +16608,6 @@
"node": ">=16 || 14 >=14.17"
}
},
- "node_modules/sucrase/node_modules/brace-expansion": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
- "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
"node_modules/sucrase/node_modules/commander": {
"version": "4.1.1",
"license": "MIT",
@@ -16842,21 +16650,6 @@
"@pkgjs/parseargs": "^0.11.0"
}
},
- "node_modules/sucrase/node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/sucrase/node_modules/path-scurry": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
@@ -16914,9 +16707,9 @@
}
},
"node_modules/tar": {
- "version": "7.5.6",
- "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.6.tgz",
- "integrity": "sha512-xqUeu2JAIJpXyvskvU3uvQW8PAmHrtXp2KDuMJwQqW8Sqq0CaZBAQ+dKS3RBXVhU4wC5NjAdKrmh84241gO9cA==",
+ "version": "7.5.11",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.11.tgz",
+ "integrity": "sha512-ChjMH33/KetonMTAtpYdgUFr0tbz69Fp2v7zWxQfYZX4g5ZN2nOBXm1R2xyA+lMIKrLKIoKAwFj93jE/avX9cQ==",
"license": "BlueOak-1.0.0",
"dependencies": {
"@isaacs/fs-minipass": "^4.0.0",
@@ -17077,7 +16870,9 @@
}
},
"node_modules/tinyglobby/node_modules/picomatch": {
- "version": "4.0.3",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
+ "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
"dev": true,
"license": "MIT",
"peer": true,
@@ -17341,9 +17136,9 @@
"license": "MIT"
},
"node_modules/undici": {
- "version": "6.23.0",
- "resolved": "https://registry.npmjs.org/undici/-/undici-6.23.0.tgz",
- "integrity": "sha512-VfQPToRA5FZs/qJxLIinmU59u0r7LXqoJkCzinq3ckNJp3vKEh7jTWN589YQ5+aoAC/TGRLyJLCPKcLQbM8r9g==",
+ "version": "6.24.0",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-6.24.0.tgz",
+ "integrity": "sha512-lVLNosgqo5EkGqh5XUDhGfsMSoO8K0BAN0TyJLvwNRSl4xWGZlCVYsAIpa/OpA3TvmnM01GWcoKmc3ZWo5wKKA==",
"license": "MIT",
"engines": {
"node": ">=18.17"
@@ -17465,6 +17260,8 @@
},
"node_modules/uri-js": {
"version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
@@ -18092,15 +17889,18 @@
"license": "ISC"
},
"node_modules/yaml": {
- "version": "2.8.1",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz",
- "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==",
+ "version": "2.8.3",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz",
+ "integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==",
"license": "ISC",
"bin": {
"yaml": "bin.mjs"
},
"engines": {
"node": ">= 14.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/eemeli"
}
},
"node_modules/yargs": {
diff --git a/examples/expo-multichain/package.json b/examples/expo-multichain/package.json
index 8321f53d..c13dac40 100644
--- a/examples/expo-multichain/package.json
+++ b/examples/expo-multichain/package.json
@@ -77,16 +77,23 @@
},
"overrides": {
"react": "19.1.0",
- "hono": "4.11.4",
- "h3": "1.15.5",
- "tar": "7.5.6",
- "node-forge": "1.3.2",
- "qs": "6.14.1",
- "undici": "6.23.0",
+ "hono": "4.12.7",
+ "h3": "1.15.9",
+ "tar": "7.5.11",
+ "node-forge": "1.4.0",
+ "undici": "6.24.0",
"preact": "10.28.2",
"js-yaml": "3.14.2",
"valibot": "1.2.0",
- "lodash": "4.17.23"
+ "lodash": "4.17.23",
+ "bn.js": "5.2.3",
+ "minimatch": "10.2.3",
+ "picomatch@^2": "2.3.2",
+ "picomatch@^4": "4.0.4",
+ "flatted": "3.4.2",
+ "socket.io-parser": "4.2.6",
+ "yaml": "2.8.3",
+ "brace-expansion": "5.0.5"
},
"private": true
}
diff --git a/jest.config.ts b/jest.config.ts
index 98a89709..5d12cd6d 100644
--- a/jest.config.ts
+++ b/jest.config.ts
@@ -1,3 +1,5 @@
+const path = require('path');
+
module.exports = {
preset: 'react-native',
modulePathIgnorePatterns: ['/node_modules', '/lib/'],
@@ -8,6 +10,16 @@ module.exports = {
'^.+\\.(js|jsx|ts|tsx)$': ['babel-jest', { configFile: './babel.config.js' }]
},
moduleNameMapper: {
- '^@shared-jest-setup$': '/jest-shared-setup.ts'
+ '^@shared-jest-setup$': '/jest-shared-setup.ts',
+ '^@reown/appkit-react-native$': path.join(__dirname, 'packages/appkit/src/index.ts'),
+ '^@reown/appkit-bitcoin-react-native$': path.join(__dirname, 'packages/bitcoin/src/index.tsx'),
+ '^@reown/appkit-coinbase-react-native$': path.join(__dirname, 'packages/coinbase/src/index.ts'),
+ '^@reown/appkit-common-react-native$': path.join(__dirname, 'packages/common/src/index.ts'),
+ '^@reown/appkit-core-react-native$': path.join(__dirname, 'packages/core/src/index.ts'),
+ '^@reown/appkit-ethers-react-native$': path.join(__dirname, 'packages/ethers/src/index.tsx'),
+ '^@reown/appkit-react-native-cli$': path.join(__dirname, 'packages/cli/src/index.ts'),
+ '^@reown/appkit-solana-react-native$': path.join(__dirname, 'packages/solana/src/index.ts'),
+ '^@reown/appkit-ui-react-native$': path.join(__dirname, 'packages/ui/src/index.ts'),
+ '^@reown/appkit-wagmi-react-native$': path.join(__dirname, 'packages/wagmi/src/index.tsx')
}
};
diff --git a/package.json b/package.json
index 056db711..aaf58385 100644
--- a/package.json
+++ b/package.json
@@ -86,7 +86,7 @@
"elliptic": "^6.6.1",
"path-to-regexp": "0.1.12",
"ws": "^8.18.1",
- "serialize-javascript": "6.0.2",
+ "serialize-javascript": "7.0.5",
"esbuild": "0.25.0",
"postcss": "8.4.31",
"cookie": "0.7.0",
@@ -96,13 +96,23 @@
"@walletconnect/universal-provider": "2.21.10",
"@metamask/sdk": "0.33.1",
"tmp": "0.2.4",
- "h3": "1.15.5",
- "tar": "7.5.6",
- "node-forge": "1.3.2",
- "qs": "6.14.1",
- "undici": "6.23.0",
+ "h3": "1.15.9",
+ "tar": "7.5.11",
+ "node-forge": "1.4.0",
+ "picomatch@^2": "2.3.2",
+ "picomatch@^4": "4.0.4",
+ "qs": "6.14.2",
+ "undici": "6.24.0",
"preact": "10.28.2",
"js-yaml": "3.14.2",
- "valibot": "1.2.0"
+ "valibot": "1.2.0",
+ "schema-utils/ajv": "8.18.0",
+ "lodash": "4.17.23",
+ "webpack": "5.104.1",
+ "flatted": "3.4.2",
+ "socket.io-parser": "4.2.6",
+ "minimatch": "3.1.3",
+ "yaml": "1.10.3",
+ "storybook": "8.6.17"
}
}
diff --git a/packages/appkit/jest.config.ts b/packages/appkit/jest.config.ts
index f2fb133e..93551e06 100644
--- a/packages/appkit/jest.config.ts
+++ b/packages/appkit/jest.config.ts
@@ -1,8 +1,10 @@
+const rootConfig = require('../../jest.config');
+
const appkitConfig = {
- ...require('../../jest.config'),
+ ...rootConfig,
setupFilesAfterEnv: ['./jest-setup.ts'],
- // Override the moduleNameMapper to use the correct path from the package
moduleNameMapper: {
+ ...rootConfig.moduleNameMapper,
'^@shared-jest-setup$': '../../jest-shared-setup.ts'
}
};
diff --git a/packages/appkit/src/__tests__/hooks/useAppKitTheme.test.tsx b/packages/appkit/src/__tests__/hooks/useAppKitTheme.test.tsx
index cfc5ea8d..37a912d6 100644
--- a/packages/appkit/src/__tests__/hooks/useAppKitTheme.test.tsx
+++ b/packages/appkit/src/__tests__/hooks/useAppKitTheme.test.tsx
@@ -18,16 +18,20 @@ jest.mock('valtio', () => ({
}));
// Mock ThemeController
-jest.mock('@reown/appkit-core-react-native', () => ({
- ThemeController: {
- state: {
- themeMode: 'light',
- themeVariables: {}
- },
- setDefaultThemeMode: jest.fn(),
- setThemeVariables: jest.fn()
- }
-}));
+jest.mock(
+ '@reown/appkit-core-react-native',
+ () => ({
+ ThemeController: {
+ state: {
+ themeMode: 'light',
+ themeVariables: {}
+ },
+ setDefaultThemeMode: jest.fn(),
+ setThemeVariables: jest.fn()
+ }
+ }),
+ { virtual: true }
+);
describe('useAppKitTheme', () => {
const mockAppKit = {} as AppKit;
diff --git a/packages/appkit/src/__tests__/modal/w3m-modal.test.tsx b/packages/appkit/src/__tests__/modal/w3m-modal.test.tsx
new file mode 100644
index 00000000..1adac9d9
--- /dev/null
+++ b/packages/appkit/src/__tests__/modal/w3m-modal.test.tsx
@@ -0,0 +1,132 @@
+import React from 'react';
+import { render } from '@testing-library/react-native';
+import { View } from 'react-native';
+
+const mockClose = jest.fn();
+const mockPrefetch = jest.fn().mockResolvedValue(undefined);
+const mockSendEvent = jest.fn();
+const modalState = {
+ open: true
+};
+
+jest.mock('valtio', () => ({
+ useSnapshot: jest.fn((state: Record) => state)
+}));
+
+jest.mock('react-native-safe-area-context', () => ({
+ useSafeAreaInsets: jest.fn(() => ({ top: 0, bottom: 0 }))
+}));
+
+jest.mock('../../AppKitContext', () => ({
+ useInternalAppKit: jest.fn(() => ({
+ close: mockClose
+ }))
+}));
+
+jest.mock('../../partials/w3m-header', () => ({
+ Header: () => 'Header'
+}));
+
+jest.mock('../../partials/w3m-snackbar', () => ({
+ Snackbar: () => 'Snackbar'
+}));
+
+jest.mock('../../modal/w3m-router', () => ({
+ AppKitRouter: () => 'Router'
+}));
+
+jest.mock(
+ '@reown/appkit-ui-react-native',
+ () => {
+ const { View: MockView } = require('react-native');
+
+ return {
+ Card: ({ children, ...props }: any) => (
+
+ {children}
+
+ ),
+ Modal: ({ children, testID, visible, contentWrapper: ContentWrapper }: any) => {
+ if (!visible) {
+ return null;
+ }
+
+ const content = ContentWrapper ? {children} : children;
+
+ return {content};
+ },
+ ThemeProvider: ({ children }: any) => <>{children}>
+ };
+ },
+ { virtual: true }
+);
+
+jest.mock(
+ '@reown/appkit-core-react-native',
+ () => ({
+ ApiController: {
+ prefetch: mockPrefetch
+ },
+ EventsController: {
+ sendEvent: mockSendEvent
+ },
+ ModalController: {
+ state: modalState
+ },
+ OptionsController: {
+ state: {
+ projectId: 'project-id'
+ }
+ },
+ RouterController: {
+ state: {
+ history: ['Connect']
+ },
+ goBack: jest.fn()
+ },
+ ThemeController: {
+ state: {
+ themeMode: 'light',
+ themeVariables: {}
+ },
+ setSystemThemeMode: jest.fn()
+ }
+ }),
+ { virtual: true }
+);
+
+const { AppKit } = require('../../modal/w3m-modal');
+
+describe('AppKit modal', () => {
+ beforeEach(() => {
+ jest.clearAllMocks();
+ modalState.open = true;
+ });
+
+ it('renders the modal without a wrapper', () => {
+ const { getByTestId, queryByTestId } = render();
+
+ expect(getByTestId('w3m-modal')).toBeTruthy();
+ expect(queryByTestId('modal-content-wrapper')).toBeNull();
+ });
+
+ it('wraps modal content when modalContentWrapper is provided', () => {
+ function ModalContentWrapper({ children }: { children: React.ReactNode }) {
+ return {children};
+ }
+
+ const { getByTestId } = render();
+
+ expect(getByTestId('modal-content-wrapper')).toBeTruthy();
+ expect(getByTestId('w3m-modal')).toBeTruthy();
+ });
+
+ it('does not render modal content when closed', () => {
+ modalState.open = false;
+
+ const { queryByTestId } = render();
+
+ expect(queryByTestId('w3m-modal')).toBeNull();
+ expect(queryByTestId('mock-card')).toBeNull();
+ });
+});
diff --git a/packages/appkit/src/index.ts b/packages/appkit/src/index.ts
index cef464c0..2b1bf9aa 100644
--- a/packages/appkit/src/index.ts
+++ b/packages/appkit/src/index.ts
@@ -14,7 +14,12 @@ export {
NetworkButton as NetworkButton,
type NetworkButtonProps as NetworkButtonProps
} from './modal/w3m-network-button';
-export { AppKit } from './modal/w3m-modal';
+export {
+ AppKit,
+ type AppKitProps,
+ type AppKitModalContentWrapperComponent,
+ type AppKitModalContentWrapperProps
+} from './modal/w3m-modal';
/********** Types **********/
export type * from '@reown/appkit-core-react-native';
diff --git a/packages/appkit/src/modal/w3m-modal/index.tsx b/packages/appkit/src/modal/w3m-modal/index.tsx
index 4ea75fa0..ff5bd8a0 100644
--- a/packages/appkit/src/modal/w3m-modal/index.tsx
+++ b/packages/appkit/src/modal/w3m-modal/index.tsx
@@ -1,5 +1,5 @@
import { useSnapshot } from 'valtio';
-import { useCallback, useEffect } from 'react';
+import { useCallback, useEffect, type ComponentType, type ReactNode } from 'react';
import { useColorScheme } from 'react-native';
import { Card, Modal, ThemeProvider } from '@reown/appkit-ui-react-native';
import {
@@ -18,7 +18,17 @@ import { Snackbar } from '../../partials/w3m-snackbar';
import { useInternalAppKit } from '../../AppKitContext';
import styles from './styles';
-export function AppKit() {
+export interface AppKitModalContentWrapperProps {
+ children: ReactNode;
+}
+
+export type AppKitModalContentWrapperComponent = ComponentType;
+
+export interface AppKitProps {
+ modalContentWrapper?: AppKitModalContentWrapperComponent;
+}
+
+export function AppKit({ modalContentWrapper }: AppKitProps) {
const theme = useColorScheme();
const { bottom, top } = useSafeAreaInsets();
const { close } = useInternalAppKit();
@@ -60,6 +70,7 @@ export function AppKit() {
onRequestClose={handleBackPress}
onBackdropPress={handleModalClose}
testID="w3m-modal"
+ contentWrapper={modalContentWrapper}
>
diff --git a/packages/common/jest.config.ts b/packages/common/jest.config.ts
index 1704bb3e..daca28c6 100644
--- a/packages/common/jest.config.ts
+++ b/packages/common/jest.config.ts
@@ -1,8 +1,10 @@
+const rootConfig = require('../../jest.config');
+
const commonConfig = {
- ...require('../../jest.config'),
+ ...rootConfig,
setupFilesAfterEnv: ['./jest-setup.ts'],
- // Override the moduleNameMapper to use the correct path from the package
moduleNameMapper: {
+ ...rootConfig.moduleNameMapper,
'^@shared-jest-setup$': '../../jest-shared-setup.ts'
}
};
diff --git a/packages/core/jest.config.ts b/packages/core/jest.config.ts
index 21e9e0b9..2666b21e 100644
--- a/packages/core/jest.config.ts
+++ b/packages/core/jest.config.ts
@@ -1,8 +1,10 @@
+const rootConfig = require('../../jest.config');
+
const coreConfig = {
- ...require('../../jest.config'),
+ ...rootConfig,
setupFilesAfterEnv: ['./jest-setup.ts'],
- // Override the moduleNameMapper to use the correct path from the package
moduleNameMapper: {
+ ...rootConfig.moduleNameMapper,
'^@shared-jest-setup$': '../../jest-shared-setup.ts'
}
};
diff --git a/packages/ui/jest.config.ts b/packages/ui/jest.config.ts
index 2892ee1d..aeface90 100644
--- a/packages/ui/jest.config.ts
+++ b/packages/ui/jest.config.ts
@@ -1,8 +1,10 @@
+const rootConfig = require('../../jest.config');
+
const uiConfig = {
- ...require('../../jest.config'),
+ ...rootConfig,
setupFilesAfterEnv: ['./jest-setup.ts'],
- // Override the moduleNameMapper to use the correct path from the package
moduleNameMapper: {
+ ...rootConfig.moduleNameMapper,
'^@shared-jest-setup$': '../../jest-shared-setup.ts'
}
};
diff --git a/packages/ui/src/components/wui-modal/index.tsx b/packages/ui/src/components/wui-modal/index.tsx
index d814cfce..3ee44228 100644
--- a/packages/ui/src/components/wui-modal/index.tsx
+++ b/packages/ui/src/components/wui-modal/index.tsx
@@ -1,4 +1,4 @@
-import { useEffect, useRef, useState } from 'react';
+import { useEffect, useRef, useState, type ComponentType, type ReactNode } from 'react';
import {
useWindowDimensions,
Modal as RNModal,
@@ -14,13 +14,27 @@ export type ModalProps = Pick<
RNModalProps,
'visible' | 'onDismiss' | 'testID' | 'onRequestClose'
> & {
- children: React.ReactNode;
+ children: ReactNode;
onBackdropPress?: () => void;
+ contentWrapper?: ModalContentWrapperComponent;
};
+export interface ModalContentWrapperProps {
+ children: ReactNode;
+}
+
+export type ModalContentWrapperComponent = ComponentType;
+
const AnimatedPressable = Animated.createAnimatedComponent(Pressable);
-export function Modal({ visible, onBackdropPress, onRequestClose, testID, children }: ModalProps) {
+export function Modal({
+ visible,
+ onBackdropPress,
+ onRequestClose,
+ testID,
+ children,
+ contentWrapper: ContentWrapper
+}: ModalProps) {
const { height } = useWindowDimensions();
const Theme = useTheme();
const backdropOpacity = useRef(new Animated.Value(0)).current;
@@ -111,15 +125,8 @@ export function Modal({ visible, onBackdropPress, onRequestClose, testID, childr
}
}, [modalVisible, translateY, backdropOpacity, height]);
- return (
-
+ const modalContent = (
+ <>
{showBackdrop ? (
{children}
+ >
+ );
+
+ return (
+
+ {ContentWrapper ? {modalContent} : modalContent}
);
}
diff --git a/packages/ui/src/index.ts b/packages/ui/src/index.ts
index f2e8efa4..4de0945d 100644
--- a/packages/ui/src/index.ts
+++ b/packages/ui/src/index.ts
@@ -50,7 +50,12 @@ export { ListTransaction, type ListTransactionProps } from './composites/wui-lis
export { ListWallet, type ListWalletProps } from './composites/wui-list-wallet';
export { Logo, type LogoProps } from './composites/wui-logo';
export { LogoSelect, type LogoSelectProps } from './composites/wui-logo-select';
-export { Modal, type ModalProps } from './components/wui-modal';
+export {
+ Modal,
+ type ModalContentWrapperComponent,
+ type ModalContentWrapperProps,
+ type ModalProps
+} from './components/wui-modal';
export { NetworkButton, type NetworkButtonProps } from './composites/wui-network-button';
export { NetworkImage, type NetworkImageProps } from './composites/wui-network-image';
export { NumericKeyboard, type NumericKeyboardProps } from './composites/wui-numeric-keyboard';
diff --git a/yarn.lock b/yarn.lock
index d956df28..b0b811cf 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -90,7 +90,7 @@ __metadata:
"@babel/core": 7.26.10
"@bitcoinerlab/secp256k1": 1.2.0
"@expo/metro-runtime": ~4.0.1
- "@playwright/test": 1.49.1
+ "@playwright/test": 1.55.1
"@react-native-async-storage/async-storage": 2.1.2
"@react-native-community/netinfo": 11.4.1
"@reown/appkit-bitcoin-react-native": "workspace:*"
@@ -3737,14 +3737,14 @@ __metadata:
languageName: node
linkType: hard
-"@playwright/test@npm:1.49.1":
- version: 1.49.1
- resolution: "@playwright/test@npm:1.49.1"
+"@playwright/test@npm:1.55.1":
+ version: 1.55.1
+ resolution: "@playwright/test@npm:1.55.1"
dependencies:
- playwright: 1.49.1
+ playwright: 1.55.1
bin:
playwright: cli.js
- checksum: cdbd16df3d773dc8e522d79b4b961e25c2e1b1d4f3ec45eb711078ab5d11bca47caafe833e2be2f923328fbd012405a9ee31d9b449d184077598546a36847e69
+ checksum: 8df3bd1dde94c94c172e0f727ebbeee8ba7c35d7438e3b487ab598dbef221a8bc0685546c5e10624ffd5d0caec52c79ef6f4d13187dee353d47f14e70a408bee
languageName: node
linkType: hard
@@ -5159,11 +5159,11 @@ __metadata:
languageName: node
linkType: hard
-"@storybook/core@npm:8.6.15":
- version: 8.6.15
- resolution: "@storybook/core@npm:8.6.15"
+"@storybook/core@npm:8.6.17":
+ version: 8.6.17
+ resolution: "@storybook/core@npm:8.6.17"
dependencies:
- "@storybook/theming": 8.6.15
+ "@storybook/theming": 8.6.17
better-opn: ^3.0.2
browser-assert: ^1.2.1
esbuild: ^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0
@@ -5179,7 +5179,7 @@ __metadata:
peerDependenciesMeta:
prettier:
optional: true
- checksum: 49d2200d08d6466ea59b2c70a415cf0c36f24b03895230b65d4fa01b0217ba2a91081ebfad2a1d769ddd149a2b7f169a9db390d865ad4ad784b16b277c3ef9dc
+ checksum: 40847d72afb253d5503fed2118566d25f3e30e4db3669e7a4d3ff2671eec9d4abc31a75f190d75b3f048a2aec808ecb7d88203f0e3bde5b7179146424839b2d0
languageName: node
linkType: hard
@@ -5366,6 +5366,15 @@ __metadata:
languageName: node
linkType: hard
+"@storybook/theming@npm:8.6.17":
+ version: 8.6.17
+ resolution: "@storybook/theming@npm:8.6.17"
+ peerDependencies:
+ storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0
+ checksum: c2041070fba5eaabda3318cf259910af4e1e14a14a961345c2ec49322d95fb2f36cdf4d5a3e3d045f13751538fa8ac68b366053d37cd32de3ac80b786f2c97c5
+ languageName: node
+ linkType: hard
+
"@swc/helpers@npm:^0.5.11":
version: 0.5.17
resolution: "@swc/helpers@npm:0.5.17"
@@ -6948,27 +6957,27 @@ __metadata:
languageName: node
linkType: hard
-"ajv@npm:^6.12.4, ajv@npm:^6.12.5":
- version: 6.12.6
- resolution: "ajv@npm:6.12.6"
- dependencies:
- fast-deep-equal: ^3.1.1
- fast-json-stable-stringify: ^2.0.0
- json-schema-traverse: ^0.4.1
- uri-js: ^4.2.2
- checksum: 874972efe5c4202ab0a68379481fbd3d1b5d0a7bd6d3cc21d40d3536ebff3352a2a1fabb632d4fd2cc7fe4cbdcd5ed6782084c9bbf7f32a1536d18f9da5007d4
- languageName: node
- linkType: hard
-
-"ajv@npm:^8.0.0, ajv@npm:^8.9.0":
- version: 8.17.1
- resolution: "ajv@npm:8.17.1"
+"ajv@npm:8.18.0, ajv@npm:^8.0.0":
+ version: 8.18.0
+ resolution: "ajv@npm:8.18.0"
dependencies:
fast-deep-equal: ^3.1.3
fast-uri: ^3.0.1
json-schema-traverse: ^1.0.0
require-from-string: ^2.0.2
- checksum: 1797bf242cfffbaf3b870d13565bd1716b73f214bb7ada9a497063aada210200da36e3ed40237285f3255acc4feeae91b1fb183625331bad27da95973f7253d9
+ checksum: bcdf6c7b040ca488108e2b4e219b31cf9ed478331007d4dd1ed8acc3946dd6b84295817c0f4724207b8dd8589c9966168b2fd4c7f32109d4b8526cdd3743e936
+ languageName: node
+ linkType: hard
+
+"ajv@npm:^6.12.4":
+ version: 6.14.0
+ resolution: "ajv@npm:6.14.0"
+ dependencies:
+ fast-deep-equal: ^3.1.1
+ fast-json-stable-stringify: ^2.0.0
+ json-schema-traverse: ^0.4.1
+ uri-js: ^4.2.2
+ checksum: 7bb3ea97bb8af52521589079f427e799b6561acaa94f50e13410cb87588c51df8db1afe1157b3e48f1a829269adaa11116e0c2cafe2b998add1523789809a3c5
languageName: node
linkType: hard
@@ -7630,6 +7639,15 @@ __metadata:
languageName: node
linkType: hard
+"baseline-browser-mapping@npm:^2.9.0":
+ version: 2.10.0
+ resolution: "baseline-browser-mapping@npm:2.10.0"
+ bin:
+ baseline-browser-mapping: dist/cli.cjs
+ checksum: 14511e8ff69021e14d8dd9860d42122c3d156b3eec099d6937e630bb94493caf72d1efef8b1897694357fa58a61f7939ce1584d8964463e3dd23eacd0704c3e6
+ languageName: node
+ linkType: hard
+
"bech32@npm:^2.0.0":
version: 2.0.0
resolution: "bech32@npm:2.0.0"
@@ -7817,15 +7835,6 @@ __metadata:
languageName: node
linkType: hard
-"brace-expansion@npm:^2.0.1":
- version: 2.0.2
- resolution: "brace-expansion@npm:2.0.2"
- dependencies:
- balanced-match: ^1.0.0
- checksum: 01dff195e3646bc4b0d27b63d9bab84d2ebc06121ff5013ad6e5356daa5a9d6b60fa26cf73c74797f2dc3fbec112af13578d51f75228c1112b26c790a87b0488
- languageName: node
- linkType: hard
-
"braces@npm:^3.0.3, braces@npm:~3.0.2":
version: 3.0.3
resolution: "braces@npm:3.0.3"
@@ -7856,6 +7865,21 @@ __metadata:
languageName: node
linkType: hard
+"browserslist@npm:^4.28.1":
+ version: 4.28.1
+ resolution: "browserslist@npm:4.28.1"
+ dependencies:
+ baseline-browser-mapping: ^2.9.0
+ caniuse-lite: ^1.0.30001759
+ electron-to-chromium: ^1.5.263
+ node-releases: ^2.0.27
+ update-browserslist-db: ^1.2.0
+ bin:
+ browserslist: cli.js
+ checksum: 895357d912ae5a88a3fa454d2d280e9869e13432df30ca8918e206c0783b3b59375b178fdaf16d0041a1cf21ac45c8eb0a20f96f73dbd9662abf4cf613177a1e
+ languageName: node
+ linkType: hard
+
"bs-logger@npm:0.x":
version: 0.2.6
resolution: "bs-logger@npm:0.2.6"
@@ -8105,6 +8129,13 @@ __metadata:
languageName: node
linkType: hard
+"caniuse-lite@npm:^1.0.30001759":
+ version: 1.0.30001774
+ resolution: "caniuse-lite@npm:1.0.30001774"
+ checksum: 33a8609324fbde95b0460976d54f7072307201e4765e0d7e74d521fc641f6eab84c5f0f53e22591a6173b7fc8d8970681d614fd1a12c4ba56422db11d301cfda
+ languageName: node
+ linkType: hard
+
"case-sensitive-paths-webpack-plugin@npm:^2.4.0":
version: 2.4.0
resolution: "case-sensitive-paths-webpack-plugin@npm:2.4.0"
@@ -8949,6 +8980,18 @@ __metadata:
languageName: node
linkType: hard
+"debug@npm:~4.4.1":
+ version: 4.4.3
+ resolution: "debug@npm:4.4.3"
+ dependencies:
+ ms: ^2.1.3
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ checksum: 4805abd570e601acdca85b6aa3757186084a45cff9b2fa6eee1f3b173caa776b45f478b2a71a572d616d2010cea9211d0ac4a02a610e4c18ac4324bde3760834
+ languageName: node
+ linkType: hard
+
"decamelize@npm:^1.2.0":
version: 1.2.0
resolution: "decamelize@npm:1.2.0"
@@ -9407,6 +9450,13 @@ __metadata:
languageName: node
linkType: hard
+"electron-to-chromium@npm:^1.5.263":
+ version: 1.5.302
+ resolution: "electron-to-chromium@npm:1.5.302"
+ checksum: 553836572a450e24e783779588c93a11c2bfc04e40c9b07305afc89722150f7dcf09dd66aea0f863ef779be44db3202395a5c57131113b42d25a4ad3644cf3cb
+ languageName: node
+ linkType: hard
+
"email-addresses@npm:^5.0.0":
version: 5.0.0
resolution: "email-addresses@npm:5.0.0"
@@ -9505,13 +9555,13 @@ __metadata:
languageName: node
linkType: hard
-"enhanced-resolve@npm:^5.17.2":
- version: 5.18.2
- resolution: "enhanced-resolve@npm:5.18.2"
+"enhanced-resolve@npm:^5.17.4":
+ version: 5.19.0
+ resolution: "enhanced-resolve@npm:5.19.0"
dependencies:
graceful-fs: ^4.2.4
- tapable: ^2.2.0
- checksum: af8c0f19cc414f69d7595507576db470c7435f550e7aa1d46292c40aaf1fe03c4d714c495bc31aa927f90887faa8880db428c8bca4dc1595844853ab2195ee25
+ tapable: ^2.3.0
+ checksum: e7b30fa85a7831c79ad7b0aa15cde50e07eb9e770bc19266005821a596cf324f79d3b580223dccbd61e01a515cf4be09e1474745a4c47ad41d2d499b860314a5
languageName: node
linkType: hard
@@ -9678,13 +9728,20 @@ __metadata:
languageName: node
linkType: hard
-"es-module-lexer@npm:^1.2.1, es-module-lexer@npm:^1.5.0":
+"es-module-lexer@npm:^1.5.0":
version: 1.7.0
resolution: "es-module-lexer@npm:1.7.0"
checksum: 7858bb76ae387fdbf8a6fccc951bf18919768309850587553eca34698b9193fbc65fab03d3d9f69163d860321fbf66adf89d5821e7f4148c7cb7d7b997259211
languageName: node
linkType: hard
+"es-module-lexer@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "es-module-lexer@npm:2.0.0"
+ checksum: 6290c43cc9bf6c9f9167b4be8c0105137401fbbd9d503d89880f7e811286cd33ab628407e7dea3c14d41cf9e634e580e5d9952907003a88c7fb2461de6f1b2c1
+ languageName: node
+ linkType: hard
+
"es-object-atoms@npm:^1.0.0, es-object-atoms@npm:^1.1.1":
version: 1.1.1
resolution: "es-object-atoms@npm:1.1.1"
@@ -10976,10 +11033,10 @@ __metadata:
languageName: node
linkType: hard
-"flatted@npm:^3.2.9":
- version: 3.3.3
- resolution: "flatted@npm:3.3.3"
- checksum: 8c96c02fbeadcf4e8ffd0fa24983241e27698b0781295622591fc13585e2f226609d95e422bcf2ef044146ffacb6b68b1f20871454eddf75ab3caa6ee5f4a1fe
+"flatted@npm:3.4.2":
+ version: 3.4.2
+ resolution: "flatted@npm:3.4.2"
+ checksum: 1b2536fccbbf75d67a823dea67819f764c19266ad5e4aca6b47f6bf84d3b5e1c15eb5862f7dec1fb87129b60741524933192051286de52baddbc97129896380d
languageName: node
linkType: hard
@@ -11462,9 +11519,9 @@ __metadata:
languageName: node
linkType: hard
-"h3@npm:1.15.5":
- version: 1.15.5
- resolution: "h3@npm:1.15.5"
+"h3@npm:1.15.9":
+ version: 1.15.9
+ resolution: "h3@npm:1.15.9"
dependencies:
cookie-es: ^1.2.2
crossws: ^0.3.5
@@ -11475,7 +11532,7 @@ __metadata:
radix3: ^1.1.2
ufo: ^1.6.3
uncrypto: ^0.1.3
- checksum: 455f58681de2b789b39af45067db8dde35234c18d86ec5068687300aae3c0225f85edcd110906493e087407e2caaa1f292352769c484284e72558d7677c29899
+ checksum: 64c34bfc089722151cd1077e621a53a4077329432a431989705fbfc542453cf4d0804f9cf2d42ed4bd5c57f970bf7ee8374e8ced5811e782f172110baa086266
languageName: node
linkType: hard
@@ -13452,10 +13509,10 @@ __metadata:
languageName: node
linkType: hard
-"loader-runner@npm:^4.2.0":
- version: 4.3.0
- resolution: "loader-runner@npm:4.3.0"
- checksum: a90e00dee9a16be118ea43fec3192d0b491fe03a32ed48a4132eb61d498f5536a03a1315531c19d284392a8726a4ecad71d82044c28d7f22ef62e029bf761569
+"loader-runner@npm:^4.3.1":
+ version: 4.3.1
+ resolution: "loader-runner@npm:4.3.1"
+ checksum: 14689a39a79b286d3d15f2199384d6132d62ea707abd6c7e50dc8a1f80c20cbfdd5344f7e6b4a7346974696689ab1a96f8ec7d1e8bf206c5264561502658bd3c
languageName: node
linkType: hard
@@ -13531,10 +13588,10 @@ __metadata:
languageName: node
linkType: hard
-"lodash@npm:^4.17.20, lodash@npm:^4.17.21":
- version: 4.17.21
- resolution: "lodash@npm:4.17.21"
- checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7
+"lodash@npm:4.17.23":
+ version: 4.17.23
+ resolution: "lodash@npm:4.17.23"
+ checksum: 7daad39758a72872e94651630fbb54ba76868f904211089721a64516ce865506a759d9ad3d8ff22a2a49a50a09db5d27c36f22762d21766e47e3ba918d6d7bab
languageName: node
linkType: hard
@@ -14344,30 +14401,12 @@ __metadata:
languageName: node
linkType: hard
-"minimatch@npm:^3.0.2, minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2":
- version: 3.1.2
- resolution: "minimatch@npm:3.1.2"
+"minimatch@npm:3.1.3":
+ version: 3.1.3
+ resolution: "minimatch@npm:3.1.3"
dependencies:
brace-expansion: ^1.1.7
- checksum: c154e566406683e7bcb746e000b84d74465b3a832c45d59912b9b55cd50dee66e5c4b1e5566dba26154040e51672f9aa450a9aef0c97cfc7336b78b7afb9540a
- languageName: node
- linkType: hard
-
-"minimatch@npm:^5.0.1":
- version: 5.1.6
- resolution: "minimatch@npm:5.1.6"
- dependencies:
- brace-expansion: ^2.0.1
- checksum: 7564208ef81d7065a370f788d337cd80a689e981042cb9a1d0e6580b6c6a8c9279eba80010516e258835a988363f99f54a6f711a315089b8b42694f5da9d0d77
- languageName: node
- linkType: hard
-
-"minimatch@npm:^9.0.4":
- version: 9.0.5
- resolution: "minimatch@npm:9.0.5"
- dependencies:
- brace-expansion: ^2.0.1
- checksum: 2c035575eda1e50623c731ec6c14f65a85296268f749b9337005210bb2b34e2705f8ef1a358b188f69892286ab99dc42c8fb98a57bde55c8d81b3023c19cea28
+ checksum: bd71cf6615b87fed4795d3650c6dcd22ababe29ac1e28065dca500b365ca9568fde6637782f8e80707640eee4a96c537eece99d491e2e8d10e72e376c37e77bb
languageName: node
linkType: hard
@@ -14648,10 +14687,10 @@ __metadata:
languageName: node
linkType: hard
-"node-forge@npm:1.3.2":
- version: 1.3.2
- resolution: "node-forge@npm:1.3.2"
- checksum: b6f905b0fcc39a2d59598e12ca2c071bfd760e56a9163aab8da7f8d6622547f8db60cfb2aefc39277d5a13af32e58573674b38107a2d4df7c243e12794839546
+"node-forge@npm:1.4.0":
+ version: 1.4.0
+ resolution: "node-forge@npm:1.4.0"
+ checksum: c97c634d4d483aae815677db5b1bd14bfea4d873ab48817e020610a2b4d8bc6b3e77994860189b44151ff8e0842c0c4ba6faa80b9a6e6fbd6989865e8eb80b96
languageName: node
linkType: hard
@@ -14707,6 +14746,13 @@ __metadata:
languageName: node
linkType: hard
+"node-releases@npm:^2.0.27":
+ version: 2.0.27
+ resolution: "node-releases@npm:2.0.27"
+ checksum: a9a54079d894704c2ec728a690b41fbc779a710f5d47b46fa3e460acff08a3e7dfa7108e5599b2db390aa31dac062c47c5118317201f12784188dc5b415f692d
+ languageName: node
+ linkType: hard
+
"nopt@npm:^8.0.0":
version: 8.1.0
resolution: "nopt@npm:8.1.0"
@@ -15373,23 +15419,23 @@ __metadata:
linkType: hard
"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1":
- version: 2.3.1
- resolution: "picomatch@npm:2.3.1"
- checksum: 050c865ce81119c4822c45d3c84f1ced46f93a0126febae20737bd05ca20589c564d6e9226977df859ed5e03dc73f02584a2b0faad36e896936238238b0446cf
+ version: 2.3.2
+ resolution: "picomatch@npm:2.3.2"
+ checksum: 0a3f5b9ff28faf022e1429b66e47c122e19e7b31cbd098095d29e949684e7ff1d9b83a2133d931326a53ec6ec11c7c59b1850c27fde2f26ca1d5f35861e9701a
languageName: node
linkType: hard
"picomatch@npm:^3.0.1":
- version: 3.0.1
- resolution: "picomatch@npm:3.0.1"
- checksum: b7fe18174bcc05bbf0ea09cc85623ae395676b3e6bc25636d4c20db79a948586237e429905453bf1ba385bc7a7aa5b56f1b351680e650d2b5c305ceb98dfc914
+ version: 3.0.2
+ resolution: "picomatch@npm:3.0.2"
+ checksum: 6804ba293d0158709880ff3ffbf4504d8768cac4a2dfb070bbc81f9cfa4a866acc9eada8cb4e219d0121f45c3af6f9543c6f0fa770e8fc9523cea87f14b3d741
languageName: node
linkType: hard
"picomatch@npm:^4.0.2":
- version: 4.0.3
- resolution: "picomatch@npm:4.0.3"
- checksum: 6817fb74eb745a71445debe1029768de55fd59a42b75606f478ee1d0dc1aa6e78b711d041a7c9d5550e042642029b7f373dc1a43b224c4b7f12d23436735dba0
+ version: 4.0.4
+ resolution: "picomatch@npm:4.0.4"
+ checksum: 76b387b5157951422fa6049a96bdd1695e39dd126cd99df34d343638dc5cdb8bcdc83fff288c23eddcf7c26657c35e3173d4d5f488c4f28b889b314472e0a662
languageName: node
linkType: hard
@@ -15495,27 +15541,27 @@ __metadata:
languageName: node
linkType: hard
-"playwright-core@npm:1.49.1":
- version: 1.49.1
- resolution: "playwright-core@npm:1.49.1"
+"playwright-core@npm:1.55.1":
+ version: 1.55.1
+ resolution: "playwright-core@npm:1.55.1"
bin:
playwright-core: cli.js
- checksum: a940f4b10ff1de033b4b8594b5104b02849a892d9adda0d42330a872cd3d8d287ffd2b01fc33f33ccd34f8904bb8ae8220b878b62e899f3d9bcd1b0945ab45c7
+ checksum: a2b981223fd8f5c50a4e0b6cc36a3ce40b41919d418b564561f085bcd6c8ce9df2354e687fbc76e662fddb9f2b28d0bc1f0124c085958406fcab6c6cf3b8228f
languageName: node
linkType: hard
-"playwright@npm:1.49.1":
- version: 1.49.1
- resolution: "playwright@npm:1.49.1"
+"playwright@npm:1.55.1":
+ version: 1.55.1
+ resolution: "playwright@npm:1.55.1"
dependencies:
fsevents: 2.3.2
- playwright-core: 1.49.1
+ playwright-core: 1.55.1
dependenciesMeta:
fsevents:
optional: true
bin:
playwright: cli.js
- checksum: c136d42d625e32614f90e5228a165dc8be48c5bfb52aca9210c6ff04161a409dbe42fe5ae4f05a2653f6a1b836876a04d3b0f24bcbbc053d1509c1d605b7c8d5
+ checksum: 4935122ed687cd14861d64e6fdc79613d36d45f1363e911213a338da9993525d3872d7379300471f70209e1ad68ec91c0d65f0136e6c09c0775477943aaf7fb3
languageName: node
linkType: hard
@@ -15878,12 +15924,12 @@ __metadata:
languageName: node
linkType: hard
-"qs@npm:6.14.1":
- version: 6.14.1
- resolution: "qs@npm:6.14.1"
+"qs@npm:6.14.2":
+ version: 6.14.2
+ resolution: "qs@npm:6.14.2"
dependencies:
side-channel: ^1.1.0
- checksum: 7fffab0344fd75bfb6b8c94b8ba17f3d3e823d25b615900f68b473c3a078e497de8eaa08f709eaaa170eedfcee50638a7159b98abef7d8c89c2ede79291522f2
+ checksum: e613d0b8d02cec33c20d1a6015ec2a5db614bf3dd2ffd9bde08bc34a76419213f291c91fb00519a3d8a74e4727f565b350f8394f9d381bc64e6da663d9e031d4
languageName: node
linkType: hard
@@ -15936,15 +15982,6 @@ __metadata:
languageName: node
linkType: hard
-"randombytes@npm:^2.1.0":
- version: 2.1.0
- resolution: "randombytes@npm:2.1.0"
- dependencies:
- safe-buffer: ^5.1.0
- checksum: d779499376bd4cbb435ef3ab9a957006c8682f343f14089ed5f27764e4645114196e75b7f6abf1cbd84fd247c0cb0651698444df8c9bf30e62120fbbc52269d6
- languageName: node
- linkType: hard
-
"range-parser@npm:^1.2.1, range-parser@npm:~1.2.1":
version: 1.2.1
resolution: "range-parser@npm:1.2.1"
@@ -16840,7 +16877,7 @@ __metadata:
languageName: node
linkType: hard
-"safe-buffer@npm:5.2.1, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.2.1, safe-buffer@npm:~5.2.0":
+"safe-buffer@npm:5.2.1, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.2.1, safe-buffer@npm:~5.2.0":
version: 5.2.1
resolution: "safe-buffer@npm:5.2.1"
checksum: b99c4b41fdd67a6aaf280fcd05e9ffb0813654894223afb78a31f14a19ad220bba8aba1cb14eddce1fcfb037155fe6de4e861784eb434f7d11ed58d1e70dd491
@@ -16932,7 +16969,7 @@ __metadata:
languageName: node
linkType: hard
-"schema-utils@npm:^4.0.0, schema-utils@npm:^4.3.0, schema-utils@npm:^4.3.2":
+"schema-utils@npm:^4.0.0, schema-utils@npm:^4.3.0":
version: 4.3.2
resolution: "schema-utils@npm:4.3.2"
dependencies:
@@ -16944,6 +16981,18 @@ __metadata:
languageName: node
linkType: hard
+"schema-utils@npm:^4.3.3":
+ version: 4.3.3
+ resolution: "schema-utils@npm:4.3.3"
+ dependencies:
+ "@types/json-schema": ^7.0.9
+ ajv: ^8.9.0
+ ajv-formats: ^2.1.1
+ ajv-keywords: ^5.1.0
+ checksum: 4e20404962fd45d5feb5942f7c9ab334a3d3dab94e15001049bd49e2959015f2c59089353953d4976fe664462c79121dea50392968182d4e2c4b75803f822fa3
+ languageName: node
+ linkType: hard
+
"selfsigned@npm:^2.4.1":
version: 2.4.1
resolution: "selfsigned@npm:2.4.1"
@@ -17030,12 +17079,10 @@ __metadata:
languageName: node
linkType: hard
-"serialize-javascript@npm:6.0.2":
- version: 6.0.2
- resolution: "serialize-javascript@npm:6.0.2"
- dependencies:
- randombytes: ^2.1.0
- checksum: c4839c6206c1d143c0f80763997a361310305751171dd95e4b57efee69b8f6edd8960a0b7fbfc45042aadff98b206d55428aee0dc276efe54f100899c7fa8ab7
+"serialize-javascript@npm:7.0.5":
+ version: 7.0.5
+ resolution: "serialize-javascript@npm:7.0.5"
+ checksum: 9e5f4c234c5cfdbe7f720107755ea06f2247d3202a8309e6c6f7dd4241f1dc92ba2e2a3282dcc82796a2ce2a327be48d692790019aeeb681f9870b1d3b49e8b7
languageName: node
linkType: hard
@@ -17267,13 +17314,13 @@ __metadata:
languageName: node
linkType: hard
-"socket.io-parser@npm:~4.2.4":
- version: 4.2.4
- resolution: "socket.io-parser@npm:4.2.4"
+"socket.io-parser@npm:4.2.6":
+ version: 4.2.6
+ resolution: "socket.io-parser@npm:4.2.6"
dependencies:
"@socket.io/component-emitter": ~3.1.0
- debug: ~4.3.1
- checksum: 61540ef99af33e6a562b9effe0fad769bcb7ec6a301aba5a64b3a8bccb611a0abdbe25f469933ab80072582006a78ca136bf0ad8adff9c77c9953581285e2263
+ debug: ~4.4.1
+ checksum: fd0b7c75281814f13c0da18394dc83b1daa79b8e424e7c021f044207ba2e15dced84f3d0609911be04ca69418d9d93d745ee552453afb01059ad9d4d86fae8d0
languageName: node
linkType: hard
@@ -17453,11 +17500,11 @@ __metadata:
languageName: node
linkType: hard
-"storybook@npm:^8.6.15":
- version: 8.6.15
- resolution: "storybook@npm:8.6.15"
+"storybook@npm:8.6.17":
+ version: 8.6.17
+ resolution: "storybook@npm:8.6.17"
dependencies:
- "@storybook/core": 8.6.15
+ "@storybook/core": 8.6.17
peerDependencies:
prettier: ^2 || ^3
peerDependenciesMeta:
@@ -17467,7 +17514,7 @@ __metadata:
getstorybook: ./bin/index.cjs
sb: ./bin/index.cjs
storybook: ./bin/index.cjs
- checksum: 9e24408edb7c8b52c22f495ad95667f94c149ddbcfb38393aa325aeb5a28615bd07619180d4809e90a9c94375431b2b8b8670dbab0984d34c13872bfb5169bde
+ checksum: 34feb71945fe8739a5c51d2c94ab984a8fb655df7facdfc49f3f1b45ace9e180584a0adb82283f0fe5da9dbb0a08d8dcc51675108f0530590063e6dd98a85bec
languageName: node
linkType: hard
@@ -17839,23 +17886,30 @@ __metadata:
languageName: node
linkType: hard
-"tapable@npm:^2.0.0, tapable@npm:^2.1.1, tapable@npm:^2.2.0, tapable@npm:^2.2.1":
+"tapable@npm:^2.0.0, tapable@npm:^2.2.1":
version: 2.2.2
resolution: "tapable@npm:2.2.2"
checksum: 781b3666f4454eb506fd2bcd985c1994f2b93884ea88a7a2a5be956cad8337b31128a7591e771f7aab8e247993b2a0887d360a2d4f54382902ed89994c102740
languageName: node
linkType: hard
-"tar@npm:7.5.6":
- version: 7.5.6
- resolution: "tar@npm:7.5.6"
+"tapable@npm:^2.3.0":
+ version: 2.3.0
+ resolution: "tapable@npm:2.3.0"
+ checksum: ada1194219ad550e3626d15019d87a2b8e77521d8463ab1135f46356e987a4c37eff1e87ffdd5acd573590962e519cc81e8ea6f7ed632c66bb58c0f12bd772a4
+ languageName: node
+ linkType: hard
+
+"tar@npm:7.5.11":
+ version: 7.5.11
+ resolution: "tar@npm:7.5.11"
dependencies:
"@isaacs/fs-minipass": ^4.0.0
chownr: ^3.0.0
minipass: ^7.1.2
minizlib: ^3.1.0
yallist: ^5.0.0
- checksum: 3d0c4940b78908cf7a796fcc7c05a804f5019e74526cbce7a094d381983393a994ae7521830f36156c369bc8a1e2da0dba8f41e9eb8eb090fce1c2a2025bc505
+ checksum: 7f6785a85dd571b88985e493ec86f692962cbfa7b4017961fddfd2241e0ff3bcd89ed347f4c02b5433aa22b30cca5566e8711543df054fda8fd12425f505378f
languageName: node
linkType: hard
@@ -17905,7 +17959,7 @@ __metadata:
languageName: node
linkType: hard
-"terser-webpack-plugin@npm:^5.3.1, terser-webpack-plugin@npm:^5.3.11":
+"terser-webpack-plugin@npm:^5.3.1":
version: 5.3.14
resolution: "terser-webpack-plugin@npm:5.3.14"
dependencies:
@@ -17927,6 +17981,28 @@ __metadata:
languageName: node
linkType: hard
+"terser-webpack-plugin@npm:^5.3.16":
+ version: 5.3.16
+ resolution: "terser-webpack-plugin@npm:5.3.16"
+ dependencies:
+ "@jridgewell/trace-mapping": ^0.3.25
+ jest-worker: ^27.4.5
+ schema-utils: ^4.3.0
+ serialize-javascript: ^6.0.2
+ terser: ^5.31.1
+ peerDependencies:
+ webpack: ^5.1.0
+ peerDependenciesMeta:
+ "@swc/core":
+ optional: true
+ esbuild:
+ optional: true
+ uglify-js:
+ optional: true
+ checksum: 4a9ba15a0917fa0de565f6d722cac1c5291fbb517a9afe3a2cce7edf851f0e02ee44ea45e2547aeb4fb7d599df3f1ccb04ba405879839d5425481c7180655679
+ languageName: node
+ linkType: hard
+
"terser@npm:^5.10.0, terser@npm:^5.15.0, terser@npm:^5.31.1":
version: 5.43.1
resolution: "terser@npm:5.43.1"
@@ -18541,10 +18617,10 @@ __metadata:
languageName: node
linkType: hard
-"undici@npm:6.23.0":
- version: 6.23.0
- resolution: "undici@npm:6.23.0"
- checksum: f0953920330375e76d1614381af07da9d7c21ad3244d0785b3f7bd4072635c20a1f432ef3a129baa3e4a92278ce32e9ea2ca8b5f0e0554a5739222af332c08fe
+"undici@npm:6.24.0":
+ version: 6.24.0
+ resolution: "undici@npm:6.24.0"
+ checksum: 271ae0d6dc2e9246a6e11227a0b0fbc6b1b94cc50331fc45973a6877ea04fcb75256902f1b866cf2734c0c5e1b19336f42e5d4ea57657a61ac083ccb704fc145
languageName: node
linkType: hard
@@ -18748,6 +18824,20 @@ __metadata:
languageName: node
linkType: hard
+"update-browserslist-db@npm:^1.2.0":
+ version: 1.2.3
+ resolution: "update-browserslist-db@npm:1.2.3"
+ dependencies:
+ escalade: ^3.2.0
+ picocolors: ^1.1.1
+ peerDependencies:
+ browserslist: ">= 4.21.0"
+ bin:
+ update-browserslist-db: cli.js
+ checksum: 6f209a97ae8eacdd3a1ef2eb365adf49d1e2a757e5b2dd4ac87dc8c99236cbe3e572d3e605a87dd7b538a11751b71d9f93edc47c7405262a293a493d155316cd
+ languageName: node
+ linkType: hard
+
"uri-js@npm:^4.2.2":
version: 4.4.1
resolution: "uri-js@npm:4.4.1"
@@ -19059,13 +19149,13 @@ __metadata:
languageName: node
linkType: hard
-"watchpack@npm:^2.4.1":
- version: 2.4.4
- resolution: "watchpack@npm:2.4.4"
+"watchpack@npm:^2.4.4":
+ version: 2.5.1
+ resolution: "watchpack@npm:2.5.1"
dependencies:
glob-to-regexp: ^0.4.1
graceful-fs: ^4.1.2
- checksum: 469514a04bcdd7ea77d4b3c62d1f087eafbce64cbc728c89355d5710ee01311533456122da7c585d3654d5bfcf09e6085db1a6eb274c4762a18e370526d17561
+ checksum: 44a6030e923fbbe2cbc51cd7fb7abdff58bc35ba68d6c3ca46e63b46f8b3502c7253e6ada384387e946df5515d3854227a84cec49eb88a315186f5c9a67a3e79
languageName: node
linkType: hard
@@ -19156,9 +19246,9 @@ __metadata:
languageName: node
linkType: hard
-"webpack@npm:5":
- version: 5.100.2
- resolution: "webpack@npm:5.100.2"
+"webpack@npm:5.104.1":
+ version: 5.104.1
+ resolution: "webpack@npm:5.104.1"
dependencies:
"@types/eslint-scope": ^3.7.7
"@types/estree": ^1.0.8
@@ -19168,29 +19258,29 @@ __metadata:
"@webassemblyjs/wasm-parser": ^1.14.1
acorn: ^8.15.0
acorn-import-phases: ^1.0.3
- browserslist: ^4.24.0
+ browserslist: ^4.28.1
chrome-trace-event: ^1.0.2
- enhanced-resolve: ^5.17.2
- es-module-lexer: ^1.2.1
+ enhanced-resolve: ^5.17.4
+ es-module-lexer: ^2.0.0
eslint-scope: 5.1.1
events: ^3.2.0
glob-to-regexp: ^0.4.1
graceful-fs: ^4.2.11
json-parse-even-better-errors: ^2.3.1
- loader-runner: ^4.2.0
+ loader-runner: ^4.3.1
mime-types: ^2.1.27
neo-async: ^2.6.2
- schema-utils: ^4.3.2
- tapable: ^2.1.1
- terser-webpack-plugin: ^5.3.11
- watchpack: ^2.4.1
+ schema-utils: ^4.3.3
+ tapable: ^2.3.0
+ terser-webpack-plugin: ^5.3.16
+ watchpack: ^2.4.4
webpack-sources: ^3.3.3
peerDependenciesMeta:
webpack-cli:
optional: true
bin:
webpack: bin/webpack.js
- checksum: 78003fe8948ab6c5192b9fbabdef9c4f572229b7da9c950b4e9f4625d2907a7c1a3c2b77b507f1eab5c33d29964802d24826230a17dd3d34b1a73612693f4172
+ checksum: 4d187c246da5c03215a9a583682d1b8972fa0c5a446ba479d63507fe2d844dacf88a46ff7f3133dba22f07f1482f866b14e84c509c0f371ae7ad9316cad83fcb
languageName: node
linkType: hard
@@ -19492,10 +19582,10 @@ __metadata:
languageName: node
linkType: hard
-"yaml@npm:^1.10.0":
- version: 1.10.2
- resolution: "yaml@npm:1.10.2"
- checksum: ce4ada136e8a78a0b08dc10b4b900936912d15de59905b2bf415b4d33c63df1d555d23acb2a41b23cf9fb5da41c256441afca3d6509de7247daa062fd2c5ea5f
+"yaml@npm:1.10.3":
+ version: 1.10.3
+ resolution: "yaml@npm:1.10.3"
+ checksum: 6a2dd3582f4fbcc8d0e32dc26d1a42f72a901eb6ae8fad616bd720514b11a53a64eabc21dba97fbcd951c7c0e1963502313789d93a753e7786e7452376498be5
languageName: node
linkType: hard