diff --git a/apps/demo/package.json b/apps/demo/package.json index 8a5edef..3660e00 100644 --- a/apps/demo/package.json +++ b/apps/demo/package.json @@ -14,16 +14,16 @@ "@usdh-kit/sdk": "workspace:*", "@usdh-kit/widget": "workspace:*", "connectkit": "1.8.2", - "next": "15.1.0", - "react": "19.0.0", - "react-dom": "19.0.0", + "next": "15.5.18", + "react": "18.3.1", + "react-dom": "18.3.1", "viem": "2.21.55", "wagmi": "2.14.6" }, "devDependencies": { "@types/node": "22.10.2", - "@types/react": "19.0.1", - "@types/react-dom": "19.0.2", + "@types/react": "18.3.18", + "@types/react-dom": "18.3.5", "autoprefixer": "10.4.20", "postcss": "8.4.49", "tailwindcss": "3.4.17", diff --git a/packages/widget/package.json b/packages/widget/package.json index 0dc7d31..5cbea13 100644 --- a/packages/widget/package.json +++ b/packages/widget/package.json @@ -62,11 +62,11 @@ "@tanstack/react-query": "5.62.7", "@testing-library/jest-dom": "6.6.3", "@testing-library/react": "16.1.0", - "@types/react": "19.0.1", - "@types/react-dom": "19.0.2", + "@types/react": "18.3.18", + "@types/react-dom": "18.3.5", "jsdom": "25.0.1", - "react": "19.0.0", - "react-dom": "19.0.0", + "react": "18.3.1", + "react-dom": "18.3.1", "tailwindcss": "3.4.17", "tsup": "8.3.5", "typescript": "5.7.2", diff --git a/packages/widget/src/components/action-button.tsx b/packages/widget/src/components/action-button.tsx index d681e24..84665b8 100644 --- a/packages/widget/src/components/action-button.tsx +++ b/packages/widget/src/components/action-button.tsx @@ -7,6 +7,7 @@ export function ActionButton(props: { phase: ActionPhase insufficient: boolean belowMinOrderValue: boolean + isConnected: boolean requiresBridge: boolean sourceChain: SourceChain needsTradingSession: boolean @@ -17,6 +18,7 @@ export function ActionButton(props: { phase, insufficient, belowMinOrderValue, + isConnected, requiresBridge, sourceChain, needsTradingSession, @@ -46,6 +48,8 @@ export function ActionButton(props: { `Insufficient ${sourceChain === 'evm' ? 'HyperEVM' : 'HyperCore'} USDC` ) : belowMinOrderValue ? ( 'Minimum 11 USDC' + ) : !isConnected ? ( + 'Connect wallet to swap' ) : needsTradingSession ? ( 'Enable trading session' ) : requiresBridge ? ( diff --git a/packages/widget/src/styles.css b/packages/widget/src/styles.css index 6828be3..ed4744b 100644 --- a/packages/widget/src/styles.css +++ b/packages/widget/src/styles.css @@ -19,6 +19,9 @@ */ .usdh-widget { + width: 100%; + max-width: min(480px, calc(100vw - 2rem)); + /* Surfaces */ --usdh-bg: 255 255 255; /* #ffffff — outer card background */ --usdh-surface: 250 250 250; /* #fafafa — pay/receive cards */ @@ -47,6 +50,13 @@ --usdh-chip-active-text: 250 250 250; /* #fafafa — chip active text */ } +@media (max-width: 420px) { + .usdh-widget { + width: calc(100vw - 4rem); + max-width: calc(100vw - 4rem); + } +} + .usdh-widget.dark { /* Surfaces */ --usdh-bg: 10 10 10; /* #0a0a0a (neutral-950) */ diff --git a/packages/widget/src/usdh-swap.tsx b/packages/widget/src/usdh-swap.tsx index 4670ba6..cc7bdd9 100644 --- a/packages/widget/src/usdh-swap.tsx +++ b/packages/widget/src/usdh-swap.tsx @@ -1,11 +1,16 @@ 'use client' -import { BridgeTimeoutError, isBridgeAndSwapError } from '@usdh-kit/sdk' +import { + BridgeTimeoutError, + createInfoClient, + isBridgeAndSwapError, + listUsdhSpotPairs, +} from '@usdh-kit/sdk' import type { Quote, SwapRoute } from '@usdh-kit/sdk' import { useEffect, useMemo, useRef, useState } from 'react' import { useAccount, useChainId, useSwitchChain } from 'wagmi' -import { HYPER_EVM_CHAIN_ID, networkLabel } from './chains.js' +import { HYPER_EVM_CHAIN_ID } from './chains.js' import { ActionButton } from './components/action-button.js' import { ArrowDivider } from './components/arrow-divider.js' import { BalanceRow } from './components/balance-row.js' @@ -32,6 +37,8 @@ const USDC_DECIMALS = 6 const MIN_SWAP_AMOUNT = 10_000_001n const MIN_SWAP_DISPLAY = '11' const QUOTE_DEBOUNCE_MS = 400 +const READ_ONLY_QUOTE_TIMEOUT_MS = 1_500 +const PRICE_DECIMALS = 18 type Phase = 'idle' | 'approving' | 'bridging' | 'swapping' | 'done' @@ -83,6 +90,8 @@ export function USDHSwap(props: USDHSwapProps) { const [quote, setQuote] = useState(null) const [route, setRoute] = useState(null) const [isQuoting, setIsQuoting] = useState(false) + const [readOnlyEstimate, setReadOnlyEstimate] = useState(null) + const [isReadOnlyQuoting, setIsReadOnlyQuoting] = useState(false) const [result, setResult] = useState(null) const [error, setError] = useState(null) const [bridgeStartedAt, setBridgeStartedAt] = useState(null) @@ -166,6 +175,43 @@ export function USDHSwap(props: USDHSwapProps) { return () => clearTimeout(timer) }, [kit, parsedAmount, slippageBps, manualSource, onWrongChain, balanceRefreshKey]) + useEffect(() => { + setReadOnlyEstimate(null) + if (isConnected || onWrongChain || parsedAmount === null || parsedAmount <= 0n) { + setIsReadOnlyQuoting(false) + return + } + + let cancelled = false + const timer = window.setTimeout(async () => { + setIsReadOnlyQuoting(true) + try { + const info = createInfoClient({ network, timeoutMs: READ_ONLY_QUOTE_TIMEOUT_MS }) + const pairs = listUsdhSpotPairs(await info.spotMeta()) + const pair = + pairs.find((candidate) => candidate.base === 'USDH' && candidate.quote === 'USDC') ?? + pairs[0] + if (!pair) return + const book = await info.l2Book(pair.name) + const ask = book.levels[1]?.[0]?.px + if (!ask) return + const askPrice18 = parseUnits(ask, PRICE_DECIMALS) + if (askPrice18 <= 0n) return + const nextEstimate = (parsedAmount * 10n ** BigInt(PRICE_DECIMALS)) / askPrice18 + if (!cancelled) setReadOnlyEstimate(nextEstimate) + } catch { + if (!cancelled) setReadOnlyEstimate(null) + } finally { + if (!cancelled) setIsReadOnlyQuoting(false) + } + }, QUOTE_DEBOUNCE_MS) + + return () => { + cancelled = true + window.clearTimeout(timer) + } + }, [isConnected, network, onWrongChain, parsedAmount]) + const hcCovers = route?.sourceChain === 'hypercore' && route.canSwap const evmCovers = @@ -304,16 +350,20 @@ export function USDHSwap(props: USDHSwapProps) { // in the headline — the slippage tolerance is the user-facing knob. const receiveDisplay = quote ? trimReceive(quote.estimatedReceived, USDC_DECIMALS) - : parsedAmount && parsedAmount > 0n - ? trimReceive(parsedAmount, USDC_DECIMALS) - : '0' + : readOnlyEstimate !== null + ? trimReceive(readOnlyEstimate, USDC_DECIMALS) + : parsedAmount && parsedAmount > 0n + ? trimReceive(parsedAmount, USDC_DECIMALS) + : '0' const payUsdValue = parsedAmount ? formatUsd(parsedAmount, USDC_DECIMALS) : null const receiveBigint = quote ? quote.estimatedReceived - : parsedAmount && parsedAmount > 0n - ? parsedAmount - : null + : readOnlyEstimate !== null + ? readOnlyEstimate + : parsedAmount && parsedAmount > 0n + ? parsedAmount + : null const receiveUsdValue = receiveBigint ? formatUsd(receiveBigint, USDC_DECIMALS) : null // Active source drives the MAX button. @@ -339,12 +389,13 @@ export function USDHSwap(props: USDHSwapProps) { } const showInlineNote = - requiresBridge && parsedAmount !== null && parsedAmount > 0n && phase === 'idle' + isConnected && requiresBridge && parsedAmount !== null && parsedAmount > 0n && phase === 'idle' return (

Swap to USDH

@@ -353,88 +404,81 @@ export function USDHSwap(props: USDHSwapProps) { )}
- {!isConnected ? ( -

- Connect a wallet on {networkLabel(network)} to continue. -

- ) : ( + {onWrongChain && ( + switchChain({ chainId: expectedChainId })} + isSwitching={isSwitching} + /> + )} + + {isConnected && } + +
+ + + +
+ + {!showingResult && ( <> - {onWrongChain && ( - switchChain({ chainId: expectedChainId })} - isSwitching={isSwitching} - /> + {insufficientForRoute && ( +

+ Exceeds your {sourceChain === 'evm' ? 'HyperEVM' : 'HyperCore'} USDC balance. +

+ )} + {belowMinOrderValue && ( +

+ Hyperliquid spot orders need more than 10 USDC. Use {MIN_SWAP_DISPLAY}+ USDC. +

)} - - -
- - - -
- - {!showingResult && ( - <> - {insufficientForRoute && ( -

- Exceeds your {sourceChain === 'evm' ? 'HyperEVM' : 'HyperCore'} USDC balance. -

- )} - {belowMinOrderValue && ( -

- Hyperliquid spot orders need more than 10 USDC. Use {MIN_SWAP_DISPLAY}+ USDC. -

- )} - - setShowCustomSlippage((v) => !v)} - customStr={customSlippageStr} - onCustomChange={applyCustomSlippage} - disabled={inputDisabled} - /> - - - - {phase === 'bridging' && ( -

- Bridging usually credits in about 1-2 minutes. Checking HyperCore credit for{' '} - {bridgeElapsedSeconds}s. -

- )} - {showInlineNote && } - + setShowCustomSlippage((v) => !v)} + customStr={customSlippageStr} + onCustomChange={applyCustomSlippage} + disabled={inputDisabled} + /> + + + + {phase === 'bridging' && ( +

+ Bridging usually credits in about 1-2 minutes. Checking HyperCore credit for{' '} + {bridgeElapsedSeconds}s. +

)} - {error && } - {result && } + {showInlineNote && } )} + {error && } + {result && } {!hideAttribution && (
diff --git a/packages/widget/src/use-balances.ts b/packages/widget/src/use-balances.ts index 0e96400..33dd951 100644 --- a/packages/widget/src/use-balances.ts +++ b/packages/widget/src/use-balances.ts @@ -74,6 +74,7 @@ export function useUsdcBalances( const tokenQuery = useQuery({ queryKey: ['usdh-kit', network, 'stable-token-info'], + enabled: Boolean(address), queryFn: async () => resolveStableTokens(network, await info.spotMeta()), staleTime: 5 * 60_000, }) diff --git a/packages/widget/test/bundle-size.test.ts b/packages/widget/test/bundle-size.test.ts index 4cd037a..1da2a47 100644 --- a/packages/widget/test/bundle-size.test.ts +++ b/packages/widget/test/bundle-size.test.ts @@ -10,19 +10,19 @@ import { describe, expect, it } from 'vitest' * over-the-wire size to end users is gzipped and roughly 30 to 35 % of * this number. * - * Current actual: ~55.1 KB ESM after the browser agent-session flow, native + * Current actual: ~56.6 KB ESM after the browser agent-session flow, native * USDC bridge support, and dual-token balance display. Budget leaves a small * cushion while still catching dependency creep; viem/accounts remains * external and is not bundled into the widget. */ -const BUDGET_KB = 56 +const BUDGET_KB = 58 describe('widget bundle size', () => { it('ESM bundle stays under budget', () => { const distPath = resolve(__dirname, '../dist/index.js') if (!existsSync(distPath)) { throw new Error( - `dist/index.js missing at ${distPath} — run \`pnpm --filter @usdh-kit/widget build\` before \`pnpm test\``, + `dist/index.js missing at ${distPath} -- run \`pnpm --filter @usdh-kit/widget build\` before \`pnpm test\``, ) } const sizeBytes = statSync(distPath).size diff --git a/packages/widget/test/usdh-swap.test.tsx b/packages/widget/test/usdh-swap.test.tsx index 2e56828..b202136 100644 --- a/packages/widget/test/usdh-swap.test.tsx +++ b/packages/widget/test/usdh-swap.test.tsx @@ -145,9 +145,23 @@ vi.mock('@usdh-kit/sdk', () => ({ bridgeAndSwap: mockBridgeAndSwap, }), createInfoClient: () => ({ - spotMeta: vi.fn(), + spotMeta: vi.fn(async () => ({})), + l2Book: vi.fn(async () => ({ + coin: '@230', + levels: [[{ px: '0.9999', sz: '10', n: 1 }], [{ px: '1.0001', sz: '10', n: 1 }]], + })), spotClearinghouseState: vi.fn(), }), + listUsdhSpotPairs: () => [ + { + name: '@230', + label: 'USDH/USDC', + index: 230, + base: 'USDH', + quote: 'USDC', + usdhRole: 'base', + }, + ], getHyperEvmNativeUsdcAddress: () => '0xb88339cb7199b77e23db6e890353e22632ba630f', BridgeAndSwapError: class extends Error { phase: string @@ -258,14 +272,17 @@ describe('USDHSwap', () => { expect(screen.getByRole('button', { name: 'Testnet' })).toHaveAttribute('aria-pressed', 'false') }) - it('renders the connect prompt when no wallet is connected', () => { + it('renders the swap form when no wallet is connected', () => { mockUseAccount.mockReturnValue({ isConnected: false }) mockUseWalletClient.mockReturnValue({ data: undefined }) mockUseChainId.mockReturnValue(0) render() - expect(screen.getByText(/Connect a wallet on HyperEVM Testnet/)).toBeInTheDocument() + expect(screen.getByText('You pay')).toBeInTheDocument() + expect(screen.getByText('You receive')).toBeInTheDocument() + expect(screen.getByRole('button', { name: 'Connect wallet to swap' })).toBeDisabled() + expect(screen.queryByText(/Connect a wallet on HyperEVM Testnet/)).not.toBeInTheDocument() }) it('syncs the internal network when the required network prop changes', () => { @@ -278,7 +295,7 @@ describe('USDHSwap', () => { rerender() expect(screen.getByRole('button', { name: 'Testnet' })).toHaveAttribute('aria-pressed', 'true') - expect(screen.getByText(/Connect a wallet on HyperEVM Testnet/)).toBeInTheDocument() + expect(screen.getByRole('button', { name: 'Connect wallet to swap' })).toBeDisabled() }) it('renders the wrong-network row with a Switch button when chain id mismatches', () => { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7ced7b2..8c0d67e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -34,7 +34,7 @@ importers: dependencies: '@tanstack/react-query': specifier: 5.62.7 - version: 5.62.7(react@19.0.0) + version: 5.62.7(react@18.3.1) '@usdh-kit/sdk': specifier: workspace:* version: link:../../packages/sdk @@ -43,32 +43,32 @@ importers: version: link:../../packages/widget connectkit: specifier: 1.8.2 - version: 1.8.2(@babel/core@7.29.0)(@tanstack/react-query@5.62.7(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react-is@16.13.1)(react@19.0.0)(viem@2.21.55(bufferutil@4.1.0)(typescript@5.7.2)(utf-8-validate@5.0.10))(wagmi@2.14.6(@tanstack/query-core@5.62.7)(@tanstack/react-query@5.62.7(react@19.0.0))(@types/react@19.0.1)(bufferutil@4.1.0)(react@19.0.0)(typescript@5.7.2)(utf-8-validate@5.0.10)(viem@2.21.55(bufferutil@4.1.0)(typescript@5.7.2)(utf-8-validate@5.0.10))) + version: 1.8.2(@babel/core@7.29.0)(@tanstack/react-query@5.62.7(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react-is@17.0.2)(react@18.3.1)(viem@2.21.55(bufferutil@4.1.0)(typescript@5.7.2)(utf-8-validate@5.0.10))(wagmi@2.14.6(@tanstack/query-core@5.62.7)(@tanstack/react-query@5.62.7(react@18.3.1))(@types/react@18.3.18)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.7.2)(utf-8-validate@5.0.10)(viem@2.21.55(bufferutil@4.1.0)(typescript@5.7.2)(utf-8-validate@5.0.10))) next: - specifier: 15.1.0 - version: 15.1.0(@babel/core@7.29.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + specifier: 15.5.18 + version: 15.5.18(@babel/core@7.29.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: - specifier: 19.0.0 - version: 19.0.0 + specifier: 18.3.1 + version: 18.3.1 react-dom: - specifier: 19.0.0 - version: 19.0.0(react@19.0.0) + specifier: 18.3.1 + version: 18.3.1(react@18.3.1) viem: specifier: 2.21.55 version: 2.21.55(bufferutil@4.1.0)(typescript@5.7.2)(utf-8-validate@5.0.10) wagmi: specifier: 2.14.6 - version: 2.14.6(@tanstack/query-core@5.62.7)(@tanstack/react-query@5.62.7(react@19.0.0))(@types/react@19.0.1)(bufferutil@4.1.0)(react@19.0.0)(typescript@5.7.2)(utf-8-validate@5.0.10)(viem@2.21.55(bufferutil@4.1.0)(typescript@5.7.2)(utf-8-validate@5.0.10)) + version: 2.14.6(@tanstack/query-core@5.62.7)(@tanstack/react-query@5.62.7(react@18.3.1))(@types/react@18.3.18)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.7.2)(utf-8-validate@5.0.10)(viem@2.21.55(bufferutil@4.1.0)(typescript@5.7.2)(utf-8-validate@5.0.10)) devDependencies: '@types/node': specifier: 22.10.2 version: 22.10.2 '@types/react': - specifier: 19.0.1 - version: 19.0.1 + specifier: 18.3.18 + version: 18.3.18 '@types/react-dom': - specifier: 19.0.2 - version: 19.0.2(@types/react@19.0.1) + specifier: 18.3.5 + version: 18.3.5(@types/react@18.3.18) autoprefixer: specifier: 10.4.20 version: 10.4.20(postcss@8.4.49) @@ -175,28 +175,28 @@ importers: devDependencies: '@tanstack/react-query': specifier: 5.62.7 - version: 5.62.7(react@19.0.0) + version: 5.62.7(react@18.3.1) '@testing-library/jest-dom': specifier: 6.6.3 version: 6.6.3 '@testing-library/react': specifier: 16.1.0 - version: 16.1.0(@testing-library/dom@10.4.1)(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 16.1.0(@testing-library/dom@10.4.1)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/react': - specifier: 19.0.1 - version: 19.0.1 + specifier: 18.3.18 + version: 18.3.18 '@types/react-dom': - specifier: 19.0.2 - version: 19.0.2(@types/react@19.0.1) + specifier: 18.3.5 + version: 18.3.5(@types/react@18.3.18) jsdom: specifier: 25.0.1 version: 25.0.1(bufferutil@4.1.0)(utf-8-validate@5.0.10) react: - specifier: 19.0.0 - version: 19.0.0 + specifier: 18.3.1 + version: 18.3.1 react-dom: - specifier: 19.0.0 - version: 19.0.0(react@19.0.0) + specifier: 18.3.1 + version: 18.3.1(react@18.3.1) tailwindcss: specifier: 3.4.17 version: 3.4.17 @@ -214,7 +214,7 @@ importers: version: 2.1.8(@types/node@25.6.0)(jsdom@25.0.1(bufferutil@4.1.0)(utf-8-validate@5.0.10)) wagmi: specifier: 2.14.6 - version: 2.14.6(@tanstack/query-core@5.62.7)(@tanstack/react-query@5.62.7(react@19.0.0))(@types/react@19.0.1)(bufferutil@4.1.0)(react@19.0.0)(typescript@5.7.2)(utf-8-validate@5.0.10)(viem@2.21.55(bufferutil@4.1.0)(typescript@5.7.2)(utf-8-validate@5.0.10)) + version: 2.14.6(@tanstack/query-core@5.62.7)(@tanstack/react-query@5.62.7(react@18.3.1))(@types/react@18.3.18)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.7.2)(utf-8-validate@5.0.10)(viem@2.21.55(bufferutil@4.1.0)(typescript@5.7.2)(utf-8-validate@5.0.10)) packages: @@ -1006,119 +1006,155 @@ packages: resolution: {integrity: sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==} engines: {node: '>=14'} - '@img/sharp-darwin-arm64@0.33.5': - resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} + '@img/colour@1.1.0': + resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==} + engines: {node: '>=18'} + + '@img/sharp-darwin-arm64@0.34.5': + resolution: {integrity: sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [darwin] - '@img/sharp-darwin-x64@0.33.5': - resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} + '@img/sharp-darwin-x64@0.34.5': + resolution: {integrity: sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [darwin] - '@img/sharp-libvips-darwin-arm64@1.0.4': - resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} + '@img/sharp-libvips-darwin-arm64@1.2.4': + resolution: {integrity: sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==} cpu: [arm64] os: [darwin] - '@img/sharp-libvips-darwin-x64@1.0.4': - resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} + '@img/sharp-libvips-darwin-x64@1.2.4': + resolution: {integrity: sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==} cpu: [x64] os: [darwin] - '@img/sharp-libvips-linux-arm64@1.0.4': - resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} + '@img/sharp-libvips-linux-arm64@1.2.4': + resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==} cpu: [arm64] os: [linux] libc: [glibc] - '@img/sharp-libvips-linux-arm@1.0.5': - resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} + '@img/sharp-libvips-linux-arm@1.2.4': + resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==} cpu: [arm] os: [linux] libc: [glibc] - '@img/sharp-libvips-linux-s390x@1.0.4': - resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} + '@img/sharp-libvips-linux-ppc64@1.2.4': + resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linux-riscv64@1.2.4': + resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linux-s390x@1.2.4': + resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==} cpu: [s390x] os: [linux] libc: [glibc] - '@img/sharp-libvips-linux-x64@1.0.4': - resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} + '@img/sharp-libvips-linux-x64@1.2.4': + resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==} cpu: [x64] os: [linux] libc: [glibc] - '@img/sharp-libvips-linuxmusl-arm64@1.0.4': - resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} + '@img/sharp-libvips-linuxmusl-arm64@1.2.4': + resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==} cpu: [arm64] os: [linux] libc: [musl] - '@img/sharp-libvips-linuxmusl-x64@1.0.4': - resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} + '@img/sharp-libvips-linuxmusl-x64@1.2.4': + resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==} cpu: [x64] os: [linux] libc: [musl] - '@img/sharp-linux-arm64@0.33.5': - resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} + '@img/sharp-linux-arm64@0.34.5': + resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] libc: [glibc] - '@img/sharp-linux-arm@0.33.5': - resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} + '@img/sharp-linux-arm@0.34.5': + resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] libc: [glibc] - '@img/sharp-linux-s390x@0.33.5': - resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} + '@img/sharp-linux-ppc64@0.34.5': + resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@img/sharp-linux-riscv64@0.34.5': + resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@img/sharp-linux-s390x@0.34.5': + resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] libc: [glibc] - '@img/sharp-linux-x64@0.33.5': - resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} + '@img/sharp-linux-x64@0.34.5': + resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] libc: [glibc] - '@img/sharp-linuxmusl-arm64@0.33.5': - resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} + '@img/sharp-linuxmusl-arm64@0.34.5': + resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] libc: [musl] - '@img/sharp-linuxmusl-x64@0.33.5': - resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} + '@img/sharp-linuxmusl-x64@0.34.5': + resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] libc: [musl] - '@img/sharp-wasm32@0.33.5': - resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} + '@img/sharp-wasm32@0.34.5': + resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [wasm32] - '@img/sharp-win32-ia32@0.33.5': - resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} + '@img/sharp-win32-arm64@0.34.5': + resolution: {integrity: sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [win32] + + '@img/sharp-win32-ia32@0.34.5': + resolution: {integrity: sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ia32] os: [win32] - '@img/sharp-win32-x64@0.33.5': - resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} + '@img/sharp-win32-x64@0.34.5': + resolution: {integrity: sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [win32] @@ -1251,57 +1287,57 @@ packages: resolution: {integrity: sha512-z10PF9JV6SbjFq+/rYabM+8CVlMokgl8RFGvieSGNTmrkQanfHn+15XBrhG3BgUfvmTeSeyShfOHpG0i9zEdcg==} deprecated: Motion One for Vue is deprecated. Use Oku Motion instead https://oku-ui.com/motion - '@next/env@15.1.0': - resolution: {integrity: sha512-UcCO481cROsqJuszPPXJnb7GGuLq617ve4xuAyyNG4VSSocJNtMU5Fsx+Lp6mlN8c7W58aZLc5y6D/2xNmaK+w==} + '@next/env@15.5.18': + resolution: {integrity: sha512-hAV85Ckd9QR6RvH04MEKwsfLTksvFpO47j9xwtoIuvuPnlwecpSi+uZTtm8HirVbtlI2Fnz//xpcSTjFdyJk+g==} - '@next/swc-darwin-arm64@15.1.0': - resolution: {integrity: sha512-ZU8d7xxpX14uIaFC3nsr4L++5ZS/AkWDm1PzPO6gD9xWhFkOj2hzSbSIxoncsnlJXB1CbLOfGVN4Zk9tg83PUw==} + '@next/swc-darwin-arm64@15.5.18': + resolution: {integrity: sha512-w0WvQf1n+txiwns/9pwIQteCJpZTbxzO2SE0FLcwuD4v0WEh1JPOjdyxWL21XwJsdpx8cFRjyzxzCS/siP7HcQ==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@15.1.0': - resolution: {integrity: sha512-DQ3RiUoW2XC9FcSM4ffpfndq1EsLV0fj0/UY33i7eklW5akPUCo6OX2qkcLXZ3jyPdo4sf2flwAED3AAq3Om2Q==} + '@next/swc-darwin-x64@15.5.18': + resolution: {integrity: sha512-znn71QmDuxm+BOaglihMZfvyySMnNljkVIY5Z2TCssBmm+WqL6c19VhtH5ktFkHa8EZ2bnTUpcNcmNSQsg67og==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@15.1.0': - resolution: {integrity: sha512-M+vhTovRS2F//LMx9KtxbkWk627l5Q7AqXWWWrfIzNIaUFiz2/NkOFkxCFyNyGACi5YbA8aekzCLtbDyfF/v5Q==} + '@next/swc-linux-arm64-gnu@15.5.18': + resolution: {integrity: sha512-yPPe5MNL+igZUa+OsqQJisqSfh6oarIuA1Q0BDxljGJhRQyZeP+WRHh7rs/jZUGMh5aY0YdIjXZG0VohkKkUdw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [glibc] - '@next/swc-linux-arm64-musl@15.1.0': - resolution: {integrity: sha512-Qn6vOuwaTCx3pNwygpSGtdIu0TfS1KiaYLYXLH5zq1scoTXdwYfdZtwvJTpB1WrLgiQE2Ne2kt8MZok3HlFqmg==} + '@next/swc-linux-arm64-musl@15.5.18': + resolution: {integrity: sha512-glaCczEWIrHsokFZ3pP08U4BpKxwIdnT+txdOM32OBgpL9Yw4aqx8NejmgtZQZOdstQ5f0L3CasIZudzCuD+nw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [musl] - '@next/swc-linux-x64-gnu@15.1.0': - resolution: {integrity: sha512-yeNh9ofMqzOZ5yTOk+2rwncBzucc6a1lyqtg8xZv0rH5znyjxHOWsoUtSq4cUTeeBIiXXX51QOOe+VoCjdXJRw==} + '@next/swc-linux-x64-gnu@15.5.18': + resolution: {integrity: sha512-oUfg2EgJmU3R0OCOWiokGFUTvZiPfXtriXiuF3YNxRoROCdgvTedHIzYoeKH34gsZxS/V7mHbfq2hpAHwhH1/A==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [glibc] - '@next/swc-linux-x64-musl@15.1.0': - resolution: {integrity: sha512-t9IfNkHQs/uKgPoyEtU912MG6a1j7Had37cSUyLTKx9MnUpjj+ZDKw9OyqTI9OwIIv0wmkr1pkZy+3T5pxhJPg==} + '@next/swc-linux-x64-musl@15.5.18': + resolution: {integrity: sha512-JLxSP3KTd9iu/bvUMQxH7RJo9xKSHf55/6RPE4a6FTSZygGn7uvZbCej0AHXydwkggQGSD9UddSjwv6Xz5ESfA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [musl] - '@next/swc-win32-arm64-msvc@15.1.0': - resolution: {integrity: sha512-WEAoHyG14t5sTavZa1c6BnOIEukll9iqFRTavqRVPfYmfegOAd5MaZfXgOGG6kGo1RduyGdTHD4+YZQSdsNZXg==} + '@next/swc-win32-arm64-msvc@15.5.18': + resolution: {integrity: sha512-ir1v7enP52K2HNz3tQQvwF+x7VNxBk1ciiZ18WBPvxf4C59IqdfmHPJYK3vH7rSxpuCVw/8C712wTXNAtEp+NA==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-x64-msvc@15.1.0': - resolution: {integrity: sha512-J1YdKuJv9xcixzXR24Dv+4SaDKc2jj31IVUEMdO5xJivMTXuE6MAdIi4qPjSymHuFG8O5wbfWKnhJUcHHpj5CA==} + '@next/swc-win32-x64-msvc@15.5.18': + resolution: {integrity: sha512-LIu5me6QTANCd25E7I5uIEfvgQ06RK7tvHAbYo3zCb3VpxQEPvMcSpd87NwUABDT6MbGPdEGR5VRiK4PPTJhQg==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -1576,9 +1612,6 @@ packages: '@stablelib/x25519@1.0.3': resolution: {integrity: sha512-KnTbKmUhPhHavzobclVJQG5kuivH+qDLpe84iRqX3CLrKp881cF160JvXJ+hjn1aMyCwYOKeIZefIH/P5cJoRw==} - '@swc/counter@0.1.3': - resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} - '@swc/helpers@0.5.15': resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} @@ -1637,13 +1670,16 @@ packages: '@types/node@25.6.0': resolution: {integrity: sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==} - '@types/react-dom@19.0.2': - resolution: {integrity: sha512-c1s+7TKFaDRRxr1TxccIX2u7sfCnc3RxkVyBIUA2lCpyqCF+QoAwQ/CBg7bsMdVwP120HEH143VQezKtef5nCg==} + '@types/prop-types@15.7.15': + resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} + + '@types/react-dom@18.3.5': + resolution: {integrity: sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==} peerDependencies: - '@types/react': ^19.0.0 + '@types/react': ^18.0.0 - '@types/react@19.0.1': - resolution: {integrity: sha512-YW6614BDhqbpR5KtUYzTA+zlA7nayzJRA9ljz9CQoxthR0sDisYZLuvSMsil36t4EH/uAt8T52Xb4sVw17G+SQ==} + '@types/react@18.3.18': + resolution: {integrity: sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==} '@types/trusted-types@2.0.7': resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} @@ -1947,10 +1983,6 @@ packages: peerDependencies: esbuild: '>=0.18' - busboy@1.6.0: - resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} - engines: {node: '>=10.16.0'} - cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} @@ -2053,13 +2085,6 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - color-string@1.9.1: - resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} - - color@4.2.3: - resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} - engines: {node: '>=12.5.0'} - colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} @@ -2662,9 +2687,6 @@ packages: is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - is-arrayish@0.3.4: - resolution: {integrity: sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==} - is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} @@ -2901,6 +2923,10 @@ packages: resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} engines: {node: '>=18'} + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + loupe@3.2.1: resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==} @@ -3001,14 +3027,13 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - next@15.1.0: - resolution: {integrity: sha512-QKhzt6Y8rgLNlj30izdMbxAwjHMFANnLwDwZ+WQh5sMhyt4lEBqDK9QpvWHtIM4rINKPoJ8aiRZKg5ULSybVHw==} + next@15.5.18: + resolution: {integrity: sha512-eKL8zUJkX9Y5lE+RX/2YJoItVdGlIscyVyboeD9wSpp0PaGqjoA4tTpT2qPqz9ax+5IzGESyLSeZ/RCwbSZ2uQ==} engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} - deprecated: This version has a security vulnerability. Please upgrade to a patched version. See https://nextjs.org/blog/CVE-2025-66478 for more details. hasBin: true peerDependencies: '@opentelemetry/api': ^1.1.0 - '@playwright/test': ^1.41.2 + '@playwright/test': ^1.51.1 babel-plugin-react-compiler: '*' react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 @@ -3368,10 +3393,10 @@ packages: radix3@1.1.2: resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} - react-dom@19.0.0: - resolution: {integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==} + react-dom@18.3.1: + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} peerDependencies: - react: ^19.0.0 + react: ^18.3.1 react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} @@ -3394,8 +3419,8 @@ packages: react-dom: optional: true - react@19.0.0: - resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==} + react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} engines: {node: '>=0.10.0'} read-cache@1.0.0: @@ -3508,8 +3533,8 @@ packages: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} - scheduler@0.25.0: - resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==} + scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} @@ -3535,8 +3560,8 @@ packages: shallowequal@1.1.0: resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} - sharp@0.33.5: - resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} + sharp@0.34.5: + resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} shebang-command@2.0.0: @@ -3570,9 +3595,6 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - simple-swizzle@0.2.4: - resolution: {integrity: sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==} - slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -3628,10 +3650,6 @@ packages: stream-shift@1.0.3: resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} - streamsearch@1.1.0: - resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} - engines: {node: '>=10.0.0'} - strict-uri-encode@2.0.0: resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==} engines: {node: '>=4'} @@ -4959,79 +4977,101 @@ snapshots: ethereum-cryptography: 2.2.1 micro-ftch: 0.3.1 - '@img/sharp-darwin-arm64@0.33.5': + '@img/colour@1.1.0': + optional: true + + '@img/sharp-darwin-arm64@0.34.5': optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.0.4 + '@img/sharp-libvips-darwin-arm64': 1.2.4 optional: true - '@img/sharp-darwin-x64@0.33.5': + '@img/sharp-darwin-x64@0.34.5': optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.0.4 + '@img/sharp-libvips-darwin-x64': 1.2.4 optional: true - '@img/sharp-libvips-darwin-arm64@1.0.4': + '@img/sharp-libvips-darwin-arm64@1.2.4': optional: true - '@img/sharp-libvips-darwin-x64@1.0.4': + '@img/sharp-libvips-darwin-x64@1.2.4': optional: true - '@img/sharp-libvips-linux-arm64@1.0.4': + '@img/sharp-libvips-linux-arm64@1.2.4': optional: true - '@img/sharp-libvips-linux-arm@1.0.5': + '@img/sharp-libvips-linux-arm@1.2.4': optional: true - '@img/sharp-libvips-linux-s390x@1.0.4': + '@img/sharp-libvips-linux-ppc64@1.2.4': optional: true - '@img/sharp-libvips-linux-x64@1.0.4': + '@img/sharp-libvips-linux-riscv64@1.2.4': optional: true - '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + '@img/sharp-libvips-linux-s390x@1.2.4': optional: true - '@img/sharp-libvips-linuxmusl-x64@1.0.4': + '@img/sharp-libvips-linux-x64@1.2.4': optional: true - '@img/sharp-linux-arm64@0.33.5': + '@img/sharp-libvips-linuxmusl-arm64@1.2.4': + optional: true + + '@img/sharp-libvips-linuxmusl-x64@1.2.4': + optional: true + + '@img/sharp-linux-arm64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.2.4 + optional: true + + '@img/sharp-linux-arm@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.2.4 + optional: true + + '@img/sharp-linux-ppc64@0.34.5': optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.0.4 + '@img/sharp-libvips-linux-ppc64': 1.2.4 optional: true - '@img/sharp-linux-arm@0.33.5': + '@img/sharp-linux-riscv64@0.34.5': optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.0.5 + '@img/sharp-libvips-linux-riscv64': 1.2.4 optional: true - '@img/sharp-linux-s390x@0.33.5': + '@img/sharp-linux-s390x@0.34.5': optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.0.4 + '@img/sharp-libvips-linux-s390x': 1.2.4 optional: true - '@img/sharp-linux-x64@0.33.5': + '@img/sharp-linux-x64@0.34.5': optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.0.4 + '@img/sharp-libvips-linux-x64': 1.2.4 optional: true - '@img/sharp-linuxmusl-arm64@0.33.5': + '@img/sharp-linuxmusl-arm64@0.34.5': optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 optional: true - '@img/sharp-linuxmusl-x64@0.33.5': + '@img/sharp-linuxmusl-x64@0.34.5': optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + '@img/sharp-libvips-linuxmusl-x64': 1.2.4 optional: true - '@img/sharp-wasm32@0.33.5': + '@img/sharp-wasm32@0.34.5': dependencies: '@emnapi/runtime': 1.10.0 optional: true - '@img/sharp-win32-ia32@0.33.5': + '@img/sharp-win32-arm64@0.34.5': optional: true - '@img/sharp-win32-x64@0.33.5': + '@img/sharp-win32-ia32@0.34.5': + optional: true + + '@img/sharp-win32-x64@0.34.5': optional: true '@jridgewell/gen-mapping@0.3.13': @@ -5285,30 +5325,30 @@ snapshots: '@motionone/dom': 10.18.0 tslib: 2.8.1 - '@next/env@15.1.0': {} + '@next/env@15.5.18': {} - '@next/swc-darwin-arm64@15.1.0': + '@next/swc-darwin-arm64@15.5.18': optional: true - '@next/swc-darwin-x64@15.1.0': + '@next/swc-darwin-x64@15.5.18': optional: true - '@next/swc-linux-arm64-gnu@15.1.0': + '@next/swc-linux-arm64-gnu@15.5.18': optional: true - '@next/swc-linux-arm64-musl@15.1.0': + '@next/swc-linux-arm64-musl@15.5.18': optional: true - '@next/swc-linux-x64-gnu@15.1.0': + '@next/swc-linux-x64-gnu@15.5.18': optional: true - '@next/swc-linux-x64-musl@15.1.0': + '@next/swc-linux-x64-musl@15.5.18': optional: true - '@next/swc-win32-arm64-msvc@15.1.0': + '@next/swc-win32-arm64-msvc@15.5.18': optional: true - '@next/swc-win32-x64-msvc@15.1.0': + '@next/swc-win32-x64-msvc@15.5.18': optional: true '@noble/ciphers@1.3.0': {} @@ -5552,18 +5592,16 @@ snapshots: '@stablelib/random': 1.0.2 '@stablelib/wipe': 1.0.1 - '@swc/counter@0.1.3': {} - '@swc/helpers@0.5.15': dependencies: tslib: 2.8.1 '@tanstack/query-core@5.62.7': {} - '@tanstack/react-query@5.62.7(react@19.0.0)': + '@tanstack/react-query@5.62.7(react@18.3.1)': dependencies: '@tanstack/query-core': 5.62.7 - react: 19.0.0 + react: 18.3.1 '@testing-library/dom@10.4.1': dependencies: @@ -5586,15 +5624,15 @@ snapshots: lodash: 4.18.1 redent: 3.0.0 - '@testing-library/react@16.1.0(@testing-library/dom@10.4.1)(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@testing-library/react@16.1.0(@testing-library/dom@10.4.1)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.29.2 '@testing-library/dom': 10.4.1 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 19.0.1 - '@types/react-dom': 19.0.2(@types/react@19.0.1) + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) '@types/aria-query@5.0.4': {} @@ -5620,12 +5658,15 @@ snapshots: dependencies: undici-types: 7.19.2 - '@types/react-dom@19.0.2(@types/react@19.0.1)': + '@types/prop-types@15.7.15': {} + + '@types/react-dom@18.3.5(@types/react@18.3.18)': dependencies: - '@types/react': 19.0.1 + '@types/react': 18.3.18 - '@types/react@19.0.1': + '@types/react@18.3.18': dependencies: + '@types/prop-types': 15.7.15 csstype: 3.2.3 '@types/trusted-types@2.0.7': {} @@ -5682,14 +5723,14 @@ snapshots: loupe: 3.2.1 tinyrainbow: 1.2.0 - '@wagmi/connectors@5.7.3(@types/react@19.0.1)(@wagmi/core@2.16.3(@tanstack/query-core@5.62.7)(@types/react@19.0.1)(react@19.0.0)(typescript@5.7.2)(use-sync-external-store@1.2.0(react@19.0.0))(viem@2.21.55(bufferutil@4.1.0)(typescript@5.7.2)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(react@19.0.0)(typescript@5.7.2)(utf-8-validate@5.0.10)(viem@2.21.55(bufferutil@4.1.0)(typescript@5.7.2)(utf-8-validate@5.0.10))': + '@wagmi/connectors@5.7.3(@types/react@18.3.18)(@wagmi/core@2.16.3(@tanstack/query-core@5.62.7)(@types/react@18.3.18)(react@18.3.1)(typescript@5.7.2)(use-sync-external-store@1.2.0(react@18.3.1))(viem@2.21.55(bufferutil@4.1.0)(typescript@5.7.2)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(react@18.3.1)(typescript@5.7.2)(utf-8-validate@5.0.10)(viem@2.21.55(bufferutil@4.1.0)(typescript@5.7.2)(utf-8-validate@5.0.10))': dependencies: '@coinbase/wallet-sdk': 4.2.3 '@metamask/sdk': 0.31.4(bufferutil@4.1.0)(utf-8-validate@5.0.10) '@safe-global/safe-apps-provider': 0.18.5(bufferutil@4.1.0)(typescript@5.7.2)(utf-8-validate@5.0.10) '@safe-global/safe-apps-sdk': 9.1.0(bufferutil@4.1.0)(typescript@5.7.2)(utf-8-validate@5.0.10) - '@wagmi/core': 2.16.3(@tanstack/query-core@5.62.7)(@types/react@19.0.1)(react@19.0.0)(typescript@5.7.2)(use-sync-external-store@1.2.0(react@19.0.0))(viem@2.21.55(bufferutil@4.1.0)(typescript@5.7.2)(utf-8-validate@5.0.10)) - '@walletconnect/ethereum-provider': 2.17.0(@types/react@19.0.1)(bufferutil@4.1.0)(react@19.0.0)(utf-8-validate@5.0.10) + '@wagmi/core': 2.16.3(@tanstack/query-core@5.62.7)(@types/react@18.3.18)(react@18.3.1)(typescript@5.7.2)(use-sync-external-store@1.2.0(react@18.3.1))(viem@2.21.55(bufferutil@4.1.0)(typescript@5.7.2)(utf-8-validate@5.0.10)) + '@walletconnect/ethereum-provider': 2.17.0(@types/react@18.3.18)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10) cbw-sdk: '@coinbase/wallet-sdk@3.9.3' viem: 2.21.55(bufferutil@4.1.0)(typescript@5.7.2)(utf-8-validate@5.0.10) optionalDependencies: @@ -5722,12 +5763,12 @@ snapshots: - utf-8-validate - zod - '@wagmi/core@2.16.3(@tanstack/query-core@5.62.7)(@types/react@19.0.1)(react@19.0.0)(typescript@5.7.2)(use-sync-external-store@1.2.0(react@19.0.0))(viem@2.21.55(bufferutil@4.1.0)(typescript@5.7.2)(utf-8-validate@5.0.10))': + '@wagmi/core@2.16.3(@tanstack/query-core@5.62.7)(@types/react@18.3.18)(react@18.3.1)(typescript@5.7.2)(use-sync-external-store@1.2.0(react@18.3.1))(viem@2.21.55(bufferutil@4.1.0)(typescript@5.7.2)(utf-8-validate@5.0.10))': dependencies: eventemitter3: 5.0.1 mipd: 0.0.7(typescript@5.7.2) viem: 2.21.55(bufferutil@4.1.0)(typescript@5.7.2)(utf-8-validate@5.0.10) - zustand: 5.0.0(@types/react@19.0.1)(react@19.0.0)(use-sync-external-store@1.2.0(react@19.0.0)) + zustand: 5.0.0(@types/react@18.3.18)(react@18.3.1)(use-sync-external-store@1.2.0(react@18.3.1)) optionalDependencies: '@tanstack/query-core': 5.62.7 typescript: 5.7.2 @@ -5782,13 +5823,13 @@ snapshots: dependencies: tslib: 1.14.1 - '@walletconnect/ethereum-provider@2.17.0(@types/react@19.0.1)(bufferutil@4.1.0)(react@19.0.0)(utf-8-validate@5.0.10)': + '@walletconnect/ethereum-provider@2.17.0(@types/react@18.3.18)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)': dependencies: '@walletconnect/jsonrpc-http-connection': 1.0.8 '@walletconnect/jsonrpc-provider': 1.0.14 '@walletconnect/jsonrpc-types': 1.0.4 '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/modal': 2.7.0(@types/react@19.0.1)(react@19.0.0) + '@walletconnect/modal': 2.7.0(@types/react@18.3.18)(react@18.3.1) '@walletconnect/sign-client': 2.17.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) '@walletconnect/types': 2.17.0 '@walletconnect/universal-provider': 2.17.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) @@ -5897,16 +5938,16 @@ snapshots: '@walletconnect/safe-json': 1.0.2 pino: 7.11.0 - '@walletconnect/modal-core@2.7.0(@types/react@19.0.1)(react@19.0.0)': + '@walletconnect/modal-core@2.7.0(@types/react@18.3.18)(react@18.3.1)': dependencies: - valtio: 1.11.2(@types/react@19.0.1)(react@19.0.0) + valtio: 1.11.2(@types/react@18.3.18)(react@18.3.1) transitivePeerDependencies: - '@types/react' - react - '@walletconnect/modal-ui@2.7.0(@types/react@19.0.1)(react@19.0.0)': + '@walletconnect/modal-ui@2.7.0(@types/react@18.3.18)(react@18.3.1)': dependencies: - '@walletconnect/modal-core': 2.7.0(@types/react@19.0.1)(react@19.0.0) + '@walletconnect/modal-core': 2.7.0(@types/react@18.3.18)(react@18.3.1) lit: 2.8.0 motion: 10.16.2 qrcode: 1.5.3 @@ -5914,10 +5955,10 @@ snapshots: - '@types/react' - react - '@walletconnect/modal@2.7.0(@types/react@19.0.1)(react@19.0.0)': + '@walletconnect/modal@2.7.0(@types/react@18.3.18)(react@18.3.1)': dependencies: - '@walletconnect/modal-core': 2.7.0(@types/react@19.0.1)(react@19.0.0) - '@walletconnect/modal-ui': 2.7.0(@types/react@19.0.1)(react@19.0.0) + '@walletconnect/modal-core': 2.7.0(@types/react@18.3.18)(react@18.3.1) + '@walletconnect/modal-ui': 2.7.0(@types/react@18.3.18)(react@18.3.1) transitivePeerDependencies: - '@types/react' - react @@ -6174,14 +6215,14 @@ snapshots: dependencies: possible-typed-array-names: 1.1.0 - babel-plugin-styled-components@2.1.4(@babel/core@7.29.0)(styled-components@5.3.11(@babel/core@7.29.0)(react-dom@19.0.0(react@19.0.0))(react-is@16.13.1)(react@19.0.0))(supports-color@5.5.0): + babel-plugin-styled-components@2.1.4(@babel/core@7.29.0)(styled-components@5.3.11(@babel/core@7.29.0)(react-dom@18.3.1(react@18.3.1))(react-is@17.0.2)(react@18.3.1))(supports-color@5.5.0): dependencies: '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-module-imports': 7.28.6(supports-color@5.5.0) '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) lodash: 4.18.1 picomatch: 2.3.2 - styled-components: 5.3.11(@babel/core@7.29.0)(react-dom@19.0.0(react@19.0.0))(react-is@16.13.1)(react@19.0.0) + styled-components: 5.3.11(@babel/core@7.29.0)(react-dom@18.3.1(react@18.3.1))(react-is@17.0.2)(react@18.3.1) transitivePeerDependencies: - '@babel/core' - supports-color @@ -6230,10 +6271,6 @@ snapshots: esbuild: 0.24.2 load-tsconfig: 0.2.5 - busboy@1.6.0: - dependencies: - streamsearch: 1.1.0 - cac@6.7.14: {} call-bind-apply-helpers@1.0.2: @@ -6337,18 +6374,6 @@ snapshots: color-name@1.1.4: {} - color-string@1.9.1: - dependencies: - color-name: 1.1.4 - simple-swizzle: 0.2.4 - optional: true - - color@4.2.3: - dependencies: - color-convert: 2.0.1 - color-string: 1.9.1 - optional: true - colorette@2.0.20: {} combined-stream@1.0.8: @@ -6364,21 +6389,21 @@ snapshots: array-ify: 1.0.0 dot-prop: 5.3.0 - connectkit@1.8.2(@babel/core@7.29.0)(@tanstack/react-query@5.62.7(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react-is@16.13.1)(react@19.0.0)(viem@2.21.55(bufferutil@4.1.0)(typescript@5.7.2)(utf-8-validate@5.0.10))(wagmi@2.14.6(@tanstack/query-core@5.62.7)(@tanstack/react-query@5.62.7(react@19.0.0))(@types/react@19.0.1)(bufferutil@4.1.0)(react@19.0.0)(typescript@5.7.2)(utf-8-validate@5.0.10)(viem@2.21.55(bufferutil@4.1.0)(typescript@5.7.2)(utf-8-validate@5.0.10))): + connectkit@1.8.2(@babel/core@7.29.0)(@tanstack/react-query@5.62.7(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react-is@17.0.2)(react@18.3.1)(viem@2.21.55(bufferutil@4.1.0)(typescript@5.7.2)(utf-8-validate@5.0.10))(wagmi@2.14.6(@tanstack/query-core@5.62.7)(@tanstack/react-query@5.62.7(react@18.3.1))(@types/react@18.3.18)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.7.2)(utf-8-validate@5.0.10)(viem@2.21.55(bufferutil@4.1.0)(typescript@5.7.2)(utf-8-validate@5.0.10))): dependencies: - '@tanstack/react-query': 5.62.7(react@19.0.0) + '@tanstack/react-query': 5.62.7(react@18.3.1) buffer: 6.0.3 detect-browser: 5.3.0 - framer-motion: 6.5.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + framer-motion: 6.5.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) qrcode: 1.5.4 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - react-transition-state: 1.1.5(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - react-use-measure: 2.1.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-transition-state: 1.1.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-use-measure: 2.1.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1) resize-observer-polyfill: 1.5.1 - styled-components: 5.3.11(@babel/core@7.29.0)(react-dom@19.0.0(react@19.0.0))(react-is@16.13.1)(react@19.0.0) + styled-components: 5.3.11(@babel/core@7.29.0)(react-dom@18.3.1(react@18.3.1))(react-is@17.0.2)(react@18.3.1) viem: 2.21.55(bufferutil@4.1.0)(typescript@5.7.2)(utf-8-validate@5.0.10) - wagmi: 2.14.6(@tanstack/query-core@5.62.7)(@tanstack/react-query@5.62.7(react@19.0.0))(@types/react@19.0.1)(bufferutil@4.1.0)(react@19.0.0)(typescript@5.7.2)(utf-8-validate@5.0.10)(viem@2.21.55(bufferutil@4.1.0)(typescript@5.7.2)(utf-8-validate@5.0.10)) + wagmi: 2.14.6(@tanstack/query-core@5.62.7)(@tanstack/react-query@5.62.7(react@18.3.1))(@types/react@18.3.18)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.7.2)(utf-8-validate@5.0.10)(viem@2.21.55(bufferutil@4.1.0)(typescript@5.7.2)(utf-8-validate@5.0.10)) transitivePeerDependencies: - '@babel/core' - react-is @@ -6832,14 +6857,14 @@ snapshots: fraction.js@4.3.7: {} - framer-motion@6.5.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + framer-motion@6.5.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@motionone/dom': 10.12.0 framesync: 6.0.1 hey-listen: 1.0.8 popmotion: 11.0.3 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) style-value-types: 5.0.0 tslib: 2.8.1 optionalDependencies: @@ -7036,9 +7061,6 @@ snapshots: is-arrayish@0.2.1: {} - is-arrayish@0.3.4: - optional: true - is-binary-path@2.1.0: dependencies: binary-extensions: 2.3.0 @@ -7272,6 +7294,10 @@ snapshots: strip-ansi: 7.2.0 wrap-ansi: 9.0.2 + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 + loupe@3.2.1: {} lru-cache@10.4.3: {} @@ -7348,27 +7374,25 @@ snapshots: nanoid@3.3.11: {} - next@15.1.0(@babel/core@7.29.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + next@15.5.18(@babel/core@7.29.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@next/env': 15.1.0 - '@swc/counter': 0.1.3 + '@next/env': 15.5.18 '@swc/helpers': 0.5.15 - busboy: 1.6.0 caniuse-lite: 1.0.30001791 postcss: 8.4.31 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - styled-jsx: 5.1.6(@babel/core@7.29.0)(react@19.0.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + styled-jsx: 5.1.6(@babel/core@7.29.0)(react@18.3.1) optionalDependencies: - '@next/swc-darwin-arm64': 15.1.0 - '@next/swc-darwin-x64': 15.1.0 - '@next/swc-linux-arm64-gnu': 15.1.0 - '@next/swc-linux-arm64-musl': 15.1.0 - '@next/swc-linux-x64-gnu': 15.1.0 - '@next/swc-linux-x64-musl': 15.1.0 - '@next/swc-win32-arm64-msvc': 15.1.0 - '@next/swc-win32-x64-msvc': 15.1.0 - sharp: 0.33.5 + '@next/swc-darwin-arm64': 15.5.18 + '@next/swc-darwin-x64': 15.5.18 + '@next/swc-linux-arm64-gnu': 15.5.18 + '@next/swc-linux-arm64-musl': 15.5.18 + '@next/swc-linux-x64-gnu': 15.5.18 + '@next/swc-linux-x64-musl': 15.5.18 + '@next/swc-win32-arm64-msvc': 15.5.18 + '@next/swc-win32-x64-msvc': 15.5.18 + sharp: 0.34.5 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -7672,27 +7696,30 @@ snapshots: radix3@1.1.2: {} - react-dom@19.0.0(react@19.0.0): + react-dom@18.3.1(react@18.3.1): dependencies: - react: 19.0.0 - scheduler: 0.25.0 + loose-envify: 1.4.0 + react: 18.3.1 + scheduler: 0.23.2 react-is@16.13.1: {} react-is@17.0.2: {} - react-transition-state@1.1.5(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + react-transition-state@1.1.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) - react-use-measure@2.1.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + react-use-measure@2.1.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - react: 19.0.0 + react: 18.3.1 optionalDependencies: - react-dom: 19.0.0(react@19.0.0) + react-dom: 18.3.1(react@18.3.1) - react@19.0.0: {} + react@18.3.1: + dependencies: + loose-envify: 1.4.0 read-cache@1.0.0: dependencies: @@ -7823,7 +7850,9 @@ snapshots: dependencies: xmlchars: 2.2.0 - scheduler@0.25.0: {} + scheduler@0.23.2: + dependencies: + loose-envify: 1.4.0 semver@6.3.1: {} @@ -7848,31 +7877,36 @@ snapshots: shallowequal@1.1.0: {} - sharp@0.33.5: + sharp@0.34.5: dependencies: - color: 4.2.3 + '@img/colour': 1.1.0 detect-libc: 2.1.2 semver: 7.7.4 optionalDependencies: - '@img/sharp-darwin-arm64': 0.33.5 - '@img/sharp-darwin-x64': 0.33.5 - '@img/sharp-libvips-darwin-arm64': 1.0.4 - '@img/sharp-libvips-darwin-x64': 1.0.4 - '@img/sharp-libvips-linux-arm': 1.0.5 - '@img/sharp-libvips-linux-arm64': 1.0.4 - '@img/sharp-libvips-linux-s390x': 1.0.4 - '@img/sharp-libvips-linux-x64': 1.0.4 - '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 - '@img/sharp-libvips-linuxmusl-x64': 1.0.4 - '@img/sharp-linux-arm': 0.33.5 - '@img/sharp-linux-arm64': 0.33.5 - '@img/sharp-linux-s390x': 0.33.5 - '@img/sharp-linux-x64': 0.33.5 - '@img/sharp-linuxmusl-arm64': 0.33.5 - '@img/sharp-linuxmusl-x64': 0.33.5 - '@img/sharp-wasm32': 0.33.5 - '@img/sharp-win32-ia32': 0.33.5 - '@img/sharp-win32-x64': 0.33.5 + '@img/sharp-darwin-arm64': 0.34.5 + '@img/sharp-darwin-x64': 0.34.5 + '@img/sharp-libvips-darwin-arm64': 1.2.4 + '@img/sharp-libvips-darwin-x64': 1.2.4 + '@img/sharp-libvips-linux-arm': 1.2.4 + '@img/sharp-libvips-linux-arm64': 1.2.4 + '@img/sharp-libvips-linux-ppc64': 1.2.4 + '@img/sharp-libvips-linux-riscv64': 1.2.4 + '@img/sharp-libvips-linux-s390x': 1.2.4 + '@img/sharp-libvips-linux-x64': 1.2.4 + '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 + '@img/sharp-libvips-linuxmusl-x64': 1.2.4 + '@img/sharp-linux-arm': 0.34.5 + '@img/sharp-linux-arm64': 0.34.5 + '@img/sharp-linux-ppc64': 0.34.5 + '@img/sharp-linux-riscv64': 0.34.5 + '@img/sharp-linux-s390x': 0.34.5 + '@img/sharp-linux-x64': 0.34.5 + '@img/sharp-linuxmusl-arm64': 0.34.5 + '@img/sharp-linuxmusl-x64': 0.34.5 + '@img/sharp-wasm32': 0.34.5 + '@img/sharp-win32-arm64': 0.34.5 + '@img/sharp-win32-ia32': 0.34.5 + '@img/sharp-win32-x64': 0.34.5 optional: true shebang-command@2.0.0: @@ -7913,11 +7947,6 @@ snapshots: signal-exit@4.1.0: {} - simple-swizzle@0.2.4: - dependencies: - is-arrayish: 0.3.4 - optional: true - slash@3.0.0: {} slice-ansi@5.0.0: @@ -7975,8 +8004,6 @@ snapshots: stream-shift@1.0.3: {} - streamsearch@1.1.0: {} - strict-uri-encode@2.0.0: {} string-argv@0.3.2: {} @@ -8027,28 +8054,28 @@ snapshots: hey-listen: 1.0.8 tslib: 2.8.1 - styled-components@5.3.11(@babel/core@7.29.0)(react-dom@19.0.0(react@19.0.0))(react-is@16.13.1)(react@19.0.0): + styled-components@5.3.11(@babel/core@7.29.0)(react-dom@18.3.1(react@18.3.1))(react-is@17.0.2)(react@18.3.1): dependencies: '@babel/helper-module-imports': 7.28.6(supports-color@5.5.0) '@babel/traverse': 7.29.0(supports-color@5.5.0) '@emotion/is-prop-valid': 1.4.0 '@emotion/stylis': 0.8.5 '@emotion/unitless': 0.7.5 - babel-plugin-styled-components: 2.1.4(@babel/core@7.29.0)(styled-components@5.3.11(@babel/core@7.29.0)(react-dom@19.0.0(react@19.0.0))(react-is@16.13.1)(react@19.0.0))(supports-color@5.5.0) + babel-plugin-styled-components: 2.1.4(@babel/core@7.29.0)(styled-components@5.3.11(@babel/core@7.29.0)(react-dom@18.3.1(react@18.3.1))(react-is@17.0.2)(react@18.3.1))(supports-color@5.5.0) css-to-react-native: 3.2.0 hoist-non-react-statics: 3.3.2 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - react-is: 16.13.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-is: 17.0.2 shallowequal: 1.1.0 supports-color: 5.5.0 transitivePeerDependencies: - '@babel/core' - styled-jsx@5.1.6(@babel/core@7.29.0)(react@19.0.0): + styled-jsx@5.1.6(@babel/core@7.29.0)(react@18.3.1): dependencies: client-only: 0.0.1 - react: 19.0.0 + react: 18.3.1 optionalDependencies: '@babel/core': 7.29.0 @@ -8257,9 +8284,9 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.1 - use-sync-external-store@1.2.0(react@19.0.0): + use-sync-external-store@1.2.0(react@18.3.1): dependencies: - react: 19.0.0 + react: 18.3.1 utf-8-validate@5.0.10: dependencies: @@ -8279,13 +8306,13 @@ snapshots: uuid@9.0.1: {} - valtio@1.11.2(@types/react@19.0.1)(react@19.0.0): + valtio@1.11.2(@types/react@18.3.18)(react@18.3.1): dependencies: proxy-compare: 2.5.1 - use-sync-external-store: 1.2.0(react@19.0.0) + use-sync-external-store: 1.2.0(react@18.3.1) optionalDependencies: - '@types/react': 19.0.1 - react: 19.0.0 + '@types/react': 18.3.18 + react: 18.3.1 viem@2.21.55(bufferutil@4.1.0)(typescript@5.7.2)(utf-8-validate@5.0.10): dependencies: @@ -8435,13 +8462,13 @@ snapshots: dependencies: xml-name-validator: 5.0.0 - wagmi@2.14.6(@tanstack/query-core@5.62.7)(@tanstack/react-query@5.62.7(react@19.0.0))(@types/react@19.0.1)(bufferutil@4.1.0)(react@19.0.0)(typescript@5.7.2)(utf-8-validate@5.0.10)(viem@2.21.55(bufferutil@4.1.0)(typescript@5.7.2)(utf-8-validate@5.0.10)): + wagmi@2.14.6(@tanstack/query-core@5.62.7)(@tanstack/react-query@5.62.7(react@18.3.1))(@types/react@18.3.18)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.7.2)(utf-8-validate@5.0.10)(viem@2.21.55(bufferutil@4.1.0)(typescript@5.7.2)(utf-8-validate@5.0.10)): dependencies: - '@tanstack/react-query': 5.62.7(react@19.0.0) - '@wagmi/connectors': 5.7.3(@types/react@19.0.1)(@wagmi/core@2.16.3(@tanstack/query-core@5.62.7)(@types/react@19.0.1)(react@19.0.0)(typescript@5.7.2)(use-sync-external-store@1.2.0(react@19.0.0))(viem@2.21.55(bufferutil@4.1.0)(typescript@5.7.2)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(react@19.0.0)(typescript@5.7.2)(utf-8-validate@5.0.10)(viem@2.21.55(bufferutil@4.1.0)(typescript@5.7.2)(utf-8-validate@5.0.10)) - '@wagmi/core': 2.16.3(@tanstack/query-core@5.62.7)(@types/react@19.0.1)(react@19.0.0)(typescript@5.7.2)(use-sync-external-store@1.2.0(react@19.0.0))(viem@2.21.55(bufferutil@4.1.0)(typescript@5.7.2)(utf-8-validate@5.0.10)) - react: 19.0.0 - use-sync-external-store: 1.2.0(react@19.0.0) + '@tanstack/react-query': 5.62.7(react@18.3.1) + '@wagmi/connectors': 5.7.3(@types/react@18.3.18)(@wagmi/core@2.16.3(@tanstack/query-core@5.62.7)(@types/react@18.3.18)(react@18.3.1)(typescript@5.7.2)(use-sync-external-store@1.2.0(react@18.3.1))(viem@2.21.55(bufferutil@4.1.0)(typescript@5.7.2)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(react@18.3.1)(typescript@5.7.2)(utf-8-validate@5.0.10)(viem@2.21.55(bufferutil@4.1.0)(typescript@5.7.2)(utf-8-validate@5.0.10)) + '@wagmi/core': 2.16.3(@tanstack/query-core@5.62.7)(@types/react@18.3.18)(react@18.3.1)(typescript@5.7.2)(use-sync-external-store@1.2.0(react@18.3.1))(viem@2.21.55(bufferutil@4.1.0)(typescript@5.7.2)(utf-8-validate@5.0.10)) + react: 18.3.1 + use-sync-external-store: 1.2.0(react@18.3.1) viem: 2.21.55(bufferutil@4.1.0)(typescript@5.7.2)(utf-8-validate@5.0.10) optionalDependencies: typescript: 5.7.2 @@ -8614,8 +8641,8 @@ snapshots: yocto-queue@1.2.2: {} - zustand@5.0.0(@types/react@19.0.1)(react@19.0.0)(use-sync-external-store@1.2.0(react@19.0.0)): + zustand@5.0.0(@types/react@18.3.18)(react@18.3.1)(use-sync-external-store@1.2.0(react@18.3.1)): optionalDependencies: - '@types/react': 19.0.1 - react: 19.0.0 - use-sync-external-store: 1.2.0(react@19.0.0) + '@types/react': 18.3.18 + react: 18.3.1 + use-sync-external-store: 1.2.0(react@18.3.1)