diff --git a/examples/react/with-responsive-image/.cta.json b/examples/react/with-responsive-image/.cta.json
new file mode 100644
index 00000000000..ff0249186d2
--- /dev/null
+++ b/examples/react/with-responsive-image/.cta.json
@@ -0,0 +1,11 @@
+{
+ "projectName": "with-responsive-image",
+ "mode": "file-router",
+ "typescript": true,
+ "tailwind": false,
+ "packageManager": "npm",
+ "git": true,
+ "version": 1,
+ "framework": "react-cra",
+ "chosenAddOns": []
+}
diff --git a/examples/react/with-responsive-image/.gitignore b/examples/react/with-responsive-image/.gitignore
new file mode 100644
index 00000000000..693a705328d
--- /dev/null
+++ b/examples/react/with-responsive-image/.gitignore
@@ -0,0 +1,9 @@
+node_modules
+.DS_Store
+dist
+dist-ssr
+*.local
+count.txt
+.env
+.nitro
+.tanstack
diff --git a/examples/react/with-responsive-image/README.md b/examples/react/with-responsive-image/README.md
new file mode 100644
index 00000000000..540217917db
--- /dev/null
+++ b/examples/react/with-responsive-image/README.md
@@ -0,0 +1,5 @@
+# TanStack + ResponsiveImage
+
+Integrating [ResponsiveImage](https://responsive-image.dev) with TanStack Router.
+
+Run `pnpm dev` to run locally.
diff --git a/examples/react/with-responsive-image/index.html b/examples/react/with-responsive-image/index.html
new file mode 100644
index 00000000000..fe0cb11af88
--- /dev/null
+++ b/examples/react/with-responsive-image/index.html
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+ Create TanStack App - with-responsive-image
+
+
+
+
+
+
diff --git a/examples/react/with-responsive-image/package.json b/examples/react/with-responsive-image/package.json
new file mode 100644
index 00000000000..6fc4e037c36
--- /dev/null
+++ b/examples/react/with-responsive-image/package.json
@@ -0,0 +1,33 @@
+{
+ "name": "with-responsive-image",
+ "private": true,
+ "type": "module",
+ "scripts": {
+ "dev": "vite --port 3000",
+ "start": "vite --port 3000",
+ "build": "vite build && tsc",
+ "serve": "vite preview"
+ },
+ "dependencies": {
+ "@responsive-image/core": "^2.1.0",
+ "@responsive-image/react": "^1.1.2",
+ "@tanstack/react-devtools": "^0.2.2",
+ "@tanstack/react-router": "^1.131.32",
+ "@tanstack/react-router-devtools": "^1.131.32",
+ "@tanstack/router-plugin": "^1.131.32",
+ "react": "^19.0.0",
+ "react-dom": "^19.0.0"
+ },
+ "devDependencies": {
+ "@responsive-image/vite-plugin": "^2.0.0",
+ "@testing-library/dom": "^10.4.0",
+ "@testing-library/react": "^16.2.0",
+ "@types/react": "^19.0.8",
+ "@types/react-dom": "^19.0.3",
+ "@vitejs/plugin-react": "^4.3.4",
+ "jsdom": "^26.0.0",
+ "typescript": "^5.7.2",
+ "vite": "^7.1.3",
+ "web-vitals": "^4.2.4"
+ }
+}
diff --git a/examples/react/with-responsive-image/public/favicon.ico b/examples/react/with-responsive-image/public/favicon.ico
new file mode 100644
index 00000000000..a11777cc471
Binary files /dev/null and b/examples/react/with-responsive-image/public/favicon.ico differ
diff --git a/examples/react/with-responsive-image/public/logo192.png b/examples/react/with-responsive-image/public/logo192.png
new file mode 100644
index 00000000000..fc44b0a3796
Binary files /dev/null and b/examples/react/with-responsive-image/public/logo192.png differ
diff --git a/examples/react/with-responsive-image/public/logo512.png b/examples/react/with-responsive-image/public/logo512.png
new file mode 100644
index 00000000000..a4e47a6545b
Binary files /dev/null and b/examples/react/with-responsive-image/public/logo512.png differ
diff --git a/examples/react/with-responsive-image/public/manifest.json b/examples/react/with-responsive-image/public/manifest.json
new file mode 100644
index 00000000000..078ef501162
--- /dev/null
+++ b/examples/react/with-responsive-image/public/manifest.json
@@ -0,0 +1,25 @@
+{
+ "short_name": "TanStack App",
+ "name": "Create TanStack App Sample",
+ "icons": [
+ {
+ "src": "favicon.ico",
+ "sizes": "64x64 32x32 24x24 16x16",
+ "type": "image/x-icon"
+ },
+ {
+ "src": "logo192.png",
+ "type": "image/png",
+ "sizes": "192x192"
+ },
+ {
+ "src": "logo512.png",
+ "type": "image/png",
+ "sizes": "512x512"
+ }
+ ],
+ "start_url": ".",
+ "display": "standalone",
+ "theme_color": "#000000",
+ "background_color": "#ffffff"
+}
diff --git a/examples/react/with-responsive-image/public/robots.txt b/examples/react/with-responsive-image/public/robots.txt
new file mode 100644
index 00000000000..e9e57dc4d41
--- /dev/null
+++ b/examples/react/with-responsive-image/public/robots.txt
@@ -0,0 +1,3 @@
+# https://www.robotstxt.org/robotstxt.html
+User-agent: *
+Disallow:
diff --git a/examples/react/with-responsive-image/src/global.d.ts b/examples/react/with-responsive-image/src/global.d.ts
new file mode 100644
index 00000000000..6371e6b0aff
--- /dev/null
+++ b/examples/react/with-responsive-image/src/global.d.ts
@@ -0,0 +1,6 @@
+declare module '*responsive' {
+ import type { ImageData } from '@responsive-image/core'
+
+ const value: ImageData
+ export default value
+}
diff --git a/examples/react/with-responsive-image/src/images.ts b/examples/react/with-responsive-image/src/images.ts
new file mode 100644
index 00000000000..be53dc19777
--- /dev/null
+++ b/examples/react/with-responsive-image/src/images.ts
@@ -0,0 +1,51 @@
+import { notFound } from '@tanstack/react-router'
+import type { ImageData } from '@responsive-image/core'
+
+const thumbnails = import.meta.glob<{ default: ImageData }>(
+ './images/gallery/*.jpg',
+ {
+ eager: true, // this is just generating image meta data, not need for lazy loading
+ query: {
+ w: '200;400',
+ responsive: true, // opt into processing by @responsive-image/vite, see vite.config.ts. Without this, default vite asset handling applies.
+ },
+ },
+)
+
+const images = import.meta.glob<{ default: ImageData }>(
+ './images/gallery/*.jpg',
+ {
+ eager: true, // this is just generating image meta data, not need for lazy loading
+ query: {
+ responsive: true, // opt into processing by @responsive-image/vite, see vite.config.ts. Without this, default vite asset handling applies.
+ },
+ },
+)
+
+export function getThumbsnails(): Record {
+ return Object.fromEntries(
+ Object.entries(thumbnails).map(([imageId, module]) => [
+ normalizeImageId(imageId),
+ module.default,
+ ]),
+ )
+}
+
+export function getImage(imageId: string): ImageData {
+ const module = images[denormalizeImageId(imageId)]
+
+ if (!module) {
+ throw notFound({ data: { foo: 1 } })
+ }
+
+ return module.default
+}
+
+// Remove leading `./images/gallery/` from import.meta.glob keys for nicer URLs
+function normalizeImageId(imageId: string): string {
+ return imageId.replace(/^\.\/images\/gallery\//, '')
+}
+
+function denormalizeImageId(imageId: string): string {
+ return `./images/gallery/${imageId}`
+}
diff --git a/examples/react/with-responsive-image/src/images/gallery/01.jpg b/examples/react/with-responsive-image/src/images/gallery/01.jpg
new file mode 100644
index 00000000000..6251adc381f
Binary files /dev/null and b/examples/react/with-responsive-image/src/images/gallery/01.jpg differ
diff --git a/examples/react/with-responsive-image/src/images/gallery/02.jpg b/examples/react/with-responsive-image/src/images/gallery/02.jpg
new file mode 100644
index 00000000000..db5730b4622
Binary files /dev/null and b/examples/react/with-responsive-image/src/images/gallery/02.jpg differ
diff --git a/examples/react/with-responsive-image/src/images/gallery/03.jpg b/examples/react/with-responsive-image/src/images/gallery/03.jpg
new file mode 100644
index 00000000000..00c08e20b55
Binary files /dev/null and b/examples/react/with-responsive-image/src/images/gallery/03.jpg differ
diff --git a/examples/react/with-responsive-image/src/images/gallery/04.jpg b/examples/react/with-responsive-image/src/images/gallery/04.jpg
new file mode 100644
index 00000000000..6831a1c5843
Binary files /dev/null and b/examples/react/with-responsive-image/src/images/gallery/04.jpg differ
diff --git a/examples/react/with-responsive-image/src/images/splash-dark.png b/examples/react/with-responsive-image/src/images/splash-dark.png
new file mode 100644
index 00000000000..d540bd747e7
Binary files /dev/null and b/examples/react/with-responsive-image/src/images/splash-dark.png differ
diff --git a/examples/react/with-responsive-image/src/main.tsx b/examples/react/with-responsive-image/src/main.tsx
new file mode 100644
index 00000000000..1b093697f9a
--- /dev/null
+++ b/examples/react/with-responsive-image/src/main.tsx
@@ -0,0 +1,42 @@
+import { StrictMode } from 'react'
+import ReactDOM from 'react-dom/client'
+import { RouterProvider, createRouter } from '@tanstack/react-router'
+
+// Import the generated route tree
+import { routeTree } from './routeTree.gen'
+
+import './styles.css'
+import reportWebVitals from './reportWebVitals.ts'
+
+// Create a new router instance
+const router = createRouter({
+ routeTree,
+ context: {},
+ defaultPreload: 'intent',
+ scrollRestoration: true,
+ defaultStructuralSharing: true,
+ defaultPreloadStaleTime: 0,
+})
+
+// Register the router instance for type safety
+declare module '@tanstack/react-router' {
+ interface Register {
+ router: typeof router
+ }
+}
+
+// Render the app
+const rootElement = document.getElementById('app')
+if (rootElement && !rootElement.innerHTML) {
+ const root = ReactDOM.createRoot(rootElement)
+ root.render(
+
+
+ ,
+ )
+}
+
+// If you want to start measuring performance in your app, pass a function
+// to log results (for example: reportWebVitals(console.log))
+// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
+reportWebVitals()
diff --git a/examples/react/with-responsive-image/src/reportWebVitals.ts b/examples/react/with-responsive-image/src/reportWebVitals.ts
new file mode 100644
index 00000000000..16b66b5f6ce
--- /dev/null
+++ b/examples/react/with-responsive-image/src/reportWebVitals.ts
@@ -0,0 +1,13 @@
+const reportWebVitals = (onPerfEntry?: () => void) => {
+ if (onPerfEntry && onPerfEntry instanceof Function) {
+ import('web-vitals').then(({ onCLS, onINP, onFCP, onLCP, onTTFB }) => {
+ onCLS(onPerfEntry)
+ onINP(onPerfEntry)
+ onFCP(onPerfEntry)
+ onLCP(onPerfEntry)
+ onTTFB(onPerfEntry)
+ })
+ }
+}
+
+export default reportWebVitals
diff --git a/examples/react/with-responsive-image/src/routeTree.gen.ts b/examples/react/with-responsive-image/src/routeTree.gen.ts
new file mode 100644
index 00000000000..9bb6eab912a
--- /dev/null
+++ b/examples/react/with-responsive-image/src/routeTree.gen.ts
@@ -0,0 +1,77 @@
+/* eslint-disable */
+
+// @ts-nocheck
+
+// noinspection JSUnusedGlobalSymbols
+
+// This file was automatically generated by TanStack Router.
+// You should NOT make any changes in this file as it will be overwritten.
+// Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified.
+
+import { Route as rootRouteImport } from './routes/__root'
+import { Route as ImageIdRouteImport } from './routes/$imageId'
+import { Route as IndexRouteImport } from './routes/index'
+
+const ImageIdRoute = ImageIdRouteImport.update({
+ id: '/$imageId',
+ path: '/$imageId',
+ getParentRoute: () => rootRouteImport,
+} as any)
+const IndexRoute = IndexRouteImport.update({
+ id: '/',
+ path: '/',
+ getParentRoute: () => rootRouteImport,
+} as any)
+
+export interface FileRoutesByFullPath {
+ '/': typeof IndexRoute
+ '/$imageId': typeof ImageIdRoute
+}
+export interface FileRoutesByTo {
+ '/': typeof IndexRoute
+ '/$imageId': typeof ImageIdRoute
+}
+export interface FileRoutesById {
+ __root__: typeof rootRouteImport
+ '/': typeof IndexRoute
+ '/$imageId': typeof ImageIdRoute
+}
+export interface FileRouteTypes {
+ fileRoutesByFullPath: FileRoutesByFullPath
+ fullPaths: '/' | '/$imageId'
+ fileRoutesByTo: FileRoutesByTo
+ to: '/' | '/$imageId'
+ id: '__root__' | '/' | '/$imageId'
+ fileRoutesById: FileRoutesById
+}
+export interface RootRouteChildren {
+ IndexRoute: typeof IndexRoute
+ ImageIdRoute: typeof ImageIdRoute
+}
+
+declare module '@tanstack/react-router' {
+ interface FileRoutesByPath {
+ '/$imageId': {
+ id: '/$imageId'
+ path: '/$imageId'
+ fullPath: '/$imageId'
+ preLoaderRoute: typeof ImageIdRouteImport
+ parentRoute: typeof rootRouteImport
+ }
+ '/': {
+ id: '/'
+ path: '/'
+ fullPath: '/'
+ preLoaderRoute: typeof IndexRouteImport
+ parentRoute: typeof rootRouteImport
+ }
+ }
+}
+
+const rootRouteChildren: RootRouteChildren = {
+ IndexRoute: IndexRoute,
+ ImageIdRoute: ImageIdRoute,
+}
+export const routeTree = rootRouteImport
+ ._addFileChildren(rootRouteChildren)
+ ._addFileTypes()
diff --git a/examples/react/with-responsive-image/src/routes/$imageId.tsx b/examples/react/with-responsive-image/src/routes/$imageId.tsx
new file mode 100644
index 00000000000..3ae8f838ba0
--- /dev/null
+++ b/examples/react/with-responsive-image/src/routes/$imageId.tsx
@@ -0,0 +1,14 @@
+import { createFileRoute } from '@tanstack/react-router'
+import { ResponsiveImage } from '@responsive-image/react'
+import { getImage } from '../images.ts'
+
+export const Route = createFileRoute('/$imageId')({
+ loader: ({ params }) => getImage(params.imageId),
+ component: Image,
+})
+
+function Image() {
+ const image = Route.useLoaderData()
+
+ return
+}
diff --git a/examples/react/with-responsive-image/src/routes/__root.tsx b/examples/react/with-responsive-image/src/routes/__root.tsx
new file mode 100644
index 00000000000..40c7daa9f76
--- /dev/null
+++ b/examples/react/with-responsive-image/src/routes/__root.tsx
@@ -0,0 +1,38 @@
+import { Outlet, Link, createRootRoute } from '@tanstack/react-router'
+import { TanStackRouterDevtoolsPanel } from '@tanstack/react-router-devtools'
+import { TanstackDevtools } from '@tanstack/react-devtools'
+import { ResponsiveImage } from '@responsive-image/react'
+import './app.css'
+import { getThumbsnails } from '../images.ts'
+
+export const Route = createRootRoute({
+ component: App,
+})
+
+function App() {
+ return (
+ <>
+
+
+
+
+ ,
+ },
+ ]}
+ />
+ >
+ )
+}
diff --git a/examples/react/with-responsive-image/src/routes/app.css b/examples/react/with-responsive-image/src/routes/app.css
new file mode 100644
index 00000000000..d44a9f64438
--- /dev/null
+++ b/examples/react/with-responsive-image/src/routes/app.css
@@ -0,0 +1,34 @@
+aside {
+ display: flex;
+ overflow: auto;
+ justify-content: center;
+
+ margin-bottom: 5px;
+}
+
+aside a {
+ border: solid 1px transparent;
+}
+
+aside a.active {
+ border-color: #00c2ab;
+}
+
+img {
+ display: block;
+}
+
+main {
+ display: flex;
+ justify-content: center;
+ flex-wrap: wrap;
+}
+
+.intro {
+ padding: 20px;
+}
+
+img.large {
+ max-height: calc(100vh - 140px);
+ width: auto;
+}
diff --git a/examples/react/with-responsive-image/src/routes/index.tsx b/examples/react/with-responsive-image/src/routes/index.tsx
new file mode 100644
index 00000000000..c5b7c3138dc
--- /dev/null
+++ b/examples/react/with-responsive-image/src/routes/index.tsx
@@ -0,0 +1,40 @@
+import { createFileRoute } from '@tanstack/react-router'
+import { ResponsiveImage } from '@responsive-image/react'
+import visual from '../images/splash-dark.png?w=300;600&responsive'
+
+export const Route = createFileRoute('/')({
+ component: Index,
+})
+
+function Index() {
+ return (
+ <>
+
+
+ Welcome to this TanStack Router + ResponsiveImage demo
+
+
+ >
+ )
+}
diff --git a/examples/react/with-responsive-image/src/styles.css b/examples/react/with-responsive-image/src/styles.css
new file mode 100644
index 00000000000..bd6643c45b9
--- /dev/null
+++ b/examples/react/with-responsive-image/src/styles.css
@@ -0,0 +1,20 @@
+body {
+ margin: 0;
+ font-family:
+ -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu',
+ 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+
+ background-color: black;
+ color: #ccc;
+}
+
+a {
+ color: #00c2ab;
+}
+
+code {
+ font-family:
+ source-code-pro, Menlo, Monaco, Consolas, 'Courier New', monospace;
+}
diff --git a/examples/react/with-responsive-image/tsconfig.json b/examples/react/with-responsive-image/tsconfig.json
new file mode 100644
index 00000000000..b088e9ab63c
--- /dev/null
+++ b/examples/react/with-responsive-image/tsconfig.json
@@ -0,0 +1,29 @@
+{
+ "include": ["**/*.ts", "**/*.tsx"],
+ "compilerOptions": {
+ "target": "ES2022",
+ "jsx": "react-jsx",
+ "module": "ESNext",
+ "lib": ["ES2022", "DOM", "DOM.Iterable"],
+ "types": ["vite/client"],
+
+ /* Bundler mode */
+ "moduleResolution": "bundler",
+ "allowImportingTsExtensions": true,
+ "verbatimModuleSyntax": true,
+ "noEmit": true,
+
+ /* Linting */
+ "skipLibCheck": true,
+ "strict": true,
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "noFallthroughCasesInSwitch": true,
+ "noUncheckedSideEffectImports": true,
+ "noUncheckedIndexedAccess": true,
+ "baseUrl": ".",
+ "paths": {
+ "@/*": ["./src/*"]
+ }
+ }
+}
diff --git a/examples/react/with-responsive-image/vite.config.ts b/examples/react/with-responsive-image/vite.config.ts
new file mode 100644
index 00000000000..34dd0823b22
--- /dev/null
+++ b/examples/react/with-responsive-image/vite.config.ts
@@ -0,0 +1,15 @@
+import { defineConfig } from 'vite'
+import viteReact from '@vitejs/plugin-react'
+import { tanstackRouter } from '@tanstack/router-plugin/vite'
+import { setupPlugins } from '@responsive-image/vite-plugin'
+
+export default defineConfig({
+ plugins: [
+ tanstackRouter({ autoCodeSplitting: true }),
+ viteReact(),
+ setupPlugins({
+ include: /^[^?]+\.(?:jpg|png)\?.*responsive.*$/,
+ lqip: { type: 'thumbhash' },
+ }),
+ ],
+})
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 99a2f0895e0..2acbbaa8d4e 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -5648,6 +5648,64 @@ importers:
specifier: 6.3.5
version: 6.3.5(@types/node@22.13.4)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.20.3)(yaml@2.7.0)
+ examples/react/with-responsive-image:
+ dependencies:
+ '@responsive-image/core':
+ specifier: ^2.1.0
+ version: 2.1.0(blurhash@2.0.5)(thumbhash@0.1.1)
+ '@responsive-image/react':
+ specifier: ^1.1.2
+ version: 1.1.2(blurhash@2.0.5)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(thumbhash@0.1.1)
+ '@tanstack/react-devtools':
+ specifier: ^0.2.2
+ version: 0.2.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(csstype@3.1.3)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(solid-js@1.9.5)
+ '@tanstack/react-router':
+ specifier: workspace:*
+ version: link:../../../packages/react-router
+ '@tanstack/react-router-devtools':
+ specifier: workspace:^
+ version: link:../../../packages/react-router-devtools
+ '@tanstack/router-plugin':
+ specifier: workspace:*
+ version: link:../../../packages/router-plugin
+ react:
+ specifier: ^19.0.0
+ version: 19.0.0
+ react-dom:
+ specifier: ^19.0.0
+ version: 19.0.0(react@19.0.0)
+ devDependencies:
+ '@responsive-image/vite-plugin':
+ specifier: ^2.0.0
+ version: 2.0.1(rollup@4.41.1)(vite@6.3.5(@types/node@22.13.4)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.20.3)(yaml@2.7.0))
+ '@testing-library/dom':
+ specifier: ^10.4.0
+ version: 10.4.0
+ '@testing-library/react':
+ specifier: ^16.2.0
+ version: 16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+ '@types/react':
+ specifier: ^19.0.8
+ version: 19.0.8
+ '@types/react-dom':
+ specifier: ^19.0.3
+ version: 19.0.3(@types/react@19.0.8)
+ '@vitejs/plugin-react':
+ specifier: ^4.3.4
+ version: 4.6.0(vite@6.3.5(@types/node@22.13.4)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.20.3)(yaml@2.7.0))
+ jsdom:
+ specifier: ^26.0.0
+ version: 26.1.0
+ typescript:
+ specifier: ^5.7.2
+ version: 5.9.2
+ vite:
+ specifier: 6.3.5
+ version: 6.3.5(@types/node@22.13.4)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.20.3)(yaml@2.7.0)
+ web-vitals:
+ specifier: ^4.2.4
+ version: 4.2.4
+
examples/react/with-trpc:
dependencies:
'@tanstack/react-router':
@@ -7630,6 +7688,9 @@ packages:
'@emnapi/runtime@1.3.1':
resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==}
+ '@emnapi/runtime@1.5.0':
+ resolution: {integrity: sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==}
+
'@emnapi/wasi-threads@1.0.1':
resolution: {integrity: sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==}
@@ -8460,6 +8521,128 @@ packages:
resolution: {integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==}
engines: {node: '>=18.18'}
+ '@img/sharp-darwin-arm64@0.34.3':
+ resolution: {integrity: sha512-ryFMfvxxpQRsgZJqBd4wsttYQbCxsJksrv9Lw/v798JcQ8+w84mBWuXwl+TT0WJ/WrYOLaYpwQXi3sA9nTIaIg==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@img/sharp-darwin-x64@0.34.3':
+ resolution: {integrity: sha512-yHpJYynROAj12TA6qil58hmPmAwxKKC7reUqtGLzsOHfP7/rniNGTL8tjWX6L3CTV4+5P4ypcS7Pp+7OB+8ihA==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [x64]
+ os: [darwin]
+
+ '@img/sharp-libvips-darwin-arm64@1.2.0':
+ resolution: {integrity: sha512-sBZmpwmxqwlqG9ueWFXtockhsxefaV6O84BMOrhtg/YqbTaRdqDE7hxraVE3y6gVM4eExmfzW4a8el9ArLeEiQ==}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@img/sharp-libvips-darwin-x64@1.2.0':
+ resolution: {integrity: sha512-M64XVuL94OgiNHa5/m2YvEQI5q2cl9d/wk0qFTDVXcYzi43lxuiFTftMR1tOnFQovVXNZJ5TURSDK2pNe9Yzqg==}
+ cpu: [x64]
+ os: [darwin]
+
+ '@img/sharp-libvips-linux-arm64@1.2.0':
+ resolution: {integrity: sha512-RXwd0CgG+uPRX5YYrkzKyalt2OJYRiJQ8ED/fi1tq9WQW2jsQIn0tqrlR5l5dr/rjqq6AHAxURhj2DVjyQWSOA==}
+ cpu: [arm64]
+ os: [linux]
+
+ '@img/sharp-libvips-linux-arm@1.2.0':
+ resolution: {integrity: sha512-mWd2uWvDtL/nvIzThLq3fr2nnGfyr/XMXlq8ZJ9WMR6PXijHlC3ksp0IpuhK6bougvQrchUAfzRLnbsen0Cqvw==}
+ cpu: [arm]
+ os: [linux]
+
+ '@img/sharp-libvips-linux-ppc64@1.2.0':
+ resolution: {integrity: sha512-Xod/7KaDDHkYu2phxxfeEPXfVXFKx70EAFZ0qyUdOjCcxbjqyJOEUpDe6RIyaunGxT34Anf9ue/wuWOqBW2WcQ==}
+ cpu: [ppc64]
+ os: [linux]
+
+ '@img/sharp-libvips-linux-s390x@1.2.0':
+ resolution: {integrity: sha512-eMKfzDxLGT8mnmPJTNMcjfO33fLiTDsrMlUVcp6b96ETbnJmd4uvZxVJSKPQfS+odwfVaGifhsB07J1LynFehw==}
+ cpu: [s390x]
+ os: [linux]
+
+ '@img/sharp-libvips-linux-x64@1.2.0':
+ resolution: {integrity: sha512-ZW3FPWIc7K1sH9E3nxIGB3y3dZkpJlMnkk7z5tu1nSkBoCgw2nSRTFHI5pB/3CQaJM0pdzMF3paf9ckKMSE9Tg==}
+ cpu: [x64]
+ os: [linux]
+
+ '@img/sharp-libvips-linuxmusl-arm64@1.2.0':
+ resolution: {integrity: sha512-UG+LqQJbf5VJ8NWJ5Z3tdIe/HXjuIdo4JeVNADXBFuG7z9zjoegpzzGIyV5zQKi4zaJjnAd2+g2nna8TZvuW9Q==}
+ cpu: [arm64]
+ os: [linux]
+
+ '@img/sharp-libvips-linuxmusl-x64@1.2.0':
+ resolution: {integrity: sha512-SRYOLR7CXPgNze8akZwjoGBoN1ThNZoqpOgfnOxmWsklTGVfJiGJoC/Lod7aNMGA1jSsKWM1+HRX43OP6p9+6Q==}
+ cpu: [x64]
+ os: [linux]
+
+ '@img/sharp-linux-arm64@0.34.3':
+ resolution: {integrity: sha512-QdrKe3EvQrqwkDrtuTIjI0bu6YEJHTgEeqdzI3uWJOH6G1O8Nl1iEeVYRGdj1h5I21CqxSvQp1Yv7xeU3ZewbA==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [arm64]
+ os: [linux]
+
+ '@img/sharp-linux-arm@0.34.3':
+ resolution: {integrity: sha512-oBK9l+h6KBN0i3dC8rYntLiVfW8D8wH+NPNT3O/WBHeW0OQWCjfWksLUaPidsrDKpJgXp3G3/hkmhptAW0I3+A==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [arm]
+ os: [linux]
+
+ '@img/sharp-linux-ppc64@0.34.3':
+ resolution: {integrity: sha512-GLtbLQMCNC5nxuImPR2+RgrviwKwVql28FWZIW1zWruy6zLgA5/x2ZXk3mxj58X/tszVF69KK0Is83V8YgWhLA==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [ppc64]
+ os: [linux]
+
+ '@img/sharp-linux-s390x@0.34.3':
+ resolution: {integrity: sha512-3gahT+A6c4cdc2edhsLHmIOXMb17ltffJlxR0aC2VPZfwKoTGZec6u5GrFgdR7ciJSsHT27BD3TIuGcuRT0KmQ==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [s390x]
+ os: [linux]
+
+ '@img/sharp-linux-x64@0.34.3':
+ resolution: {integrity: sha512-8kYso8d806ypnSq3/Ly0QEw90V5ZoHh10yH0HnrzOCr6DKAPI6QVHvwleqMkVQ0m+fc7EH8ah0BB0QPuWY6zJQ==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [x64]
+ os: [linux]
+
+ '@img/sharp-linuxmusl-arm64@0.34.3':
+ resolution: {integrity: sha512-vAjbHDlr4izEiXM1OTggpCcPg9tn4YriK5vAjowJsHwdBIdx0fYRsURkxLG2RLm9gyBq66gwtWI8Gx0/ov+JKQ==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [arm64]
+ os: [linux]
+
+ '@img/sharp-linuxmusl-x64@0.34.3':
+ resolution: {integrity: sha512-gCWUn9547K5bwvOn9l5XGAEjVTTRji4aPTqLzGXHvIr6bIDZKNTA34seMPgM0WmSf+RYBH411VavCejp3PkOeQ==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [x64]
+ os: [linux]
+
+ '@img/sharp-wasm32@0.34.3':
+ resolution: {integrity: sha512-+CyRcpagHMGteySaWos8IbnXcHgfDn7pO2fiC2slJxvNq9gDipYBN42/RagzctVRKgxATmfqOSulgZv5e1RdMg==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [wasm32]
+
+ '@img/sharp-win32-arm64@0.34.3':
+ resolution: {integrity: sha512-MjnHPnbqMXNC2UgeLJtX4XqoVHHlZNd+nPt1kRPmj63wURegwBhZlApELdtxM2OIZDRv/DFtLcNhVbd1z8GYXQ==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [arm64]
+ os: [win32]
+
+ '@img/sharp-win32-ia32@0.34.3':
+ resolution: {integrity: sha512-xuCdhH44WxuXgOM714hn4amodJMZl3OEvf0GVTm0BEyMeA2to+8HEdRPShH0SLYptJY1uBw+SCFP9WVQi1Q/cw==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [ia32]
+ os: [win32]
+
+ '@img/sharp-win32-x64@0.34.3':
+ resolution: {integrity: sha512-OWwz05d++TxzLEv4VnsTz5CmZ6mI6S05sfQGEMrNrQcOEERbX46332IvE7pO/EUiw7jUrrS40z/M7kPyjfl04g==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [x64]
+ os: [win32]
+
'@inquirer/confirm@5.1.4':
resolution: {integrity: sha512-EsiT7K4beM5fN5Mz6j866EFA9+v9d5o9VUra3hrg8zY4GHmCS8b616FErbdo5eyKoVotBQkHzMIeeKYsKDStDw==}
engines: {node: '>=18'}
@@ -9648,6 +9831,33 @@ packages:
'@types/react-dom':
optional: true
+ '@responsive-image/build-utils@2.0.0':
+ resolution: {integrity: sha512-YaYmxORoYV1xX880fN/wGo2c1sKwM3jDrHFJaT+0pKFjCm89+ce8dhI7Mff/DDTxMVeoNLIHbX4WENoQyXTYLQ==}
+ engines: {node: 20.* || >= 22}
+
+ '@responsive-image/core@2.1.0':
+ resolution: {integrity: sha512-UH1sLdoPVhLoKQC9tjFmhq+m2y1dknMETQ7VeX3gu98XRElz1bxNlx8ahy73H74452MyrlsyIzODyA58NkYfBQ==}
+ peerDependencies:
+ blurhash: ^2.0.0
+ thumbhash: ^0.1.1
+ peerDependenciesMeta:
+ blurhash:
+ optional: true
+ thumbhash:
+ optional: true
+
+ '@responsive-image/react@1.1.2':
+ resolution: {integrity: sha512-8DU5nyOkNQkBMmneRJgTCXJYGOXRVS42jrbQu2Cx3L9/kncPCF3i7tCq8D7HiuFZDBzGiiJ6P01ygOom7OnWHQ==}
+ peerDependencies:
+ react: ^19.0.0
+ react-dom: ^19.0.0
+
+ '@responsive-image/vite-plugin@2.0.1':
+ resolution: {integrity: sha512-KDuqCqZTj5v/q27rt1+gFwt0PZ1jKqPQZxKTeg0ojEAkWat7ata0y8P6ZS5cHMmu3wgVRmi/ZsMVPjcc5xscxg==}
+ engines: {node: 20.* || >= 22}
+ peerDependencies:
+ vite: 6.3.5
+
'@rolldown/pluginutils@1.0.0-beta.19':
resolution: {integrity: sha512-3FL3mnMbPu0muGOCaKAhhFEYmqv9eTfPSJRJmANrCwtgK8VuxpsZDGK+m0LYAGoyO8+0j5uRe4PeyPDK1yA/hA==}
@@ -10400,6 +10610,22 @@ packages:
engines: {node: '>=18'}
hasBin: true
+ '@tanstack/devtools-event-bus@0.2.1':
+ resolution: {integrity: sha512-JMq3AmrQR2LH9P8Rcj1MTq8Iq/mPk/PyuqSw1L0hO2Wl8G1oz5ue31fS8u8lIgOCVR/mGdJah18p+Pj5OosRJA==}
+ engines: {node: '>=18'}
+
+ '@tanstack/devtools-ui@0.2.2':
+ resolution: {integrity: sha512-G2gRyoGpjtr25w9BqQzPbefiJ9WALWYLOVxVr+NoqOLDA680nUO5KJjp7oLZMfnKssWxACgulaQ3DUmGGJuysQ==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ solid-js: '>=1.9.7'
+
+ '@tanstack/devtools@0.3.0':
+ resolution: {integrity: sha512-uxj3MM2/ZlQDlhnBoUSlJC8oneJ+sPh6hK0kgiKZAEgrlUvZfUNgKGhrmMHZaAGl/WEglhZoxXwvvo9HAFT8yw==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ solid-js: '>=1.9.7'
+
'@tanstack/query-core@5.66.0':
resolution: {integrity: sha512-J+JeBtthiKxrpzUu7rfIPDzhscXF2p5zE/hVdrqkACBP8Yu0M96mwJ5m/8cPPYQE9aRNvXztXHlNwIh4FEeMZw==}
@@ -10409,6 +10635,15 @@ packages:
'@tanstack/query-devtools@5.72.2':
resolution: {integrity: sha512-mMKnGb+iOhVBcj6jaerCFRpg8pACStdG8hmUBHPtToeZzs4ctjBUL1FajqpVn2WaMxnq8Wya+P3Q5tPFNM9jQw==}
+ '@tanstack/react-devtools@0.2.2':
+ resolution: {integrity: sha512-Ig8ZYqUPJ+nwRvF/RpkQHPbgEkrL3b2PjeYBgXgT5OemyRUlmG12UutvMBV+bJuBsSOKHrNf29IvzC0Vw9Bt1A==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@types/react': ^19.0.8
+ '@types/react-dom': ^19.0.3
+ react: ^19.0.0
+ react-dom: ^19.0.0
+
'@tanstack/react-query-devtools@5.67.2':
resolution: {integrity: sha512-cmj2DxBc+/9btQ66n5xI8wTtAma2BLVa403K7zIYiguzJ/kV201jnGensYqJeu1Rd8uRMLLRM74jLVMLDWNRJA==}
peerDependencies:
@@ -11192,6 +11427,10 @@ packages:
resolution: {integrity: sha512-UOCGPYbl0tv8+006qks/dTgV9ajs97X2p0FAbyS2iyCRrmLSRolDaHdp+v/CLgnzHc3fVB+CwYiUmei7ndFcgA==}
engines: {node: '>=12.0.0'}
+ assert-plus@1.0.0:
+ resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==}
+ engines: {node: '>=0.8'}
+
assertion-error@2.0.1:
resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
engines: {node: '>=12'}
@@ -11249,6 +11488,15 @@ packages:
bare-events@2.5.4:
resolution: {integrity: sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==}
+ base-n@3.0.0:
+ resolution: {integrity: sha512-u+HQjUyXwqZLbDDlunZUoFlWSZWIwIpNpDErBMOCkBU/VOMpVYMLYih/+FRFCkfrgXrdnbI46fTkUIu1C22v7Q==}
+ engines: {node: '>= 10.0.0'}
+ hasBin: true
+
+ base64-arraybuffer@1.0.2:
+ resolution: {integrity: sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==}
+ engines: {node: '>= 0.6.0'}
+
base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
@@ -11268,6 +11516,9 @@ packages:
bl@4.1.0:
resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
+ blurhash@2.0.5:
+ resolution: {integrity: sha512-cRygWd7kGBQO3VEhPiTgq4Wc43ctsM+o46urrmPOiuAe+07fzlSB9OJVdpgDL0jPqXUVQ9ht7aq7kxOeJHRK+w==}
+
body-parser@1.20.3:
resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==}
engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
@@ -11485,6 +11736,10 @@ packages:
color@3.2.1:
resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==}
+ 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==}
@@ -11707,6 +11962,10 @@ packages:
csstype@3.1.3:
resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
+ dashdash@1.14.1:
+ resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==}
+ engines: {node: '>=0.10'}
+
data-uri-to-buffer@4.0.1:
resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==}
engines: {node: '>= 12'}
@@ -12852,6 +13111,10 @@ packages:
resolution: {integrity: sha512-bAH5jbK/F3T3Jls4I0SO1hmPR0dKU0a7+SY6n1yzRtG54FLO8d6w/nxLFX2Nb7dBu6cCWXPaAME6cYqFUMmuCA==}
engines: {node: '>= 4'}
+ imagetools-core@7.1.0:
+ resolution: {integrity: sha512-8Aa4NecBBGmTkaAUjcuRYgTPKHCsBEWYmCnvKCL6/bxedehtVVFyZPdXe8DD0Nevd6UWBq85ifUaJ8498lgqNQ==}
+ engines: {node: '>=18.0.0'}
+
immer@10.1.1:
resolution: {integrity: sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==}
@@ -13130,6 +13393,9 @@ packages:
resolution: {integrity: sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==}
engines: {node: 20 || >=22}
+ javascript-stringify@2.1.0:
+ resolution: {integrity: sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==}
+
jest-diff@30.0.5:
resolution: {integrity: sha512-1UIqE9PoEKaHcIKvq2vbibrCog4Y8G0zmOxgQUVEiTqwR5hJVMCoDsN1vFvI5JvwD37hjueZ1C4l2FyGnfpE0A==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
@@ -13182,6 +13448,15 @@ packages:
canvas:
optional: true
+ jsdom@26.1.0:
+ resolution: {integrity: sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ canvas: ^3.0.0
+ peerDependenciesMeta:
+ canvas:
+ optional: true
+
jsesc@3.1.0:
resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==}
engines: {node: '>=6'}
@@ -14675,6 +14950,10 @@ packages:
resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==}
engines: {node: '>=8'}
+ sharp@0.34.3:
+ resolution: {integrity: sha512-eX2IQ6nFohW4DbvHIOLRB3MHFpYqaqvXd3Tp5e/T/dSH83fxaNJQRvDMhASmkNTsNTVF2/OOopzRCt7xokgPfg==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+
shebang-command@2.0.0:
resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
engines: {node: '>=8'}
@@ -15009,6 +15288,9 @@ packages:
through@2.3.8:
resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
+ thumbhash@0.1.1:
+ resolution: {integrity: sha512-kH5pKeIIBPQXAOni2AiY/Cu/NKdkFREdpH+TLdM0g6WA7RriCv0kPLgP731ady67MhTAqrVG/4mnEeibVuCJcg==}
+
thunky@1.1.0:
resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==}
@@ -15077,6 +15359,10 @@ packages:
resolution: {integrity: sha512-rvZUv+7MoBYTiDmFPBrhL7Ujx9Sk+q9wwm22x8c8T5IJaR+Wsyc7TNxbVxo84kZoRJZZMazowFLqpankBEQrGg==}
engines: {node: '>=16'}
+ tough-cookie@5.1.2:
+ resolution: {integrity: sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==}
+ engines: {node: '>=16'}
+
tr46@0.0.3:
resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
@@ -15084,6 +15370,10 @@ packages:
resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==}
engines: {node: '>=18'}
+ tr46@5.1.1:
+ resolution: {integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==}
+ engines: {node: '>=18'}
+
tree-dump@1.0.2:
resolution: {integrity: sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==}
engines: {node: '>=10.0'}
@@ -15754,6 +16044,10 @@ packages:
resolution: {integrity: sha512-jlf/foYIKywAt3x/XWKZ/3rz8OSJPiWktjmk891alJUEjiVxKX9LEO92qH3hv4aJ0mN3MWPvGMCy8jQi95xK4w==}
engines: {node: '>=18'}
+ whatwg-url@14.2.0:
+ resolution: {integrity: sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==}
+ engines: {node: '>=18'}
+
whatwg-url@5.0.0:
resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
@@ -15817,6 +16111,18 @@ packages:
utf-8-validate:
optional: true
+ ws@8.18.3:
+ resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==}
+ engines: {node: '>=10.0.0'}
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: '>=5.0.2'
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+
xml-name-validator@5.0.0:
resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==}
engines: {node: '>=18'}
@@ -16365,6 +16671,11 @@ snapshots:
dependencies:
tslib: 2.8.1
+ '@emnapi/runtime@1.5.0':
+ dependencies:
+ tslib: 2.8.1
+ optional: true
+
'@emnapi/wasi-threads@1.0.1':
dependencies:
tslib: 2.8.1
@@ -17178,6 +17489,92 @@ snapshots:
'@humanwhocodes/retry@0.4.2': {}
+ '@img/sharp-darwin-arm64@0.34.3':
+ optionalDependencies:
+ '@img/sharp-libvips-darwin-arm64': 1.2.0
+ optional: true
+
+ '@img/sharp-darwin-x64@0.34.3':
+ optionalDependencies:
+ '@img/sharp-libvips-darwin-x64': 1.2.0
+ optional: true
+
+ '@img/sharp-libvips-darwin-arm64@1.2.0':
+ optional: true
+
+ '@img/sharp-libvips-darwin-x64@1.2.0':
+ optional: true
+
+ '@img/sharp-libvips-linux-arm64@1.2.0':
+ optional: true
+
+ '@img/sharp-libvips-linux-arm@1.2.0':
+ optional: true
+
+ '@img/sharp-libvips-linux-ppc64@1.2.0':
+ optional: true
+
+ '@img/sharp-libvips-linux-s390x@1.2.0':
+ optional: true
+
+ '@img/sharp-libvips-linux-x64@1.2.0':
+ optional: true
+
+ '@img/sharp-libvips-linuxmusl-arm64@1.2.0':
+ optional: true
+
+ '@img/sharp-libvips-linuxmusl-x64@1.2.0':
+ optional: true
+
+ '@img/sharp-linux-arm64@0.34.3':
+ optionalDependencies:
+ '@img/sharp-libvips-linux-arm64': 1.2.0
+ optional: true
+
+ '@img/sharp-linux-arm@0.34.3':
+ optionalDependencies:
+ '@img/sharp-libvips-linux-arm': 1.2.0
+ optional: true
+
+ '@img/sharp-linux-ppc64@0.34.3':
+ optionalDependencies:
+ '@img/sharp-libvips-linux-ppc64': 1.2.0
+ optional: true
+
+ '@img/sharp-linux-s390x@0.34.3':
+ optionalDependencies:
+ '@img/sharp-libvips-linux-s390x': 1.2.0
+ optional: true
+
+ '@img/sharp-linux-x64@0.34.3':
+ optionalDependencies:
+ '@img/sharp-libvips-linux-x64': 1.2.0
+ optional: true
+
+ '@img/sharp-linuxmusl-arm64@0.34.3':
+ optionalDependencies:
+ '@img/sharp-libvips-linuxmusl-arm64': 1.2.0
+ optional: true
+
+ '@img/sharp-linuxmusl-x64@0.34.3':
+ optionalDependencies:
+ '@img/sharp-libvips-linuxmusl-x64': 1.2.0
+ optional: true
+
+ '@img/sharp-wasm32@0.34.3':
+ dependencies:
+ '@emnapi/runtime': 1.5.0
+ optional: true
+
+ '@img/sharp-win32-arm64@0.34.3':
+ optional: true
+
+ '@img/sharp-win32-ia32@0.34.3':
+ optional: true
+
+ '@img/sharp-win32-x64@0.34.3':
+ optional: true
+
'@inquirer/confirm@5.1.4(@types/node@22.13.4)':
dependencies:
'@inquirer/core': 10.1.5(@types/node@22.13.4)
@@ -18483,6 +18880,48 @@ snapshots:
'@types/react': 19.0.8
'@types/react-dom': 19.0.3(@types/react@19.0.8)
+ '@responsive-image/build-utils@2.0.0(blurhash@2.0.5)(rollup@4.41.1)(thumbhash@0.1.1)':
+ dependencies:
+ '@responsive-image/core': 2.1.0(blurhash@2.0.5)(thumbhash@0.1.1)
+ '@rollup/pluginutils': 5.1.4(rollup@4.41.1)
+ base-n: 3.0.0
+ imagetools-core: 7.1.0
+ javascript-stringify: 2.1.0
+ sharp: 0.34.3
+ transitivePeerDependencies:
+ - blurhash
+ - rollup
+ - thumbhash
+
+ '@responsive-image/core@2.1.0(blurhash@2.0.5)(thumbhash@0.1.1)':
+ dependencies:
+ base64-arraybuffer: 1.0.2
+ optionalDependencies:
+ blurhash: 2.0.5
+ thumbhash: 0.1.1
+
+ '@responsive-image/react@1.1.2(blurhash@2.0.5)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(thumbhash@0.1.1)':
+ dependencies:
+ '@responsive-image/core': 2.1.0(blurhash@2.0.5)(thumbhash@0.1.1)
+ react: 19.0.0
+ react-dom: 19.0.0(react@19.0.0)
+ transitivePeerDependencies:
+ - blurhash
+ - thumbhash
+
+ '@responsive-image/vite-plugin@2.0.1(rollup@4.41.1)(vite@6.3.5(@types/node@22.13.4)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.20.3)(yaml@2.7.0))':
+ dependencies:
+ '@responsive-image/build-utils': 2.0.0(blurhash@2.0.5)(rollup@4.41.1)(thumbhash@0.1.1)
+ '@responsive-image/core': 2.1.0(blurhash@2.0.5)(thumbhash@0.1.1)
+ '@rollup/pluginutils': 5.1.4(rollup@4.41.1)
+ blurhash: 2.0.5
+ imagetools-core: 7.1.0
+ sharp: 0.34.3
+ thumbhash: 0.1.1
+ vite: 6.3.5(@types/node@22.13.4)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.20.3)(yaml@2.7.0)
+ transitivePeerDependencies:
+ - rollup
+
'@rolldown/pluginutils@1.0.0-beta.19': {}
'@rollup/plugin-alias@5.1.1(rollup@4.41.1)':
@@ -19264,12 +19703,52 @@ snapshots:
- typescript
- vite
+ '@tanstack/devtools-event-bus@0.2.1':
+ dependencies:
+ ws: 8.18.3
+ transitivePeerDependencies:
+ - bufferutil
+ - utf-8-validate
+
+ '@tanstack/devtools-ui@0.2.2(csstype@3.1.3)(solid-js@1.9.5)':
+ dependencies:
+ goober: 2.1.16(csstype@3.1.3)
+ solid-js: 1.9.5
+ transitivePeerDependencies:
+ - csstype
+
+ '@tanstack/devtools@0.3.0(csstype@3.1.3)(solid-js@1.9.5)':
+ dependencies:
+ '@solid-primitives/keyboard': 1.3.0(solid-js@1.9.5)
+ '@tanstack/devtools-event-bus': 0.2.1
+ '@tanstack/devtools-ui': 0.2.2(csstype@3.1.3)(solid-js@1.9.5)
+ clsx: 2.1.1
+ goober: 2.1.16(csstype@3.1.3)
+ solid-js: 1.9.5
+ transitivePeerDependencies:
+ - bufferutil
+ - csstype
+ - utf-8-validate
+
'@tanstack/query-core@5.66.0': {}
'@tanstack/query-devtools@5.67.2': {}
'@tanstack/query-devtools@5.72.2': {}
+ '@tanstack/react-devtools@0.2.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(csstype@3.1.3)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(solid-js@1.9.5)':
+ dependencies:
+ '@tanstack/devtools': 0.3.0(csstype@3.1.3)(solid-js@1.9.5)
+ '@types/react': 19.0.8
+ '@types/react-dom': 19.0.3(@types/react@19.0.8)
+ react: 19.0.0
+ react-dom: 19.0.0(react@19.0.0)
+ transitivePeerDependencies:
+ - bufferutil
+ - csstype
+ - solid-js
+ - utf-8-validate
+
'@tanstack/react-query-devtools@5.67.2(@tanstack/react-query@5.66.0(react@19.0.0))(react@19.0.0)':
dependencies:
'@tanstack/query-devtools': 5.67.2
@@ -20246,6 +20725,8 @@ snapshots:
pvutils: 1.1.3
tslib: 2.8.1
+ assert-plus@1.0.0: {}
+
assertion-error@2.0.1: {}
ast-module-types@6.0.1: {}
@@ -20330,6 +20811,12 @@ snapshots:
bare-events@2.5.4:
optional: true
+ base-n@3.0.0:
+ dependencies:
+ dashdash: 1.14.1
+
+ base64-arraybuffer@1.0.2: {}
+
base64-js@1.5.1: {}
batch@0.6.1: {}
@@ -20348,6 +20835,8 @@ snapshots:
inherits: 2.0.4
readable-stream: 3.6.2
+ blurhash@2.0.5: {}
+
body-parser@1.20.3:
dependencies:
bytes: 3.1.2
@@ -20612,6 +21101,11 @@ snapshots:
color-convert: 1.9.3
color-string: 1.9.1
+ color@4.2.3:
+ dependencies:
+ color-convert: 2.0.1
+ color-string: 1.9.1
+
colorette@2.0.20: {}
colorspace@1.1.4:
@@ -20814,6 +21308,10 @@ snapshots:
csstype@3.1.3: {}
+ dashdash@1.14.1:
+ dependencies:
+ assert-plus: 1.0.0
+
data-uri-to-buffer@4.0.1: {}
data-urls@5.0.0:
@@ -22158,6 +22656,8 @@ snapshots:
ignore@7.0.3: {}
+ imagetools-core@7.1.0: {}
+
immer@10.1.1: {}
import-fresh@3.3.0:
@@ -22380,6 +22880,8 @@ snapshots:
dependencies:
'@isaacs/cliui': 8.0.2
+ javascript-stringify@2.1.0: {}
+
jest-diff@30.0.5:
dependencies:
'@jest/diff-sequences': 30.0.1
@@ -22446,6 +22948,33 @@ snapshots:
- supports-color
- utf-8-validate
+ jsdom@26.1.0:
+ dependencies:
+ cssstyle: 4.2.1
+ data-urls: 5.0.0
+ decimal.js: 10.5.0
+ html-encoding-sniffer: 4.0.0
+ http-proxy-agent: 7.0.2
+ https-proxy-agent: 7.0.6
+ is-potential-custom-element-name: 1.0.1
+ nwsapi: 2.2.16
+ parse5: 7.3.0
+ rrweb-cssom: 0.8.0
+ saxes: 6.0.0
+ symbol-tree: 3.2.4
+ tough-cookie: 5.1.2
+ w3c-xmlserializer: 5.0.0
+ webidl-conversions: 7.0.0
+ whatwg-encoding: 3.1.1
+ whatwg-mimetype: 4.0.0
+ whatwg-url: 14.2.0
+ ws: 8.18.0
+ xml-name-validator: 5.0.0
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+
jsesc@3.1.0: {}
json-buffer@3.0.1: {}
@@ -24119,6 +24648,35 @@ snapshots:
dependencies:
kind-of: 6.0.3
+ sharp@0.34.3:
+ dependencies:
+ color: 4.2.3
+ detect-libc: 2.0.4
+ semver: 7.7.2
+ optionalDependencies:
+ '@img/sharp-darwin-arm64': 0.34.3
+ '@img/sharp-darwin-x64': 0.34.3
+ '@img/sharp-libvips-darwin-arm64': 1.2.0
+ '@img/sharp-libvips-darwin-x64': 1.2.0
+ '@img/sharp-libvips-linux-arm': 1.2.0
+ '@img/sharp-libvips-linux-arm64': 1.2.0
+ '@img/sharp-libvips-linux-ppc64': 1.2.0
+ '@img/sharp-libvips-linux-s390x': 1.2.0
+ '@img/sharp-libvips-linux-x64': 1.2.0
+ '@img/sharp-libvips-linuxmusl-arm64': 1.2.0
+ '@img/sharp-libvips-linuxmusl-x64': 1.2.0
+ '@img/sharp-linux-arm': 0.34.3
+ '@img/sharp-linux-arm64': 0.34.3
+ '@img/sharp-linux-ppc64': 0.34.3
+ '@img/sharp-linux-s390x': 0.34.3
+ '@img/sharp-linux-x64': 0.34.3
+ '@img/sharp-linuxmusl-arm64': 0.34.3
+ '@img/sharp-linuxmusl-x64': 0.34.3
+ '@img/sharp-wasm32': 0.34.3
+ '@img/sharp-win32-arm64': 0.34.3
+ '@img/sharp-win32-ia32': 0.34.3
+ '@img/sharp-win32-x64': 0.34.3
+
shebang-command@2.0.0:
dependencies:
shebang-regex: 3.0.0
@@ -24509,6 +25067,8 @@ snapshots:
through@2.3.8: {}
+ thumbhash@0.1.1: {}
+
thunky@1.1.0: {}
tiny-invariant@1.3.3: {}
@@ -24563,12 +25123,20 @@ snapshots:
dependencies:
tldts: 6.1.76
+ tough-cookie@5.1.2:
+ dependencies:
+ tldts: 6.1.76
+
tr46@0.0.3: {}
tr46@5.0.0:
dependencies:
punycode: 2.3.1
+ tr46@5.1.1:
+ dependencies:
+ punycode: 2.3.1
+
tree-dump@1.0.2(tslib@2.8.1):
dependencies:
tslib: 2.8.1
@@ -25307,6 +25875,11 @@ snapshots:
tr46: 5.0.0
webidl-conversions: 7.0.0
+ whatwg-url@14.2.0:
+ dependencies:
+ tr46: 5.1.1
+ webidl-conversions: 7.0.0
+
whatwg-url@5.0.0:
dependencies:
tr46: 0.0.3
@@ -25376,6 +25949,8 @@ snapshots:
ws@8.18.0: {}
+ ws@8.18.3: {}
+
xml-name-validator@5.0.0: {}
xmlbuilder2@3.1.1: