diff --git a/.github/ISSUE_TEMPLATE/blank.yml b/.github/ISSUE_TEMPLATE/blank.yml new file mode 100644 index 00000000..1f71a477 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/blank.yml @@ -0,0 +1,10 @@ +name: "Blank issue" +description: Don't use this unless you are a Vike maintainer. +body: + - type: markdown + attributes: + value: | + # **Don't use this** unless you are a Vike maintainer. Create a new issue at [Vike's main repository `github.com/vikejs/vike`](https://github.com/vikejs/vike/issues/new/choose) instead. + - type: textarea + attributes: + label: Description diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index a16fc79e..2d78da0f 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,11 +1,14 @@ -blank_issues_enabled: true +blank_issues_enabled: false contact_links: - - name: "💥 Bug Report" - url: https://github.com/vikejs/vike/issues/new/choose - about: "Report bugs at Vike's main repository instead." - - name: "✨ Feature Request" - url: https://github.com/vikejs/vike/issues/new/choose - about: "Suggest features at Vike's main repository instead." + - name: "💥 Bug" + url: https://github.com/vikejs/vike/issues/new?template=bug.yml + about: "Report a bug. (Redirects to Vike's main repository.)" + - name: "🚀 Feature" + url: https://github.com/vikejs/vike/issues/new?template=feature.yml + about: "Suggest a new feature. (Redirects to Vike's main repository.)" + - name: "✨ Polish" + url: https://github.com/vikejs/vike/issues/new?template=polish.yaml + about: "Unclear API or docs? Let us know — we'll polish Vike's DX. (Redirects to Vike's main repository.)" - name: "🙏 Help & Questions" url: https://github.com/vikejs/vike/discussions/new?category=help-questions about: "Get official help from Vike maintainers." diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0f90b852..201410b1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -35,8 +35,8 @@ jobs: - uses: actions/setup-node@v4 with: node-version: 20 - # TODO/eventually: try using the cache again - # The cache breaks playwright https://github.com/vikejs/vike-vue/pull/119 + # TO-DO/eventually: try using the cache again + # The cache breaks playwright installation, see https://github.com/vikejs/vike-vue/pull/119 # cache: "pnpm" - run: pnpm install diff --git a/.github/workflows/formatting.yml b/.github/workflows/format.yml similarity index 80% rename from .github/workflows/formatting.yml rename to .github/workflows/format.yml index d323c805..9993b22d 100644 --- a/.github/workflows/formatting.yml +++ b/.github/workflows/format.yml @@ -1,12 +1,11 @@ -name: 'Check formatting' +name: Format on: push: jobs: - check_formatting: + main: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 - run: pnpm install - run: pnpm run format:check - diff --git a/biome.json b/biome.json index f81cc354..d2bfd4b4 100644 --- a/biome.json +++ b/biome.json @@ -16,10 +16,24 @@ } }, "linter": { + "enabled": true, + "rules": { + "recommended": false, + "style": { + "useNodejsImportProtocol": "error" + } + } + }, + "organizeImports": { "enabled": false }, "vcs": { "enabled": true, "clientKind": "git" + }, + "css": { + "formatter": { + "quoteStyle": "single" + } } } diff --git a/examples/README.md b/examples/README.md new file mode 100644 index 00000000..2ef6bd74 --- /dev/null +++ b/examples/README.md @@ -0,0 +1,2 @@ +> [!NOTE] +> For more examples, see [Bati](https://batijs.dev) which generates `vike-react` apps. diff --git a/examples/apollo/readme.md b/examples/apollo/README.md similarity index 60% rename from examples/apollo/readme.md rename to examples/apollo/README.md index 847f5dd6..910d856a 100644 --- a/examples/apollo/readme.md +++ b/examples/apollo/README.md @@ -1,5 +1,8 @@ Example of using `vike-react-apollo`. +> [!NOTE] +> For more examples, see [Bati](https://batijs.dev) which generates `vike-react` apps. + ```bash git clone git@github.com:vikejs/vike-react cd vike-react/examples/apollo/ diff --git a/examples/apollo/package.json b/examples/apollo/package.json index 5e93f2ba..6f7f76b7 100644 --- a/examples/apollo/package.json +++ b/examples/apollo/package.json @@ -1,23 +1,23 @@ { "scripts": { - "dev": "vite dev", - "build": "vite build", - "preview": "vite build && vite preview" + "dev": "vike dev", + "build": "vike build", + "preview": "vike build && vike preview" }, "dependencies": { - "@types/react": "^18.2.55", - "@types/react-dom": "^18.2.19", - "@vitejs/plugin-react": "^4.2.1", - "react": "^18.3.1", - "react-dom": "^18.3.1", - "typescript": "^5.3.3", - "vike": "^0.4.211", - "vike-react": "^0.5.11", - "vike-react-apollo": "^0.1.1", + "@types/react": "^19.1.13", + "@types/react-dom": "^19.1.9", + "@vitejs/plugin-react": "^5.0.3", + "react": "^19.2.0", + "react-dom": "^19.2.0", + "typescript": "^5.9.2", + "vike": "^0.4.242", + "vike-react": "0.6.12", + "vike-react-apollo": "0.1.4", "@apollo/client": "^3.10.8", "@apollo/client-react-streaming": "^0.11.2", "graphql": "^16.9.0", - "vite": "^5.4.0" + "vite": "^7.1.7" }, "type": "module" } diff --git a/examples/apollo/pages/+ApolloClient.ts b/examples/apollo/pages/+ApolloClient.ts index 158f77fb..32b9cb6d 100644 --- a/examples/apollo/pages/+ApolloClient.ts +++ b/examples/apollo/pages/+ApolloClient.ts @@ -1,7 +1,7 @@ import { ApolloClient, InMemoryCache } from '@apollo/client-react-streaming' import type { PageContext } from 'vike/types' -// Apollo GraphQL Client with artificial delay: https://gist.github.com/brillout/7d7db0fd6ce55b3b5e8f7ec893eeda01 +// Same config but with artificial delay: https://gist.github.com/brillout/7d7db0fd6ce55b3b5e8f7ec893eeda01 export default (pageContext: PageContext) => new ApolloClient({ uri: 'https://countries.trevorblades.com', diff --git a/examples/apollo/tsconfig.json b/examples/apollo/tsconfig.json index e0bb64ac..6f6b091b 100644 --- a/examples/apollo/tsconfig.json +++ b/examples/apollo/tsconfig.json @@ -2,12 +2,18 @@ "compilerOptions": { "strict": true, "module": "ES2020", - "moduleResolution": "Node", + "moduleResolution": "bundler", "target": "ES2020", "lib": ["DOM", "DOM.Iterable", "ESNext"], "types": ["vite/client"], "jsx": "react", "skipLibCheck": true, "esModuleInterop": true - } + }, + "include": [ + "**/*", + // Include .test* files + // https://github.com/microsoft/TypeScript/issues/49555 + "**/.*" + ] } diff --git a/examples/apollo/vite.config.ts b/examples/apollo/vite.config.ts index aa36b02f..fd880aa9 100644 --- a/examples/apollo/vite.config.ts +++ b/examples/apollo/vite.config.ts @@ -4,4 +4,6 @@ import { UserConfig } from 'vite' export default { plugins: [react(), vike()], + // Seems like Apollo is heavy? Or is there a way to reduce the size of our Apollo imports? + build: { chunkSizeWarningLimit: 600 }, } satisfies UserConfig diff --git a/examples/full/.testRun.ts b/examples/full/.testRun.ts index c9237ff3..52c6421d 100644 --- a/examples/full/.testRun.ts +++ b/examples/full/.testRun.ts @@ -1,5 +1,5 @@ export { testRun } -import { test, expect, run, fetchHtml, page, getServerUrl, autoRetry, partRegex } from '@brillout/test-e2e' +import { test, expect, run, fetchHtml, page, getServerUrl, autoRetry, partRegex, expectLog } from '@brillout/test-e2e' import assert from 'node:assert' let isProd: boolean @@ -43,6 +43,7 @@ function testRun(cmd: `pnpm run ${'dev' | 'preview'}`) { testPageNavigation_betweenWithSSRAndWithout() testPageNavigation_titleUpdate() testUseConfig() + testReactSetting() } function testPageNavigation_betweenWithSSRAndWithout() { @@ -68,21 +69,21 @@ function testPageNavigation_betweenWithSSRAndWithout() { body = await page.textContent('body') expect(body).toContain(t1) expect(body).not.toContain(t2) - ensureWasClientSideRouted('/pages/without-ssr') + await ensureWasClientSideRouted('/pages/without-ssr') await page.click('a:has-text("Welcome")') await testCounter() body = await page.textContent('body') expect(body).toContain(t2) expect(body).not.toContain(t1) - ensureWasClientSideRouted('/pages/without-ssr') + await ensureWasClientSideRouted('/pages/without-ssr') await page.click('a:has-text("Without SSR")') await testCounter() body = await page.textContent('body') expect(body).toContain(t1) expect(body).not.toContain(t2) - ensureWasClientSideRouted('/pages/without-ssr') + await ensureWasClientSideRouted('/pages/without-ssr') }) } @@ -205,10 +206,10 @@ function testUseConfig() { test('useConfig() hydration', async () => { await page.goto(getServerUrl() + '/') await testCounter() - ensureWasClientSideRouted('/pages/index') + await ensureWasClientSideRouted('/pages/index') await page.click('a:has-text("useConfig()")') await testCounter() - ensureWasClientSideRouted('/pages/index') + await ensureWasClientSideRouted('/pages/index') await page.goto(getServerUrl() + '/images') await testCounter() }) @@ -234,8 +235,9 @@ function findFirstPageId(html: string) { expect(html.split('"pageId"').length).toBe(2) const match = partRegex`"pageId":"${/([^"]+)/}"`.exec(html) expect(match).toBeTruthy() - const pageId = match![1] + let pageId = match![1] expect(pageId).toBeTruthy() + pageId = pageId.replaceAll('\\\\/', '/') return pageId } @@ -247,3 +249,12 @@ function getAssetUrl(fileName: string) { assert(r.length === 0) return partRegex`/assets/static/${fileBaseName}.${/[a-zA-Z0-9_-]+/}.${fileExt}` } + +function testReactSetting() { + test('+react.{server.client}.js', async () => { + await page.goto(getServerUrl() + '/') + await testCounter() + expectLog('some-id-server-prefix', { filter: (log) => log.logSource === 'stdout' }) + expectLog('some-id-client-prefix', { filter: (log) => log.logSource === 'Browser Log' }) + }) +} diff --git a/examples/full/README.md b/examples/full/README.md new file mode 100644 index 00000000..d7ee1410 --- /dev/null +++ b/examples/full/README.md @@ -0,0 +1,11 @@ +Full-fledged example of using `vike-react`. + +> [!NOTE] +> For more examples, see [Bati](https://batijs.dev) which generates `vike-react` apps. + +```bash +git clone git@github.com:vikejs/vike-react +cd vike-react/examples/full/ +npm install +npm run dev +``` diff --git a/examples/full/package.json b/examples/full/package.json index fef6872a..fa1790ca 100644 --- a/examples/full/package.json +++ b/examples/full/package.json @@ -1,21 +1,21 @@ { "scripts": { - "dev": "vite dev", - "build": "vite build", - "preview": "vite build && vite preview" + "dev": "vike dev", + "build": "vike build", + "preview": "vike build && vike preview" }, "dependencies": { - "@types/react": "^18.3.3", - "@types/react-dom": "^18.3.0", - "@vitejs/plugin-react": "^4.3.1", + "@types/react": "^19.1.13", + "@types/react-dom": "^19.1.9", + "@vitejs/plugin-react": "^5.0.3", "node-fetch": "^3.3.2", - "react": "^18.3.1", - "react-dom": "^18.3.1", - "react-streaming": "^0.3.43", - "typescript": "^5.5.4", - "vike": "^0.4.211", - "vike-react": "^0.5.11", - "vite": "^5.4.0" + "react": "^19.2.0", + "react-dom": "^19.2.0", + "react-streaming": "^0.4.11", + "typescript": "^5.9.2", + "vike": "^0.4.242", + "vike-react": "0.6.12", + "vite": "^7.1.7" }, "type": "module" } diff --git a/examples/full/pages/+Layout.tsx b/examples/full/pages/+Layout.tsx index 277a28f2..91db1532 100644 --- a/examples/full/pages/+Layout.tsx +++ b/examples/full/pages/+Layout.tsx @@ -1,11 +1,19 @@ export { Layout } import './style.css' -import React from 'react' +import React, { useEffect } from 'react' import logoUrl from '../assets/logo.svg' import { Link } from '../components/Link' function Layout({ children }: { children: React.ReactNode }) { + /* + if (!import.meta.env.SSR) throw new Error('Some Failure') + //*/ + useEffect(() => { + /* + throw new Error('Some Effect Failure') + //*/ + }) return (
', + headHtmlEnd: '', } satisfies Config diff --git a/examples/full/pages/+react.client.ts b/examples/full/pages/+react.client.ts new file mode 100644 index 00000000..e978863d --- /dev/null +++ b/examples/full/pages/+react.client.ts @@ -0,0 +1,7 @@ +import type { Config } from 'vike/types' + +export default { + hydrateRootOptions: { + identifierPrefix: 'some-id-client-prefix', + }, +} satisfies Config['react'] diff --git a/examples/full/pages/+react.server.ts b/examples/full/pages/+react.server.ts new file mode 100644 index 00000000..ac6a7168 --- /dev/null +++ b/examples/full/pages/+react.server.ts @@ -0,0 +1,8 @@ +import type { Config, PageContextServer } from 'vike/types' + +export default (_pageContext: PageContextServer) => + ({ + renderToStringOptions: { + identifierPrefix: 'some-id-server-prefix', + }, + }) satisfies Config['react'] diff --git a/examples/full/pages/_error/+Page.tsx b/examples/full/pages/_error/+Page.tsx index 2fa8b1cc..7225978a 100644 --- a/examples/full/pages/_error/+Page.tsx +++ b/examples/full/pages/_error/+Page.tsx @@ -8,14 +8,14 @@ function Page() { if (is404) { return ( <> -

404 Page Not Found

+

Page Not Found

This page could not be found.

) } else { return ( <> -

500 Internal Server Error

+

Internal Error

Something went wrong.

) diff --git a/examples/full/pages/index/+Page.tsx b/examples/full/pages/index/+Page.tsx index e909569b..476c85be 100644 --- a/examples/full/pages/index/+Page.tsx +++ b/examples/full/pages/index/+Page.tsx @@ -1,6 +1,6 @@ export default Page -import React from 'react' +import React, { useId } from 'react' import { Counter } from '../../components/Counter' import image from '../../assets/logo-new.svg' import { Config } from 'vike-react/Config' @@ -9,6 +9,9 @@ function Page() { // Will be printed on the server and in the browser: console.log('Rendering the landing page') + const id = useId() + console.log(id) + return ( <> diff --git a/examples/full/pages/index/+config.ts b/examples/full/pages/index/+config.ts new file mode 100644 index 00000000..e9174350 --- /dev/null +++ b/examples/full/pages/index/+config.ts @@ -0,0 +1,5 @@ +import type { Config } from 'vike/types' + +export default { + stream: false, +} satisfies Config diff --git a/examples/full/pages/starship/+Layout.tsx b/examples/full/pages/starship/+Layout.tsx index d570d1be..609e646f 100644 --- a/examples/full/pages/starship/+Layout.tsx +++ b/examples/full/pages/starship/+Layout.tsx @@ -49,6 +49,7 @@ function Counter() { function DummyText() { return ( + // spellcheck-ignore:on <>

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum @@ -109,5 +110,6 @@ function DummyText() { varius tincidunt libero. Phasellus dolor. Maecenas vestibulum mollis diam. Pellentesque ut neque.

+ // spellcheck-ignore:off ) } diff --git a/examples/full/pages/starship/+Page.tsx b/examples/full/pages/starship/+Page.tsx index d0c121d1..9c549033 100644 --- a/examples/full/pages/starship/+Page.tsx +++ b/examples/full/pages/starship/+Page.tsx @@ -6,7 +6,7 @@ function Page() { return ( <>

Overview

-

The Starship will, at term, repalce all SpaceX's rocket models.

+

The Starship will, at term, replace all SpaceX's rocket models.

The mission: Make life multi planetary.

Starship drastically reduces the cost of sending payload to space, ensuring SpaceX's financial prosperity.

diff --git a/examples/full/readme.md b/examples/full/readme.md deleted file mode 100644 index cd1eb558..00000000 --- a/examples/full/readme.md +++ /dev/null @@ -1,15 +0,0 @@ -Full-fledged example of using `vike-react`, showcasing: - -- [Layout](https://vike.dev/Layout) -- Fetching data with [`data()`](https://vike.dev/data) -- [Toggling SSR](https://vike.dev/ssr) on a per-page basis. -- [HTML Streaming](https://vike.dev/streaming) -- [Progressive Rendering](https://vike.dev/streaming#progressive-rendering) -- [Error page](https://vike.dev/error-page) - -```bash -git clone git@github.com:vikejs/vike-react -cd vike-react/examples/full/ -npm install -npm run dev -``` diff --git a/examples/full/tsconfig.json b/examples/full/tsconfig.json index e0bb64ac..6f6b091b 100644 --- a/examples/full/tsconfig.json +++ b/examples/full/tsconfig.json @@ -2,12 +2,18 @@ "compilerOptions": { "strict": true, "module": "ES2020", - "moduleResolution": "Node", + "moduleResolution": "bundler", "target": "ES2020", "lib": ["DOM", "DOM.Iterable", "ESNext"], "types": ["vite/client"], "jsx": "react", "skipLibCheck": true, "esModuleInterop": true - } + }, + "include": [ + "**/*", + // Include .test* files + // https://github.com/microsoft/TypeScript/issues/49555 + "**/.*" + ] } diff --git a/examples/react-query/.test-dev.test.ts b/examples/minimal/.test-dev.test.ts similarity index 100% rename from examples/react-query/.test-dev.test.ts rename to examples/minimal/.test-dev.test.ts diff --git a/examples/react-query/.test-preview.test.ts b/examples/minimal/.test-preview.test.ts similarity index 100% rename from examples/react-query/.test-preview.test.ts rename to examples/minimal/.test-preview.test.ts diff --git a/examples/minimal/.testRun.ts b/examples/minimal/.testRun.ts new file mode 100644 index 00000000..31c9c9b7 --- /dev/null +++ b/examples/minimal/.testRun.ts @@ -0,0 +1,49 @@ +export { testRunClassic as testRun } + +import { test, expect, run, fetchHtml, page, getServerUrl, autoRetry } from '@brillout/test-e2e' + +function testRunClassic(cmd: 'pnpm run dev' | 'pnpm run preview') { + run(cmd) + + test('page content is rendered to HTML', async () => { + const html = await fetchHtml('/') + expect(html).toContain('

Welcome

') + }) + + test('page is rendered to the DOM and interactive', async () => { + await page.goto(getServerUrl() + '/') + await page.click('a[href="/"]') + expect(await page.textContent('h1')).toBe('Welcome') + await testCounter() + }) + + test('about page', async () => { + await page.click('a[href="/about"]') + await autoRetry(async () => { + expect(await page.textContent('h1')).toBe('About') + }) + expect(await page.textContent('p')).toBe('Example of using Vike.') + const html = await fetchHtml('/about') + expect(html).toContain('

About

') + }) +} + +async function testCounter(currentValue = 0) { + // autoRetry() in case page just got client-side navigated + await autoRetry( + async () => { + const btn = page.locator('button', { hasText: 'Counter' }) + expect(await btn.textContent()).toBe(`Counter ${currentValue}`) + }, + { timeout: 5 * 1000 }, + ) + // autoRetry() in case page isn't hydrated yet + await autoRetry( + async () => { + const btn = page.locator('button', { hasText: 'Counter' }) + await btn.click() + expect(await btn.textContent()).toBe(`Counter ${currentValue + 1}`) + }, + { timeout: 5 * 1000 }, + ) +} diff --git a/examples/minimal/readme.md b/examples/minimal/README.md similarity index 60% rename from examples/minimal/readme.md rename to examples/minimal/README.md index 3ea764e7..7c2cfc3c 100644 --- a/examples/minimal/readme.md +++ b/examples/minimal/README.md @@ -1,5 +1,8 @@ Minimal example of using `vike-react`. +> [!NOTE] +> For more examples, see [Bati](https://batijs.dev) which generates `vike-react` apps. + ```bash git clone git@github.com:vikejs/vike-react cd vike-react/examples/minimal/ diff --git a/examples/minimal/package.json b/examples/minimal/package.json index bc524dba..b733e285 100644 --- a/examples/minimal/package.json +++ b/examples/minimal/package.json @@ -1,16 +1,16 @@ { "scripts": { - "dev": "vite dev", - "build": "vite build", - "preview": "vite build && vite preview" + "dev": "vike dev", + "build": "vike build", + "preview": "vike build && vike preview" }, "dependencies": { - "@vitejs/plugin-react": "^4.2.1", - "react": "^18.3.1", - "react-dom": "^18.3.1", - "vike": "^0.4.203", - "vike-react": "^0.5.11", - "vite": "^5.4.0" + "@vitejs/plugin-react": "^5.0.3", + "react": "^19.2.0", + "react-dom": "^19.2.0", + "vike": "^0.4.242", + "vike-react": "0.6.12", + "vite": "^7.1.7" }, "type": "module" } diff --git a/examples/react-query/.gitignore b/examples/query/.gitignore similarity index 100% rename from examples/react-query/.gitignore rename to examples/query/.gitignore diff --git a/examples/query/.test-dev.test.ts b/examples/query/.test-dev.test.ts new file mode 100644 index 00000000..fbafdbbc --- /dev/null +++ b/examples/query/.test-dev.test.ts @@ -0,0 +1,2 @@ +import { testRun } from './.testRun' +testRun('pnpm run dev') diff --git a/examples/query/.test-preview.test.ts b/examples/query/.test-preview.test.ts new file mode 100644 index 00000000..6cd5bbe4 --- /dev/null +++ b/examples/query/.test-preview.test.ts @@ -0,0 +1,2 @@ +import { testRun } from './.testRun' +testRun('pnpm run preview') diff --git a/examples/react-query/.testRun.ts b/examples/query/.testRun.ts similarity index 79% rename from examples/react-query/.testRun.ts rename to examples/query/.testRun.ts index ae8182e6..f2e3870d 100644 --- a/examples/react-query/.testRun.ts +++ b/examples/query/.testRun.ts @@ -31,11 +31,24 @@ function testRun(cmd: `pnpm run ${'dev' | 'preview'}`) { }) test('DOM', async () => { await page.goto(getServerUrl() + '/') - const body = await page.textContent('body') - // Playwright seems to await the HTML stream - expect(body).not.toContain(loading) - expect(body).toContain(content) + const getBody = async () => await page.textContent('body') + const isLoading = async () => { + const body = await getBody() + expect(body).toContain(loading) + /* Playwright seems to await the HTML stream? + expect(body).not.toContain(content) + */ + } + const isLoaded = async () => { + const body = await getBody() + expect(body).toContain(content) + expect(body).not.toContain(loading) + } + await isLoading() await testCounter() + await isLoading() + // expect(await getBody()).not.toContain(content) + await autoRetry(isLoaded) }) } diff --git a/examples/query/README.md b/examples/query/README.md new file mode 100644 index 00000000..beab345b --- /dev/null +++ b/examples/query/README.md @@ -0,0 +1,11 @@ +Example of using `vike-react-query`. + +> [!NOTE] +> For more examples, see [Bati](https://batijs.dev) which generates `vike-react` apps. + +```bash +git clone git@github.com:vikejs/vike-react +cd vike-react/examples/query/ +npm install +npm run dev +``` diff --git a/examples/react-query/assets/logo.svg b/examples/query/assets/logo.svg similarity index 100% rename from examples/react-query/assets/logo.svg rename to examples/query/assets/logo.svg diff --git a/examples/react-query/layouts/HeadDefault.tsx b/examples/query/layouts/HeadDefault.tsx similarity index 100% rename from examples/react-query/layouts/HeadDefault.tsx rename to examples/query/layouts/HeadDefault.tsx diff --git a/examples/react-query/layouts/LayoutDefault.tsx b/examples/query/layouts/LayoutDefault.tsx similarity index 100% rename from examples/react-query/layouts/LayoutDefault.tsx rename to examples/query/layouts/LayoutDefault.tsx diff --git a/examples/react-query/layouts/style.css b/examples/query/layouts/style.css similarity index 100% rename from examples/react-query/layouts/style.css rename to examples/query/layouts/style.css diff --git a/examples/query/package.json b/examples/query/package.json new file mode 100644 index 00000000..feb55811 --- /dev/null +++ b/examples/query/package.json @@ -0,0 +1,20 @@ +{ + "scripts": { + "dev": "vike dev", + "preview": "vike build && vike preview" + }, + "dependencies": { + "@types/react": "^19.1.13", + "@types/react-dom": "^19.1.9", + "@vitejs/plugin-react": "^5.0.3", + "react": "^19.2.0", + "react-dom": "^19.2.0", + "typescript": "^5.9.2", + "vike": "^0.4.242", + "vike-react": "0.6.12", + "vike-react-query": "0.1.10", + "@tanstack/react-query": "^5.20.1", + "vite": "^7.1.7" + }, + "type": "module" +} diff --git a/examples/react-query/pages/+config.ts b/examples/query/pages/+config.ts similarity index 100% rename from examples/react-query/pages/+config.ts rename to examples/query/pages/+config.ts diff --git a/examples/react-query/pages/index/+Page.tsx b/examples/query/pages/index/+Page.tsx similarity index 100% rename from examples/react-query/pages/index/+Page.tsx rename to examples/query/pages/index/+Page.tsx diff --git a/examples/react-query/pages/index/@id/+Page.tsx b/examples/query/pages/index/@id/+Page.tsx similarity index 100% rename from examples/react-query/pages/index/@id/+Page.tsx rename to examples/query/pages/index/@id/+Page.tsx diff --git a/examples/react-query/pages/index/@id/Movie.tsx b/examples/query/pages/index/@id/Movie.tsx similarity index 100% rename from examples/react-query/pages/index/@id/Movie.tsx rename to examples/query/pages/index/@id/Movie.tsx diff --git a/examples/react-query/pages/index/Counter.tsx b/examples/query/pages/index/Counter.tsx similarity index 100% rename from examples/react-query/pages/index/Counter.tsx rename to examples/query/pages/index/Counter.tsx diff --git a/examples/react-query/pages/index/Movies.tsx b/examples/query/pages/index/Movies.tsx similarity index 100% rename from examples/react-query/pages/index/Movies.tsx rename to examples/query/pages/index/Movies.tsx diff --git a/examples/react-query/pages/index/types.ts b/examples/query/pages/index/types.ts similarity index 100% rename from examples/react-query/pages/index/types.ts rename to examples/query/pages/index/types.ts diff --git a/examples/react-query/tsconfig.json b/examples/query/tsconfig.json similarity index 58% rename from examples/react-query/tsconfig.json rename to examples/query/tsconfig.json index e0bb64ac..6f6b091b 100644 --- a/examples/react-query/tsconfig.json +++ b/examples/query/tsconfig.json @@ -2,12 +2,18 @@ "compilerOptions": { "strict": true, "module": "ES2020", - "moduleResolution": "Node", + "moduleResolution": "bundler", "target": "ES2020", "lib": ["DOM", "DOM.Iterable", "ESNext"], "types": ["vite/client"], "jsx": "react", "skipLibCheck": true, "esModuleInterop": true - } + }, + "include": [ + "**/*", + // Include .test* files + // https://github.com/microsoft/TypeScript/issues/49555 + "**/.*" + ] } diff --git a/examples/react-query/vite.config.ts b/examples/query/vite.config.ts similarity index 100% rename from examples/react-query/vite.config.ts rename to examples/query/vite.config.ts diff --git a/examples/react-query/package.json b/examples/react-query/package.json deleted file mode 100644 index a43b8c89..00000000 --- a/examples/react-query/package.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "scripts": { - "dev": "vite dev", - "preview": "vite build && vite preview" - }, - "dependencies": { - "@types/react": "^18.2.55", - "@types/react-dom": "^18.2.19", - "@vitejs/plugin-react": "^4.2.1", - "react": "^18.3.1", - "react-dom": "^18.3.1", - "typescript": "^5.5.3", - "vike": "^0.4.211", - "vike-react": "^0.5.11", - "vike-react-query": "^0.1.3", - "@tanstack/react-query": "^5.20.1", - "vite": "^5.4.0" - }, - "type": "module" -} diff --git a/examples/redux/.gitignore b/examples/redux/.gitignore new file mode 100644 index 00000000..b0a5c349 --- /dev/null +++ b/examples/redux/.gitignore @@ -0,0 +1,2 @@ +/node_modules/ +/dist/ diff --git a/examples/redux/.test-dev.test.ts b/examples/redux/.test-dev.test.ts new file mode 100644 index 00000000..fbafdbbc --- /dev/null +++ b/examples/redux/.test-dev.test.ts @@ -0,0 +1,2 @@ +import { testRun } from './.testRun' +testRun('pnpm run dev') diff --git a/examples/redux/.test-preview-ssg.test.ts b/examples/redux/.test-preview-ssg.test.ts new file mode 100644 index 00000000..4ba2ae61 --- /dev/null +++ b/examples/redux/.test-preview-ssg.test.ts @@ -0,0 +1,2 @@ +import { testRun } from './.testRun' +testRun('pnpm run preview:ssg') diff --git a/examples/redux/.test-preview.test.ts b/examples/redux/.test-preview.test.ts new file mode 100644 index 00000000..6cd5bbe4 --- /dev/null +++ b/examples/redux/.test-preview.test.ts @@ -0,0 +1,2 @@ +import { testRun } from './.testRun' +testRun('pnpm run preview') diff --git a/examples/redux/.testRun.ts b/examples/redux/.testRun.ts new file mode 100644 index 00000000..286f556e --- /dev/null +++ b/examples/redux/.testRun.ts @@ -0,0 +1,98 @@ +export { testRun } + +import { test, expect, run, page, getServerUrl, autoRetry, fetchHtml, sleep } from '@brillout/test-e2e' + +function testRun(cmd: `pnpm run ${'dev' | 'preview' | 'preview:ssg'}`) { + const isDev = cmd === 'pnpm run dev' + + run(cmd) + + test('count', async () => { + await page.goto(getServerUrl() + '/') + await testCounter() + await clientSideNavigation() + await fullPageReload() + }) + async function clientSideNavigation() { + await page.click('a:has-text("About")') + await page.waitForFunction(() => (window as any)._vike.fullyRenderedUrl === '/about') + await testCounter(1) + await page.click('a:has-text("Welcome")') + await page.waitForFunction(() => (window as any)._vike.fullyRenderedUrl === '/') + await testCounter(2) + } + async function fullPageReload() { + await page.goto(getServerUrl() + '/about') + await testCounter() + await page.goto(getServerUrl() + '/') + await testCounter() + } + + test('todos - initial list', async () => { + await page.goto(getServerUrl() + '/') + await expectInitialList() + }) + async function expectInitialList() { + const buyApples = 'Buy apples' + const nodeVersion = `Node.js ${process.version}` + { + const html = await fetchHtml('/') + expect(html).toContain(`
  • ${buyApples}
  • `) + expect(html).toContain(nodeVersion) + } + { + const bodyText = await page.textContent('body') + expect(bodyText).toContain(buyApples) + expect(bodyText).toContain(nodeVersion) + expect(await getNumberOfItems()).toBe(2) + } + } + + test('todos - add to-do', async () => { + expect(await getNumberOfItems()).toBe(2) + if (isDev) await sleep(300) // Seems to be required, otherwise the test is flaky. I don't know why. + await page.fill('input[type="text"]', 'Buy bananas') + await page.click('button[type="submit"]') + const expectBananas = async () => { + await autoRetry(async () => { + expect(await getNumberOfItems()).toBe(3) + }) + expect(await page.textContent('body')).toContain('Buy bananas') + } + await expectBananas() + + await testCounter() + await clientSideNavigation() + await expectBananas() + + // Full page reload + await fullPageReload() + await expectInitialList() + }) +} + +async function getNumberOfItems() { + return await page.evaluate(() => document.querySelectorAll('#todo-list li').length) +} + +async function testCounter(inc: 0 | 1 | 2 = 0) { + const counterInitValue = 42 + const currentValue = counterInitValue + inc + // autoRetry() in case page just got client-side navigated + await autoRetry( + async () => { + const btn = page.locator('button', { hasText: 'Counter' }) + expect(await btn.textContent()).toBe(`Counter ${currentValue}`) + }, + { timeout: 5 * 1000 }, + ) + // autoRetry() in case page isn't hydrated yet + await autoRetry( + async () => { + const btn = page.locator('button', { hasText: 'Counter' }) + await btn.click() + expect(await btn.textContent()).toBe(`Counter ${currentValue + 1}`) + }, + { timeout: 5 * 1000 }, + ) +} diff --git a/examples/react-query/readme.md b/examples/redux/README.md similarity index 52% rename from examples/react-query/readme.md rename to examples/redux/README.md index 7163a375..cfcd6f09 100644 --- a/examples/react-query/readme.md +++ b/examples/redux/README.md @@ -1,8 +1,8 @@ -Example of using `vike-react-query`. +Example of using `vike-react-redux`. ```bash git clone git@github.com:vikejs/vike-react -cd vike-react/examples/react-query/ +cd vike-react/examples/redux/ npm install npm run dev ``` diff --git a/examples/redux/components/Counter.tsx b/examples/redux/components/Counter.tsx new file mode 100644 index 00000000..f91e89e2 --- /dev/null +++ b/examples/redux/components/Counter.tsx @@ -0,0 +1,15 @@ +export { Counter } + +import React from 'react' +import { useAppDispatch, useAppSelector } from '../store/hooks' +import { increment, selectCount } from '../store/slices/count' + +function Counter() { + const dispatch = useAppDispatch() + const count = useAppSelector(selectCount) + return ( + + ) +} diff --git a/examples/redux/components/Counter/fetchCountInit.ts b/examples/redux/components/Counter/fetchCountInit.ts new file mode 100644 index 00000000..3be04b0c --- /dev/null +++ b/examples/redux/components/Counter/fetchCountInit.ts @@ -0,0 +1,6 @@ +export { fetchCountInit } + +// Pretending the value is fetched over the network +async function fetchCountInit() { + return 42 +} diff --git a/examples/redux/components/Link.tsx b/examples/redux/components/Link.tsx new file mode 100644 index 00000000..3bb18237 --- /dev/null +++ b/examples/redux/components/Link.tsx @@ -0,0 +1,15 @@ +export { Link } + +import { usePageContext } from 'vike-react/usePageContext' +import React from 'react' + +function Link({ href, children }: { href: string; children: string }) { + const pageContext = usePageContext() + const { urlPathname } = pageContext + const isActive = href === '/' ? urlPathname === href : urlPathname.startsWith(href) + return ( + + {children} + + ) +} diff --git a/examples/redux/layouts/LayoutDefault.tsx b/examples/redux/layouts/LayoutDefault.tsx new file mode 100644 index 00000000..3e3acd35 --- /dev/null +++ b/examples/redux/layouts/LayoutDefault.tsx @@ -0,0 +1,75 @@ +export default LayoutDefault + +import './style.css' +import React from 'react' +import logoUrl from './logo.svg' +import { Link } from '../components/Link' + +function LayoutDefault({ children }: { children: React.ReactNode }) { + return ( +
    + + + Welcome + About + + {children} +
    + ) +} + +function Sidebar({ children }: { children: React.ReactNode }) { + return ( + + ) +} + +function Content({ children }: { children: React.ReactNode }) { + return ( +
    +
    + {children} +
    +
    + ) +} + +function Logo() { + return ( +
    + + + +
    + ) +} diff --git a/examples/redux/layouts/logo.svg b/examples/redux/layouts/logo.svg new file mode 100644 index 00000000..94d3caa0 --- /dev/null +++ b/examples/redux/layouts/logo.svg @@ -0,0 +1,36 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/redux/layouts/style.css b/examples/redux/layouts/style.css new file mode 100644 index 00000000..7afa4ca5 --- /dev/null +++ b/examples/redux/layouts/style.css @@ -0,0 +1,29 @@ +/* Links */ +a { + text-decoration: none; +} +#sidebar a { + padding: 2px 10px; + margin-left: -10px; +} +#sidebar a.is-active { + background-color: #eee; +} + +/* Reset */ +body { + margin: 0; + font-family: sans-serif; +} +* { + box-sizing: border-box; +} + +/* Page Transition Anmiation */ +#page-content { + opacity: 1; + transition: opacity 0.3s ease-in-out; +} +body.page-is-transitioning #page-content { + opacity: 0; +} diff --git a/examples/redux/package.json b/examples/redux/package.json new file mode 100644 index 00000000..edd69521 --- /dev/null +++ b/examples/redux/package.json @@ -0,0 +1,23 @@ +{ + "scripts": { + "dev": "vike dev", + "build": "vike build", + "preview": "vike build && vike preview", + "preview:ssg": "vike build --prerender && vike preview --prerender" + }, + "dependencies": { + "@reduxjs/toolkit": "^2.8.2", + "@types/react": "^19.1.13", + "@types/react-dom": "^19.1.9", + "@vitejs/plugin-react": "^5.0.3", + "react": "^19.2.0", + "react-dom": "^19.2.0", + "react-redux": "^9.2.0", + "typescript": "^5.9.2", + "vike": "^0.4.242", + "vike-react": "0.6.12", + "vike-react-redux": "0.1.1", + "vite": "^7.1.7" + }, + "type": "module" +} diff --git a/examples/redux/pages/+config.ts b/examples/redux/pages/+config.ts new file mode 100644 index 00000000..3dfc4810 --- /dev/null +++ b/examples/redux/pages/+config.ts @@ -0,0 +1,9 @@ +import Layout from '../layouts/LayoutDefault' +import vikeReact from 'vike-react/config' +import vikeReactRedux from 'vike-react-redux/config' +import type { Config } from 'vike/types' + +export default { + Layout, + extends: [vikeReact, vikeReactRedux], +} satisfies Config diff --git a/examples/redux/pages/+redux.ts b/examples/redux/pages/+redux.ts new file mode 100644 index 00000000..ef74551b --- /dev/null +++ b/examples/redux/pages/+redux.ts @@ -0,0 +1,2 @@ +import { createStore } from '../store/createStore' +export default { createStore } diff --git a/examples/redux/pages/about/+Page.tsx b/examples/redux/pages/about/+Page.tsx new file mode 100644 index 00000000..e970b685 --- /dev/null +++ b/examples/redux/pages/about/+Page.tsx @@ -0,0 +1,12 @@ +import React from 'react' +import { Counter } from '../../components/Counter' + +export default function Page() { + return ( + <> +

    About

    +

    The counter value is the same as on the Welcome page.

    + + + ) +} diff --git a/examples/redux/pages/about/+config.ts b/examples/redux/pages/about/+config.ts new file mode 100644 index 00000000..c39550d8 --- /dev/null +++ b/examples/redux/pages/about/+config.ts @@ -0,0 +1,5 @@ +import type { Config } from 'vike/types' + +export default { + ssr: false, +} satisfies Config diff --git a/examples/redux/pages/about/+data.ts b/examples/redux/pages/about/+data.ts new file mode 100644 index 00000000..62295fa1 --- /dev/null +++ b/examples/redux/pages/about/+data.ts @@ -0,0 +1,13 @@ +// Environment: server +export { data } +export type Data = Awaited> + +import { fetchCountInit } from '../../components/Counter/fetchCountInit' +import type { PageContextServer } from 'vike/types' + +async function data(pageContext: PageContextServer) { + const countInitial = await fetchCountInit() + return { + countInitial, + } +} diff --git a/examples/redux/pages/about/+onData.ts b/examples/redux/pages/about/+onData.ts new file mode 100644 index 00000000..6776cc6b --- /dev/null +++ b/examples/redux/pages/about/+onData.ts @@ -0,0 +1,16 @@ +// Environment: server, client +export { onData } + +import type { PageContext } from 'vike/types' +import type { Data } from './+data' +import { initializeCount } from '../../store/slices/count' + +function onData(pageContext: PageContext & { data?: Data }) { + const { store } = pageContext + store.dispatch(initializeCount(pageContext.data!.countInitial)) + + // Saving KBs: we don't need pageContext.data (we use the store instead) + // - If we don't delete pageContext.data then Vike sends pageContext.data to the client-side + // - This optimization only works if the page is SSR'd: if the page is pre-rendered then don't do this + if (!pageContext.isPrerendering) delete pageContext.data +} diff --git a/examples/redux/pages/index/+Page.tsx b/examples/redux/pages/index/+Page.tsx new file mode 100644 index 00000000..347ab341 --- /dev/null +++ b/examples/redux/pages/index/+Page.tsx @@ -0,0 +1,19 @@ +import React from 'react' +import { Counter } from '../../components/Counter' +import { TodoList } from './TodoList' + +export default function Page() { + return ( + <> +

    My Vike app

    + This page is: + + + + ) +} diff --git a/examples/redux/pages/index/+data.ts b/examples/redux/pages/index/+data.ts new file mode 100644 index 00000000..7cff33d9 --- /dev/null +++ b/examples/redux/pages/index/+data.ts @@ -0,0 +1,20 @@ +// Environment: server +export { data } +export type Data = Awaited> + +import { fetchCountInit } from '../../components/Counter/fetchCountInit' +import type { PageContextServer } from 'vike/types' + +async function data(pageContext: PageContextServer) { + const [countInitial, todoItemsInitial] = await Promise.all([fetchCountInit(), fetchTodosInit()]) + return { countInitial, todoItemsInitial } +} + +// Pretending the list is fetched over the network +async function fetchTodosInit() { + return [ + // + { text: 'Buy apples' }, + { text: `Update Node.js ${process.version} to latest version` }, + ] +} diff --git a/examples/redux/pages/index/+onData.ts b/examples/redux/pages/index/+onData.ts new file mode 100644 index 00000000..bd833fe5 --- /dev/null +++ b/examples/redux/pages/index/+onData.ts @@ -0,0 +1,18 @@ +// Environment: server, client +export { onData } + +import type { PageContext } from 'vike/types' +import type { Data } from './+data' +import { initializeCount } from '../../store/slices/count' +import { initializeTodos } from '../../store/slices/todos' + +function onData(pageContext: PageContext & { data?: Data }) { + const { store } = pageContext + store.dispatch(initializeTodos(pageContext.data!.todoItemsInitial)) + store.dispatch(initializeCount(pageContext.data!.countInitial)) + + // Saving KBs: we don't need pageContext.data (we use the store instead) + // - If we don't delete pageContext.data then Vike sends pageContext.data to the client-side + // - This optimization only works if the page is SSR'd: if the page is pre-rendered then don't do this + if (!pageContext.isPrerendering) delete pageContext.data +} diff --git a/examples/redux/pages/index/TodoList.tsx b/examples/redux/pages/index/TodoList.tsx new file mode 100644 index 00000000..02d2f484 --- /dev/null +++ b/examples/redux/pages/index/TodoList.tsx @@ -0,0 +1,34 @@ +import { useState } from 'react' + +import React from 'react' +import { useAppDispatch, useAppSelector } from '../../store/hooks' +import { addTodo, selectTodos } from '../../store/slices/todos' + +export function TodoList() { + const [newTodo, setNewTodo] = useState('') + const dispatch = useAppDispatch() + const todoItems = useAppSelector(selectTodos) + return ( + <> +

    To-Do

    +
      + {todoItems.map((todoItem, index) => ( + // biome-ignore: +
    • {todoItem.text}
    • + ))} +
    +
    +
    { + ev.preventDefault() + dispatch(addTodo(newTodo)) + setNewTodo('') + }} + > + setNewTodo(ev.target.value)} value={newTodo} /> + +
    +
    + + ) +} diff --git a/examples/redux/store/createStore.ts b/examples/redux/store/createStore.ts new file mode 100644 index 00000000..a1644a73 --- /dev/null +++ b/examples/redux/store/createStore.ts @@ -0,0 +1,15 @@ +export { createStore } +export type AppStore = ReturnType +export type RootState = ReturnType +export type AppDispatch = AppStore['dispatch'] + +import type { PageContext } from 'vike/types' +import { combineReducers, configureStore } from '@reduxjs/toolkit' +import { countReducer } from './slices/count' +import { todosReducer } from './slices/todos' +const reducer = combineReducers({ count: countReducer, todos: todosReducer }) + +function createStore(pageContext: PageContext) { + const preloadedState = pageContext.isClientSide ? pageContext.redux?.ssrState : undefined + return configureStore({ reducer, preloadedState }) +} diff --git a/examples/redux/store/hooks.ts b/examples/redux/store/hooks.ts new file mode 100644 index 00000000..bb99df62 --- /dev/null +++ b/examples/redux/store/hooks.ts @@ -0,0 +1,8 @@ +// This file serves as a central hub for re-exporting pre-typed Redux hooks. +import { useDispatch, useSelector, useStore } from 'react-redux' +import type { AppDispatch, AppStore, RootState } from './createStore' + +// Use throughout your app instead of plain `useDispatch` and `useSelector` +export const useAppDispatch = useDispatch.withTypes() +export const useAppSelector = useSelector.withTypes() +export const useAppStore = useStore.withTypes() diff --git a/examples/redux/store/slices/count.ts b/examples/redux/store/slices/count.ts new file mode 100644 index 00000000..933bf814 --- /dev/null +++ b/examples/redux/store/slices/count.ts @@ -0,0 +1,28 @@ +import { createSlice } from '@reduxjs/toolkit' +import type { PayloadAction } from '@reduxjs/toolkit' + +const initialState = { countValue: 0 } + +const countSlice = createSlice({ + name: 'count', + initialState, + reducers: { + increment: (state) => { + state.countValue += 1 + }, + decrement: (state) => { + state.countValue -= 1 + }, + initializeCount: (state, action: PayloadAction) => { + if (state.countValue !== 0) return + state.countValue = action.payload + }, + }, + selectors: { + selectCount: (state) => state.countValue, + }, +}) + +export const countReducer = countSlice.reducer +export const { selectCount } = countSlice.selectors +export const { increment, decrement, initializeCount } = countSlice.actions diff --git a/examples/redux/store/slices/todos.ts b/examples/redux/store/slices/todos.ts new file mode 100644 index 00000000..3f90741a --- /dev/null +++ b/examples/redux/store/slices/todos.ts @@ -0,0 +1,26 @@ +import { createSlice } from '@reduxjs/toolkit' +import type { PayloadAction } from '@reduxjs/toolkit' + +type Todo = { text: string } +const initialState = { todoItems: [] as Todo[] } + +const todosSlice = createSlice({ + name: 'todos', + initialState, + reducers: { + addTodo: (state, action: PayloadAction) => { + state.todoItems.push({ text: action.payload }) + }, + initializeTodos: (state, action: PayloadAction) => { + if (state.todoItems.length > 0) return + state.todoItems = action.payload + }, + }, + selectors: { + selectTodos: (state) => state.todoItems, + }, +}) + +export const todosReducer = todosSlice.reducer +export const { selectTodos } = todosSlice.selectors +export const { addTodo, initializeTodos } = todosSlice.actions diff --git a/examples/redux/tsconfig.json b/examples/redux/tsconfig.json new file mode 100644 index 00000000..6f6b091b --- /dev/null +++ b/examples/redux/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "strict": true, + "module": "ES2020", + "moduleResolution": "bundler", + "target": "ES2020", + "lib": ["DOM", "DOM.Iterable", "ESNext"], + "types": ["vite/client"], + "jsx": "react", + "skipLibCheck": true, + "esModuleInterop": true + }, + "include": [ + "**/*", + // Include .test* files + // https://github.com/microsoft/TypeScript/issues/49555 + "**/.*" + ] +} diff --git a/examples/redux/vite.config.ts b/examples/redux/vite.config.ts new file mode 100644 index 00000000..aa36b02f --- /dev/null +++ b/examples/redux/vite.config.ts @@ -0,0 +1,7 @@ +import react from '@vitejs/plugin-react' +import vike from 'vike/plugin' +import { UserConfig } from 'vite' + +export default { + plugins: [react(), vike()], +} satisfies UserConfig diff --git a/examples/zustand/.gitignore b/examples/zustand/.gitignore new file mode 100644 index 00000000..b0a5c349 --- /dev/null +++ b/examples/zustand/.gitignore @@ -0,0 +1,2 @@ +/node_modules/ +/dist/ diff --git a/examples/zustand/.test-dev.test.ts b/examples/zustand/.test-dev.test.ts new file mode 100644 index 00000000..fbafdbbc --- /dev/null +++ b/examples/zustand/.test-dev.test.ts @@ -0,0 +1,2 @@ +import { testRun } from './.testRun' +testRun('pnpm run dev') diff --git a/examples/zustand/.test-preview.test.ts b/examples/zustand/.test-preview.test.ts new file mode 100644 index 00000000..6cd5bbe4 --- /dev/null +++ b/examples/zustand/.test-preview.test.ts @@ -0,0 +1,2 @@ +import { testRun } from './.testRun' +testRun('pnpm run preview') diff --git a/examples/zustand/.testRun.ts b/examples/zustand/.testRun.ts new file mode 100644 index 00000000..8aa83b12 --- /dev/null +++ b/examples/zustand/.testRun.ts @@ -0,0 +1,129 @@ +export { testRun } + +import { + test, + expect, + run, + fetchHtml, + page, + getServerUrl, + autoRetry, + partRegex, + expectLog, + sleep, +} from '@brillout/test-e2e' + +function testRun(cmd: 'pnpm run dev' | 'pnpm run preview') { + const isDev = cmd === 'pnpm run dev' + + run(cmd) + + test('page content is rendered to HTML', async () => { + const html = await fetchHtml('/') + expect(html).toContain('

    Welcome

    ') + }) + + test('page is rendered to the DOM and interactive', async () => { + await page.goto(getServerUrl() + '/') + expect(await page.textContent('h1')).toBe('Welcome') + await testCounter() + }) + + test('store is persisted upon client-side navigation', async () => { + await page.goto(getServerUrl() + '/') + let value = await testCounter() + await page.click('a:has-text("About")') + await page.waitForFunction(() => (window as any)._vike.fullyRenderedUrl === '/about') + await testCounter(value) + value++ + await page.click('a:has-text("Welcome")') + await page.waitForFunction(() => (window as any)._vike.fullyRenderedUrl === '/') + await testCounter(value) + value++ + }) + + test('todos - initial list', async () => { + await page.goto(getServerUrl() + '/') + await expectInitialList() + }) + async function expectInitialList() { + const buyApples = 'Buy apples' + const nodeVersion = `Node.js ${process.version}` + { + const html = await fetchHtml('/') + expect(html).toContain(`
  • ${buyApples}
  • `) + expect(html).toContain(nodeVersion) + } + { + const bodyText = await page.textContent('body') + expect(bodyText).toContain(buyApples) + expect(bodyText).toContain(nodeVersion) + expect(await getNumberOfItems()).toBe(2) + } + } + + test('todos - add to-do', async () => { + expect(await getNumberOfItems()).toBe(2) + if (isDev) await sleep(300) // Seems to be required, otherwise the test is flaky. I don't know why. + await page.fill('input[type="text"]', 'Buy bananas') + await page.click('button[type="submit"]') + const expectBananas = async () => { + await autoRetry(async () => { + expect(await getNumberOfItems()).toBe(3) + expect(await page.textContent('body')).toContain('Buy bananas') + }) + } + await expectBananas() + expectLog('{"text":"Buy bananas"}') // See `storeVanilla.subscribe()` + + await clientSideNavigation() + await expectBananas() + + // Full page reload + await fullPageReload() + await expectInitialList() + }) + async function clientSideNavigation() { + await page.click('a:has-text("About")') + await page.waitForFunction(() => (window as any)._vike.fullyRenderedUrl === '/about') + await page.click('a:has-text("Welcome")') + await page.waitForFunction(() => (window as any)._vike.fullyRenderedUrl === '/') + } + async function fullPageReload() { + await page.goto(getServerUrl() + '/about') + await page.goto(getServerUrl() + '/') + } +} + +async function getNumberOfItems() { + return await page.evaluate(() => document.querySelectorAll('#todo-list li').length) +} + +async function testCounter(currentValue?: number) { + // autoRetry() in case page just got client-side navigated + await autoRetry( + async () => { + const btn = page.locator('button', { hasText: 'Counter' }) + const content = await btn.textContent() + expect(content).toMatch(partRegex`Counter ${/[0-9]+/}`) + const value = parseInt(content!.slice('Counter '.length), 10) + if (currentValue) { + expect(value).toBe(currentValue) + } else { + currentValue = value + } + }, + { timeout: 5 * 1000 }, + ) + const valueNew = currentValue! + 1 + // autoRetry() in case page isn't hydrated yet + await autoRetry( + async () => { + const btn = page.locator('button', { hasText: 'Counter' }) + await btn.click() + expect(await btn.textContent()).toBe(`Counter ${valueNew}`) + }, + { timeout: 5 * 1000 }, + ) + return valueNew +} diff --git a/examples/zustand/README.md b/examples/zustand/README.md new file mode 100644 index 00000000..533d0470 --- /dev/null +++ b/examples/zustand/README.md @@ -0,0 +1,8 @@ +Example of using `vike-react-zustand`. + +```bash +git clone git@github.com:vikejs/vike-react +cd vike-react/examples/zustand/ +npm install +npm run dev +``` diff --git a/examples/zustand/assets/logo.svg b/examples/zustand/assets/logo.svg new file mode 100644 index 00000000..94d3caa0 --- /dev/null +++ b/examples/zustand/assets/logo.svg @@ -0,0 +1,36 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/zustand/components/Counter.tsx b/examples/zustand/components/Counter.tsx new file mode 100644 index 00000000..15da217b --- /dev/null +++ b/examples/zustand/components/Counter.tsx @@ -0,0 +1,10 @@ +export { Counter } + +import React from 'react' +import { useCounterStore } from '../store' + +function Counter() { + const { counter, setCounter } = useCounterStore() + + return +} diff --git a/examples/zustand/layouts/HeadDefault.tsx b/examples/zustand/layouts/HeadDefault.tsx new file mode 100644 index 00000000..3de2fc65 --- /dev/null +++ b/examples/zustand/layouts/HeadDefault.tsx @@ -0,0 +1,11 @@ +export default HeadDefault + +import React from 'react' + +function HeadDefault() { + return ( + <> + + + ) +} diff --git a/examples/zustand/layouts/LayoutDefault.tsx b/examples/zustand/layouts/LayoutDefault.tsx new file mode 100644 index 00000000..a856414a --- /dev/null +++ b/examples/zustand/layouts/LayoutDefault.tsx @@ -0,0 +1,72 @@ +export default LayoutDefault + +import './style.css' +import React from 'react' +import logoUrl from '../assets/logo.svg' + +function LayoutDefault({ children }: { children: React.ReactNode }) { + return ( +
    + + + + {children} +
    + ) +} + +function Sidebar({ children }: { children: React.ReactNode }) { + return ( + + ) +} + +function Content({ children }: { children: React.ReactNode }) { + return ( +
    +
    + {children} +
    +
    + ) +} + +function Logo() { + return ( +
    + + + +
    + ) +} diff --git a/examples/zustand/layouts/style.css b/examples/zustand/layouts/style.css new file mode 100644 index 00000000..7afa4ca5 --- /dev/null +++ b/examples/zustand/layouts/style.css @@ -0,0 +1,29 @@ +/* Links */ +a { + text-decoration: none; +} +#sidebar a { + padding: 2px 10px; + margin-left: -10px; +} +#sidebar a.is-active { + background-color: #eee; +} + +/* Reset */ +body { + margin: 0; + font-family: sans-serif; +} +* { + box-sizing: border-box; +} + +/* Page Transition Anmiation */ +#page-content { + opacity: 1; + transition: opacity 0.3s ease-in-out; +} +body.page-is-transitioning #page-content { + opacity: 0; +} diff --git a/examples/zustand/package.json b/examples/zustand/package.json new file mode 100644 index 00000000..2cc6781c --- /dev/null +++ b/examples/zustand/package.json @@ -0,0 +1,23 @@ +{ + "scripts": { + "dev": "vite dev", + "build": "vite build", + "preview": "vite build && vite preview", + "test": "tsc --noEmit" + }, + "dependencies": { + "@types/react": "^19.2.2", + "@types/react-dom": "^19.2.1", + "@vitejs/plugin-react": "^5.0.4", + "immer": "^10.1.3", + "react": "^19.2.0", + "react-dom": "^19.2.0", + "typescript": "^5.9.3", + "vike": "^0.4.242", + "vike-react": "0.6.12", + "vike-react-zustand": "0.1.5", + "vite": "^7.1.9", + "zustand": "^5.0.8" + }, + "type": "module" +} diff --git a/examples/zustand/pages/+Layout.tsx b/examples/zustand/pages/+Layout.tsx new file mode 100644 index 00000000..2f77156e --- /dev/null +++ b/examples/zustand/pages/+Layout.tsx @@ -0,0 +1,12 @@ +import React from 'react' + +export const Layout = ({ children }: { children: React.ReactNode }) => { + return ( +
    + + {children} +
    + ) +} diff --git a/examples/zustand/pages/+config.ts b/examples/zustand/pages/+config.ts new file mode 100644 index 00000000..66056d70 --- /dev/null +++ b/examples/zustand/pages/+config.ts @@ -0,0 +1,10 @@ +export { config } + +import type { Config } from 'vike/types' +import vikeReact from 'vike-react/config' +import vikeReactZustand from 'vike-react-zustand/config' + +const config = { + title: 'My Vike + React App', + extends: [vikeReact, vikeReactZustand], +} satisfies Config diff --git a/examples/zustand/pages/_error/+Page.tsx b/examples/zustand/pages/_error/+Page.tsx new file mode 100644 index 00000000..131ecc07 --- /dev/null +++ b/examples/zustand/pages/_error/+Page.tsx @@ -0,0 +1,22 @@ +export default Page + +import React from 'react' + +function Page({ is404, errorInfo }: { is404: boolean; errorInfo?: string }) { + if (is404) { + return ( + <> +

    404 Page Not Found

    +

    This page could not be found.

    +

    {errorInfo}

    + + ) + } else { + return ( + <> +

    500 Internal Server Error

    +

    Something went wrong.

    + + ) + } +} diff --git a/examples/zustand/pages/about/+Page.tsx b/examples/zustand/pages/about/+Page.tsx new file mode 100644 index 00000000..bc1cee36 --- /dev/null +++ b/examples/zustand/pages/about/+Page.tsx @@ -0,0 +1,16 @@ +export default Page + +import React from 'react' +import { Counter } from '../../components/Counter' + +function Page() { + return ( + <> + <> +

    About

    +

    The counter value is the same as on the Welcome page.

    + + + + ) +} diff --git a/examples/zustand/pages/index/+Page.tsx b/examples/zustand/pages/index/+Page.tsx new file mode 100644 index 00000000..1680c1a9 --- /dev/null +++ b/examples/zustand/pages/index/+Page.tsx @@ -0,0 +1,21 @@ +export { Page } + +import React from 'react' +import { Counter } from '../../components/Counter' +import { TodoList } from './TodoList' + +function Page() { + return ( + <> +

    Welcome

    + This page is: +
      +
    • Rendered to HTML.
    • +
    • + Interactive while loading. +
    • +
    + + + ) +} diff --git a/examples/zustand/pages/index/+data.ts b/examples/zustand/pages/index/+data.ts new file mode 100644 index 00000000..d95ec61e --- /dev/null +++ b/examples/zustand/pages/index/+data.ts @@ -0,0 +1,19 @@ +// Environment: server +export { data } +export type Data = Awaited> + +import type { PageContextServer } from 'vike/types' + +async function data(pageContext: PageContextServer) { + const todoItemsInitial = await fetchTodosInit() + return { todoItemsInitial } +} + +// Pretending the list is fetched over the network +async function fetchTodosInit() { + return [ + // + { text: 'Buy apples' }, + { text: `Update Node.js ${process.version} to latest version` }, + ] +} diff --git a/examples/zustand/pages/index/TodoList.tsx b/examples/zustand/pages/index/TodoList.tsx new file mode 100644 index 00000000..156864f7 --- /dev/null +++ b/examples/zustand/pages/index/TodoList.tsx @@ -0,0 +1,42 @@ +import { useEffect, useState } from 'react' + +import React from 'react' +import { useTodoStore } from '../../store' +import { useStoreVanilla } from 'vike-react-zustand' + +export function TodoList() { + const [newTodo, setNewTodo] = useState('') + const { todoItems, addTodo } = useTodoStore() + const storeVanilla = useStoreVanilla(useTodoStore) + useEffect( + () => + storeVanilla.subscribe((state) => { + console.log(JSON.stringify(state.todoItems)) + }), + [], + ) + + return ( + <> +

    To-Do

    +
      + {todoItems.map((todoItem, index) => ( + // biome-ignore: +
    • {todoItem.text}
    • + ))} +
    +
    +
    { + ev.preventDefault() + addTodo({ text: newTodo }) + setNewTodo('') + }} + > + setNewTodo(ev.target.value)} value={newTodo} /> + +
    +
    + + ) +} diff --git a/examples/zustand/store.ts b/examples/zustand/store.ts new file mode 100644 index 00000000..4f105f9b --- /dev/null +++ b/examples/zustand/store.ts @@ -0,0 +1,39 @@ +export { useCounterStore } +export { useTodoStore } + +import { create, withPageContext } from 'vike-react-zustand' +import { immer } from 'zustand/middleware/immer' +import type { Data } from './pages/index/+data' + +interface CounterStore { + counter: number + setCounter: (value: number) => void +} +const useCounterStore = create()( + immer((set, get) => ({ + setCounter(value) { + set((state) => { + state.counter = value + }) + }, + counter: Math.floor(10000 * Math.random()), + })), +) + +type Todo = { text: string } +interface TodoStore { + todoItems: Todo[] + addTodo: (todo: Todo) => void +} +const useTodoStore = create()( + withPageContext((pageContext) => + immer((set, get) => ({ + todoItems: (pageContext.data as Data).todoItemsInitial, + addTodo(todo) { + set((state) => { + state.todoItems.push(todo) + }) + }, + })), + ), +) diff --git a/examples/zustand/tsconfig.json b/examples/zustand/tsconfig.json new file mode 100644 index 00000000..6f6b091b --- /dev/null +++ b/examples/zustand/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "strict": true, + "module": "ES2020", + "moduleResolution": "bundler", + "target": "ES2020", + "lib": ["DOM", "DOM.Iterable", "ESNext"], + "types": ["vite/client"], + "jsx": "react", + "skipLibCheck": true, + "esModuleInterop": true + }, + "include": [ + "**/*", + // Include .test* files + // https://github.com/microsoft/TypeScript/issues/49555 + "**/.*" + ] +} diff --git a/examples/zustand/vite.config.ts b/examples/zustand/vite.config.ts new file mode 100644 index 00000000..03bb667e --- /dev/null +++ b/examples/zustand/vite.config.ts @@ -0,0 +1,7 @@ +import react from '@vitejs/plugin-react' +import vike from 'vike/plugin' +import type { UserConfig } from 'vite' + +export default { + plugins: [react(), vike()], +} satisfies UserConfig diff --git a/package.json b/package.json index 76b31c8a..cbf6dba0 100644 --- a/package.json +++ b/package.json @@ -1,42 +1,32 @@ { "scripts": { "========= Build": "", - "build": "pnpm --recursive --filter {packages/*} run build", + "build": "pnpm --recursive --filter \"{packages/*}\" run build", "========= Dev": "", "dev": "cd ./packages/vike-react/ && pnpm run dev", "========= Test": "", "test": "pnpm run test:units && pnpm run test:e2e && pnpm run test:types", "test:e2e": "test-e2e", - "test:units": "pnpm --recursive --sequential --filter {packages/*} run test", + "test:units": "pnpm --recursive --sequential run test:units", "test:types": "test-types", "========= Formatting": "", "format": "pnpm run format:biome", "format:prettier": "git ls-files | egrep '\\.(json|js|jsx|css|ts|tsx|vue|mjs|cjs)$' | grep --invert-match package.json | xargs pnpm exec prettier --write", - "format:biome": "biome format --write .", - "format:check": "biome format . || (echo 'Fix formatting by running `$ pnpm run -w format`.' && exit 1)", + "format:biome": "biome check --write --unsafe", + "format:check": "biome ci || (echo '\\033[1;34mFix errors by running `$ pnpm run -w format`.\\033[0m' && exit 1)", "========= Release": "", "release": "cd ./packages/vike-react/ && pnpm run release", "release:minor": "cd ./packages/vike-react/ && pnpm run release:minor", "release:commit": "cd ./packages/vike-react/ && pnpm run release:commit", + "release:all": "pnpm --recursive --sequential run release --yes", "========= Reset": "", "reset": "git clean -Xdf && pnpm install && pnpm run build", "========= Only allow pnpm; forbid yarn & npm": "", "preinstall": "npx only-allow pnpm" }, - "pnpm": { - "overrides": { - "vike-react": "link:./packages/vike-react/", - "vike-react-query": "link:./packages/vike-react-query/", - "vike-react-apollo": "link:./packages/vike-react-apollo/", - "vike-react-chakra": "link:./packages/vike-react-chakra/", - "vike-react-antd": "link:./packages/vike-react-antd/", - "vike-react-styled-components": "link:./packages/vike-react-styled-components/", - "vike-react-styled-jsx": "link:./packages/vike-react-styled-jsx/" - } - }, "devDependencies": { - "@biomejs/biome": "^1.8.3", - "@brillout/test-e2e": "^0.5.33", + "@biomejs/biome": "^1.9.4", + "@brillout/test-e2e": "^0.6.16", "@brillout/test-types": "^0.1.15", "playwright": "^1.45.0", "prettier": "^3.2.5" diff --git a/packages/vike-react-antd/CHANGELOG.md b/packages/vike-react-antd/CHANGELOG.md index 4d328c34..505fbeb8 100644 --- a/packages/vike-react-antd/CHANGELOG.md +++ b/packages/vike-react-antd/CHANGELOG.md @@ -1,3 +1,12 @@ +## [1.0.3](https://github.com/vikejs/vike-react/compare/vike-react-antd@1.0.2...vike-react-antd@1.0.3) (2025-07-01) + + +### Bug Fixes + +* fix repo link on npm ([7a85501](https://github.com/vikejs/vike-react/commit/7a85501148774c871a342881cbe9f06678378754)) + + + ## [1.0.2](https://github.com/vikejs/vike-react/compare/vike-react-antd@1.0.1...vike-react-antd@1.0.2) (2024-12-28) diff --git a/packages/vike-react-antd/README.md b/packages/vike-react-antd/README.md index 81a99548..401c139c 100644 --- a/packages/vike-react-antd/README.md +++ b/packages/vike-react-antd/README.md @@ -1,12 +1,16 @@ + + +[![npm version](https://img.shields.io/npm/v/vike-react-antd)](https://www.npmjs.com/package/vike-react-antd) + # `vike-react-antd` -Integrates [Ant Design](https://ant.design) to your [`vike-react`](https://vike.dev/vike-react) app. +Integrates [Ant Design](https://ant.design) into your [`vike-react`](https://vike.dev/vike-react) app. [Installation](#installation) [Settings](#settings) [Version history](https://github.com/vikejs/vike-react/blob/main/packages/vike-react-antd/CHANGELOG.md) [What it does](#what-it-does) -[See Also](#see-also) +[See also](#see-also)
    @@ -25,7 +29,7 @@ Integrates [Ant Design](https://ant.design) to your [`vike-react`](https://vike. extends: [vikeReact, vikeReactAntd] } ``` -3. You can now use Ant Design at any of your components. +3. You can now use Ant Design in any of your components. ```jsx import { Button, Flex } from "antd"; diff --git a/packages/vike-react-antd/package.json b/packages/vike-react-antd/package.json index 6571b6ab..a82c4150 100644 --- a/packages/vike-react-antd/package.json +++ b/packages/vike-react-antd/package.json @@ -1,6 +1,7 @@ { "name": "vike-react-antd", - "version": "1.0.2", + "version": "1.0.3", + "homepage": "https://github.com/vikejs/vike-react/tree/main/packages/vike-react-antd#readme", "type": "module", "exports": { "./config": "./dist/config.js", @@ -24,15 +25,15 @@ }, "devDependencies": { "@ant-design/cssinjs": "^1.22.1", - "@brillout/release-me": "^0.4.2", - "@types/react": "^18.2.55", + "@brillout/release-me": "^0.4.8", + "@types/react": "^19.1.13", "antd": "^5.22.5", - "react": "^18.3.1", + "react": "^19.2.0", "rimraf": "^5.0.5", - "typescript": "^5.5.3", - "vike": "^0.4.211", - "vike-react": "^0.5.11", - "vite": "^5.4.0" + "typescript": "^5.9.2", + "vike": "^0.4.242", + "vike-react": "0.6.12", + "vite": "^7.1.7" }, "typesVersions": { "*": { @@ -53,6 +54,5 @@ "files": [ "dist" ], - "repository": "https://github.com/vikejs/vike-react/tree/main/packages/vike-react-antd", "license": "MIT" } diff --git a/packages/vike-react-apollo/CHANGELOG.md b/packages/vike-react-apollo/CHANGELOG.md index f3b5f000..08f275cd 100644 --- a/packages/vike-react-apollo/CHANGELOG.md +++ b/packages/vike-react-apollo/CHANGELOG.md @@ -1,3 +1,30 @@ +## [0.1.4](https://github.com/vikejs/vike-react/compare/vike-react-apollo@0.1.3...vike-react-apollo@0.1.4) (2025-09-16) + + +### Bug Fixes + +* react-streaming@^0.4.4 ([6420a27](https://github.com/vikejs/vike-react/commit/6420a277e86d0cf829de21f2a22fcf070f1075cd)) + + + +## [0.1.3](https://github.com/vikejs/vike-react/compare/vike-react-apollo@0.1.2...vike-react-apollo@0.1.3) (2025-07-01) + + +### Bug Fixes + +* fix repo link on npm ([7a85501](https://github.com/vikejs/vike-react/commit/7a85501148774c871a342881cbe9f06678378754)) + + + +## [0.1.2](https://github.com/vikejs/vike-react/compare/vike-react-apollo@0.1.1...vike-react-apollo@0.1.2) (2025-05-29) + + +### Bug Fixes + +* update +stream usage ([#175](https://github.com/vikejs/vike-react/issues/175)) ([7a3d1d6](https://github.com/vikejs/vike-react/commit/7a3d1d601f0ff2ff45409d92b3226f544eaf24c7)) + + + ## [0.1.1](https://github.com/vikejs/vike-react/compare/vike-react-apollo@0.1.0...vike-react-apollo@0.1.1) (2024-08-05) diff --git a/packages/vike-react-apollo/README.md b/packages/vike-react-apollo/README.md index b5406145..ab7e0200 100644 --- a/packages/vike-react-apollo/README.md +++ b/packages/vike-react-apollo/README.md @@ -4,27 +4,32 @@ # `vike-react-apollo` -Enables your React components to fetch data using [Apollo GraphQL](https://www.apollographql.com). Powered by [HTML streaming](https://github.com/brillout/react-streaming#readme). +Enables your React components to fetch data using [Apollo GraphQL](https://www.apollographql.com). -> [!NOTE] -> Includes: -> - [Progressive rendering](https://vike.dev/streaming#progressive-rendering) -> - [SSR benefits](https://github.com/brillout/react-streaming#ssr) -> - Fallback upon loading and/or error -> - [Caching](https://www.apollographql.com/docs/react/caching/cache-configuration) +Powered by [`react-streaming`](https://github.com/brillout/react-streaming#readme). + +Features: +- [Progressive Rendering](https://vike.dev/streaming#progressive-rendering) +- [SSR benefits](https://github.com/brillout/react-streaming#ssr) +- Fallback upon loading and/or error +- [Caching](https://www.apollographql.com/docs/react/caching/cache-configuration) + +
    + +**Table of Contents** [Installation](#installation) [Basic usage](#basic-usage) +[Example](#example) [`withFallback()`](#withfallback) [`` tags](#head-tags) [Error Handling](#error-handling) [How it works](#how-it-works) -[Version history](https://github.com/vikejs/vike-react/blob/main/packages/vike-react-apollo/CHANGELOG.md) +[Version history](#version-history) [See also](#see-also)
    - ## Installation 1. `npm install @apollo/client @apollo/client-react-streaming graphql vike-react-apollo` @@ -46,7 +51,7 @@ Enables your React components to fetch data using [Apollo GraphQL](https://www.a import { ApolloClient, InMemoryCache } from '@apollo/client-react-streaming' - export default (pageContext: PageContext) => + export default (pageContext) => new ApolloClient({ uri: 'https://countries.trevorblades.com', cache: new InMemoryCache() @@ -58,7 +63,6 @@ Enables your React components to fetch data using [Apollo GraphQL](https://www.a
    - ## Basic usage ```jsx @@ -89,8 +93,20 @@ const Countries = () => { > [!NOTE] > Even though [`useSuspenseQuery()`](https://www.apollographql.com/docs/react/api/react/hooks/#usesuspensequery) is imported from `@apollo/client`, you need to install `vike-react-apollo` for it to work. (The `useSuspenseQuery()` hook requires an [HTML stream](https://vike.dev/streaming) integration.) +Benefits: + - Data is fetched at the component level (unlike [`+data`](https://vike.dev/data), which fetches at the page level). + - The rest of the page is eagerly rendered while the component waits for its data (see [Progressive Rendering](https://vike.dev/streaming#progressive-rendering)). + - All the niceties of Apollo GraphQL. + +You can completely stop using Vike's [`+data` hook](https://vike.dev/data) — or use both: `+data` for some pages, and `vike-react-apollo` for others. +
    +## Example + +See [examples/apollo/](https://github.com/vikejs/vike-react/tree/main/examples/apollo). + +
    ## `withFallback()` @@ -200,10 +216,9 @@ function SomePageSection() {
    - ## `` tags -To set tags such as `` and `<meta name="description">` based on fetched data, you can use [`<Config>`, `<Head>`, and `useConfig()`](https://vike.dev/useConfig). +To set tags such as `<title>` and `<meta name="description">` based on fetched data, you can use [`useConfig()` / `<Config>` / `<Head>`](https://vike.dev/useConfig#ui-components). ```js import { useSuspenseQuery } from '@tanstack/react-query' @@ -233,8 +248,10 @@ function Movies() { } ``` -<br/> +> [!NOTE] +> The `<meta name="description">` tag is only shown to bots. See the explanation at [Vike Docs > `useConfig` > HTML Streaming](https://vike.dev/useConfig#html-streaming). +<br/> ## Error Handling @@ -257,25 +274,25 @@ See: [`withFallback()`](#withfallback) <br/> - ## How it works -Upon SSR, the component is rendered to HTML and its data loaded on the server-side. On the client side, the component is merely [hydrated](https://vike.dev/hydration). +On the server side (during SSR), the component is rendered to HTML and its data is loaded. On the client side, the component is just [hydrated](https://vike.dev/hydration): the data fetched on the server is passed to the client and reused. Upon page navigation (and rendering the first page if [SSR is disabled](https://vike.dev/ssr)), the component is rendered and its data loaded on the client-side. > [!NOTE] -> With `vike-react-apollo` you fetch data on a component-level instead of using Vike's [`data()` hook](https://vike.dev/data) which fetches data on a page-level. - -> [!NOTE] -> Behind the scenes `vike-react-apollo` integrates Apollo GraphQL into [the HTML stream](https://github.com/brillout/react-streaming#readme). +> Behind the scenes `vike-react-apollo` integrates Apollo GraphQL into [`react-streaming`](https://github.com/brillout/react-streaming#readme). <br/> +## Version history + +See [CHANGELOG.md](https://github.com/vikejs/vike-react/blob/main/packages/vike-react-apollo/CHANGELOG.md). + +<br/> ## See also -- [Example](https://github.com/vikejs/vike-react/tree/main/examples/apollo) - [Vike Docs > Apollo GraphQL](https://vike.dev/apollo-graphql) - [Vike Docs > Data Fetching](https://vike.dev/data-fetching) - [Apollo GraphQL > useSuspenseQuery](https://www.apollographql.com/docs/react/api/react/hooks/#usesuspensequery) diff --git a/packages/vike-react-apollo/package.json b/packages/vike-react-apollo/package.json index d2763bbe..5a17aea3 100644 --- a/packages/vike-react-apollo/package.json +++ b/packages/vike-react-apollo/package.json @@ -1,11 +1,12 @@ { "name": "vike-react-apollo", - "version": "0.1.1", + "version": "0.1.4", + "homepage": "https://github.com/vikejs/vike-react/tree/main/packages/vike-react-apollo#readme", "type": "module", - "main": "dist/src/index.js", - "typings": "dist/src/index.js", + "main": "dist/index.js", + "typings": "dist/index.js", "exports": { - ".": "./dist/src/index.js", + ".": "./dist/index.js", "./config": "./dist/integration/+config.js", "./__internal/integration/Wrapper": "./dist/integration/Wrapper.js" }, @@ -23,24 +24,24 @@ "react": ">=18.0.0", "react-dom": ">=18.0.0", "react-streaming": ">=0.3.41", - "vike-react": ">=0.4.18" + "vike-react": ">=0.6.4" }, "devDependencies": { - "@brillout/release-me": "^0.4.2", + "@brillout/release-me": "^0.4.8", "@apollo/client": "^3.10.8", "@apollo/client-react-streaming": "^0.11.2", "graphql": "^16.9.0", - "@types/node": "^20.11.17", - "@types/react": "^18.2.55", - "react": "^18.3.1", - "react-dom": "^18.3.1", - "@types/react-dom": "^18.3.0", - "react-streaming": "^0.3.43", + "@types/node": "^24.0.8", + "@types/react": "^19.1.13", + "react": "^19.2.0", + "react-dom": "^19.2.0", + "@types/react-dom": "^19.1.9", + "react-streaming": "^0.4.11", "rimraf": "^5.0.5", - "typescript": "^5.3.3", - "vike": "^0.4.211", - "vike-react": "^0.5.11", - "vite": "^5.4.0" + "typescript": "^5.9.2", + "vike": "^0.4.242", + "vike-react": "0.6.12", + "vite": "^7.1.7" }, "dependencies": { "react-error-boundary": "^4.0.12" @@ -58,6 +59,5 @@ "files": [ "dist" ], - "repository": "github:vikejs/vike-react", "license": "MIT" } diff --git a/packages/vike-react-apollo/integration/+config.ts b/packages/vike-react-apollo/src/integration/+config.ts similarity index 78% rename from packages/vike-react-apollo/integration/+config.ts rename to packages/vike-react-apollo/src/integration/+config.ts index cfb69992..3086376e 100644 --- a/packages/vike-react-apollo/integration/+config.ts +++ b/packages/vike-react-apollo/src/integration/+config.ts @@ -1,16 +1,16 @@ export { config as default } import type { Config } from 'vike/types' -import 'vike-react/config' // Needed for declaration merging of Config import type { ApolloClient } from '@apollo/client-react-streaming' +import 'vike-react/config' // Needed for merging vike-react's Vike.Config such as +stream const config = { name: 'vike-react-apollo', require: { - 'vike-react': '>=0.4.18', + 'vike-react': '>=0.6.4', }, Wrapper: 'import:vike-react-apollo/__internal/integration/Wrapper:Wrapper', - streamIsRequired: true, + stream: { require: true }, meta: { ApolloClient: { env: { diff --git a/packages/vike-react-apollo/integration/Transport.tsx b/packages/vike-react-apollo/src/integration/Transport.tsx similarity index 100% rename from packages/vike-react-apollo/integration/Transport.tsx rename to packages/vike-react-apollo/src/integration/Transport.tsx diff --git a/packages/vike-react-apollo/integration/Wrapper.tsx b/packages/vike-react-apollo/src/integration/Wrapper.tsx similarity index 100% rename from packages/vike-react-apollo/integration/Wrapper.tsx rename to packages/vike-react-apollo/src/integration/Wrapper.tsx diff --git a/packages/vike-react-apollo/utils/assert.ts b/packages/vike-react-apollo/src/utils/assert.ts similarity index 100% rename from packages/vike-react-apollo/utils/assert.ts rename to packages/vike-react-apollo/src/utils/assert.ts diff --git a/packages/vike-react-apollo/tsconfig.json b/packages/vike-react-apollo/tsconfig.json index 714277ff..6da32466 100644 --- a/packages/vike-react-apollo/tsconfig.json +++ b/packages/vike-react-apollo/tsconfig.json @@ -15,10 +15,11 @@ // Output "declaration": true, "noEmitOnError": false, - "rootDir": "./", + "rootDir": "./src/", // Misc "esModuleInterop": true, "skipLibCheck": true, "jsx": "react" - } + }, + "include": ["./src"] } diff --git a/packages/vike-react-chakra/CHANGELOG.md b/packages/vike-react-chakra/CHANGELOG.md index 8dd8baf6..ab295ac3 100644 --- a/packages/vike-react-chakra/CHANGELOG.md +++ b/packages/vike-react-chakra/CHANGELOG.md @@ -1,3 +1,13 @@ +## [1.0.2](https://github.com/vikejs/vike-react/compare/vike-react-chakra@1.0.0...vike-react-chakra@1.0.2) (2025-07-01) + + +### Bug Fixes + +* add eject.config.js ([0070495](https://github.com/vikejs/vike-react/commit/00704957fcf374ad0c7ebb0645a36b8d2035d2d2)) +* fix repo link on npm ([7a85501](https://github.com/vikejs/vike-react/commit/7a85501148774c871a342881cbe9f06678378754)) + + + ## [1.0.1](https://github.com/vikejs/vike-react/compare/vike-react-chakra@1.0.0...vike-react-chakra@1.0.1) (2024-11-28) diff --git a/packages/vike-react-chakra/README.md b/packages/vike-react-chakra/README.md index 78af21c5..88e13dba 100644 --- a/packages/vike-react-chakra/README.md +++ b/packages/vike-react-chakra/README.md @@ -1,14 +1,18 @@ +<!-- WARNING: keep links absolute in this file so they work on NPM too --> + +[![npm version](https://img.shields.io/npm/v/vike-react-chakra)](https://www.npmjs.com/package/vike-react-chakra) + # `vike-react-chakra` +Integrates [Chakra UI](https://www.chakra-ui.com/) into your [`vike-react`](https://vike.dev/vike-react) app. + [Installation](#installation) [Settings](#settings) [Version history](https://github.com/vikejs/vike-react/blob/main/packages/vike-react-chakra/CHANGELOG.md) -[See Also](#see-also) +[See also](#see-also) <br/> -Integrates [Chakra UI](https://www.chakra-ui.com/) to your [`vike-react`](https://vike.dev/vike-react) app. - ## Installation 1. `npm install vike-react-chakra @chakra-ui/react @emotion/react` @@ -24,7 +28,7 @@ Integrates [Chakra UI](https://www.chakra-ui.com/) to your [`vike-react`](https: extends: [vikeReact, vikeReactChakra] } ``` -3. You can now use Chakra at any of your components. +3. You can now use Chakra in any of your components. ```jsx import { HStack, Button } from '@chakra-ui/react' diff --git a/packages/vike-react-chakra/package.json b/packages/vike-react-chakra/package.json index fdc99645..2deb7d89 100644 --- a/packages/vike-react-chakra/package.json +++ b/packages/vike-react-chakra/package.json @@ -1,6 +1,7 @@ { "name": "vike-react-chakra", - "version": "1.0.1", + "version": "1.0.2", + "homepage": "https://github.com/vikejs/vike-react/tree/main/packages/vike-react-chakra#readme", "type": "module", "exports": { "./config": "./dist/config.js", @@ -21,16 +22,16 @@ "vike-react": ">=0.4.13" }, "devDependencies": { - "@brillout/release-me": "^0.4.2", + "@brillout/release-me": "^0.4.8", "@chakra-ui/react": "^3.0.2", "@emotion/react": "^11.13.3", - "@types/react": "^18.2.55", - "react": "^18.3.1", + "@types/react": "^19.1.13", + "react": "^19.2.0", "rimraf": "^5.0.5", - "typescript": "^5.5.3", - "vike": "^0.4.211", - "vike-react": "^0.5.11", - "vite": "^5.4.0" + "typescript": "^5.9.2", + "vike": "^0.4.242", + "vike-react": "0.6.12", + "vite": "^7.1.7" }, "typesVersions": { "*": { @@ -45,6 +46,5 @@ "files": [ "dist" ], - "repository": "https://github.com/vikejs/vike-react/tree/main/packages/vike-react-chakra", "license": "MIT" } diff --git a/packages/vike-react-query/CHANGELOG.md b/packages/vike-react-query/CHANGELOG.md index c4bc550a..3e54241e 100644 --- a/packages/vike-react-query/CHANGELOG.md +++ b/packages/vike-react-query/CHANGELOG.md @@ -1,3 +1,87 @@ +## [0.1.10](https://github.com/vikejs/vike-react/compare/vike-react-query@0.1.9...vike-react-query@0.1.10) (2025-10-07) + + +### Bug Fixes + +* improve DX in dev ([899dcf1](https://github.com/vikejs/vike-react/commit/899dcf1d3bbeb13e0996856e2ec01e24150ace03)) + + +### Performance Improvements + +* remove server code from client-side bundles ([a51d68d](https://github.com/vikejs/vike-react/commit/a51d68d07727cafb0b4031d67babb9be37e362ef)) + + +### MINOR BREAKING CHANGES + +> [!NOTE] +> We recommend ignoring `MINOR BREAKING CHANGES` unless this version breaks your app, see [Vike Versioning](https://vike.dev/versioning). + +* Update Vike to `0.4.242` or above + + + +## [0.1.9](https://github.com/vikejs/vike-react/compare/vike-react-query@0.1.8...vike-react-query@0.1.9) (2025-10-06) + + +### Bug Fixes + +* also unsubscribe upon stream failure ([c3555ee](https://github.com/vikejs/vike-react/commit/c3555eefda8d2ff62f9b1a10fe434590cb11758a)) + + + +## [0.1.8](https://github.com/vikejs/vike-react/compare/vike-react-query@0.1.7...vike-react-query@0.1.8) (2025-10-06) + + +### Bug Fixes + +* unsubscribe query cache ([#193](https://github.com/vikejs/vike-react/issues/193)) ([2913ebe](https://github.com/vikejs/vike-react/commit/2913ebe284c8312f7d941c8c9730cd7a72c25524)) + + +### MINOR BREAKING CHANGES + +> [!NOTE] +> We recommend ignoring `MINOR BREAKING CHANGES` unless this version breaks your app, see [Vike Versioning](https://vike.dev/versioning). + +* update vike-react to `0.6.8` or above + + + +## [0.1.7](https://github.com/vikejs/vike-react/compare/vike-react-query@0.1.6...vike-react-query@0.1.7) (2025-10-06) + + +### Bug Fixes + +* also send pre-fetched queries to client ([#192](https://github.com/vikejs/vike-react/issues/192)) ([953930c](https://github.com/vikejs/vike-react/commit/953930cecd3baa1ec2ac5f0f8408e1151c915506)) + + + +## [0.1.6](https://github.com/vikejs/vike-react/compare/vike-react-query@0.1.5...vike-react-query@0.1.6) (2025-09-16) + + +### Bug Fixes + +* react-streaming@^0.4.4 ([6420a27](https://github.com/vikejs/vike-react/commit/6420a277e86d0cf829de21f2a22fcf070f1075cd)) + + + +## [0.1.5](https://github.com/vikejs/vike-react/compare/vike-react-query@0.1.4...vike-react-query@0.1.5) (2025-07-01) + + +### Bug Fixes + +* fix repo link on npm ([7a85501](https://github.com/vikejs/vike-react/commit/7a85501148774c871a342881cbe9f06678378754)) + + + +## [0.1.4](https://github.com/vikejs/vike-react/compare/vike-react-query@0.1.3...vike-react-query@0.1.4) (2025-05-29) + + +### Bug Fixes + +* update +stream usage ([#175](https://github.com/vikejs/vike-react/issues/175)) ([7a3d1d6](https://github.com/vikejs/vike-react/commit/7a3d1d601f0ff2ff45409d92b3226f544eaf24c7)) + + + ## [0.1.3](https://github.com/vikejs/vike-react/compare/vike-react-query@0.1.2...vike-react-query@0.1.3) (2024-12-04) diff --git a/packages/vike-react-query/README.md b/packages/vike-react-query/README.md index 3bb0e371..f68db6a3 100644 --- a/packages/vike-react-query/README.md +++ b/packages/vike-react-query/README.md @@ -4,29 +4,34 @@ # `vike-react-query` -Enables your React components to fetch data using [TanStack Query](https://tanstack.com/query/latest). Powered by [HTML streaming](https://github.com/brillout/react-streaming#readme). +Enables your React components to fetch data using [TanStack Query](https://tanstack.com/query/latest). -> [!NOTE] -> Includes: -> - [Progressive rendering](https://vike.dev/streaming#progressive-rendering) -> - [SSR benefits](https://github.com/brillout/react-streaming#ssr) -> - Fallback upon loading and/or error -> - [Caching](https://tanstack.com/query/latest/docs/framework/react/reference/useSuspenseQuery) +Powered by [`react-streaming`](https://github.com/brillout/react-streaming#readme). + +Features: +- [Progressive Rendering](https://vike.dev/streaming#progressive-rendering) +- [SSR benefits](https://github.com/brillout/react-streaming#ssr) +- Fallback upon loading and/or error +- [Caching](https://tanstack.com/query/latest/docs/framework/react/reference/useSuspenseQuery) + +<br/> + +**Table of Contents** [Installation](#installation) [Basic usage](#basic-usage) +[Example](#example) [`withFallback()`](#withfallback) [`<head>` tags](#head-tags) [Error Handling](#error-handling) [Settings](#settings) [Usage with Telefunc](#usage-with-telefunc) [How it works](#how-it-works) -[Version history](https://github.com/vikejs/vike-react/blob/main/packages/vike-react-query/CHANGELOG.md) +[Version history](#version-history) [See also](#see-also) <br/> - ## Installation 1. `npm install @tanstack/react-query vike-react-query` @@ -48,7 +53,6 @@ Enables your React components to fetch data using [TanStack Query](https://tanst <br/> - ## Basic usage ```jsx @@ -75,8 +79,20 @@ const Movie = ({ id }) => { > [!NOTE] > Even though [`useSuspenseQuery()`](https://tanstack.com/query/latest/docs/framework/react/reference/useSuspenseQuery) is imported from `@tanstack/react-query`, you need to install `vike-react-query` for it to work. (The `useSuspenseQuery()` hook requires an [HTML stream](https://vike.dev/streaming) integration.) +Benefits: + - Data is fetched at the component level (unlike [`+data`](https://vike.dev/data), which fetches at the page level). + - The rest of the page is eagerly rendered while the component waits for its data (see [Progressive Rendering](https://vike.dev/streaming#progressive-rendering)). + - All the niceties of TanStack Query. + +You can completely stop using Vike's [`+data` hook](https://vike.dev/data) — or use both: `+data` for some pages, and `vike-react-query` for others. + <br/> +## Example + +See [examples/query/](https://github.com/vikejs/vike-react/tree/main/examples/query). + +<br/> ## `withFallback()` @@ -180,10 +196,9 @@ function SomePageSection() { <br/> - ## `<head>` tags -To set tags such as `<title>` and `<meta name="description">` based on fetched data, you can use [`<Config>`, `<Head>`, and `useConfig()`](https://vike.dev/useConfig). +To set tags such as `<title>` and `<meta name="description">` based on fetched data, you can use [`useConfig()` / `<Config>` / `<Head>`](https://vike.dev/useConfig#ui-components). ```js import { useSuspenseQuery } from '@tanstack/react-query' @@ -210,8 +225,10 @@ function Movies() { } ``` -<br/> +> [!NOTE] +> The `<meta name="description">` tag is only shown to bots. See the explanation at [Vike Docs > `useConfig` > HTML Streaming](https://vike.dev/useConfig#html-streaming). +<br/> ## Error Handling @@ -234,7 +251,6 @@ See: [`withFallback()`](#withfallback) <br/> - ## Settings You can modify the defaults defined by [`QueryClient`](https://tanstack.com/query/latest/docs/reference/QueryClient). @@ -273,7 +289,6 @@ export default (pageContext) => ({ <br/> - ## Usage with Telefunc You can use `vike-react-query` with [Telefunc](https://telefunc.com). @@ -434,25 +449,26 @@ const Movies = withFallback( <br/> - ## How it works -Upon SSR, the component is rendered to HTML and its data loaded on the server-side. On the client side, the component is merely [hydrated](https://vike.dev/hydration). +On the server side (during SSR), the component is rendered to HTML and its data is loaded. On the client side, the component is just [hydrated](https://vike.dev/hydration): the data fetched on the server is passed to the client and reused. Upon page navigation (and rendering the first page if [SSR is disabled](https://vike.dev/ssr)), the component is rendered and its data loaded on the client-side. > [!NOTE] -> With `vike-react-query` you fetch data on a component-level instead of using Vike's [`data()` hook](https://vike.dev/data) which fetches data on a page-level. - -> [!NOTE] -> Behind the scenes `vike-react-query` integrates TanStack Query into [the HTML stream](https://github.com/brillout/react-streaming#readme). +> Behind the scenes `vike-react-query` integrates TanStack Query into [`react-streaming`](https://github.com/brillout/react-streaming#readme). <br/> +## Version history + +See [CHANGELOG.md](https://github.com/vikejs/vike-react/blob/main/packages/vike-react-query/CHANGELOG.md). + +<br/> ## See also -- [Example](https://github.com/vikejs/vike-react/tree/main/examples/react-query) - [Vike Docs > TanStack Query](https://vike.dev/tanstack-query) -- [TanStack Query > useSuspenseQuery](https://tanstack.com/query/latest/docs/framework/react/reference/useSuspenseQuery) - [Vike Docs > Data Fetching](https://vike.dev/data-fetching) +- [TanStack Query > useSuspenseQuery](https://tanstack.com/query/latest/docs/framework/react/reference/useSuspenseQuery) +- [React > `<Suspense>`](https://react.dev/reference/react/Suspense) diff --git a/packages/vike-react-query/integration/StreamedHydration.tsx b/packages/vike-react-query/integration/StreamedHydration.tsx deleted file mode 100644 index c5bcadea..00000000 --- a/packages/vike-react-query/integration/StreamedHydration.tsx +++ /dev/null @@ -1,56 +0,0 @@ -export { StreamedHydration } - -import type { QueryClient } from '@tanstack/react-query' -import { dehydrate, hydrate, DehydratedState } from '@tanstack/react-query' -import { uneval } from 'devalue' -import type { ReactNode } from 'react' -import { useStream } from 'react-streaming' - -declare global { - interface Window { - _rqd_?: { push: (entry: DehydratedState) => void } | DehydratedState[] - _rqc_?: () => void - } -} - -/** - * This component is responsible for: - * - dehydrating the query client on the server - * - hydrating the query client on the client - * - if react-streaming is not used, it doesn't do anything - */ -function StreamedHydration({ client, children }: { client: QueryClient; children: ReactNode }) { - const stream = useStream() - - // stream is only avaiable in SSR - const isSSR = !!stream - - if (isSSR) { - stream.injectToStream( - `<script class="_rqd_">_rqd_=[];_rqc_=()=>{Array.from( - document.getElementsByClassName("_rqd_") - ).forEach((e) => e.remove())};_rqc_()</script>`, - ) - client.getQueryCache().subscribe((event) => { - if (['added', 'updated'].includes(event.type) && event.query.state.status === 'success') - stream.injectToStream( - `<script class="_rqd_">_rqd_.push(${uneval( - dehydrate(client, { - shouldDehydrateQuery: (query) => query.queryHash === event.query.queryHash, - }), - )});_rqc_()</script>`, - ) - }) - } - - if (!isSSR && Array.isArray(window._rqd_)) { - const onEntry = (entry: DehydratedState) => { - hydrate(client, entry) - } - for (const entry of window._rqd_) { - onEntry(entry) - } - window._rqd_ = { push: onEntry } - } - return children -} diff --git a/packages/vike-react-query/package.json b/packages/vike-react-query/package.json index 1e15b55e..1b63ba76 100644 --- a/packages/vike-react-query/package.json +++ b/packages/vike-react-query/package.json @@ -1,11 +1,12 @@ { "name": "vike-react-query", - "version": "0.1.3", + "version": "0.1.10", + "homepage": "https://github.com/vikejs/vike-react/tree/main/packages/vike-react-query#readme", "type": "module", - "main": "dist/src/index.js", - "typings": "dist/src/index.js", + "main": "dist/index.js", + "typings": "dist/index.js", "exports": { - ".": "./dist/src/index.js", + ".": "./dist/index.js", "./config": "./dist/integration/+config.js", "./__internal/integration/Wrapper": "./dist/integration/Wrapper.js", "./__internal/integration/FallbackErrorBoundary": "./dist/integration/FallbackErrorBoundary.js" @@ -16,29 +17,30 @@ "release": "release-me patch", "release:minor": "release-me minor", "release:commit": "release-me commit", - "test": "vitest run" + "test:units": "vitest run" }, "peerDependencies": { "@tanstack/react-query": ">=5.0.0", "react": ">=18.0.0", - "react-streaming": ">=0.3.42", - "vike-react": ">=0.4.13" + "react-streaming": ">=0.4.6", + "vike-react": ">=0.6.8", + "vike": ">=0.4.242" }, "devDependencies": { - "@brillout/release-me": "^0.4.2", + "@brillout/release-me": "^0.4.8", "@tanstack/react-query": "^5.20.1", "@testing-library/react": "^14.2.1", - "@types/node": "^20.11.17", - "@types/react": "^18.2.55", + "@types/node": "^24.0.8", + "@types/react": "^19.1.13", "jsdom": "^24.0.0", - "react": "^18.3.1", - "react-streaming": "^0.3.43", + "react": "^19.2.0", + "react-streaming": "^0.4.11", "rimraf": "^5.0.5", - "typescript": "^5.5.3", - "vike": "^0.4.211", - "vike-react": "^0.5.11", - "vite": "^5.4.0", - "vitest": "^1.2.2" + "typescript": "^5.9.2", + "vike": "^0.4.242", + "vike-react": "0.6.12", + "vite": "^7.1.7", + "vitest": "^3.2.4" }, "dependencies": { "devalue": "^4.3.2", @@ -57,6 +59,5 @@ "files": [ "dist" ], - "repository": "github:vikejs/vike-react", "license": "MIT" } diff --git a/packages/vike-react-query/integration/+config.ts b/packages/vike-react-query/src/integration/+config.ts similarity index 85% rename from packages/vike-react-query/integration/+config.ts rename to packages/vike-react-query/src/integration/+config.ts index cb260070..0d8e31bf 100644 --- a/packages/vike-react-query/integration/+config.ts +++ b/packages/vike-react-query/src/integration/+config.ts @@ -3,17 +3,18 @@ export { config as default } import type { QueryClientConfig } from '@tanstack/react-query' import type { ReactNode } from 'react' import type { Config, ImportString } from 'vike/types' -import 'vike-react/config' // Needed for declaration merging of Config +import 'vike-react/config' // Needed for merging vike-react's Vike.Config such as +stream const config = { name: 'vike-react-query', require: { - 'vike-react': '>=0.4.13', + vike: '>=0.4.242', + 'vike-react': '>=0.6.4', }, queryClientConfig: undefined, Wrapper: 'import:vike-react-query/__internal/integration/Wrapper:Wrapper', FallbackErrorBoundary: 'import:vike-react-query/__internal/integration/FallbackErrorBoundary:FallbackErrorBoundary', - streamIsRequired: true, + stream: { require: true }, meta: { queryClientConfig: { env: { diff --git a/packages/vike-react-query/integration/FallbackErrorBoundary.tsx b/packages/vike-react-query/src/integration/FallbackErrorBoundary.tsx similarity index 72% rename from packages/vike-react-query/integration/FallbackErrorBoundary.tsx rename to packages/vike-react-query/src/integration/FallbackErrorBoundary.tsx index f128c05f..2fba22ec 100644 --- a/packages/vike-react-query/integration/FallbackErrorBoundary.tsx +++ b/packages/vike-react-query/src/integration/FallbackErrorBoundary.tsx @@ -5,11 +5,7 @@ import React, { CSSProperties, ReactElement } from 'react' import { ErrorBoundary, FallbackProps } from 'react-error-boundary' function FallbackErrorBoundary({ children }: { children: ReactElement }) { - /* TODO: either remove this or properly check whether env is DEV: - * - Safe check against process.env.NODE_ENV for server-side - * - Safe check against import.meta.env.DEV for client-side - */ - return (false as boolean) /*import.meta.env.DEV*/ ? ( + return globalThis.__VIKE__IS_DEV ? ( <QueryErrorResetBoundary> {({ reset }) => ( <ErrorBoundary onReset={reset} FallbackComponent={Fallback}> @@ -29,13 +25,7 @@ function Fallback({ resetErrorBoundary, error }: FallbackProps) { <button style={buttonStyle} onClick={() => resetErrorBoundary()}> Try again </button> - { - /* TODO: either remove this or properly check whether env is DEV: - * - Safe check against process.env.NODE_ENV for server-side - * - Safe check against import.meta.env.DEV for client-side - */ - (false as boolean) /*import.meta.env.DEV*/ && <pre>{getErrorStack(error)}</pre> - } + {globalThis.__VIKE__IS_DEV && <pre>{getErrorStack(error)}</pre>} </div> ) } diff --git a/packages/vike-react-query/src/integration/StreamedHydration.tsx b/packages/vike-react-query/src/integration/StreamedHydration.tsx new file mode 100644 index 00000000..5612733d --- /dev/null +++ b/packages/vike-react-query/src/integration/StreamedHydration.tsx @@ -0,0 +1,86 @@ +export { StreamedHydration } + +import type { QueryClient } from '@tanstack/react-query' +import { dehydrate, hydrate, type DehydratedState } from '@tanstack/react-query' +import { assert } from '../utils/assert.js' +import { uneval } from 'devalue' +import type { ReactNode } from 'react' +import { useStream } from 'react-streaming' + +declare global { + interface Window { + _rqd_?: { push: (entry: DehydratedState) => void } | DehydratedState[] + _rqc_?: () => void + } +} + +/** + * This component is responsible for: + * - dehydrating the query client on the server + * - hydrating the query client on the client + * - if react-streaming is not used, it doesn't do anything + */ +function StreamedHydration({ client, children }: { client: QueryClient; children: ReactNode }) { + const stream = useStream() + + if (!globalThis.__VIKE__IS_CLIENT) { + assert(stream) + stream.injectToStream( + `<script class="_rqd_">_rqd_=[];_rqc_=()=>{Array.from( + document.getElementsByClassName("_rqd_") + ).forEach((e) => e.remove())};_rqc_()</script>`, + ) + + const alreadySent = new Set<string>() + + const unsubscribe = client.getQueryCache().subscribe((event) => { + if (stream.hasStreamEnded() || event.query.state.status !== 'success') return + + let shouldSend = false + switch (event.type) { + case 'added': + // Also `observerAdded` and `observerResultsUpdated` for queries pre-fetched before subscription. + // https://github.com/vikejs/vike-react/pull/192 + case 'observerAdded': + case 'observerResultsUpdated': + if (!alreadySent.has(event.query.queryHash)) { + alreadySent.add(event.query.queryHash) + shouldSend = true + } + break + case 'updated': + // Always send on `updated` events (even if already sent once), since updates may change the query data. + shouldSend = true + break + } + if (!shouldSend) return + + stream.injectToStream( + `<script class="_rqd_">_rqd_.push(${uneval( + dehydrate(client, { + shouldDehydrateQuery: (query) => query.queryHash === event.query.queryHash, + }), + )});_rqc_()</script>`, + ) + }) + + // Unsubscribe + stream.streamEnd.then(() => { + unsubscribe() + }) + // Properly handling rejection is complex, but luckily streamEnd never rejects + // https://github.com/brillout/promise-forwarding + stream.streamEnd.catch(() => assert(false)) // streamEnd never rejects + } + + if (globalThis.__VIKE__IS_CLIENT && Array.isArray(window._rqd_)) { + const onEntry = (entry: DehydratedState) => { + hydrate(client, entry) + } + for (const entry of window._rqd_) { + onEntry(entry) + } + window._rqd_ = { push: onEntry } + } + return children +} diff --git a/packages/vike-react-query/integration/Wrapper.tsx b/packages/vike-react-query/src/integration/Wrapper.tsx similarity index 52% rename from packages/vike-react-query/integration/Wrapper.tsx rename to packages/vike-react-query/src/integration/Wrapper.tsx index 9fbcc3fa..9bade561 100644 --- a/packages/vike-react-query/integration/Wrapper.tsx +++ b/packages/vike-react-query/src/integration/Wrapper.tsx @@ -28,18 +28,15 @@ function PassThrough({ children }: any) { let clientQueryClient: QueryClient | undefined function getQueryClient(config: QueryClientConfig | undefined) { - if (!isBrowser()) return new QueryClient(config) - // React may throw away a partially rendered tree if it suspends, and then start again from scratch. - // If it's no suspense boundary between the creation of queryClient and useSuspenseQuery, - // then the entire tree is thrown away, including the creation of queryClient, which may produce infinity refetchs - // https://github.com/TanStack/query/issues/6116#issuecomment-1904051005 - // https://github.com/vikejs/vike-react/pull/157 - if (!clientQueryClient) clientQueryClient = new QueryClient(config) - return clientQueryClient -} - -function isBrowser() { - // Using `typeof window !== 'undefined'` alone is not enough because some users use https://www.npmjs.com/package/ssr-window - return typeof window !== 'undefined' && typeof window.scrollY === 'number' - // Alternatively, test whether environment is a *real* browser: https://github.com/brillout/picocolors/blob/d59a33a0fd52a8a33e4158884069192a89ce0113/picocolors.js#L87-L89 + if (!globalThis.__VIKE__IS_CLIENT) { + return new QueryClient(config) + } else { + // React may throw away a partially rendered tree if it suspends, and then start again from scratch. + // If it's no suspense boundary between the creation of queryClient and useSuspenseQuery, + // then the entire tree is thrown away, including the creation of queryClient, which may produce infinity refetchs + // https://github.com/TanStack/query/issues/6116#issuecomment-1904051005 + // https://github.com/vikejs/vike-react/pull/157 + if (!clientQueryClient) clientQueryClient = new QueryClient(config) + return clientQueryClient + } } diff --git a/packages/vike-react-query/src/utils/assert.ts b/packages/vike-react-query/src/utils/assert.ts new file mode 100644 index 00000000..6910f537 --- /dev/null +++ b/packages/vike-react-query/src/utils/assert.ts @@ -0,0 +1,4 @@ +export function assert(condition: unknown): asserts condition { + if (condition) return + throw new Error('You stumbled upon a vike-react-query bug, reach out on GitHub.') +} diff --git a/packages/vike-react-query/tsconfig.json b/packages/vike-react-query/tsconfig.json index 714277ff..6da32466 100644 --- a/packages/vike-react-query/tsconfig.json +++ b/packages/vike-react-query/tsconfig.json @@ -15,10 +15,11 @@ // Output "declaration": true, "noEmitOnError": false, - "rootDir": "./", + "rootDir": "./src/", // Misc "esModuleInterop": true, "skipLibCheck": true, "jsx": "react" - } + }, + "include": ["./src"] } diff --git a/packages/vike-react-redux/.gitignore b/packages/vike-react-redux/.gitignore new file mode 100644 index 00000000..b0a5c349 --- /dev/null +++ b/packages/vike-react-redux/.gitignore @@ -0,0 +1,2 @@ +/node_modules/ +/dist/ diff --git a/packages/vike-react-redux/CHANGELOG.md b/packages/vike-react-redux/CHANGELOG.md new file mode 100644 index 00000000..cf898910 --- /dev/null +++ b/packages/vike-react-redux/CHANGELOG.md @@ -0,0 +1,13 @@ +## [0.1.1](https://github.com/vikejs/vike-react/compare/vike-react-redux@0.1.0...vike-react-redux@0.1.1) (2025-07-01) + + +### Bug Fixes + +* fix repo link on npm ([7a85501](https://github.com/vikejs/vike-react/commit/7a85501148774c871a342881cbe9f06678378754)) + + + +# 0.1.0 (2025-05-20) + + + diff --git a/packages/vike-react-redux/README.md b/packages/vike-react-redux/README.md new file mode 100644 index 00000000..aaa4175c --- /dev/null +++ b/packages/vike-react-redux/README.md @@ -0,0 +1,185 @@ +<!-- WARNING: keep links absolute in this file so they work on NPM too --> + +[![npm version](https://img.shields.io/npm/v/vike-react-redux)](https://www.npmjs.com/package/vike-react-redux) + +# `vike-react-redux` + +Integrates [Redux](https://react-redux.js.org) into your [`vike-react`](https://vike.dev/vike-react) app. + +[Installation](#installation) +[Example](#example) +[Settings](#settings) +[Populate store with `+data`](#populate-store-with-data) +[Version history](#version-history) +[What it does](#what-it-does) +[See Also](#see-also) + +<br/> + +## Installation + +1. `npm install vike-react-redux react-redux @reduxjs/toolkit` +2. Extend `+config.js`: + ```js + // pages/+config.js + + import vikeReact from "vike-react/config" + import vikeReactRedux from "vike-react-redux/config" + + export default { + // ... + extends: [vikeReact, vikeReactRedux] + } + ``` +3. Create `+redux.js` file: + ```js + // pages/+redux.js + // Environemnt: client, server + + import { createStore } from '../store/createStore' + export default { createStore } + ``` + ```ts + // store/createStore.ts + + export { createStore } + export type AppStore = ReturnType<typeof createStore> + export type RootState = ReturnType<AppStore['getState']> + export type AppDispatch = AppStore['dispatch'] + + import { combineReducers, configureStore } from '@reduxjs/toolkit' + import { countReducer } from './slices/count' + import { todosReducer } from './slices/todos' + const reducer = combineReducers({ count: countReducer, todos: todosReducer }) + + function createStore(pageContext) { + const preloadedState = pageContext.isClientSide ? pageContext.redux.ssrState : undefined + return configureStore({ reducer, preloadedState }) + } + ``` + ```ts + // store/hooks.ts + + // This file serves as a central hub for re-exporting pre-typed Redux hooks. + import { useDispatch, useSelector, useStore } from 'react-redux' + import type { AppDispatch, AppStore, RootState } from './createStore' + + // Use throughout your app instead of plain `useDispatch` and `useSelector` + export const useAppDispatch = useDispatch.withTypes<AppDispatch>() + export const useAppSelector = useSelector.withTypes<RootState>() + export const useAppStore = useStore.withTypes<AppStore>() + ``` +4. You can now use Redux at any of your components. + ```tsx + // components/Counter.tsx + + export { Counter } + + import React from 'react' + import { useAppDispatch, useAppSelector } from '../store/hooks' + import { increment, selectCount } from '../store/slices/count' + + function Counter() { + const dispatch = useAppDispatch() + const count = useAppSelector(selectCount) + return ( + <button type="button" onClick={() => dispatch(increment())}> + Counter {count} + </button> + ) + } + ``` + +<br/> + +## Example + +See [examples/redux](https://github.com/vikejs/vike-react/tree/main/examples/redux). + +<br/> + +## Settings + +The only `+redux` setting is `createStore()` as documented at [Installation](#installation). + +**Install only for some pages** + +You can remove the `vike-react-redux` integration for [some of your pages](https://vike.dev/config#inheritance): + +```js +// pages/about/+redux.js + +export const redux = null +``` + +**Custom integration** + +For full customization consider [ejecting](https://vike.dev/eject). + +> [!NOTE] +> Consider making a [Pull Request before ejecting](https://vike.dev/eject#when-to-eject). + +<br/> + +## Populate store with `+data` + +To populate your store with data fetched via the [`+data`](https://vike.dev/data) hook, use [`+onData`](https://vike.dev/onData) and [`pageContext.data`](https://vike.dev/pageContext#data). + +```ts +// pages/todos/+onData.ts +// Environment: server, client +export { onData } + +import type { PageContext } from 'vike/types' +import type { Data } from './+data' +import { initializeTodos } from '../../store/slices/todos' + +function onData(pageContext: PageContext & { data?: Data }) { + const { store } = pageContext + store.dispatch(initializeTodos(pageContext.data!.todoItemsInitial)) + + // Saving KBs: we don't need pageContext.data (we use the store instead) + // - If we don't delete pageContext.data then Vike sends pageContext.data to the client-side + // - This optimization only works if the page is SSR'd: if the page is pre-rendered then don't do this + delete pageContext.data +} +``` + +See To-Do List example at [examples/redux/](https://github.com/vikejs/vike-react/tree/main/examples/redux). + +> [!NOTE] +> During [SSR](https://vike.dev/ssr), `+onData` is called only on the server. That's because the store state is sent to the client, so that when the page hydrates, the client has the exact same state as the server — preventing [hydration mismatches](https://vike.dev/hydration-mismatch). +> +> As a result, the store doesn't need to be populated on the client: it's already populated on the server and then sent to the client. +> +> See also: [What it does](#what-it-does). + +<br/> + +## Version history + +See [CHANGELOG.md](https://github.com/vikejs/vike-react/blob/main/packages/vike-react-redux/CHANGELOG.md). + +<br/> + +## What it does + +`vike-react-redux` does the following: + - Initializes the store. (Using [`+onCreatePageContext.server`](https://vike.dev/onCreatePageContext), [`+onAfterRenderHtml.server`](https://vike.dev/onAfterRenderHtml), and [`+onBeforeRenderClient.client`](https://vike.dev/onBeforeRenderClient).) + - Installs Redux's [`<Provider>`](https://react-redux.js.org/api/provider). + - Passes the initial state (`pageContext.redux.ssrState`) used during [SSR](https://vike.dev/ssr) to the client. (To ensure that the same state is used for hydration, preventing hydration mismatches.) + +For more details, have a look at the source code of `vike-react-redux` (it's tiny!). + +You can learn more at: + - [Vike > Store (State Management) > SSR](https://vike.dev/store#ssr) + - [Redux > Server Side Rendering](https://redux.js.org/usage/server-rendering) + +<br/> + +## See also + +- [Example](https://github.com/vikejs/vike-react/tree/main/examples/redux) +- [Vike Docs > Redux](https://vike.dev/redux) +- [Vike Docs > Store](https://vike.dev/store) +- [React Redux](https://react-redux.js.org) diff --git a/packages/vike-react-redux/Wrapper.tsx b/packages/vike-react-redux/Wrapper.tsx new file mode 100644 index 00000000..9d35b242 --- /dev/null +++ b/packages/vike-react-redux/Wrapper.tsx @@ -0,0 +1,18 @@ +export { Wrapper } + +import React from 'react' +import { Provider } from 'react-redux' +import { usePageContext } from 'vike-react/usePageContext' +import type { Store } from '@reduxjs/toolkit' + +function Wrapper({ children }: { children: React.ReactNode }) { + const pageContext = usePageContext() + let store: undefined | Store + if (pageContext.isClientSide) { + store = pageContext.globalContext.store + } else { + store = pageContext.store + } + if (!store) return <>{children}</> + return <Provider store={store}>{children}</Provider> +} diff --git a/packages/vike-react-redux/config.ts b/packages/vike-react-redux/config.ts new file mode 100644 index 00000000..389a16b2 --- /dev/null +++ b/packages/vike-react-redux/config.ts @@ -0,0 +1,46 @@ +export { config as default } + +import type { Config } from 'vike/types' +import type { Store } from '@reduxjs/toolkit' + +const config = { + name: 'vike-react-redux', + require: { + vike: '>=0.4.230', + 'vike-react': '>=0.6.3', + }, + + passToClient: ['redux.ssrState'], + + meta: { + redux: { + env: { server: true, client: true }, + global: true, + }, + }, + + onCreatePageContext: 'import:vike-react-redux/__internal/onCreatePageContext:onCreatePageContext', + onAfterRenderHtml: 'import:vike-react-redux/__internal/onAfterRenderHtml:onAfterRenderHtml', + onBeforeRenderClient: 'import:vike-react-redux/__internal/onBeforeRenderClient:onBeforeRenderClient', + Wrapper: 'import:vike-react-redux/__internal/Wrapper:Wrapper', +} satisfies Config + +declare global { + namespace Vike { + interface Config { + redux?: { + createStore: (pageContext: PageContext | GlobalContextClient) => Store + } + } + interface PageContext { + // vike-react-redux only defines pageContext.redux.store on the server-side, but thanks to https://github.com/vikejs/vike/pull/2459 the store is also avaiable at pageContext.redux.store on the client-side: on the client-side pageContext.redux.store falls back to globalContext.store + store: Store + redux?: { + ssrState?: Record<string, unknown> + } + } + interface GlobalContextClient { + store: Store + } + } +} diff --git a/packages/vike-react-redux/onAfterRenderHtml.server.ts b/packages/vike-react-redux/onAfterRenderHtml.server.ts new file mode 100644 index 00000000..a3c091cc --- /dev/null +++ b/packages/vike-react-redux/onAfterRenderHtml.server.ts @@ -0,0 +1,10 @@ +export { onAfterRenderHtml } + +import type { PageContextServer } from 'vike/types' + +function onAfterRenderHtml(pageContext: PageContextServer) { + const configRedux = pageContext.config.redux + if (!configRedux) return + pageContext.redux ??= {} + pageContext.redux.ssrState = pageContext.store.getState() +} diff --git a/packages/vike-react-redux/onBeforeRenderClient.client.ts b/packages/vike-react-redux/onBeforeRenderClient.client.ts new file mode 100644 index 00000000..24378d09 --- /dev/null +++ b/packages/vike-react-redux/onBeforeRenderClient.client.ts @@ -0,0 +1,9 @@ +export { onBeforeRenderClient } + +import type { PageContextClient } from 'vike/types' + +function onBeforeRenderClient(pageContext: PageContextClient) { + const configRedux = pageContext.config.redux + if (!configRedux) return + pageContext.globalContext.store ??= configRedux.createStore(pageContext) +} diff --git a/packages/vike-react-redux/onCreatePageContext.server.ts b/packages/vike-react-redux/onCreatePageContext.server.ts new file mode 100644 index 00000000..0c7043d4 --- /dev/null +++ b/packages/vike-react-redux/onCreatePageContext.server.ts @@ -0,0 +1,9 @@ +export { onCreatePageContext } + +import type { PageContextServer } from 'vike/types' + +function onCreatePageContext(pageContext: PageContextServer) { + const configRedux = pageContext.config.redux + if (!configRedux) return + pageContext.store = configRedux.createStore(pageContext) +} diff --git a/packages/vike-react-redux/package.json b/packages/vike-react-redux/package.json new file mode 100644 index 00000000..838b7ced --- /dev/null +++ b/packages/vike-react-redux/package.json @@ -0,0 +1,60 @@ +{ + "name": "vike-react-redux", + "version": "0.1.1", + "homepage": "https://github.com/vikejs/vike-react/tree/main/packages/vike-react-redux#readme", + "type": "module", + "exports": { + "./config": "./dist/config.js", + "./__internal/onCreatePageContext": "./dist/onCreatePageContext.server.js", + "./__internal/onAfterRenderHtml": "./dist/onAfterRenderHtml.server.js", + "./__internal/onBeforeRenderClient": "./dist/onBeforeRenderClient.client.js", + "./__internal/Wrapper": "./dist/Wrapper.js" + }, + "scripts": { + "dev": "tsc --watch", + "build": "rimraf dist/ && tsc", + "release": "release-me patch", + "release:minor": "release-me minor", + "release:major": "release-me major", + "release:commit": "release-me commit" + }, + "peerDependencies": { + "react-redux": ">=9", + "react": ">=18", + "vike": ">=0.4.230", + "vike-react": ">=0.6.3" + }, + "devDependencies": { + "@brillout/release-me": "^0.4.8", + "@reduxjs/toolkit": "^2.8.2", + "@types/react": "^19.1.13", + "react": "^19.2.0", + "rimraf": "^5.0.5", + "typescript": "^5.9.2", + "vike": "^0.4.242", + "vike-react": "0.6.12" + }, + "typesVersions": { + "*": { + "config": [ + "dist/config.d.ts" + ], + "__internal/onAfterRenderHtml": [ + "dist/onAfterRenderHtml.d.ts" + ], + "__internal/onCreatePageContext": [ + "dist/onCreatePageContext.server.d.ts" + ], + "__internal/onBeforeRenderClient": [ + "dist/onBeforeRenderClient.d.ts" + ], + "__internal/Wrapper": [ + "dist/Wrapper.d.ts" + ] + } + }, + "files": [ + "dist" + ], + "license": "MIT" +} diff --git a/packages/vike-react-redux/tsconfig.json b/packages/vike-react-redux/tsconfig.json new file mode 100644 index 00000000..ee30dd23 --- /dev/null +++ b/packages/vike-react-redux/tsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "declaration": true, + "target": "ESNext", + "module": "ESNext", + "moduleResolution": "Bundler", + "jsx": "react", + "outDir": "./dist/", + "skipLibCheck": true, + "types": ["vike-react"], + // Strictness + "strict": true, + "noUncheckedIndexedAccess": true, + "noImplicitAny": true + } +} diff --git a/packages/vike-react-styled-components/CHANGELOG.md b/packages/vike-react-styled-components/CHANGELOG.md index 2753e012..f772c1ea 100644 --- a/packages/vike-react-styled-components/CHANGELOG.md +++ b/packages/vike-react-styled-components/CHANGELOG.md @@ -1,3 +1,12 @@ +## [1.0.3](https://github.com/vikejs/vike-react/compare/vike-react-styled-components@1.0.2...vike-react-styled-components@1.0.3) (2025-07-01) + + +### Bug Fixes + +* fix repo link on npm ([7a85501](https://github.com/vikejs/vike-react/commit/7a85501148774c871a342881cbe9f06678378754)) + + + ## [1.0.2](https://github.com/vikejs/vike-react/compare/vike-react-styled-components@1.0.1...vike-react-styled-components@1.0.2) (2024-12-28) diff --git a/packages/vike-react-styled-components/README.md b/packages/vike-react-styled-components/README.md index 5ff23c6a..e39ce2cd 100644 --- a/packages/vike-react-styled-components/README.md +++ b/packages/vike-react-styled-components/README.md @@ -1,6 +1,10 @@ +<!-- WARNING: keep links absolute in this file so they work on NPM too --> + +[![npm version](https://img.shields.io/npm/v/vike-react-styled-components)](https://www.npmjs.com/package/vike-react-styled-components) + # `vike-react-styled-components` -Integrates [styled-components](https://styled-components.com) to your [`vike-react`](https://vike.dev/vike-react) app. +Integrates [styled-components](https://styled-components.com) into your [`vike-react`](https://vike.dev/vike-react) app. [Installation](#installation) [Settings](#settings) @@ -48,7 +52,7 @@ Integrates [styled-components](https://styled-components.com) to your [`vike-rea } ``` -4. You can now use `styled-components` at any of your components. +4. You can now use `styled-components` in any of your components. ```jsx import { styled } from "styled-components"; diff --git a/packages/vike-react-styled-components/package.json b/packages/vike-react-styled-components/package.json index 2d0d213f..4c5ff7a5 100644 --- a/packages/vike-react-styled-components/package.json +++ b/packages/vike-react-styled-components/package.json @@ -1,6 +1,7 @@ { "name": "vike-react-styled-components", - "version": "1.0.2", + "version": "1.0.3", + "homepage": "https://github.com/vikejs/vike-react/tree/main/packages/vike-react-styled-components#readme", "type": "module", "exports": { "./config": "./dist/config.js", @@ -22,15 +23,15 @@ "vike-react": ">=0.4.13" }, "devDependencies": { - "@brillout/release-me": "^0.4.2", - "@types/react": "^18.2.55", - "react": "^18.3.1", + "@brillout/release-me": "^0.4.8", + "@types/react": "^19.1.13", + "react": "^19.2.0", "rimraf": "^5.0.5", "styled-components": "^6.1.13", - "typescript": "^5.5.3", - "vike": "^0.4.211", - "vike-react": "^0.5.11", - "vite": "^5.4.0" + "typescript": "^5.9.2", + "vike": "^0.4.242", + "vike-react": "0.6.12", + "vite": "^7.1.7" }, "typesVersions": { "*": { @@ -51,6 +52,5 @@ "files": [ "dist" ], - "repository": "https://github.com/vikejs/vike-react/tree/main/packages/vike-react-styled-components", "license": "MIT" } diff --git a/packages/vike-react-styled-jsx/CHANGELOG.md b/packages/vike-react-styled-jsx/CHANGELOG.md index 140851ec..16fe37b0 100644 --- a/packages/vike-react-styled-jsx/CHANGELOG.md +++ b/packages/vike-react-styled-jsx/CHANGELOG.md @@ -1,3 +1,12 @@ +## [1.0.3](https://github.com/vikejs/vike-react/compare/vike-react-styled-jsx@1.0.2...vike-react-styled-jsx@1.0.3) (2025-07-01) + + +### Bug Fixes + +* fix repo link on npm ([7a85501](https://github.com/vikejs/vike-react/commit/7a85501148774c871a342881cbe9f06678378754)) + + + ## [1.0.2](https://github.com/vikejs/vike-react/compare/vike-react-styled-jsx@1.0.1...vike-react-styled-jsx@1.0.2) (2024-12-28) diff --git a/packages/vike-react-styled-jsx/README.md b/packages/vike-react-styled-jsx/README.md index ada094a1..5de8ef11 100644 --- a/packages/vike-react-styled-jsx/README.md +++ b/packages/vike-react-styled-jsx/README.md @@ -1,6 +1,10 @@ +<!-- WARNING: keep links absolute in this file so they work on NPM too --> + +[![npm version](https://img.shields.io/npm/v/vike-react-styled-jsx)](https://www.npmjs.com/package/vike-react-styled-jsx) + # `vike-react-styled-jsx` -Integrates [styled-jsx](https://github.com/vercel/styled-jsx) to your [`vike-react`](https://vike.dev/vike-react) app. +Integrates [styled-jsx](https://github.com/vercel/styled-jsx) into your [`vike-react`](https://vike.dev/vike-react) app. [Installation](#installation) [Settings](#settings) @@ -44,7 +48,7 @@ Integrates [styled-jsx](https://github.com/vercel/styled-jsx) to your [`vike-rea } ``` -4. You can now use `styled-jsx` at any of your components. +4. You can now use `styled-jsx` in any of your components. ```jsx function SomeComponent() { return ( diff --git a/packages/vike-react-styled-jsx/package.json b/packages/vike-react-styled-jsx/package.json index dddecbe2..cca39b50 100644 --- a/packages/vike-react-styled-jsx/package.json +++ b/packages/vike-react-styled-jsx/package.json @@ -1,6 +1,7 @@ { "name": "vike-react-styled-jsx", - "version": "1.0.2", + "version": "1.0.3", + "homepage": "https://github.com/vikejs/vike-react/tree/main/packages/vike-react-styled-jsx#readme", "type": "module", "exports": { "./config": "./dist/config.js", @@ -22,15 +23,15 @@ "vike-react": ">=0.4.13" }, "devDependencies": { - "@brillout/release-me": "^0.4.2", - "@types/react": "^18.2.55", - "react": "^18.3.1", + "@brillout/release-me": "^0.4.8", + "@types/react": "^19.1.13", + "react": "^19.2.0", "rimraf": "^5.0.5", "styled-jsx": "^5.1.6", - "typescript": "^5.5.3", - "vike": "^0.4.211", - "vike-react": "^0.5.11", - "vite": "^5.4.0" + "typescript": "^5.9.2", + "vike": "^0.4.242", + "vike-react": "0.6.12", + "vite": "^7.1.7" }, "typesVersions": { "*": { @@ -51,6 +52,5 @@ "files": [ "dist" ], - "repository": "https://github.com/vikejs/vike-react/tree/main/packages/vike-react-styled-jsx", "license": "MIT" } diff --git a/packages/vike-react-zustand/.gitignore b/packages/vike-react-zustand/.gitignore new file mode 100644 index 00000000..b0a5c349 --- /dev/null +++ b/packages/vike-react-zustand/.gitignore @@ -0,0 +1,2 @@ +/node_modules/ +/dist/ diff --git a/packages/vike-react-zustand/CHANGELOG.md b/packages/vike-react-zustand/CHANGELOG.md new file mode 100644 index 00000000..247b4305 --- /dev/null +++ b/packages/vike-react-zustand/CHANGELOG.md @@ -0,0 +1,57 @@ +## [0.1.5](https://github.com/vikejs/vike-react/compare/vike-react-zustand@0.1.4...vike-react-zustand@0.1.5) (2025-09-16) + + +### Bug Fixes + +* react-streaming@^0.4.4 ([6420a27](https://github.com/vikejs/vike-react/commit/6420a277e86d0cf829de21f2a22fcf070f1075cd)) + + + +## [0.1.4](https://github.com/vikejs/vike-react/compare/vike-react-zustand@0.1.3...vike-react-zustand@0.1.4) (2025-09-04) + + +### Performance Improvements + +* use hook filters ([#183](https://github.com/vikejs/vike-react/issues/183)) ([949b5c6](https://github.com/vikejs/vike-react/commit/949b5c678ee0923f26416ac3992e3b2f56da7907)) + + +### MINOR BREAKING CHANGES + +> [!NOTE] +> We recommend ignoring `MINOR BREAKING CHANGES` unless this version breaks your app, see [Vike Versioning](https://vike.dev/versioning). + +* Update to Vite `6.3.0` or above + + + +## [0.1.3](https://github.com/vikejs/vike-react/compare/vike-react-zustand@0.1.2...vike-react-zustand@0.1.3) (2025-08-18) + + +### Bug Fixes + +* avoid Vite type version mismatch ([c58b61a](https://github.com/vikejs/vike-react/commit/c58b61ab0c22e3781a65575202ba634dcebd6496)) + + + +## [0.1.2](https://github.com/vikejs/vike-react/compare/vike-react-zustand@0.1.1...vike-react-zustand@0.1.2) (2025-07-11) + + +### Bug Fixes + +* automatically enable +stream (fix vikejs/vike[#2549](https://github.com/vikejs/vike-react/issues/2549)) ([6395032](https://github.com/vikejs/vike-react/commit/63950323133ddfac47e418c82e29490ee6efce4a)) + + + +## [0.1.1](https://github.com/vikejs/vike-react/compare/vike-react-zustand@0.1.0...vike-react-zustand@0.1.1) (2025-07-01) + + +### Bug Fixes + +* fix repo link on npm ([7a85501](https://github.com/vikejs/vike-react/commit/7a85501148774c871a342881cbe9f06678378754)) + + + +# 0.1.0 (2025-05-20) + + + diff --git a/packages/vike-react-zustand/README.md b/packages/vike-react-zustand/README.md new file mode 100644 index 00000000..c0ec9d24 --- /dev/null +++ b/packages/vike-react-zustand/README.md @@ -0,0 +1,216 @@ +<!-- WARNING: keep links absolute in this file so they work on NPM too --> + +[![npm version](https://img.shields.io/npm/v/vike-react-zustand)](https://www.npmjs.com/package/vike-react-zustand) + +# `vike-react-zustand` + +Integrates [Zustand](https://zustand-demo.pmnd.rs/) state management into your [`vike-react`](https://vike.dev/vike-react) app with SSR support. + +> [!NOTE] +> If you don't use any of your Zustand store during [Server-Side Rendering](https://vike.dev/ssr), then you **don't need `vike-react-zustand`** — you can just use Zustand directly without any Vike integration. +> +> The `vike-react-zustand` extension is about enabling you to use stores with SSR. See [How it works](#how-it-works). + +[Installation](#installation) +[Basic usage](#basic-usage) +[`withPageContext()`](#withpagecontext) +[`useStoreVanilla()`](#usestorevanilla) +[Example](#example) +[Populate store with `+data`](#populate-store-with-data) +[Version history](#version-history) +[How it works](#how-it-works) +[See also](#see-also) + +<br/> + + +## Installation + +1. `npm install zustand vike-react-zustand` +2. Extend `+config.js`: + ```js + // pages/+config.js + + import vikeReact from 'vike-react/config' + import vikeReactZustand from 'vike-react-zustand/config' + + export default { + // ... + extends: [vikeReact, vikeReactZustand] + } + ``` + +> [!NOTE] +> The `vike-react-zustand` extension requires [`vike-react`](https://vike.dev/vike-react). + +<br/> + + +## Basic usage + +Create a store using the `create()` function from `vike-react-zustand`: + +```ts +// store.ts + +import { create } from 'vike-react-zustand' + +interface Store { + counter: number + increment: () => void +} + +export const useStore = create<Store>()((set) => ({ + counter: 0, + increment: () => set((state) => ({ counter: state.counter + 1 })), +})) +``` + +> [!NOTE] +> The API is the same as [Zustand's `create()`](https://zustand.docs.pmnd.rs/apis/create#reference). +> +> (Extra parentheses `()` are required only when using TypeScript, as explained [here](https://zustand.docs.pmnd.rs/guides/typescript#basic-usage).) + +Use the store in your components: + +```jsx +import { useStore } from './store' + +function Counter() { + const counter = useStore((state) => state.counter) + const increment = useStore((state) => state.increment) + + return ( + <button onClick={increment}>Counter {counter}</button> + ) +} +``` + +<br/> + +## `withPageContext()` + +The `withPageContext` middleware gives your store access to the Vike [`pageContext`](https://vike.dev/pageContext) during initialization: + +```ts +import { create, withPageContext } from 'vike-react-zustand' + +interface Store { + user: any + nodeVersion: string +} + +export const useStore = create<Store>()( + withPageContext((pageContext) => (set, get, store) => ({ + // Access pageContext data + user: pageContext.user + })) +) +``` + +**API Reference** + +```ts +const nextStateCreatorFn = withPageContext((pageContext) => stateCreatorFn) +``` + +- [`pageContext`](https://vike.dev/pageContext) +- `stateCreatorFn`: A state creator function that takes `set` function, `get` function and `store` as arguments. Usually, you will return an object with the methods you want to expose. +- Returns: a state creator function. + +<br/> + +## `useStoreVanilla()` + +Sometimes you need to access state in a non-reactive way or act upon the store. For these cases, you can use `useStoreVanilla` to directly access the [vanilla store](https://zustand.docs.pmnd.rs/apis/create-store). + +```tsx +import { useStoreVanilla } from 'vike-react-zustand' +import { useStore } from './store' + +function Component() { + const storeVanilla = useStoreVanilla(useStore) + + // Subscribe to store changes + useEffect( + () => storeVanilla.subscribe( + state => console.log('Store changed:', state) + ), + [] + ) + + // Get current state without subscribing to changes + const handleClick = () => { + const currentState = storeVanilla.getState() + storeVanilla.setState({ counter: currentState.counter + 5 }) + } + + return <button onClick={handleClick}>Add 5</button> +} +``` + +> [!NOTE] +> Middlewares that modify `set` or `get` are not applied to `getState` and `setState`. + +<br/> + +## Example + +See [examples/zustand/](https://github.com/vikejs/vike-react/tree/main/examples/zustand). + +<br/> + +## Populate store with `+data` + +To populate your store with data fetched via the [`+data`](https://vike.dev/data) hook, use the [`withPageContext()`](#withpagecontext) middleware. + +```ts +import { create, withPageContext } from 'vike-react-zustand' +import { immer } from 'zustand/middleware/immer' +import type { Data } from './+data' + +type Todo = { text: string } +interface TodoStore { + todoItems: Todo[] + addTodo: (todo: Todo) => void +} +export const useTodoStore = create<TodoStore>()( + withPageContext((pageContext) => + immer((set, get) => ({ + todoItems: (pageContext.data as Data).todoItemsInitial, + addTodo(todo) { + set((state) => { + state.todoItems.push(todo) + }) + }, + })), + ), +) +``` + +See the To-Do List example at [examples/zustand/](https://github.com/vikejs/vike-react/tree/main/examples/zustand). + +<br/> + +## Version history + +See [CHANGELOG.md](https://github.com/vikejs/vike-react/blob/main/packages/vike-react-zustand/CHANGELOG.md). + +<br/> + +## How it works + +The `vike-react-zustand` extension enables Zustand stores to work seamlessly with [SSR](https://vike.dev/ssr): + +1. During SSR, store state is captured and serialized +2. The serialized state is passed to the client +3. On the client, the store is hydrated using the server-side state + +The extension handles all the complexities of state transfer between server and client, ensuring your React components have access to the same state during both serer-side rendering and client-side hydration. + +<br/> + +## See also + +- [Vike Docs > State Management](https://vike.dev/store) +- [Zustand Documentation](https://docs.pmnd.rs/zustand) diff --git a/packages/vike-react-zustand/package.json b/packages/vike-react-zustand/package.json new file mode 100644 index 00000000..3c48a046 --- /dev/null +++ b/packages/vike-react-zustand/package.json @@ -0,0 +1,58 @@ +{ + "name": "vike-react-zustand", + "version": "0.1.5", + "homepage": "https://github.com/vikejs/vike-react/tree/main/packages/vike-react-zustand#readme", + "type": "module", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "exports": { + ".": "./dist/index.js", + "./config": "./dist/integration/config.js" + }, + "scripts": { + "dev": "tsc --watch", + "build": "rimraf dist/ && tsc", + "release": "release-me patch", + "release:minor": "release-me minor", + "release:commit": "release-me commit" + }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0", + "react-streaming": ">=0.3.42", + "vike-react": ">=0.4.13", + "zustand": ">=5.0.0" + }, + "devDependencies": { + "@brillout/release-me": "^0.4.8", + "@types/babel__core": "^7.20.5", + "@types/node": "^24.0.8", + "@types/react": "^19.1.13", + "@types/react-dom": "^19.1.9", + "react": "^19.2.0", + "react-dom": "^19.2.0", + "rimraf": "^5.0.5", + "typescript": "^5.9.2", + "vike": "^0.4.242", + "vike-react": "0.6.12", + "react-streaming": "^0.4.11", + "vite": "^7.1.7", + "zustand": "^5.0.3" + }, + "dependencies": { + "@babel/core": "^7.24.0", + "@babel/types": "^7.24.0", + "@brillout/json-serializer": "^0.5.15" + }, + "typesVersions": { + "*": { + "config": [ + "dist/integration/config.d.ts" + ] + } + }, + "files": [ + "dist" + ], + "license": "MIT" +} diff --git a/packages/vike-react-zustand/src/context.ts b/packages/vike-react-zustand/src/context.ts new file mode 100644 index 00000000..4d2ff08c --- /dev/null +++ b/packages/vike-react-zustand/src/context.ts @@ -0,0 +1,17 @@ +export { setPageContext } +export { getPageContext } + +import type { PageContext } from 'vike/types' +import { getGlobalObject } from './utils/getGlobalObject.js' + +const globalObject = getGlobalObject('context.ts', { + pageContextCurrent: null as PageContext | null, +}) + +function setPageContext(pageContext: PageContext | null) { + globalObject.pageContextCurrent = pageContext +} + +function getPageContext() { + return globalObject.pageContextCurrent +} diff --git a/packages/vike-react-zustand/src/getOrCreateStore.ts b/packages/vike-react-zustand/src/getOrCreateStore.ts new file mode 100644 index 00000000..5d9baf16 --- /dev/null +++ b/packages/vike-react-zustand/src/getOrCreateStore.ts @@ -0,0 +1,84 @@ +export { getOrCreateStore } +export type { CreateStoreReturn } + +import { parse } from '@brillout/json-serializer/parse' +import { stringify } from '@brillout/json-serializer/stringify' +import type { PageContext } from 'vike/types' +import { create as createZustand, StateCreator } from 'zustand' +import { setPageContext } from './context.js' +import { assert } from './utils/assert.js' +import { getGlobalObject } from './utils/getGlobalObject.js' +import { sanitizeForSerialization } from './utils/sanitizeForSerialization.js' +import { assignDeep } from './utils/assignDeep.js' + +// Client-side cache (not used in SSR) +const clientCache = import.meta.env.SSR + ? null + : getGlobalObject('getOrCreateStore.ts', { + initializers: {} as Record<string, StateCreator<any, [], []>>, + stores: {} as Record<string, CreateStoreReturn<any>>, + }) + +function getOrCreateStore<T>({ + key, + initializerFn, + pageContext, + stream, +}: { + key: string + initializerFn: StateCreator<T, [], []> + pageContext: PageContext + stream: ReturnType<typeof import('react-streaming').useStreamOptional> +}): CreateStoreReturn<T> { + try { + setPageContext(pageContext) + if (import.meta.env.SSR) { + pageContext._vikeReactZustandStoresServer ??= {} + let store = pageContext._vikeReactZustandStoresServer[key] as CreateStoreReturn<T> + if (store) return store + store = createStore_(initializerFn) + const serverState = store.getInitialState() + const transferableState = sanitizeForSerialization(serverState) + assert(stream) + stream.injectToStream( + `<script>if(!globalThis._vikeReactZustandState)globalThis._vikeReactZustandState={};globalThis._vikeReactZustandState['${key}']='${stringify(transferableState)}'</script>`, + ) + pageContext._vikeReactZustandStoresServer[key] = store + return store + } else { + assert(clientCache) + const storeNeedsRecreate = clientCache.initializers[key] !== initializerFn + if (storeNeedsRecreate) { + const store = createStore_(initializerFn) + clientCache.stores[key] = store + clientCache.initializers[key] = initializerFn + assignServerStateOptional({ key, store }) + return store + } else { + const store = clientCache.stores[key] + assert(store) + return store + } + } + } finally { + setPageContext(null) + } +} + +type CreateStoreReturn<T> = ReturnType<typeof createStore_<T>> +function createStore_<T>(initializer: StateCreator<T, [], []>) { + return createZustand<T>()(initializer) +} + +declare global { + var _vikeReactZustandState: undefined | Record<string, string> +} +function assignServerStateOptional<T>({ key, store }: { key: string; store: CreateStoreReturn<T> }) { + if (globalThis._vikeReactZustandState && globalThis._vikeReactZustandState[key]) { + const clientState = store.getInitialState() + const serverState = parse(globalThis._vikeReactZustandState[key]) + assert(clientState && typeof clientState === 'object') + assert(serverState && typeof serverState === 'object') + assignDeep(clientState, serverState) + } +} diff --git a/packages/vike-react-zustand/src/index.ts b/packages/vike-react-zustand/src/index.ts new file mode 100644 index 00000000..75488f03 --- /dev/null +++ b/packages/vike-react-zustand/src/index.ts @@ -0,0 +1,109 @@ +export { withPageContext } from './withPageContext.js' +export { createWrapped as create, useStoreVanilla } + +import { useStreamOptional } from 'react-streaming' +import { usePageContext } from 'vike-react/usePageContext' +import type { StateCreator } from 'zustand' +import { getOrCreateStore } from './getOrCreateStore.js' +import type { Create, StoreVanillaAndHook, StoreVanilla, StoreHookOnly } from './types.js' +import { assert } from './utils/assert.js' + +// Define Symbol keys for internal use +const STORE_KEY = Symbol.for('vike-react-zustand-store-key') +const STORE_INITIALIZER_FN = Symbol.for('vike-react-zustand-store-initializer-fn') + +// Internal interface that extends StoreHookOnly with our symbol properties +// This keeps the symbols out of the public API while allowing TypeScript to type-check correctly +interface InternalStoreHookOnly<T> extends StoreHookOnly<T> { + [STORE_KEY]: string + [STORE_INITIALIZER_FN]: StateCreator<T, [], []> +} + +/** + * Same API as Zustand's `create()`: + * + * `const useSomeStore = create(stateCreatorFn)` + * + * https://github.com/vikejs/vike-react/tree/main/packages/vike-react-zustand + */ +const createWrapped = ((...args: any[]) => { + const initializerFn = + // create('key', (set,get) => ...) + // ^^^^^^^^^^^^^^^ + (typeof args[1] === 'function' && args[1]) || + // The transform didn't run for this call(skipped in node_modules) + // create((set,get) => ...) + // ^^^^^^^^^^^^^^^ + (typeof args[0] === 'function' && args[0]) || + // create('key')((set,get) => ...) + // ^^^ + // create()((set,get) => ...) + // ^ + undefined + + const key = + // create('key')((set,get) => ...) + // ^^^ + // create('key', (set,get) => ...) + // ^^^ + (typeof args[0] === 'string' && args[0]) || + // The transform didn't run for this call(skipped in node_modules) + // create()((set,get) => ...) + // create((set,get) => ...) + 'default' + + assert(key) + + const create_ = <T>(initializerFn_: StateCreator<T, [], []>): StoreHookOnly<T> => { + assert(initializerFn_) + const useStore = ((...args: Parameters<StoreHookOnly<T>>) => { + const store = useStoreVanilla(useStore) as StoreVanillaAndHook<T> + return store(...args) + }) as InternalStoreHookOnly<T> + + useStore[STORE_KEY] = key + useStore[STORE_INITIALIZER_FN] = initializerFn_ + return useStore + } + + if (initializerFn) { + // create((set,get) => ...) + return create_(initializerFn) + } + + // create()((set,get) => ...) + return create_ +}) as Create + +/** + * Sometimes you need to access state in a non-reactive way or act upon the store. For these cases, you can use `useStoreVanilla` to directly access the vanilla store. + * + * ```ts + * import { useStoreVanilla } from 'vike-react-zustand' + * import { useStore } from './store' + * + * function Component() { + * const storeVanilla = useStoreVanilla(useStore) + * function onClick() { + * storeVanilla.setState({ ... }) + * } + * } + * ``` + * + * ⚠️ Note that middlewares that modify set or get are not applied to `getState` and `setState`. + * + * + * https://github.com/vikejs/vike-react/tree/main/packages/vike-react-zustand + */ +function useStoreVanilla<T>(useStore: StoreHookOnly<T>): StoreVanilla<T> { + const internalStoreHook = useStore as InternalStoreHookOnly<T> + const key = internalStoreHook[STORE_KEY] + const initializerFn = internalStoreHook[STORE_INITIALIZER_FN] + assert(key) + assert(initializerFn) + const pageContext = usePageContext() + const stream = useStreamOptional() + const store = getOrCreateStore({ key, initializerFn, pageContext, stream }) + assert(store) + return store as StoreVanilla<T> +} diff --git a/packages/vike-react-zustand/src/integration/config.ts b/packages/vike-react-zustand/src/integration/config.ts new file mode 100644 index 00000000..734d3968 --- /dev/null +++ b/packages/vike-react-zustand/src/integration/config.ts @@ -0,0 +1,14 @@ +import type { Config } from 'vike/types' +import { vikeReactZustand } from '../plugin/index.js' +import 'vike-react/config' // Needed for merging vike-react's Vike.Config such as +stream + +export default { + name: 'vike-react-zustand', + require: { + 'vike-react': '>=0.4.13', + }, + stream: { require: true }, + vite: { + plugins: [vikeReactZustand()], + }, +} satisfies Config diff --git a/packages/vike-react-zustand/src/integration/types.d.ts b/packages/vike-react-zustand/src/integration/types.d.ts new file mode 100644 index 00000000..7a966e65 --- /dev/null +++ b/packages/vike-react-zustand/src/integration/types.d.ts @@ -0,0 +1,11 @@ +export type {} + +// The types we add here aren't visible to the user (because this file only matches the TypeScript rootDir of packages/vike-react-zustand/tsconfig.json) + +declare global { + namespace Vike { + interface PageContext { + _vikeReactZustandStoresServer: { [key: string]: import('../getOrCreateStore.ts').CreateStoreReturn<any> } + } + } +} diff --git a/packages/vike-react-zustand/src/plugin/babelTransformer.ts b/packages/vike-react-zustand/src/plugin/babelTransformer.ts new file mode 100644 index 00000000..994be542 --- /dev/null +++ b/packages/vike-react-zustand/src/plugin/babelTransformer.ts @@ -0,0 +1,133 @@ +import { transformAsync, type PluginItem } from '@babel/core' +import * as t from '@babel/types' + +type TransformResult = { + code: string + map: any +} | null + +type State = { + modified: boolean + hasVikeReactZustand: boolean + storeKeyCounter: number + createNames: Set<string> + isStoreFile: boolean +} + +export async function transformCode(code: string, id: string): Promise<TransformResult> { + try { + const state: State = { + modified: false, + hasVikeReactZustand: false, + storeKeyCounter: 0, + createNames: new Set<string>(), + isStoreFile: false, + } + + const result = await transformAsync(code, { + filename: id, + ast: true, + sourceMaps: true, + plugins: [ + // Plugin to analyze imports and track local names + analyzeImportsPlugin(state), + // Plugin to add keys to create() calls + addStoreKeysPlugin(state, id), + ].filter(Boolean) as PluginItem[], + }) + + if (!result?.code || !state.hasVikeReactZustand || !state.modified) { + return null + } + + // Add HMR code to store files + let finalCode = result.code + if (state.isStoreFile) { + const hmrCode = ` +// HMR for store +if (import.meta.hot) { + import.meta.hot.accept(() => { + window.location.reload() + }) +}` + finalCode += hmrCode + } + + return { + code: finalCode, + map: result.map, + } + } catch (error) { + console.error(`Error transforming code from ${id}:`, error) + return null + } +} + +/** + * Plugin to analyze imports and track local names + */ +function analyzeImportsPlugin(state: State): PluginItem { + return { + visitor: { + ImportDeclaration(path) { + if (path.node.source.value !== 'vike-react-zustand') { + return + } + state.hasVikeReactZustand = true + + // Process import specifiers + for (const specifier of path.node.specifiers) { + if (t.isImportSpecifier(specifier) && t.isIdentifier(specifier.imported)) { + const importedName = specifier.imported.name + const localName = specifier.local.name + + if (importedName === 'create') { + state.createNames.add(localName) + } + } + } + }, + }, + } +} + +/** + * Plugin to add keys to create() calls + */ +function addStoreKeysPlugin(state: State, moduleId: string): PluginItem { + return { + visitor: { + CallExpression(path) { + if (!t.isIdentifier(path.node.callee) || !state.createNames.has(path.node.callee.name)) { + return + } + + // Mark this as a store file for HMR plugin + state.isStoreFile = true + + // Skip if first argument is already a string literal + if (path.node.arguments.length > 0 && t.isStringLiteral(path.node.arguments[0])) { + return + } + + // Generate a unique key + const key = simpleHash(`${moduleId}:${state.storeKeyCounter++}`) + + // Add the key as the first argument + path.node.arguments.unshift(t.stringLiteral(key)) + state.modified = true + }, + }, + } +} + +/** + * Simple hash function for generating store keys + */ +function simpleHash(str: string): string { + let hash = 0 + for (let i = 0; i < str.length; i++) { + hash = ((hash << 5) - hash + str.charCodeAt(i)) | 0 + } + return (hash >>> 0).toString(36) +} diff --git a/packages/vike-react-zustand/src/plugin/index.ts b/packages/vike-react-zustand/src/plugin/index.ts new file mode 100644 index 00000000..f8dd9c00 --- /dev/null +++ b/packages/vike-react-zustand/src/plugin/index.ts @@ -0,0 +1,50 @@ +export { vikeReactZustand } + +import type { Plugin } from 'vite' +import { transformCode } from './babelTransformer.js' +import { assert } from '../utils/assert.js' + +const skipNonJsFiles = /\.[jt]sx?$/ +const skipNodeModules = 'node_modules' +const filterRolldown = { + id: { + include: skipNonJsFiles, + exclude: `**/${skipNodeModules}/**`, + }, +} +const filterFunction = (id: string) => { + if (id.includes(skipNodeModules)) return false + if (!skipNonJsFiles.test(id)) return false + return true +} + +type PluginInterop = Record<string, unknown> & { name: string } +// Return `PluginInterop` instead of `Plugin` to avoid type mismatch upon different Vite versions +function vikeReactZustand(): PluginInterop[] { + const plugins: Plugin[] = [ + { + name: 'vike-react-zustand:config', + configEnvironment: { + handler() { + return { + resolve: { + noExternal: ['vike-react-zustand'], + }, + } + }, + }, + }, + { + name: 'vike-react-zustand:transform', + enforce: 'post', + transform: { + filter: filterRolldown, + handler(code, id) { + assert(filterFunction(id)) + return transformCode(code, id) + }, + }, + }, + ] + return plugins as any +} diff --git a/packages/vike-react-zustand/src/types.ts b/packages/vike-react-zustand/src/types.ts new file mode 100644 index 00000000..422b1e76 --- /dev/null +++ b/packages/vike-react-zustand/src/types.ts @@ -0,0 +1,48 @@ +export type { StoreVanillaAndHook, StoreVanilla, StoreHookOnly, Create } + +import type { StateCreator, StoreApi, StoreMutatorIdentifier } from 'zustand' + +/** + * The store hook function that is returned by createWrapped + */ +type StoreHookOnly<T> = { + (): T + <U>(selector: (state: T) => U): U +} + +/** + * Just the store API without the hook functionality + */ +type StoreVanilla<T> = StoreApi<T> + +/** + * Combined type used in the React context + */ +type StoreVanillaAndHook<T = any> = StoreVanilla<T> & { + (): any + <U>(selector: (state: any) => U): U +} + +/** + * The create function type with support for the key parameter + */ +type Create = { + // Direct call with initializer + <T, Mos extends [StoreMutatorIdentifier, unknown][] = []>(initializer: StateCreator<T, [], Mos>): StoreHookOnly<T> + + // Direct call with key and initializer + <T, Mos extends [StoreMutatorIdentifier, unknown][] = []>( + key: string, + initializer: StateCreator<T, [], Mos>, + ): StoreHookOnly<T> + + // Curried call with no arguments + <T>(): <Mos extends [StoreMutatorIdentifier, unknown][] = []>( + initializer: StateCreator<T, [], Mos>, + ) => StoreHookOnly<T> + + // Curried call with key + <T>( + key: string, + ): <Mos extends [StoreMutatorIdentifier, unknown][] = []>(initializer: StateCreator<T, [], Mos>) => StoreHookOnly<T> +} diff --git a/packages/vike-react-zustand/src/utils/assert.ts b/packages/vike-react-zustand/src/utils/assert.ts new file mode 100644 index 00000000..c1772ad1 --- /dev/null +++ b/packages/vike-react-zustand/src/utils/assert.ts @@ -0,0 +1,13 @@ +export { assert, assertUsage } + +function assert(condition: unknown): asserts condition { + if (condition) return + throw new Error( + "You stumbled upon a bug in vike-react-zustand's source code. Reach out on GitHub and we will fix the bug.", + ) +} + +function assertUsage(condition: unknown, message: string): asserts condition { + if (condition) return + throw new Error('Wrong usage: ' + message) +} diff --git a/packages/vike-react-zustand/src/utils/assignDeep.ts b/packages/vike-react-zustand/src/utils/assignDeep.ts new file mode 100644 index 00000000..ce3f340c --- /dev/null +++ b/packages/vike-react-zustand/src/utils/assignDeep.ts @@ -0,0 +1,32 @@ +// Credits: https://github.com/radashi-org/radashi/blob/main/src/object/assign.ts + +export { assignDeep } + +function assignDeep(initial: Record<keyof any, any>, override: Record<keyof any, any>) { + if (!initial || !override) { + return initial ?? override ?? {} + } + for (const key of Object.keys(override)) { + initial[key] = + isPlainObject(initial[key]) && isPlainObject(override[key]) + ? assignDeep(initial[key], override[key]) + : override[key] + } + return initial +} + +function isPlainObject(value: any): value is object { + if (typeof value !== 'object' || value === null) { + return false + } + + const prototype = Object.getPrototypeOf(value) + return ( + // Fast path for most common objects. + prototype === Object.prototype || + // Support objects created without a prototype. + prototype === null || + // Support plain objects from other realms. + Object.getPrototypeOf(prototype) === null + ) +} diff --git a/packages/vike-react-zustand/src/utils/getGlobalObject.ts b/packages/vike-react-zustand/src/utils/getGlobalObject.ts new file mode 100644 index 00000000..c01e5b01 --- /dev/null +++ b/packages/vike-react-zustand/src/utils/getGlobalObject.ts @@ -0,0 +1,12 @@ +export function getGlobalObject<T extends Record<string, unknown> = never>( + // We use the filename as key; each `getGlobalObject()` call should live in a unique filename. + key: `${string}.ts`, + defaultValue: T, +): T { + const allGlobalObjects = (globalThis.__vike_react_zustand = globalThis.__vike_react_zustand || {}) + const globalObject = (allGlobalObjects[key] = (allGlobalObjects[key] as T) || defaultValue) + return globalObject +} +declare global { + var __vike_react_zustand: undefined | Record<string, Record<string, unknown>> +} diff --git a/packages/vike-react-zustand/src/utils/sanitizeForSerialization.ts b/packages/vike-react-zustand/src/utils/sanitizeForSerialization.ts new file mode 100644 index 00000000..7490ca6c --- /dev/null +++ b/packages/vike-react-zustand/src/utils/sanitizeForSerialization.ts @@ -0,0 +1,100 @@ +export { sanitizeForSerialization } + +/** + * Sanitizes data for serialization by removing functions, promises, and undefined values. + * Creates a deep copy of the input with all non-serializable values removed. + */ +function sanitizeForSerialization<T>(input: T, visited = new WeakSet<object>()): T | undefined { + if (typeof input !== 'object' || input === null) { + return input + } + if (visited.has(input)) { + return input + } + visited.add(input) + if (Array.isArray(input)) { + const output = [] + for (const value of input) { + if (include(value)) { + const ret = sanitizeForSerialization(value, visited) + if (include(ret)) { + output.push(ret) + } else { + // Skip the whole array, we can't skip one in the middle of an ordered array + return undefined + } + } else { + return undefined + } + } + return output as T + } + if (input instanceof Map) { + const output = new Map() + for (const [key, value] of input.entries()) { + if (include(value)) { + const ret = sanitizeForSerialization(value, visited) + if (include(ret)) { + output.set(key, ret) + } + } + } + return output as T + } + if (input instanceof Set) { + const output = new Set() + for (const value of input.values()) { + if (include(value)) { + const ret = sanitizeForSerialization(value, visited) + if (include(ret)) { + output.add(ret) + } + } + } + return output as T + } + const output: { [key: string]: any } = {} + for (const key in input) { + if (Object.prototype.hasOwnProperty.call(input, key)) { + const value = input[key] + if (include(value)) { + const ret = sanitizeForSerialization(value, visited) + if (include(ret)) { + output[key] = ret + } + } + } + } + return output as T +} +/** + * Determines if a value should be included in the sanitized output. + * Excludes functions, promises, undefined, and empty objects/collections. + */ +function include(value: unknown): boolean { + if (isPromiseLike(value) || typeof value === 'function' || value === undefined) { + return false + } + + if (value instanceof Map || value instanceof Set) { + return value.size > 0 + } + + if (typeof value === 'object' && value !== null) { + return Object.keys(value).length > 0 + } + + return true +} + +/** + * Checks if a value is promise-like (has then and catch methods). + */ +function isPromiseLike(value: unknown): boolean { + return Boolean( + value && + typeof value === 'object' && + typeof (value as any).then === 'function' && + typeof (value as any).catch === 'function', + ) +} diff --git a/packages/vike-react-zustand/src/withPageContext.ts b/packages/vike-react-zustand/src/withPageContext.ts new file mode 100644 index 00000000..aa99db34 --- /dev/null +++ b/packages/vike-react-zustand/src/withPageContext.ts @@ -0,0 +1,42 @@ +export { withPageContext } + +import type { PageContext } from 'vike/types' +import type { StateCreator, StoreMutatorIdentifier } from 'zustand' +import { getPageContext } from './context.js' +import { assert } from './utils/assert.js' + +type WithPageContext = < + T, + Mps extends [StoreMutatorIdentifier, unknown][] = [], + Mcs extends [StoreMutatorIdentifier, unknown][] = [], +>( + f: (pageContext: PageContext) => StateCreator<T, Mps, Mcs>, +) => StateCreator<T, Mps, Mcs> + +/** + * Middleware to make `pageContext` available to the store during initialization. + * + * Example usage: + * + * ```ts + * interface Store { + * user: { + * id: number + * firstName: string + * } + * } + * + * const useStore = create<Store>()( + * withPageContext((pageContext) => (set, get, store) => ({ + * user: pageContext.user + * })) + * ) + * ``` + * + * https://github.com/vikejs/vike-react/tree/main/packages/vike-react-zustand + */ +const withPageContext: WithPageContext = (fn) => (set, get, store) => { + const pageContext = getPageContext() + assert(pageContext) + return fn(pageContext)(set, get, store) +} diff --git a/packages/vike-react-zustand/tsconfig.json b/packages/vike-react-zustand/tsconfig.json new file mode 100644 index 00000000..f97230db --- /dev/null +++ b/packages/vike-react-zustand/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "outDir": "./dist/", + "rootDir": "./src/", + // Resolution + "target": "ES2020", + "module": "Node16", + "moduleResolution": "Node16", + // Libs + "lib": ["ES2021", "DOM", "DOM.Iterable"], + "types": ["vite/client"], + // Strictness + "strict": true, + "noUncheckedIndexedAccess": true, + "noImplicitAny": true, + // Output + "declaration": true, + "noEmitOnError": false, + // Misc + "esModuleInterop": true, + "skipLibCheck": true, + "jsx": "react" + } +} diff --git a/packages/vike-react/CHANGELOG.md b/packages/vike-react/CHANGELOG.md index 0eb9a897..d20814b5 100644 --- a/packages/vike-react/CHANGELOG.md +++ b/packages/vike-react/CHANGELOG.md @@ -1,3 +1,162 @@ +## [0.6.12](https://github.com/vikejs/vike-react/compare/vike-react@0.6.11...vike-react@0.6.12) (2025-11-07) + + +### Bug Fixes + +* rename ConfigFromHook => ConfigViaHook ([#197](https://github.com/vikejs/vike-react/issues/197)) ([b357ecc](https://github.com/vikejs/vike-react/commit/b357ecc14eeaafb2bfc31923995b22e899211bf7)) + + + +## [0.6.11](https://github.com/vikejs/vike-react/compare/vike-react@0.6.10...vike-react@0.6.11) (2025-11-06) + + +### Features + +* +headHtmlBegin / +headHtmlEnd ([#195](https://github.com/vikejs/vike-react/issues/195)) ([4b8bded](https://github.com/vikejs/vike-react/commit/4b8bded5351be65300c19856ca6d15ad3e404a8a)) + + + +## [0.6.10](https://github.com/vikejs/vike-react/compare/vike-react@0.6.9...vike-react@0.6.10) (2025-10-21) + + +### Bug Fixes + +* react-streaming@^0.4.11 ([29b4c5b](https://github.com/vikejs/vike-react/commit/29b4c5bbd2800e6f0e0fab2e2687f53e5c4d82e6)) + + +### MINOR BREAKING CHANGES + +> [!NOTE] +> We recommend ignoring `MINOR BREAKING CHANGES` unless this version breaks your app, see [Vike Versioning](https://vike.dev/versioning). + +* If your app is CJS then update Node.js to v23 or above (or v22 with the `--experimental-require-module` flag) in order to [be able to `require(esm)`](https://nodejs.org/en/blog/announcements/v22-release-announce#support-requireing-synchronous-esm-graphs) . If your app is ESM then you can keep using older Node.js versions. + + + +## [0.6.9](https://github.com/vikejs/vike-react/compare/vike-react@0.6.8...vike-react@0.6.9) (2025-10-10) + + +### Bug Fixes + +* improve component stack injection ([5c7b6c2](https://github.com/vikejs/vike-react/commit/5c7b6c2b37d744b6978b5d86f87f2d1bc0d0ed04)) +* react-streaming@^0.4.10 ([092271b](https://github.com/vikejs/vike-react/commit/092271b6be472b724ca056dc2b5b989a83e8f421)) + + + +## [0.6.8](https://github.com/vikejs/vike-react/compare/vike-react@0.6.7...vike-react@0.6.8) (2025-10-06) + + +### Bug Fixes + +* react-streaming@^0.4.6 ([fdd3ec1](https://github.com/vikejs/vike-react/commit/fdd3ec142b9fa96391c57d3402d61188c98300b4)) + + + +## [0.6.7](https://github.com/vikejs/vike-react/compare/vike-react@0.6.6...vike-react@0.6.7) (2025-10-01) + + +### Bug Fixes + +* inject component stack to stack traces ([#191](https://github.com/vikejs/vike-react/issues/191)) ([0ac8bbf](https://github.com/vikejs/vike-react/commit/0ac8bbfd486eeef9ef9b0a48f1956483af8b196f)) +* react-streaming@^0.4.5 ([c435518](https://github.com/vikejs/vike-react/commit/c43551869f3e054db5f9fa2b2a5a51a3a635c49e)) + + + +## [0.6.6](https://github.com/vikejs/vike-react/compare/vike-react@0.6.5...vike-react@0.6.6) (2025-09-16) + + +### Bug Fixes + +* ensure root is singleton ([b91ddb5](https://github.com/vikejs/vike-react/commit/b91ddb545069a9f7d2f8e8a76095ee48c0f87018)) +* improve React error handling ([#186](https://github.com/vikejs/vike-react/issues/186)) ([a2baf4b](https://github.com/vikejs/vike-react/commit/a2baf4b37ec8c56e929cac61d333e3d2f8d66e4b)) +* react-streaming@^0.4.4 ([6420a27](https://github.com/vikejs/vike-react/commit/6420a277e86d0cf829de21f2a22fcf070f1075cd)) +* use `<style>` instead `.css` for `+Loading` ([#184](https://github.com/vikejs/vike-react/issues/184)) ([b8ba930](https://github.com/vikejs/vike-react/commit/b8ba930b5a3ef1728dac0c90743704396f5dae0d)) + + + +## [0.6.5](https://github.com/vikejs/vike-react/compare/vike-react@0.6.4...vike-react@0.6.5) (2025-07-18) + + +### Bug Fixes + +* react-streaming@^0.4.3 ([66c564c](https://github.com/vikejs/vike-react/commit/66c564c68a239fd8f7a9512391bd5752cb65d8be)) + + + +## [0.6.4](https://github.com/vikejs/vike-react/compare/vike-react@0.6.3...vike-react@0.6.4) (2025-05-29) + + +### Features + +* +stream.enable ([#173](https://github.com/vikejs/vike-react/issues/173)) ([858d050](https://github.com/vikejs/vike-react/commit/858d0505b4ba5bbd52fbf00c14bc97614482f280)) + + + +## [0.6.3](https://github.com/vikejs/vike-react/compare/vike-react@0.6.2...vike-react@0.6.3) (2025-05-16) + + +### Bug Fixes + +* import CSS onl on the client-side (fix vikejs/vike[#2460](https://github.com/vikejs/vike-react/issues/2460)) ([43a5cc1](https://github.com/vikejs/vike-react/commit/43a5cc1ebd30c619fbfb59f3dbbba09b9d4a30c4)) + + + +## [0.6.2](https://github.com/vikejs/vike-react/compare/vike-react@0.6.1...vike-react@0.6.2) (2025-05-16) + + +### Bug Fixes + +* fix providePageContext usage ([#172](https://github.com/vikejs/vike-react/issues/172)) ([a9afa2d](https://github.com/vikejs/vike-react/commit/a9afa2de5d01b18a21d48c2f0cc8c8f3e22bb23a)) + + + +## [0.6.1](https://github.com/vikejs/vike-react/compare/vike-react@0.6.0...vike-react@0.6.1) (2025-03-16) + + +### Bug Fixes + +* allow user to override pageContext.{pageHtmlString,pageHtmlStream} (vikejs/vike[#389](https://github.com/vikejs/vike-react/issues/389), https://github.com/vikejs/vike/issues/389#issuecomment-2725260763) ([95cf570](https://github.com/vikejs/vike-react/commit/95cf5706c962d6ed6a13860630d9fc65275a2a2b)), closes [/github.com/vikejs/vike/issues/389#issuecomment-2725260763](https://github.com//github.com/vikejs/vike/issues/389/issues/issuecomment-2725260763) + + + +# [0.6.0](https://github.com/vikejs/vike-react/compare/vike-react@0.5.13...vike-react@0.6.0) (2025-03-11) + + +### Bug Fixes + +* update react-streaming to `^0.4.2` ([#168](https://github.com/vikejs/vike-react/issues/168)) ([9ae0bfb](https://github.com/vikejs/vike-react/commit/9ae0bfbc974be8421a672ed485ebba484a8c1153)) + + +### BREAKING CHANGES + +* Update React to `19.0.0` or above. + + + +## [0.5.13](https://github.com/vikejs/vike-react/compare/vike-react@0.5.12...vike-react@0.5.13) (2025-02-16) + + +### Bug Fixes + +* support `stream: false` ([702d05e](https://github.com/vikejs/vike-react/commit/702d05ee163a981f882fec88c93491b3c6e4302e)) + + +### Features + +* +react.{client,server}.js ([#165](https://github.com/vikejs/vike-react/issues/165)) ([831e451](https://github.com/vikejs/vike-react/commit/831e451aadf5b2798ec2ffc9c310562ec6184dff)) + + + +## [0.5.12](https://github.com/vikejs/vike-react/compare/vike-react@0.5.11...vike-react@0.5.12) (2025-01-22) + + +### Bug Fixes + +* align ReactNode types ([840a114](https://github.com/vikejs/vike-react/commit/840a1143b8d46d6112726517a32b35baf7f65c22)) +* update react-streaming ([79b8240](https://github.com/vikejs/vike-react/commit/79b8240f297475e9e3e5db3137c3bd61b9ecd23e)) + + + ## [0.5.11](https://github.com/vikejs/vike-react/compare/vike-react@0.5.10...vike-react@0.5.11) (2024-12-26) diff --git a/packages/vike-react/README.md b/packages/vike-react/README.md index d77d9349..c0f28d9b 100644 --- a/packages/vike-react/README.md +++ b/packages/vike-react/README.md @@ -1 +1,5 @@ +<!-- WARNING: keep links absolute in this file so they work on NPM too --> + +[![npm version](https://img.shields.io/npm/v/vike-react)](https://www.npmjs.com/package/vike-react) + See [Vike Docs > vike-react](https://vike.dev/vike-react). diff --git a/packages/vike-react/package.json b/packages/vike-react/package.json index 1f78cb6f..33ad423f 100644 --- a/packages/vike-react/package.json +++ b/packages/vike-react/package.json @@ -1,6 +1,6 @@ { "name": "vike-react", - "version": "0.5.11", + "version": "0.6.12", "repository": "https://github.com/vikejs/vike-react", "type": "module", "exports": { @@ -27,34 +27,32 @@ "./__internal/integration/Loading": "./dist/integration/Loading.js" }, "dependencies": { - "react-streaming": "^0.3.42" + "react-streaming": "^0.4.11" }, "peerDependencies": { - "react": ">=18.0.0", - "react-dom": ">=18.0.0", + "react": ">=19", + "react-dom": ">=19", "vike": ">=0.4.182" }, "scripts": { "dev": "tsc --watch", - "build": "rimraf dist/ && tsc && pnpm run build:css", - "build:css": "cp src/integration/styles.css dist/integration/styles.css", + "build": "rimraf dist/ && tsc", "release": "release-me patch", "release:minor": "release-me minor", "release:commit": "release-me commit" }, "devDependencies": { - "@biomejs/biome": "^1.6.4", - "@brillout/release-me": "^0.4.2", - "@types/node": "^20.11.17", - "@types/react": "^18.2.55", - "@types/react-dom": "^18.2.19", - "react": "^18.3.1", - "react-dom": "^18.3.1", - "react-streaming": "^0.3.43", + "@biomejs/biome": "^1.9.4", + "@brillout/release-me": "^0.4.8", + "@types/node": "^24.0.8", + "@types/react": "^19.1.13", + "@types/react-dom": "^19.1.9", + "react": "^19.2.0", + "react-dom": "^19.2.0", "rimraf": "^5.0.5", - "typescript": "^5.5.4", - "vike": "^0.4.211", - "vite": "^5.4.0" + "typescript": "^5.9.2", + "vike": "^0.4.242", + "vite": "^7.1.7" }, "typesVersions": { "*": { diff --git a/packages/vike-react/src/components/ClientOnly.tsx b/packages/vike-react/src/components/ClientOnly.tsx index a0510ddd..07cead06 100644 --- a/packages/vike-react/src/components/ClientOnly.tsx +++ b/packages/vike-react/src/components/ClientOnly.tsx @@ -14,7 +14,7 @@ function ClientOnly<T>({ fallback: ReactNode deps?: Parameters<typeof useEffect>[1] }) { - // TODO/next-major-release: remove this file/export + // TO-DO/next-major: remove this file/export console.warn('[vike-react][warning] <ClientOnly> is deprecated: use clientOnly() instead https://vike.dev/clientOnly') const [Component, setComponent] = useState<ComponentType<unknown> | null>(null) diff --git a/packages/vike-react/src/components/Config/Config-client.ts b/packages/vike-react/src/components/Config/Config-client.ts index b667e92b..e3d3b486 100644 --- a/packages/vike-react/src/components/Config/Config-client.ts +++ b/packages/vike-react/src/components/Config/Config-client.ts @@ -1,9 +1,9 @@ export { Config } import { useConfig } from '../../hooks/useConfig/useConfig-client.js' -import type { ConfigFromHook } from '../../types/Config.js' +import type { ConfigViaHook } from '../../types/Config.js' -function Config(props: ConfigFromHook): null { +function Config(props: ConfigViaHook): null { const config = useConfig() config(props) return null diff --git a/packages/vike-react/src/components/Config/Config-server.ts b/packages/vike-react/src/components/Config/Config-server.ts index 2fa780f4..a0e6335c 100644 --- a/packages/vike-react/src/components/Config/Config-server.ts +++ b/packages/vike-react/src/components/Config/Config-server.ts @@ -1,14 +1,14 @@ export { Config } import { useConfig } from '../../hooks/useConfig/useConfig-server.js' -import type { ConfigFromHook } from '../../types/Config.js' +import type { ConfigViaHook } from '../../types/Config.js' /** * Set configurations inside React components. * * https://vike.dev/useConfig */ -function Config(props: ConfigFromHook): null { +function Config(props: ConfigViaHook): null { const config = useConfig() config(props) return null diff --git a/packages/vike-react/src/config.ts b/packages/vike-react/src/config.ts index 99bdeb98..b390edae 100644 --- a/packages/vike-react/src/config.ts +++ b/packages/vike-react/src/config.ts @@ -20,7 +20,7 @@ const config = { // @eject-remove end passToClient: [ - '_configFromHook', + '_configViaHook', // https://github.com/vikejs/vike-react/issues/25 process.env.NODE_ENV !== 'production' && '$$typeof', ].filter(isNotFalse), @@ -68,6 +68,16 @@ const config = { cumulative: true, global: true, }, + headHtmlBegin: { + env: { server: true }, + cumulative: true, + global: true, + }, + headHtmlEnd: { + env: { server: true }, + cumulative: true, + global: true, + }, htmlAttributes: { env: { server: true }, global: true, @@ -84,6 +94,7 @@ const config = { }, stream: { env: { server: true }, + cumulative: true, }, streamIsRequired: { env: { server: true }, @@ -108,12 +119,17 @@ const config = { cumulative: true, env: { client: true, server: true }, }, + // TO-DO/next-major: move to +react.js > strictMode ? reactStrictMode: { env: { client: true, server: true }, }, Loading: { env: { server: true, client: true }, }, + react: { + cumulative: true, + env: {}, + }, }, } satisfies Config // @eject-remove start diff --git a/packages/vike-react/src/helpers/clientOnly.tsx b/packages/vike-react/src/helpers/clientOnly.tsx index ce9c3554..b748a42b 100644 --- a/packages/vike-react/src/helpers/clientOnly.tsx +++ b/packages/vike-react/src/helpers/clientOnly.tsx @@ -30,7 +30,7 @@ function clientOnly<T extends ComponentType<any>>( }), ) - return forwardRef<any, any>((props, ref) => { + return forwardRef((props, ref) => { const [mounted, setMounted] = useState(false) useEffect(() => { setMounted(true) @@ -41,6 +41,7 @@ function clientOnly<T extends ComponentType<any>>( const { fallback, ...rest } = props return ( <Suspense fallback={<>{props.fallback}</>}> + {/* @ts-ignore */} <Component {...rest} ref={ref} /> </Suspense> ) diff --git a/packages/vike-react/src/hooks/useConfig/useConfig-client.ts b/packages/vike-react/src/hooks/useConfig/useConfig-client.ts index 62d5dae1..cd6edbde 100644 --- a/packages/vike-react/src/hooks/useConfig/useConfig-client.ts +++ b/packages/vike-react/src/hooks/useConfig/useConfig-client.ts @@ -2,33 +2,33 @@ export { useConfig } import type { PageContext } from 'vike/types' import type { PageContextInternal } from '../../types/PageContext.js' -import type { ConfigFromHook } from '../../types/Config.js' +import type { ConfigViaHook } from '../../types/Config.js' import { usePageContext } from '../usePageContext.js' import { getPageContext } from 'vike/getPageContext' import { applyHeadSettings } from '../../integration/applyHeadSettings.js' -function useConfig(): (config: ConfigFromHook) => void { +function useConfig(): (config: ConfigViaHook) => void { // Vike hook let pageContext = getPageContext() as PageContext & PageContextInternal - if (pageContext) return (config: ConfigFromHook) => setPageContextConfigFromHook(config, pageContext) + if (pageContext) return (config: ConfigViaHook) => setPageContextConfigViaHook(config, pageContext) // Component pageContext = usePageContext() - return (config: ConfigFromHook) => { + return (config: ConfigViaHook) => { if (!('_headAlreadySet' in pageContext)) { - setPageContextConfigFromHook(config, pageContext) + setPageContextConfigViaHook(config, pageContext) } else { applyHead(config) } } } -function setPageContextConfigFromHook(config: ConfigFromHook, pageContext: PageContextInternal) { - pageContext._configFromHook ??= {} - Object.assign(pageContext._configFromHook, config) +function setPageContextConfigViaHook(config: ConfigViaHook, pageContext: PageContextInternal) { + pageContext._configViaHook ??= {} + Object.assign(pageContext._configViaHook, config) } -function applyHead(config: ConfigFromHook) { +function applyHead(config: ConfigViaHook) { const { title, lang } = config applyHeadSettings(title, lang) } diff --git a/packages/vike-react/src/hooks/useConfig/useConfig-server.ts b/packages/vike-react/src/hooks/useConfig/useConfig-server.ts index 0f7a425d..4b628a9d 100644 --- a/packages/vike-react/src/hooks/useConfig/useConfig-server.ts +++ b/packages/vike-react/src/hooks/useConfig/useConfig-server.ts @@ -1,12 +1,13 @@ export { useConfig } import type { PageContext } from 'vike/types' import type { PageContextInternal } from '../../types/PageContext.js' -import type { ConfigFromHook } from '../../types/Config.js' +import type { ConfigViaHook } from '../../types/Config.js' import { usePageContext } from '../usePageContext.js' import { getPageContext } from 'vike/getPageContext' -import { useStream } from 'react-streaming' +import { useStreamOptional } from 'react-streaming' import { objectKeys } from '../../utils/objectKeys.js' import { includes } from '../../utils/includes.js' +import { assert } from '../../utils/assert.js' import { configsCumulative } from './configsCumulative.js' /** @@ -14,27 +15,28 @@ import { configsCumulative } from './configsCumulative.js' * * https://vike.dev/useConfig */ -function useConfig(): (config: ConfigFromHook) => void { +function useConfig(): (config: ConfigViaHook) => void { // Vike hook let pageContext = getPageContext() as PageContext & PageContextInternal - if (pageContext) return (config: ConfigFromHook) => setPageContextConfigFromHook(config, pageContext) + if (pageContext) return (config: ConfigViaHook) => setPageContextConfigViaHook(config, pageContext) // Component pageContext = usePageContext() - const stream = useStream() - return (config: ConfigFromHook) => { + const stream = useStreamOptional() + return (config: ConfigViaHook) => { if (!pageContext._headAlreadySet) { - setPageContextConfigFromHook(config, pageContext) + setPageContextConfigViaHook(config, pageContext) } else { + assert(stream) // <head> already sent to the browser => send DOM-manipulating scripts during HTML streaming - apply(config, stream!) + apply(config, stream) } } } const configsClientSide = ['title'] -function setPageContextConfigFromHook(config: ConfigFromHook, pageContext: PageContext & PageContextInternal) { - pageContext._configFromHook ??= {} +function setPageContextConfigViaHook(config: ConfigViaHook, pageContext: PageContext & PageContextInternal) { + pageContext._configViaHook ??= {} objectKeys(config).forEach((configName) => { // Skip HTML only configs which the client-side doesn't need, saving KBs sent to the client as well as avoiding serialization errors. if (pageContext.isClientSideNavigation && !configsClientSide.includes(configName)) return @@ -43,19 +45,19 @@ function setPageContextConfigFromHook(config: ConfigFromHook, pageContext: PageC // Overridable config const configValue = config[configName] if (configValue === undefined) return - pageContext._configFromHook![configName] = configValue as any + pageContext._configViaHook![configName] = configValue as any } else { // Cumulative config const configValue = config[configName] if (!configValue) return - pageContext._configFromHook![configName] ??= [] - pageContext._configFromHook![configName].push(configValue as any) + pageContext._configViaHook![configName] ??= [] + pageContext._configViaHook![configName].push(configValue as any) } }) } -type Stream = NonNullable<ReturnType<typeof useStream>> -function apply(config: ConfigFromHook, stream: Stream) { +type Stream = NonNullable<ReturnType<typeof useStreamOptional>> +function apply(config: ConfigViaHook, stream: Stream) { const { title } = config if (title) { const htmlSnippet = `<script>document.title = ${JSON.stringify(title)}</script>` diff --git a/packages/vike-react/src/hooks/usePageContext.tsx b/packages/vike-react/src/hooks/usePageContext.tsx index c8e0674a..c6f872b8 100644 --- a/packages/vike-react/src/hooks/usePageContext.tsx +++ b/packages/vike-react/src/hooks/usePageContext.tsx @@ -1,15 +1,18 @@ export { usePageContext } -export { PageContextProvider } +export { VikeReactProviderPageContext } import React, { useContext } from 'react' import { getGlobalObject } from '../utils/getGlobalObject.js' import type { PageContext } from 'vike/types' -const globalObject = getGlobalObject('PageContextProvider.ts', { +const globalObject = getGlobalObject('usePageContext.tsx', { reactContext: React.createContext<PageContext>(undefined as never), }) -function PageContextProvider({ pageContext, children }: { pageContext: PageContext; children: React.ReactNode }) { +function VikeReactProviderPageContext({ + pageContext, + children, +}: { pageContext: PageContext; children: React.ReactNode }) { const { reactContext } = globalObject return <reactContext.Provider value={pageContext}>{children}</reactContext.Provider> } diff --git a/packages/vike-react/src/index.ts b/packages/vike-react/src/index.ts index 6f186d3b..094ab499 100644 --- a/packages/vike-react/src/index.ts +++ b/packages/vike-react/src/index.ts @@ -1,4 +1,4 @@ -// TODO/next-major-release: remove this file/export +// TO-DO/next-major: remove this file/export console.warn( "[vike-react][warning][deprecation] Replace `import vikeReact from 'vike-react'` with `import vikeReact from 'vike-react/config'` (typically in your /pages/+config.js)", ) diff --git a/packages/vike-react/src/integration/Loading.tsx b/packages/vike-react/src/integration/Loading.tsx index 59f857f9..a5635125 100644 --- a/packages/vike-react/src/integration/Loading.tsx +++ b/packages/vike-react/src/integration/Loading.tsx @@ -1,22 +1,38 @@ export default { - component: LoadingComponent, + component: VikeReactLoadingComponent, } import React from 'react' -function LoadingComponent() { +function VikeReactLoadingComponent() { return ( - <div - style={{ - width: '100%', - height: '100%', - maxHeight: '100%', - background: 'linear-gradient(110deg, #ececec 8%, #f5f5f5 18%, #ececec 33%)', - borderRadius: '5px', - backgroundSize: '200% 100%', - animation: '1.3s vike-react-shine linear infinite', - aspectRatio: '2.5/1', - }} - /> + <> + <div + style={{ + width: '100%', + height: '100%', + maxHeight: '100%', + background: 'linear-gradient(110deg, #ececec 8%, #f5f5f5 18%, #ececec 33%)', + borderRadius: '5px', + backgroundSize: '200% 100%', + animation: '1.3s vike-react-loading linear infinite', + aspectRatio: '2.5/1', + }} + /> + <style + href="vike-react-loading" + // https://react.dev/reference/react-dom/components/style#special-rendering-behavior + // https://github.com/vikejs/vike-react/pull/184#discussion_r2348075206 + precedence="default" + > + {` + @keyframes vike-react-loading { + to { + background-position-x: -200%; + } + } + `} + </style> + </> ) } diff --git a/packages/vike-react/src/integration/getHeadSetting.tsx b/packages/vike-react/src/integration/getHeadSetting.tsx index 23fb0d2d..d63a79c9 100644 --- a/packages/vike-react/src/integration/getHeadSetting.tsx +++ b/packages/vike-react/src/integration/getHeadSetting.tsx @@ -3,30 +3,30 @@ export { getHeadSetting } import { isCallable } from '../utils/isCallable.js' import type { PageContext } from 'vike/types' import type { PageContextInternal } from '../types/PageContext.js' -import type { ConfigFromHookResolved } from '../types/Config.js' +import type { ConfigViaHookResolved } from '../types/Config.js' import { configsCumulative } from '../hooks/useConfig/configsCumulative.js' import { includes } from '../utils/includes.js' // We use `any` instead of doing proper validation in order to save KBs sent to the client-side. function getHeadSetting<T>( - configName: keyof ConfigFromHookResolved, + configName: keyof ConfigViaHookResolved, pageContext: PageContext & PageContextInternal, ): undefined | T { // Set by useConfig() - const valFromUseConfig = pageContext._configFromHook?.[configName] + const valFromHook = pageContext._configViaHook?.[configName] // Set by +configName.js const valFromConfig = pageContext.config[configName] const getCallable = (val: unknown) => (isCallable(val) ? val(pageContext) : val) if (!includes(configsCumulative, configName)) { - if (valFromUseConfig !== undefined) return valFromUseConfig as any + if (valFromHook !== undefined) return valFromHook as any return getCallable(valFromConfig) as any } else { return [ // ...((valFromConfig as any) ?? []).map(getCallable), - ...((valFromUseConfig as any) ?? []), + ...((valFromHook as any) ?? []), ] as any } } diff --git a/packages/vike-react/src/integration/getPageElement.tsx b/packages/vike-react/src/integration/getPageElement.tsx index 18f83361..731e0f31 100644 --- a/packages/vike-react/src/integration/getPageElement.tsx +++ b/packages/vike-react/src/integration/getPageElement.tsx @@ -2,9 +2,9 @@ export { getPageElement } import React, { Suspense, useEffect } from 'react' import type { PageContext } from 'vike/types' -import { PageContextProvider } from '../hooks/usePageContext.js' +import { VikeReactProviderPageContext } from '../hooks/usePageContext.js' -function getPageElement(pageContext: PageContext): { page: React.JSX.Element; renderPromise: Promise<void> } { +function getPageElement(pageContext: PageContext) { const { Page, config: { Loading }, @@ -27,20 +27,26 @@ function getPageElement(pageContext: PageContext): { page: React.JSX.Element; re page = addSuspense(page) }) - page = <PageContextProvider pageContext={pageContext}>{page}</PageContextProvider> + page = <VikeReactProviderPageContext pageContext={pageContext}>{page}</VikeReactProviderPageContext> let renderPromiseResolve!: () => void - let renderPromise = new Promise<void>((r) => (renderPromiseResolve = r)) - page = <RenderPromiseProvider renderPromiseResolve={renderPromiseResolve}>{page}</RenderPromiseProvider> + let renderPromiseReject!: (err: unknown) => void + let renderPromise = new Promise<void>((resolve, reject) => { + renderPromiseResolve = resolve + renderPromiseReject = reject + }) + page = ( + <VikeReactProviderRenderPromise renderPromiseResolve={renderPromiseResolve}>{page}</VikeReactProviderRenderPromise> + ) if (pageContext.config.reactStrictMode !== false) { page = <React.StrictMode>{page}</React.StrictMode> } - return { page, renderPromise } + return { page, renderPromise, renderPromiseReject } } -function RenderPromiseProvider({ +function VikeReactProviderRenderPromise({ children, renderPromiseResolve, }: { children: React.ReactNode; renderPromiseResolve: () => void }) { diff --git a/packages/vike-react/src/integration/onRenderClient.tsx b/packages/vike-react/src/integration/onRenderClient.tsx index 7eed3cb6..cb8cb943 100644 --- a/packages/vike-react/src/integration/onRenderClient.tsx +++ b/packages/vike-react/src/integration/onRenderClient.tsx @@ -1,57 +1,71 @@ // https://vike.dev/onRenderClient export { onRenderClient } -import ReactDOM from 'react-dom/client' +import ReactDOM, { type RootOptions } from 'react-dom/client' import { getHeadSetting } from './getHeadSetting.js' -import type { OnRenderClientAsync, PageContextClient } from 'vike/types' +import type { PageContextClient } from 'vike/types' import { getPageElement } from './getPageElement.js' import type { PageContextInternal } from '../types/PageContext.js' -import './styles.css' import { callCumulativeHooks } from '../utils/callCumulativeHooks.js' import { applyHeadSettings } from './applyHeadSettings.js' +import { resolveReactOptions } from './resolveReactOptions.js' +import { getGlobalObject } from '../utils/getGlobalObject.js' +import { isObject } from '../utils/isObject.js' -let root: ReactDOM.Root -const onRenderClient: OnRenderClientAsync = async ( - pageContext: PageContextClient & PageContextInternal, -): ReturnType<OnRenderClientAsync> => { +const globalObject = getGlobalObject<{ + root?: ReactDOM.Root + onUncaughtErrorLocal?: (err: unknown) => void +}>('onRenderClient.tsx', {}) + +async function onRenderClient(pageContext: PageContextClient & PageContextInternal) { pageContext._headAlreadySet = pageContext.isHydration // Use case: // - Store hydration https://github.com/vikejs/vike-react/issues/110 await callCumulativeHooks(pageContext.config.onBeforeRenderClient, pageContext) - const { page, renderPromise } = getPageElement(pageContext) + const { page, renderPromise, renderPromiseReject } = getPageElement(pageContext) pageContext.page = page - // TODO: implement this? So that, upon errors, onRenderClient() throws an error and Vike can render the error. As of April 2024 it isn't released yet. - // - https://react-dev-git-fork-rickhanlonii-rh-root-options-fbopensource.vercel.app/reference/react-dom/client/createRoot#show-a-dialog-for-uncaught-errors - // - https://react-dev-git-fork-rickhanlonii-rh-root-options-fbopensource.vercel.app/reference/react-dom/client/hydrateRoot#show-a-dialog-for-uncaught-errors - const onUncaughtError = (_error: any, _errorInfo: any) => {} + // Local callback for current page + globalObject.onUncaughtErrorLocal = (err: unknown) => { + renderPromiseReject(err) + } const container = document.getElementById('root')! + const { hydrateRootOptions, createRootOptions } = resolveReactOptions(pageContext) if ( pageContext.isHydration && // Whether the page was [Server-Side Rendered](https://vike.dev/ssr). container.innerHTML !== '' ) { // First render while using SSR, i.e. [hydration](https://vike.dev/hydration) - root = ReactDOM.hydrateRoot(container, page, { - // @ts-expect-error - onUncaughtError, + globalObject.root = ReactDOM.hydrateRoot(container, page, { + ...hydrateRootOptions, + // onUncaughtError is the right callback: https://gist.github.com/brillout/b9516e83a7a4517f4dbd0ef50e9dd716 + onUncaughtError(...args) { + onUncaughtErrorGlobal.call(this, args, hydrateRootOptions) + }, }) } else { - if (!root) { + if (!globalObject.root) { // First render without SSR - root = ReactDOM.createRoot(container, { - // @ts-expect-error - onUncaughtError, + globalObject.root = ReactDOM.createRoot(container, { + ...createRootOptions, + onUncaughtError(...args) { + onUncaughtErrorGlobal.call(this, args, createRootOptions) + }, }) } - root.render(page) + globalObject.root.render(page) } - pageContext.root = root + pageContext.root = globalObject.root - await renderPromise + try { + await renderPromise + } finally { + delete globalObject.onUncaughtErrorLocal + } if (!pageContext.isHydration) { pageContext._headAlreadySet = true @@ -69,3 +83,69 @@ function applyHead(pageContext: PageContextClient) { const lang = getHeadSetting<string | null>('lang', pageContext) applyHeadSettings(title, lang) } + +// Global callback, attached once upon hydration. +function onUncaughtErrorGlobal( + this: unknown, + args: OnUncaughtErrorArgs, + userOptions: { onUncaughtError?: OnUncaughtError } | undefined, +) { + const [errorOriginal, errorInfo] = args + const errorEnhanced = getErrorEnhanced(errorOriginal, errorInfo) + console.error(errorEnhanced) + // Used by Vike: + // https://github.com/vikejs/vike/blob/8ce2cbda756892f0ff083256291515b5a45fe319/packages/vike/client/runtime-client-routing/renderPageClientSide.ts#L838-L844 + if (isObject(errorEnhanced)) errorEnhanced.isAlreadyLogged = true + globalObject.onUncaughtErrorLocal?.(errorEnhanced) + userOptions?.onUncaughtError?.call(this, errorEnhanced, errorInfo) +} +type OnUncaughtError = RootOptions['onUncaughtError'] +type OnUncaughtErrorArgs = Parameters<NonNullable<RootOptions['onUncaughtError']>> + +// Inject componentStack to the error's stack trace +type ErrorInfo = { componentStack?: string } +function getErrorEnhanced(errorOriginal: unknown, errorInfo?: ErrorInfo) { + if (!errorInfo?.componentStack || !isObject(errorOriginal)) return errorOriginal + const errorStackLines = String(errorOriginal.stack).split('\n') + + // Inject the component stack right before the React stack trace (potentially *after* some vike-react or react-streaming strack trace, e.g. if react-streaming's useAsync() throws an error). + // Perfect cutoff (as of react@19.2.0), but can easily break upon React internal refactoring + let cutoff = errorStackLines.findIndex((l) => l.includes('react_stack_bottom_frame')) + if (cutoff === -1) { + // Ideally, we should inject the component stack right before the React stack trace, and *after* any vike-react or react-streaming strack trace. + // But we cannot (easily) do that on the client-side, because Vite pre-bundles React, vike-react, and react-streaming inside a single bundle: + // ```console + // # This is React code, but it's included inside the vike-react pre-optimized bundle + // Object.react_stack_bottom_frame (http://localhost:3000/node_modules/.vite/deps/vike-react___internal_integration_onRenderClient.js) + // ``` + cutoff = errorStackLines.findIndex((l) => l.includes('node_modules') && l.includes('react')) + } + if (cutoff === -1) return errorOriginal + + const errorStackLinesBegin = errorStackLines.slice(0, cutoff) + const errorStackLinesEnd = errorStackLines.slice(cutoff) + const componentStackLines = errorInfo.componentStack.split('\n').filter(Boolean) + if (componentStackLines[0] === errorStackLinesBegin.at(-1)) componentStackLines.shift() + const stackEnhanced = [ + // + ...errorStackLinesBegin, + ...componentStackLines, + ...errorStackLinesEnd, + ].join('\n') + const errorEnhanced = structuredClone(errorOriginal) + errorEnhanced.stack = stackEnhanced + + // https://gist.github.com/brillout/066293a687ab7cf695e62ad867bc6a9c + Object.defineProperty(errorEnhanced, 'getOriginalError', { + value: () => errorOriginal, + enumerable: true, + }) + /* Not needed. Let's skip this to save client-side KBs. + Object.defineProperty(errorOriginal, 'getEnhancedError', { + value: () => errorEnhanced, + enumerable: true, + }) + //*/ + + return errorEnhanced +} diff --git a/packages/vike-react/src/integration/onRenderHtml.tsx b/packages/vike-react/src/integration/onRenderHtml.tsx index 045e1204..da8eacfb 100644 --- a/packages/vike-react/src/integration/onRenderHtml.tsx +++ b/packages/vike-react/src/integration/onRenderHtml.tsx @@ -5,79 +5,109 @@ import React from 'react' import { renderToString, renderToStaticMarkup } from 'react-dom/server' import { renderToStream } from 'react-streaming/server' import { dangerouslySkipEscape, escapeInject } from 'vike/server' -import type { OnRenderHtmlAsync, PageContextServer } from 'vike/types' -import { PageContextProvider } from '../hooks/usePageContext.js' +import type { PageContextServer } from 'vike/types' +import { VikeReactProviderPageContext } from '../hooks/usePageContext.js' import { getHeadSetting } from './getHeadSetting.js' import { getPageElement } from './getPageElement.js' import type { PageContextInternal } from '../types/PageContext.js' import type { Head } from '../types/Config.js' import { isReactElement } from '../utils/isReactElement.js' import { getTagAttributesString, type TagAttributes } from '../utils/getTagAttributesString.js' +import { assert } from '../utils/assert.js' import { callCumulativeHooks } from '../utils/callCumulativeHooks.js' +import { resolveReactOptions } from './resolveReactOptions.js' +import { isNotNullish } from '../utils/isNotNullish.js' +import { isObject } from '../utils/isObject.js' +import { isType } from '../utils/isType.js' addEcosystemStamp() -const onRenderHtml: OnRenderHtmlAsync = async ( +async function onRenderHtml( pageContext: PageContextServer & PageContextInternal, -): ReturnType<OnRenderHtmlAsync> => { - const pageHtml = await getPageHtml(pageContext) +): Promise<ReturnType<typeof escapeInject>> { + await renderPageToHtml(pageContext) const headHtml = getHeadHtml(pageContext) - const { bodyHtmlBegin, bodyHtmlEnd } = await getBodyHtmlBoundary(pageContext) + const { headHtmlBegin, headHtmlEnd, bodyHtmlBegin, bodyHtmlEnd } = await getHtmlInjections(pageContext) const { htmlAttributesString, bodyAttributesString } = getTagAttributes(pageContext) // Not needed on the client-side, thus we remove it to save KBs sent to the client - delete pageContext._configFromHook + delete pageContext._configViaHook + + // pageContext.{pageHtmlString,pageHtmlStream} is set by renderPageToHtml() and can be overridden by user at onAfterRenderHtml() + let pageHtmlStringOrStream: string | ReturnType<typeof dangerouslySkipEscape> | PageHtmlStream = + // Set to empty string if SSR is disabled + '' + if (pageContext.pageHtmlString) { + assert(pageContext.pageHtmlStream === undefined) + pageHtmlStringOrStream = dangerouslySkipEscape(pageContext.pageHtmlString) + } + if (pageContext.pageHtmlStream) { + assert(pageContext.pageHtmlString === undefined) + pageHtmlStringOrStream = pageContext.pageHtmlStream + } return escapeInject`<!DOCTYPE html> <html${dangerouslySkipEscape(htmlAttributesString)}> <head> <meta charset="UTF-8" /> + ${headHtmlBegin} ${headHtml} + ${headHtmlEnd} </head> <body${dangerouslySkipEscape(bodyAttributesString)}> ${bodyHtmlBegin} - <div id="root">${pageHtml}</div> + <div id="root">${pageHtmlStringOrStream}</div> ${bodyHtmlEnd} </body> </html>` } export type PageHtmlStream = Awaited<ReturnType<typeof renderToStream>> -async function getPageHtml(pageContext: PageContextServer) { +async function renderPageToHtml(pageContext: PageContextServer) { if (pageContext.Page) pageContext.page = getPageElement(pageContext).page // https://github.com/vikejs/vike-react/issues/87#issuecomment-2488742744 await callCumulativeHooks(pageContext.config.onBeforeRenderHtml, pageContext) - let pageHtml: string | ReturnType<typeof dangerouslySkipEscape> | PageHtmlStream = '' + const { renderToStringOptions } = resolveReactOptions(pageContext) + if (pageContext.page) { - const { stream, streamIsRequired } = pageContext.config - if (!stream && !streamIsRequired) { - const pageHtmlString = renderToString(pageContext.page) + const streamSetting = resolveStreamSetting(pageContext) + if (!streamSetting.enable && !streamSetting.require) { + const pageHtmlString = renderToString(pageContext.page, renderToStringOptions) pageContext.pageHtmlString = pageHtmlString - pageHtml = dangerouslySkipEscape(pageHtmlString) } else { const pageHtmlStream = await renderToStream(pageContext.page, { - webStream: typeof stream === 'string' ? stream === 'web' : undefined, + webStream: !streamSetting.type + ? /* Let react-streaming decide which stream type to use. + false + */ + undefined + : streamSetting.type === 'web', userAgent: pageContext.headers?.['user-agent'] || - // TODO/eventually: remove old way of acccessing the User Agent header. + // TO-DO/eventually: remove old way of acccessing the User Agent header. // @ts-ignore pageContext.userAgent, - disable: stream === false ? true : undefined, + disable: + // +stream.require is true => default +stream.enable is true + // +stream.require is false => default +stream.enable is false + streamSetting.enable === false + ? true + : /* Don't override disabling when bot is detected. + false, + */ + undefined, }) pageContext.pageHtmlStream = pageHtmlStream - pageHtml = pageHtmlStream } } // https://github.com/vikejs/vike/discussions/1804#discussioncomment-10394481 await callCumulativeHooks(pageContext.config.onAfterRenderHtml, pageContext) - - return pageHtml } function getHeadHtml(pageContext: PageContextServer & PageContextInternal) { @@ -103,7 +133,7 @@ function getHeadHtml(pageContext: PageContextServer & PageContextInternal) { // Added by +Head ...(pageContext.config.Head ?? []), // Added by useConfig() - ...(pageContext._configFromHook?.Head ?? []), + ...(pageContext._configViaHook?.Head ?? []), ] .filter((Head) => Head !== null && Head !== undefined) .map((Head) => getHeadElementHtml(Head, pageContext)) @@ -126,9 +156,9 @@ function getHeadElementHtml(Head: NonNullable<Head>, pageContext: PageContextSer headElement = Head } else { headElement = ( - <PageContextProvider pageContext={pageContext}> + <VikeReactProviderPageContext pageContext={pageContext}> <Head /> - </PageContextProvider> + </VikeReactProviderPageContext> ) } if (pageContext.config.reactStrictMode !== false) { @@ -182,12 +212,66 @@ function addEcosystemStamp() { {} } -async function getBodyHtmlBoundary(pageContext: PageContextServer) { - const bodyHtmlBegin = dangerouslySkipEscape( - (await callCumulativeHooks(pageContext.config.bodyHtmlBegin, pageContext)).join(''), - ) - const bodyHtmlEnd = dangerouslySkipEscape( - (await callCumulativeHooks(pageContext.config.bodyHtmlEnd, pageContext)).join(''), - ) - return { bodyHtmlBegin, bodyHtmlEnd } +export type HtmlInjection = string | ((pageContext: PageContextServer) => string) + +async function getHtmlInjections(pageContext: PageContextServer) { + const { config } = pageContext + const renderHooks = async (hooks: HtmlInjection[] | undefined) => { + const values = await callCumulativeHooks(hooks, pageContext) + return dangerouslySkipEscape(values.join('')) + } + const [headHtmlBegin, headHtmlEnd, bodyHtmlBegin, bodyHtmlEnd] = await Promise.all([ + renderHooks(config.headHtmlBegin), + renderHooks(config.headHtmlEnd), + renderHooks(config.bodyHtmlBegin), + renderHooks(config.bodyHtmlEnd), + ]) + return { bodyHtmlBegin, bodyHtmlEnd, headHtmlBegin, headHtmlEnd } +} + +type StreamSetting = { + type: 'node' | 'web' | null + enable: boolean | null + require: boolean +} +function resolveStreamSetting(pageContext: PageContextServer): StreamSetting { + const { + stream, + // TO-DO/eventually: remove +streamIsRequired + // - Let's remove it once following last vike-react-{query,apollo} releases using +streamIsRequired can be considered old versions. + // - Last vike-react-query version that uses +streamIsRequired was 0.1.3 + // - Last vike-react-apollo version that uses +streamIsRequired was 0.1.1 + // - New vike-react-{query,apollo} versions using +stream.require instead +streamIsRequired were released on May 29th 2025 + // - Remove it in a minor release (AFAICT it's only used by vike-react-{query,apollo}) + // - Add a `Negligible Breaking Change` + streamIsRequired, + } = pageContext.config + const streamSetting: StreamSetting = { + type: null, + enable: null, + require: streamIsRequired ?? false, + } + stream + ?.reverse() + .filter(isNotNullish) + .forEach((setting) => { + if (typeof setting === 'boolean') { + streamSetting.enable = setting + return + } + if (typeof setting === 'string') { + streamSetting.type = setting + streamSetting.enable = true + return + } + if (isObject(setting)) { + if (setting.enable !== null) streamSetting.enable = setting.enable ?? true + if (setting.require !== undefined) streamSetting.require = setting.require + if (setting.type !== undefined) streamSetting.type = setting.type + return + } + isType<never>(setting) + throw new Error(`Unexpected +stream value ${setting}`) + }) + return streamSetting } diff --git a/packages/vike-react/src/integration/resolveReactOptions.ts b/packages/vike-react/src/integration/resolveReactOptions.ts new file mode 100644 index 00000000..18cdee48 --- /dev/null +++ b/packages/vike-react/src/integration/resolveReactOptions.ts @@ -0,0 +1,32 @@ +export { resolveReactOptions } + +import type { PageContext } from 'vike/types' +import type { ReactOptions } from '../types/Config.js' +import { isCallable } from '../utils/isCallable.js' +import { objectEntries } from '../utils/objectEntries.js' + +function resolveReactOptions(pageContext: PageContext) { + const optionsAcc: ReactOptions = {} + ;(pageContext.config.react ?? []).forEach((valUnresolved) => { + const optionList = isCallable(valUnresolved) ? valUnresolved(pageContext) : valUnresolved + if (!optionList) return + objectEntries(optionList).forEach(([fnName, options]) => { + if (!options) return + optionsAcc[fnName] ??= {} + objectEntries(options).forEach(([key, val]) => { + if (!isCallable(val)) { + // @ts-ignore + optionsAcc[fnName][key] ??= val + } else { + const valPrevious = optionsAcc[fnName]![key] as any as Function | undefined + // @ts-ignore + optionsAcc[fnName][key] = (...args: unknown[]) => { + valPrevious?.(...args) + val(...args) + } + } + }) + }) + }) + return optionsAcc +} diff --git a/packages/vike-react/src/integration/ssrEffect.ts b/packages/vike-react/src/integration/ssrEffect.ts index bb819194..7c1547ed 100644 --- a/packages/vike-react/src/integration/ssrEffect.ts +++ b/packages/vike-react/src/integration/ssrEffect.ts @@ -15,7 +15,7 @@ function ssrEffect({ configDefinedAt, configValue }: Parameters<ConfigEffect>[0] return { meta: { Page: { env }, - /* We don't do this to enable wraping <Head> with <Wrapper> + /* We don't do this to enable wrapping <Head> with <Wrapper> Wrapper: { env }, */ Layout: { env }, Loading: { env }, diff --git a/packages/vike-react/src/integration/styles.css b/packages/vike-react/src/integration/styles.css deleted file mode 100644 index d9bb15ea..00000000 --- a/packages/vike-react/src/integration/styles.css +++ /dev/null @@ -1,6 +0,0 @@ -/* For integration/Loading.tsx */ -@keyframes vike-react-shine { - to { - background-position-x: -200%; - } -} diff --git a/packages/vike-react/src/types/Config.ts b/packages/vike-react/src/types/Config.ts index 9f077b07..df68d108 100644 --- a/packages/vike-react/src/types/Config.ts +++ b/packages/vike-react/src/types/Config.ts @@ -1,8 +1,10 @@ -import type { ImportString, PageContextServer, PageContext, PageContextClient } from 'vike/types' +import type { ImportString, PageContext } from 'vike/types' import type { TagAttributes } from '../utils/getTagAttributesString.js' -import type { Viewport } from '../integration/onRenderHtml.js' +import type { Viewport, HtmlInjection } from '../integration/onRenderHtml.js' import type { ConfigsCumulative } from '../hooks/useConfig/configsCumulative.js' import type React from 'react' +import type { HydrationOptions, RootOptions } from 'react-dom/client' +import type { ServerOptions } from 'react-dom/server' // https://vike.dev/meta#typescript declare global { @@ -120,14 +122,28 @@ declare global { * * https://vike.dev/bodyHtmlBegin */ - bodyHtmlBegin?: BodyHtmlBoundary + bodyHtmlBegin?: HtmlInjection /** * Raw HTML injected at the end of `<body>`. * * https://vike.dev/bodyHtmlEnd */ - bodyHtmlEnd?: BodyHtmlBoundary + bodyHtmlEnd?: HtmlInjection + + /** + * Raw HTML injected at the start of `<head>`. + * + * https://vike.dev/headHtmlBegin + */ + headHtmlBegin?: HtmlInjection + + /** + * Raw HTML injected at the end of `<head>`. + * + * https://vike.dev/headHtmlEnd + */ + headHtmlEnd?: HtmlInjection /** * Add tag attributes such as `<html class="dark">`. @@ -155,17 +171,40 @@ declare global { ssr?: boolean /** - * Enable or disable HTML Streaming. + * Settings for HTML Streaming. * * https://vike.dev/stream */ - stream?: boolean | 'node' | 'web' + stream?: + | boolean + | 'node' + | 'web' + | { + /** + * Whether the HTML stream should be a Web Stream or a Node.js Stream. + * + * https://vike.dev/stream + */ + type?: 'node' | 'web' + /** + * Whether Server-Side Rendering (SSR) must use a stream. (Some tool integrations require it.) + * + * Setting +stream to `{ require: true, disable: true }` means that SSR is done using a stream but, from the user's perspective, HTML Streaming is disabled: the stream is awaited, converted to a string, and the full HTML is sent at once. + * + * https://vike.dev/stream + */ + require?: boolean + /** + * Setting +stream to `{ enable: null }` is the same as not setting +stream at all. + * + * Useful for changing stream settings without enabling streaming. For example, Vike extensions can set +stream to `{ enable: null, type: 'web' }` to change the default stream type without enabling streaming. + * + * https://vike.dev/stream + */ + enable?: boolean | null + } - /** - * Whether the existence of the React SSR stream is required (some integrations require it). - * - * HTML Streaming can still be disabled: the SSR stream is awaited and converted to a string. - */ + /** @deprecated Set +stream.require instead */ streamIsRequired?: boolean /** @@ -196,14 +235,14 @@ declare global { * * https://vike.dev/onBeforeRenderClient */ - onBeforeRenderClient?: (pageContext: PageContextClient) => void + onBeforeRenderClient?: ((pageContext: PageContextClient) => void) | ImportString /** * Client-side hook called after the page is rendered. * * https://vike.dev/onAfterRenderClient */ - onAfterRenderClient?: (pageContext: PageContextClient) => void + onAfterRenderClient?: ((pageContext: PageContextClient) => void) | ImportString /** * Define loading animations. @@ -211,19 +250,30 @@ declare global { * https://vike.dev/Loading */ Loading?: Loading | ImportString + + /** + * Options passed to React functions such as `createRoot()` or `hydrateRoot()`. + * + * https://vike.dev/react-setting + */ + react?: ReactOptions | ((pageContext: PageContext) => ReactOptions) | ImportString } interface ConfigResolved { Wrapper?: Wrapper[] Layout?: Layout[] Head?: Head[] - bodyHtmlBegin?: BodyHtmlBoundary[] - bodyHtmlEnd?: BodyHtmlBoundary[] + bodyHtmlBegin?: HtmlInjection[] + bodyHtmlEnd?: HtmlInjection[] + headHtmlBegin?: HtmlInjection[] + headHtmlEnd?: HtmlInjection[] bodyAttributes?: TagAttributes[] htmlAttributes?: TagAttributes[] onBeforeRenderHtml?: Function[] onAfterRenderHtml?: Function[] onBeforeRenderClient?: Function[] onAfterRenderClient?: Function[] + react?: Exclude<Config['react'], ImportString>[] + stream?: Exclude<Config['stream'], ImportString>[] } } } @@ -233,8 +283,6 @@ declare global { // - https://github.com/Microsoft/TypeScript/issues/983 type PageContext_ = PageContext -type BodyHtmlBoundary = string | ((pageContext: PageContext) => string) - export type Head = React.ReactNode | (() => React.ReactNode) type Wrapper = (props: { children: React.ReactNode }) => React.ReactNode type Layout = Wrapper @@ -244,9 +292,15 @@ type Loading = { component?: () => React.ReactNode; layout?: () => React.ReactNo type PickWithoutGetter<T, K extends keyof T> = { [P in K]: Exclude<T[P], Function> } -export type ConfigFromHook = PickWithoutGetter< +export type ConfigViaHook = PickWithoutGetter< Vike.Config, 'Head' | 'title' | 'description' | 'image' | 'favicon' | 'lang' | 'viewport' | 'bodyAttributes' | 'htmlAttributes' > -export type ConfigFromHookResolved = Omit<ConfigFromHook, ConfigsCumulative> & +export type ConfigViaHookResolved = Omit<ConfigViaHook, ConfigsCumulative> & Pick<Vike.ConfigResolved, ConfigsCumulative> + +export type ReactOptions = { + hydrateRootOptions?: HydrationOptions + createRootOptions?: RootOptions + renderToStringOptions?: ServerOptions +} diff --git a/packages/vike-react/src/types/PageContext.ts b/packages/vike-react/src/types/PageContext.ts index 2107c72b..a9512369 100644 --- a/packages/vike-react/src/types/PageContext.ts +++ b/packages/vike-react/src/types/PageContext.ts @@ -1,6 +1,6 @@ import type React from 'react' import type ReactDOM from 'react-dom/client' -import type { ConfigFromHookResolved } from './Config.js' +import type { ConfigViaHookResolved } from './Config.js' import type { PageHtmlStream } from '../integration/onRenderHtml.js' // https://vike.dev/pageContext#typescript @@ -22,8 +22,8 @@ declare global { } } -// Internal usage +// Internal pageContext properties export type PageContextInternal = { - _configFromHook?: ConfigFromHookResolved + _configViaHook?: ConfigViaHookResolved _headAlreadySet?: boolean } diff --git a/packages/vike-react/src/utils/callCumulativeHooks.ts b/packages/vike-react/src/utils/callCumulativeHooks.ts index e5b6aca0..3fb91f8e 100644 --- a/packages/vike-react/src/utils/callCumulativeHooks.ts +++ b/packages/vike-react/src/utils/callCumulativeHooks.ts @@ -1,14 +1,16 @@ export { callCumulativeHooks } import { providePageContext } from 'vike/getPageContext' +import { isCallable } from './isCallable.js' +import type { PageContext } from 'vike/types' -async function callCumulativeHooks( - values: undefined | unknown[], - pageContext: Record<string, any>, -): Promise<unknown[]> { +async function callCumulativeHooks<T>( + values: undefined | T[], + pageContext: PageContext, +): Promise<(undefined | null | Exclude<T, Function>)[]> { if (!values) return [] const valuesPromises = values.map((val) => { - if (typeof val === 'function') { + if (isCallable(val)) { providePageContext(pageContext) // Hook return val(pageContext) diff --git a/packages/vike-react/src/utils/getGlobalObject.ts b/packages/vike-react/src/utils/getGlobalObject.ts index bff2d5eb..622b3931 100644 --- a/packages/vike-react/src/utils/getGlobalObject.ts +++ b/packages/vike-react/src/utils/getGlobalObject.ts @@ -1,6 +1,6 @@ export function getGlobalObject<T extends Record<string, unknown> = never>( // We use the filename as key; each `getGlobalObject()` call should live inside a file with a unique filename. - key: `${string}.ts`, + key: `${string}.ts` | `${string}.tsx`, defaultValue: T, ): T { // @ts-ignore diff --git a/packages/vike-react/src/utils/isCallable.ts b/packages/vike-react/src/utils/isCallable.ts index 40948a88..f312a102 100644 --- a/packages/vike-react/src/utils/isCallable.ts +++ b/packages/vike-react/src/utils/isCallable.ts @@ -1,3 +1,3 @@ -export function isCallable<T extends (...args: unknown[]) => unknown>(thing: T | unknown): thing is T { +export function isCallable<T extends (...args: any[]) => any>(thing: T | unknown): thing is T { return thing instanceof Function || typeof thing === 'function' } diff --git a/packages/vike-react/src/utils/isNotNullish.ts b/packages/vike-react/src/utils/isNotNullish.ts new file mode 100644 index 00000000..339e3716 --- /dev/null +++ b/packages/vike-react/src/utils/isNotNullish.ts @@ -0,0 +1,7 @@ +export function isNullish(val: unknown): val is null | undefined { + return val === null || val === undefined +} +// someArray.filter(isNotNullish) +export function isNotNullish<T>(p: T | null | undefined): p is T { + return !isNullish(p) +} diff --git a/packages/vike-react/src/utils/isObject.ts b/packages/vike-react/src/utils/isObject.ts new file mode 100644 index 00000000..b5fd3133 --- /dev/null +++ b/packages/vike-react/src/utils/isObject.ts @@ -0,0 +1,3 @@ +export function isObject(value: unknown): value is Record<string, unknown> { + return typeof value === 'object' && value !== null +} diff --git a/packages/vike-react/src/utils/isType.ts b/packages/vike-react/src/utils/isType.ts new file mode 100644 index 00000000..ad4fdfb4 --- /dev/null +++ b/packages/vike-react/src/utils/isType.ts @@ -0,0 +1 @@ +export function isType<Type>(_: Type) {} diff --git a/packages/vike-react/src/utils/objectEntries.ts b/packages/vike-react/src/utils/objectEntries.ts new file mode 100644 index 00000000..d7abaa64 --- /dev/null +++ b/packages/vike-react/src/utils/objectEntries.ts @@ -0,0 +1,5 @@ +// https://stackoverflow.com/questions/60141960/typescript-key-value-relation-preserving-object-entries-type/75337277#75337277 +/** Same as Object.entries() but with type inference */ +export function objectEntries<T extends object>(obj: T): [keyof T, T[keyof T]][] { + return Object.entries(obj) as any +} diff --git a/packages/vike-react/tsconfig.json b/packages/vike-react/tsconfig.json index f6bab82f..25111e19 100644 --- a/packages/vike-react/tsconfig.json +++ b/packages/vike-react/tsconfig.json @@ -6,7 +6,7 @@ "module": "Node16", "moduleResolution": "Node16", // Libs - "lib": ["ES2021", "DOM", "DOM.Iterable"], + "lib": ["ES2022", "DOM", "DOM.Iterable"], "types": ["vite/client"], // Strictness "strict": true, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index db2121dd..6b5aae85 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,448 +4,599 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false -overrides: - vike-react: link:./packages/vike-react/ - vike-react-query: link:./packages/vike-react-query/ - vike-react-apollo: link:./packages/vike-react-apollo/ - vike-react-chakra: link:./packages/vike-react-chakra/ - vike-react-antd: link:./packages/vike-react-antd/ - vike-react-styled-components: link:./packages/vike-react-styled-components/ - vike-react-styled-jsx: link:./packages/vike-react-styled-jsx/ - importers: .: devDependencies: '@biomejs/biome': - specifier: ^1.8.3 - version: 1.8.3 + specifier: ^1.9.4 + version: 1.9.4 '@brillout/test-e2e': - specifier: ^0.5.33 - version: 0.5.33 + specifier: ^0.6.16 + version: 0.6.16 '@brillout/test-types': specifier: ^0.1.15 - version: 0.1.15(typescript@5.5.4) + version: 0.1.15(typescript@5.9.3) playwright: specifier: ^1.45.0 - version: 1.45.0 + version: 1.51.1 prettier: specifier: ^3.2.5 - version: 3.2.5 + version: 3.5.3 examples/apollo: dependencies: '@apollo/client': specifier: ^3.10.8 - version: 3.10.8(@types/react@18.2.55)(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 3.13.5(@types/react@19.2.2)(graphql@16.10.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@apollo/client-react-streaming': specifier: ^0.11.2 - version: 0.11.2(@apollo/client@3.10.8(@types/react@18.2.55)(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 0.11.11(@apollo/client@3.13.5(@types/react@19.2.2)(graphql@16.10.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(graphql@16.10.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@types/react': - specifier: ^18.2.55 - version: 18.2.55 + specifier: ^19.1.13 + version: 19.2.2 '@types/react-dom': - specifier: ^18.2.19 - version: 18.3.0 + specifier: ^19.1.9 + version: 19.2.1(@types/react@19.2.2) '@vitejs/plugin-react': - specifier: ^4.2.1 - version: 4.2.1(vite@5.4.0(@types/node@20.11.17)) + specifier: ^5.0.3 + version: 5.0.4(vite@7.1.9(@types/node@24.0.8)) graphql: specifier: ^16.9.0 - version: 16.9.0 + version: 16.10.0 react: - specifier: ^18.3.1 - version: 18.3.1 + specifier: ^19.2.0 + version: 19.2.0 react-dom: - specifier: ^18.3.1 - version: 18.3.1(react@18.3.1) + specifier: ^19.2.0 + version: 19.2.0(react@19.2.0) typescript: - specifier: ^5.3.3 - version: 5.5.3 + specifier: ^5.9.2 + version: 5.9.3 vike: - specifier: ^0.4.211 - version: 0.4.211(react-streaming@0.3.43(react@18.3.1))(vite@5.4.0(@types/node@20.11.17)) + specifier: ^0.4.242 + version: 0.4.242(react-streaming@0.4.11(react@19.2.0))(vite@7.1.9) vike-react: - specifier: link:../../packages/vike-react + specifier: 0.6.12 version: link:../../packages/vike-react vike-react-apollo: - specifier: link:../../packages/vike-react-apollo + specifier: 0.1.4 version: link:../../packages/vike-react-apollo vite: - specifier: ^5.4.0 - version: 5.4.0(@types/node@20.11.17) + specifier: ^7.1.7 + version: 7.1.9(@types/node@24.0.8) examples/full: dependencies: '@types/react': - specifier: ^18.3.3 - version: 18.3.3 + specifier: ^19.1.13 + version: 19.2.2 '@types/react-dom': - specifier: ^18.3.0 - version: 18.3.0 + specifier: ^19.1.9 + version: 19.2.1(@types/react@19.2.2) '@vitejs/plugin-react': - specifier: ^4.3.1 - version: 4.3.1(vite@5.4.0(@types/node@20.11.17)) + specifier: ^5.0.3 + version: 5.0.4(vite@7.1.9(@types/node@24.0.8)) node-fetch: specifier: ^3.3.2 version: 3.3.2 react: - specifier: ^18.3.1 - version: 18.3.1 + specifier: ^19.2.0 + version: 19.2.0 react-dom: - specifier: ^18.3.1 - version: 18.3.1(react@18.3.1) + specifier: ^19.2.0 + version: 19.2.0(react@19.2.0) react-streaming: - specifier: ^0.3.43 - version: 0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^0.4.11 + version: 0.4.11(react-dom@19.2.0(react@19.2.0))(react@19.2.0) typescript: - specifier: ^5.5.4 - version: 5.5.4 + specifier: ^5.9.2 + version: 5.9.3 vike: - specifier: ^0.4.211 - version: 0.4.211(react-streaming@0.3.43(react@18.3.1))(vite@5.4.0(@types/node@20.11.17)) + specifier: ^0.4.242 + version: 0.4.242(react-streaming@0.4.11(react@19.2.0))(vite@7.1.9) vike-react: - specifier: link:../../packages/vike-react + specifier: 0.6.12 version: link:../../packages/vike-react vite: - specifier: ^5.4.0 - version: 5.4.0(@types/node@20.11.17) + specifier: ^7.1.7 + version: 7.1.9(@types/node@24.0.8) examples/minimal: dependencies: '@vitejs/plugin-react': - specifier: ^4.2.1 - version: 4.2.1(vite@5.4.0(@types/node@20.11.17)) + specifier: ^5.0.3 + version: 5.0.4(vite@7.1.9(@types/node@24.0.8)) react: - specifier: ^18.3.1 - version: 18.3.1 + specifier: ^19.2.0 + version: 19.2.0 react-dom: - specifier: ^18.3.1 - version: 18.3.1(react@18.3.1) + specifier: ^19.2.0 + version: 19.2.0(react@19.2.0) vike: - specifier: ^0.4.203 - version: 0.4.203(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.0(@types/node@20.11.17)) + specifier: ^0.4.242 + version: 0.4.242(react-streaming@0.4.11(react@19.2.0))(vite@7.1.9) vike-react: - specifier: link:../../packages/vike-react + specifier: 0.6.12 version: link:../../packages/vike-react vite: - specifier: ^5.4.0 - version: 5.4.0(@types/node@20.11.17) + specifier: ^7.1.7 + version: 7.1.9(@types/node@24.0.8) - examples/react-query: + examples/query: dependencies: '@tanstack/react-query': specifier: ^5.20.1 - version: 5.20.1(react@18.3.1) + version: 5.69.0(react@19.2.0) '@types/react': - specifier: ^18.2.55 - version: 18.2.55 + specifier: ^19.1.13 + version: 19.2.2 '@types/react-dom': - specifier: ^18.2.19 - version: 18.2.19 + specifier: ^19.1.9 + version: 19.2.1(@types/react@19.2.2) '@vitejs/plugin-react': - specifier: ^4.2.1 - version: 4.2.1(vite@5.4.0(@types/node@20.11.17)) + specifier: ^5.0.3 + version: 5.0.4(vite@7.1.9(@types/node@24.0.8)) react: - specifier: ^18.3.1 - version: 18.3.1 + specifier: ^19.2.0 + version: 19.2.0 react-dom: - specifier: ^18.3.1 - version: 18.3.1(react@18.3.1) + specifier: ^19.2.0 + version: 19.2.0(react@19.2.0) typescript: - specifier: ^5.5.3 - version: 5.5.3 + specifier: ^5.9.2 + version: 5.9.3 vike: - specifier: ^0.4.211 - version: 0.4.211(react-streaming@0.3.43(react@18.3.1))(vite@5.4.0(@types/node@20.11.17)) + specifier: ^0.4.242 + version: 0.4.242(react-streaming@0.4.11(react@19.2.0))(vite@7.1.9) vike-react: - specifier: link:../../packages/vike-react + specifier: 0.6.12 version: link:../../packages/vike-react vike-react-query: - specifier: link:../../packages/vike-react-query + specifier: 0.1.10 version: link:../../packages/vike-react-query vite: - specifier: ^5.4.0 - version: 5.4.0(@types/node@20.11.17) + specifier: ^7.1.7 + version: 7.1.9(@types/node@24.0.8) + + examples/redux: + dependencies: + '@reduxjs/toolkit': + specifier: ^2.8.2 + version: 2.8.2(react-redux@9.2.0(@types/react@19.2.2)(react@19.2.0)(redux@5.0.1))(react@19.2.0) + '@types/react': + specifier: ^19.1.13 + version: 19.2.2 + '@types/react-dom': + specifier: ^19.1.9 + version: 19.2.1(@types/react@19.2.2) + '@vitejs/plugin-react': + specifier: ^5.0.3 + version: 5.0.4(vite@7.1.9(@types/node@24.0.8)) + react: + specifier: ^19.2.0 + version: 19.2.0 + react-dom: + specifier: ^19.2.0 + version: 19.2.0(react@19.2.0) + react-redux: + specifier: ^9.2.0 + version: 9.2.0(@types/react@19.2.2)(react@19.2.0)(redux@5.0.1) + typescript: + specifier: ^5.9.2 + version: 5.9.3 + vike: + specifier: ^0.4.242 + version: 0.4.242(react-streaming@0.4.11(react@19.2.0))(vite@7.1.9) + vike-react: + specifier: 0.6.12 + version: link:../../packages/vike-react + vike-react-redux: + specifier: 0.1.1 + version: link:../../packages/vike-react-redux + vite: + specifier: ^7.1.7 + version: 7.1.9(@types/node@24.0.8) + + examples/zustand: + dependencies: + '@types/react': + specifier: ^19.2.2 + version: 19.2.2 + '@types/react-dom': + specifier: ^19.2.1 + version: 19.2.1(@types/react@19.2.2) + '@vitejs/plugin-react': + specifier: ^5.0.4 + version: 5.0.4(vite@7.1.9(@types/node@24.0.8)) + immer: + specifier: ^10.1.3 + version: 10.1.3 + react: + specifier: ^19.2.0 + version: 19.2.0 + react-dom: + specifier: ^19.2.0 + version: 19.2.0(react@19.2.0) + typescript: + specifier: ^5.9.3 + version: 5.9.3 + vike: + specifier: ^0.4.242 + version: 0.4.242(react-streaming@0.4.11(react@19.2.0))(vite@7.1.9) + vike-react: + specifier: 0.6.12 + version: link:../../packages/vike-react + vike-react-zustand: + specifier: 0.1.5 + version: link:../../packages/vike-react-zustand + vite: + specifier: ^7.1.9 + version: 7.1.9(@types/node@24.0.8) + zustand: + specifier: ^5.0.8 + version: 5.0.8(@types/react@19.2.2)(immer@10.1.3)(react@19.2.0)(use-sync-external-store@1.4.0(react@19.2.0)) packages/vike-react: dependencies: react-streaming: - specifier: ^0.3.42 - version: 0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^0.4.11 + version: 0.4.11(react-dom@19.2.0(react@19.2.0))(react@19.2.0) devDependencies: '@biomejs/biome': - specifier: ^1.6.4 - version: 1.6.4 + specifier: ^1.9.4 + version: 1.9.4 '@brillout/release-me': - specifier: ^0.4.2 - version: 0.4.2 + specifier: ^0.4.8 + version: 0.4.8(conventional-commits-filter@5.0.0) '@types/node': - specifier: ^20.11.17 - version: 20.11.17 + specifier: ^24.0.8 + version: 24.0.8 '@types/react': - specifier: ^18.2.55 - version: 18.2.55 + specifier: ^19.1.13 + version: 19.2.2 '@types/react-dom': - specifier: ^18.2.19 - version: 18.2.19 + specifier: ^19.1.9 + version: 19.2.1(@types/react@19.2.2) react: - specifier: ^18.3.1 - version: 18.3.1 + specifier: ^19.2.0 + version: 19.2.0 react-dom: - specifier: ^18.3.1 - version: 18.3.1(react@18.3.1) + specifier: ^19.2.0 + version: 19.2.0(react@19.2.0) rimraf: specifier: ^5.0.5 - version: 5.0.5 + version: 5.0.10 typescript: - specifier: ^5.5.4 - version: 5.5.4 + specifier: ^5.9.2 + version: 5.9.3 vike: - specifier: ^0.4.211 - version: 0.4.211(react-streaming@0.3.43(react@18.3.1))(vite@5.4.0(@types/node@20.11.17)) + specifier: ^0.4.242 + version: 0.4.242(react-streaming@0.4.11(react@19.2.0))(vite@7.1.9) vite: - specifier: ^5.4.0 - version: 5.4.0(@types/node@20.11.17) + specifier: ^7.1.7 + version: 7.1.9(@types/node@24.0.8) packages/vike-react-antd: devDependencies: '@ant-design/cssinjs': specifier: ^1.22.1 - version: 1.22.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.23.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@brillout/release-me': - specifier: ^0.4.2 - version: 0.4.2 + specifier: ^0.4.8 + version: 0.4.8(conventional-commits-filter@5.0.0) '@types/react': - specifier: ^18.2.55 - version: 18.3.3 + specifier: ^19.1.13 + version: 19.2.2 antd: specifier: ^5.22.5 - version: 5.22.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 5.24.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) react: - specifier: ^18.3.1 - version: 18.3.1 + specifier: ^19.2.0 + version: 19.2.0 rimraf: specifier: ^5.0.5 - version: 5.0.5 + version: 5.0.10 typescript: - specifier: ^5.5.3 - version: 5.5.4 + specifier: ^5.9.2 + version: 5.9.3 vike: - specifier: ^0.4.211 - version: 0.4.211(react-streaming@0.3.43(react@18.3.1))(vite@5.4.0(@types/node@20.11.17)) + specifier: ^0.4.242 + version: 0.4.242(react-streaming@0.4.11(react@19.2.0))(vite@7.1.9) vike-react: - specifier: link:../vike-react + specifier: 0.6.12 version: link:../vike-react vite: - specifier: ^5.4.0 - version: 5.4.0(@types/node@20.11.17) + specifier: ^7.1.7 + version: 7.1.9(@types/node@24.0.8) packages/vike-react-apollo: dependencies: react-error-boundary: specifier: ^4.0.12 - version: 4.0.12(react@18.3.1) + version: 4.1.2(react@19.2.0) devDependencies: '@apollo/client': specifier: ^3.10.8 - version: 3.10.8(@types/react@18.2.55)(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 3.13.5(@types/react@19.2.2)(graphql@16.10.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@apollo/client-react-streaming': specifier: ^0.11.2 - version: 0.11.2(@apollo/client@3.10.8(@types/react@18.2.55)(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 0.11.11(@apollo/client@3.13.5(@types/react@19.2.2)(graphql@16.10.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(graphql@16.10.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@brillout/release-me': - specifier: ^0.4.2 - version: 0.4.2 + specifier: ^0.4.8 + version: 0.4.8(conventional-commits-filter@5.0.0) '@types/node': - specifier: ^20.11.17 - version: 20.11.17 + specifier: ^24.0.8 + version: 24.0.8 '@types/react': - specifier: ^18.2.55 - version: 18.2.55 + specifier: ^19.1.13 + version: 19.2.2 '@types/react-dom': - specifier: ^18.3.0 - version: 18.3.0 + specifier: ^19.1.9 + version: 19.2.1(@types/react@19.2.2) graphql: specifier: ^16.9.0 - version: 16.9.0 + version: 16.10.0 react: - specifier: ^18.3.1 - version: 18.3.1 + specifier: ^19.2.0 + version: 19.2.0 react-dom: - specifier: ^18.3.1 - version: 18.3.1(react@18.3.1) + specifier: ^19.2.0 + version: 19.2.0(react@19.2.0) react-streaming: - specifier: ^0.3.43 - version: 0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^0.4.11 + version: 0.4.11(react-dom@19.2.0(react@19.2.0))(react@19.2.0) rimraf: specifier: ^5.0.5 - version: 5.0.5 + version: 5.0.10 typescript: - specifier: ^5.3.3 - version: 5.5.3 + specifier: ^5.9.2 + version: 5.9.3 vike: - specifier: ^0.4.211 - version: 0.4.211(react-streaming@0.3.43(react@18.3.1))(vite@5.4.0(@types/node@20.11.17)) + specifier: ^0.4.242 + version: 0.4.242(react-streaming@0.4.11(react@19.2.0))(vite@7.1.9) vike-react: - specifier: link:../vike-react + specifier: 0.6.12 version: link:../vike-react vite: - specifier: ^5.4.0 - version: 5.4.0(@types/node@20.11.17) + specifier: ^7.1.7 + version: 7.1.9(@types/node@24.0.8) packages/vike-react-chakra: devDependencies: '@brillout/release-me': - specifier: ^0.4.2 - version: 0.4.2 + specifier: ^0.4.8 + version: 0.4.8(conventional-commits-filter@5.0.0) '@chakra-ui/react': specifier: ^3.0.2 - version: 3.0.2(@emotion/react@11.13.3(@types/react@18.3.3)(react@18.3.1))(@internationalized/date@3.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 3.13.0(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@emotion/react': specifier: ^11.13.3 - version: 11.13.3(@types/react@18.3.3)(react@18.3.1) + version: 11.14.0(@types/react@19.2.2)(react@19.2.0) '@types/react': - specifier: ^18.2.55 - version: 18.3.3 + specifier: ^19.1.13 + version: 19.2.2 react: - specifier: ^18.3.1 - version: 18.3.1 + specifier: ^19.2.0 + version: 19.2.0 rimraf: specifier: ^5.0.5 - version: 5.0.5 + version: 5.0.10 typescript: - specifier: ^5.5.3 - version: 5.5.4 + specifier: ^5.9.2 + version: 5.9.3 vike: - specifier: ^0.4.211 - version: 0.4.211(react-streaming@0.3.43(react@18.3.1))(vite@5.4.0(@types/node@20.11.17)) + specifier: ^0.4.242 + version: 0.4.242(react-streaming@0.4.11(react@19.2.0))(vite@7.1.9) vike-react: - specifier: link:../vike-react + specifier: 0.6.12 version: link:../vike-react vite: - specifier: ^5.4.0 - version: 5.4.0(@types/node@20.11.17) + specifier: ^7.1.7 + version: 7.1.9(@types/node@24.0.8) packages/vike-react-query: dependencies: devalue: specifier: ^4.3.2 - version: 4.3.2 + version: 4.3.3 react-error-boundary: specifier: ^4.0.12 - version: 4.0.12(react@18.3.1) + version: 4.1.2(react@19.2.0) devDependencies: '@brillout/release-me': - specifier: ^0.4.2 - version: 0.4.2 + specifier: ^0.4.8 + version: 0.4.8(conventional-commits-filter@5.0.0) '@tanstack/react-query': specifier: ^5.20.1 - version: 5.20.1(react@18.3.1) + version: 5.69.0(react@19.2.0) '@testing-library/react': specifier: ^14.2.1 - version: 14.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 14.3.1(@types/react@19.2.2)(react@19.2.0) '@types/node': - specifier: ^20.11.17 - version: 20.11.17 + specifier: ^24.0.8 + version: 24.0.8 '@types/react': - specifier: ^18.2.55 - version: 18.2.55 + specifier: ^19.1.13 + version: 19.2.2 jsdom: specifier: ^24.0.0 - version: 24.0.0 + version: 24.1.3 react: - specifier: ^18.3.1 - version: 18.3.1 + specifier: ^19.2.0 + version: 19.2.0 react-streaming: - specifier: ^0.3.43 - version: 0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^0.4.11 + version: 0.4.11(react-dom@19.2.0(react@19.2.0))(react@19.2.0) rimraf: specifier: ^5.0.5 - version: 5.0.5 + version: 5.0.10 typescript: - specifier: ^5.5.3 - version: 5.5.3 + specifier: ^5.9.2 + version: 5.9.3 vike: - specifier: ^0.4.211 - version: 0.4.211(react-streaming@0.3.43(react@18.3.1))(vite@5.4.0(@types/node@20.11.17)) + specifier: ^0.4.242 + version: 0.4.242(react-streaming@0.4.11(react@19.2.0))(vite@7.1.9) vike-react: - specifier: link:../vike-react + specifier: 0.6.12 version: link:../vike-react vite: - specifier: ^5.4.0 - version: 5.4.0(@types/node@20.11.17) + specifier: ^7.1.7 + version: 7.1.9(@types/node@24.0.8) vitest: - specifier: ^1.2.2 - version: 1.2.2(@types/node@20.11.17)(jsdom@24.0.0) + specifier: ^3.2.4 + version: 3.2.4(@types/node@24.0.8)(jsdom@24.1.3) + + packages/vike-react-redux: + dependencies: + react-redux: + specifier: '>=9' + version: 9.2.0(@types/react@19.2.2)(react@19.2.0)(redux@5.0.1) + devDependencies: + '@brillout/release-me': + specifier: ^0.4.8 + version: 0.4.8(conventional-commits-filter@5.0.0) + '@reduxjs/toolkit': + specifier: ^2.8.2 + version: 2.8.2(react-redux@9.2.0(@types/react@19.2.2)(react@19.2.0)(redux@5.0.1))(react@19.2.0) + '@types/react': + specifier: ^19.1.13 + version: 19.2.2 + react: + specifier: ^19.2.0 + version: 19.2.0 + rimraf: + specifier: ^5.0.5 + version: 5.0.10 + typescript: + specifier: ^5.9.2 + version: 5.9.3 + vike: + specifier: ^0.4.242 + version: 0.4.242(react-streaming@0.4.11(react@19.2.0))(vite@7.1.9) + vike-react: + specifier: 0.6.12 + version: link:../vike-react packages/vike-react-styled-components: devDependencies: '@brillout/release-me': - specifier: ^0.4.2 - version: 0.4.2 + specifier: ^0.4.8 + version: 0.4.8(conventional-commits-filter@5.0.0) '@types/react': - specifier: ^18.2.55 - version: 18.3.3 + specifier: ^19.1.13 + version: 19.2.2 react: - specifier: ^18.3.1 - version: 18.3.1 + specifier: ^19.2.0 + version: 19.2.0 rimraf: specifier: ^5.0.5 - version: 5.0.5 + version: 5.0.10 styled-components: specifier: ^6.1.13 - version: 6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 6.1.16(react-dom@19.2.0(react@19.2.0))(react@19.2.0) typescript: - specifier: ^5.5.3 - version: 5.5.4 + specifier: ^5.9.2 + version: 5.9.3 vike: - specifier: ^0.4.211 - version: 0.4.211(react-streaming@0.3.43(react@18.3.1))(vite@5.4.0(@types/node@20.11.17)) + specifier: ^0.4.242 + version: 0.4.242(react-streaming@0.4.11(react@19.2.0))(vite@7.1.9) vike-react: - specifier: link:../vike-react + specifier: 0.6.12 version: link:../vike-react vite: - specifier: ^5.4.0 - version: 5.4.0(@types/node@20.11.17) + specifier: ^7.1.7 + version: 7.1.9(@types/node@24.0.8) packages/vike-react-styled-jsx: devDependencies: '@brillout/release-me': - specifier: ^0.4.2 - version: 0.4.2 + specifier: ^0.4.8 + version: 0.4.8(conventional-commits-filter@5.0.0) '@types/react': - specifier: ^18.2.55 - version: 18.3.3 + specifier: ^19.1.13 + version: 19.2.2 react: - specifier: ^18.3.1 - version: 18.3.1 + specifier: ^19.2.0 + version: 19.2.0 rimraf: specifier: ^5.0.5 - version: 5.0.5 + version: 5.0.10 styled-jsx: specifier: ^5.1.6 - version: 5.1.6(react@18.3.1) + version: 5.1.6(react@19.2.0) typescript: - specifier: ^5.5.3 - version: 5.5.4 + specifier: ^5.9.2 + version: 5.9.3 vike: - specifier: ^0.4.211 - version: 0.4.211(react-streaming@0.3.43(react@18.3.1))(vite@5.4.0(@types/node@20.11.17)) + specifier: ^0.4.242 + version: 0.4.242(react-streaming@0.4.11(react@19.2.0))(vite@7.1.9) vike-react: - specifier: link:../vike-react + specifier: 0.6.12 version: link:../vike-react vite: - specifier: ^5.4.0 - version: 5.4.0(@types/node@20.11.17) + specifier: ^7.1.7 + version: 7.1.9(@types/node@24.0.8) -packages: + packages/vike-react-zustand: + dependencies: + '@babel/core': + specifier: ^7.24.0 + version: 7.28.4 + '@babel/types': + specifier: ^7.24.0 + version: 7.28.4 + '@brillout/json-serializer': + specifier: ^0.5.15 + version: 0.5.21 + devDependencies: + '@brillout/release-me': + specifier: ^0.4.8 + version: 0.4.8(conventional-commits-filter@5.0.0) + '@types/babel__core': + specifier: ^7.20.5 + version: 7.20.5 + '@types/node': + specifier: ^24.0.8 + version: 24.0.8 + '@types/react': + specifier: ^19.1.13 + version: 19.2.2 + '@types/react-dom': + specifier: ^19.1.9 + version: 19.2.1(@types/react@19.2.2) + react: + specifier: ^19.2.0 + version: 19.2.0 + react-dom: + specifier: ^19.2.0 + version: 19.2.0(react@19.2.0) + react-streaming: + specifier: ^0.4.11 + version: 0.4.11(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rimraf: + specifier: ^5.0.5 + version: 5.0.10 + typescript: + specifier: ^5.9.2 + version: 5.9.3 + vike: + specifier: ^0.4.242 + version: 0.4.242(react-streaming@0.4.11(react@19.2.0))(vite@7.1.9) + vike-react: + specifier: 0.6.12 + version: link:../vike-react + vite: + specifier: ^7.1.7 + version: 7.1.9(@types/node@24.0.8) + zustand: + specifier: ^5.0.3 + version: 5.0.8(@types/react@19.2.2)(immer@10.1.3)(react@19.2.0)(use-sync-external-store@1.4.0(react@19.2.0)) - '@ampproject/remapping@2.2.1': - resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} - engines: {node: '>=6.0.0'} +packages: - '@ant-design/colors@7.1.0': - resolution: {integrity: sha512-MMoDGWn1y9LdQJQSHiCC20x3uZ3CwQnv9QMz6pCmJOrqdgM9YxsoVVY0wtrdXbmfSgnV0KNk6zi09NAhMR2jvg==} + '@ant-design/colors@7.2.0': + resolution: {integrity: sha512-bjTObSnZ9C/O8MB/B4OUtd/q9COomuJAR2SYfhxLyHvCKn4EKwCN3e+fWGMo7H5InAyV0wL17jdE9ALrdOW/6A==} '@ant-design/cssinjs-utils@1.1.3': resolution: {integrity: sha512-nOoQMLW1l+xR1Co8NFVYiP8pZp3VjIIzqV6D6ShYF2ljtdwWJn5WSsH+7kvCktXL/yhEtWURKOfH5Xz/gzlwsg==} @@ -453,8 +604,8 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' - '@ant-design/cssinjs@1.22.1': - resolution: {integrity: sha512-SLuXM4wiEE1blOx94iXrkOgseMZHzdr4ngdFu3VVDq6AOWh7rlwqTkMAtJho3EsBF6x/eUGOtK53VZXGQG7+sQ==} + '@ant-design/cssinjs@1.23.0': + resolution: {integrity: sha512-7GAg9bD/iC9ikWatU9ym+P9ugJhi/WbsTWzcKN6T4gU0aehsprtke1UAaaSxxkjjmkJb3llet/rbUSLPgwlY4w==} peerDependencies: react: '>=16.0.0' react-dom: '>=16.0.0' @@ -466,8 +617,8 @@ packages: '@ant-design/icons-svg@4.4.2': resolution: {integrity: sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==} - '@ant-design/icons@5.5.2': - resolution: {integrity: sha512-xc53rjVBl9v2BqFxUjZGti/RfdDeA8/6KYglmInM2PNqSXc/WfuGDTifJI/ZsokJK0aeKvOIbXc9y2g8ILAhEA==} + '@ant-design/icons@5.6.1': + resolution: {integrity: sha512-0/xS39c91WjPAZOWsvi1//zjx6kAp4kxWwctR6kuU6p133w8RU0D2dSCvZC19uQyharg/sAvYxGYWl01BbZZfg==} engines: {node: '>=8'} peerDependencies: react: '>=16.0.0' @@ -478,19 +629,21 @@ packages: peerDependencies: react: '>=16.9.0' - '@apollo/client-react-streaming@0.11.2': - resolution: {integrity: sha512-rRA/dIA09/Y6+jtGGBnXHQfPOv6BYYVZwQP8OzQtWrWbSgDEI6uAhqULssU5f0ZhQJVzKDuslqGE9QAX0gdfRQ==} + '@apollo/client-react-streaming@0.11.11': + resolution: {integrity: sha512-h7u/D5GDq5mn2BXaWBiK9z+i90mzmBCnOeRt4Iarc1qwTt40Q4u2yEXPw8ma1BywZ2uLJyVuAb6EyA605eqeEQ==} peerDependencies: '@apollo/client': ^3.10.4 - react: ^18 + graphql: ^16 || >=17.0.0-alpha.2 + react: ^18 || >=19.0.0-rc + react-dom: ^18 || >=19.0.0-rc - '@apollo/client@3.10.8': - resolution: {integrity: sha512-UaaFEitRrPRWV836wY2L7bd3HRCfbMie1jlYMcmazFAK23MVhz/Uq7VG1nwbotPb5xzFsw5RF4Wnp2G3dWPM3g==} + '@apollo/client@3.13.5': + resolution: {integrity: sha512-ceHa1lApLAiGmUur4V+G/CrjwVwHYujfB7U5HM++poCgHpfGn6eet8YGM93fgeWjYX85SaqwdZbQk18IVwhRHg==} peerDependencies: graphql: ^15.0.0 || ^16.0.0 - graphql-ws: ^5.5.5 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + graphql-ws: ^5.5.5 || ^6.0.3 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc subscriptions-transport-ws: ^0.9.0 || ^0.11.0 peerDependenciesMeta: graphql-ws: @@ -502,361 +655,176 @@ packages: subscriptions-transport-ws: optional: true - '@ark-ui/anatomy@3.5.0': - resolution: {integrity: sha512-KoROLVVT23BvFHcye/GYhG8NJ2CH0C+CaoJhXrkEjvk8pbEx80Xk5NIUy5gL7xmX+LDD7kY5t3NotBqCu+2L2w==} - - '@ark-ui/react@4.1.2': - resolution: {integrity: sha512-7Y8NToONNbfDngQh15GNzn4i4RLJTRRmXm9tXB09a1nKbuYICbxFcX+5IgdhvRudoIFR9r2sCbeEy69I6T13gg==} + '@ark-ui/react@4.9.2': + resolution: {integrity: sha512-LJnz8nwXgGRszlkU2AiH3yLsAeXiXeQl4JBjMA7d8klZJBiBUp7URwLhBSWmoAIWRH7bW6fSPjhRAEkJLmD8gA==} peerDependencies: react: '>=18.0.0' react-dom: '>=18.0.0' - '@babel/code-frame@7.23.5': - resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} - engines: {node: '>=6.9.0'} - - '@babel/code-frame@7.24.7': - resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} - engines: {node: '>=6.9.0'} - - '@babel/compat-data@7.23.5': - resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} - engines: {node: '>=6.9.0'} + '@asamuzakjp/css-color@3.1.1': + resolution: {integrity: sha512-hpRD68SV2OMcZCsrbdkccTw5FXjNDLo5OuqSHyHZfwweGsDWZwDJ2+gONyNAbazZclobMirACLw0lk8WVxIqxA==} - '@babel/compat-data@7.25.2': - resolution: {integrity: sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==} + '@babel/code-frame@7.27.1': + resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} engines: {node: '>=6.9.0'} - '@babel/core@7.23.6': - resolution: {integrity: sha512-FxpRyGjrMJXh7X3wGLGhNDCRiwpWEF74sKjTLDJSG5Kyvow3QZaG0Adbqzi9ZrVjTWpsX+2cxWXD71NMg93kdw==} + '@babel/compat-data@7.28.0': + resolution: {integrity: sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==} engines: {node: '>=6.9.0'} - '@babel/core@7.25.2': - resolution: {integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==} + '@babel/core@7.28.4': + resolution: {integrity: sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==} engines: {node: '>=6.9.0'} - '@babel/generator@7.23.6': - resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} + '@babel/generator@7.28.3': + resolution: {integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==} engines: {node: '>=6.9.0'} - '@babel/generator@7.25.0': - resolution: {integrity: sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==} + '@babel/helper-compilation-targets@7.27.2': + resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.23.6': - resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} + '@babel/helper-globals@7.28.0': + resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.25.2': - resolution: {integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==} + '@babel/helper-module-imports@7.27.1': + resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} engines: {node: '>=6.9.0'} - '@babel/helper-environment-visitor@7.22.20': - resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-function-name@7.23.0': - resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-hoist-variables@7.22.5': - resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-imports@7.24.7': - resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-transforms@7.23.3': - resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} + '@babel/helper-module-transforms@7.28.3': + resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-module-transforms@7.25.2': - resolution: {integrity: sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-plugin-utils@7.22.5': - resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-plugin-utils@7.24.8': - resolution: {integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==} + '@babel/helper-plugin-utils@7.27.1': + resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} engines: {node: '>=6.9.0'} - '@babel/helper-simple-access@7.22.5': - resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} - '@babel/helper-simple-access@7.24.7': - resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} + '@babel/helper-validator-identifier@7.27.1': + resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} engines: {node: '>=6.9.0'} - '@babel/helper-split-export-declaration@7.22.6': - resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + '@babel/helper-validator-option@7.27.1': + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.22.5': - resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} + '@babel/helpers@7.28.4': + resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.23.4': - resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-string-parser@7.24.8': - resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.22.20': - resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.24.7': - resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-option@7.23.5': - resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-option@7.24.8': - resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} - engines: {node: '>=6.9.0'} - - '@babel/helpers@7.23.6': - resolution: {integrity: sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA==} - engines: {node: '>=6.9.0'} - - '@babel/helpers@7.25.0': - resolution: {integrity: sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==} - engines: {node: '>=6.9.0'} - - '@babel/highlight@7.23.4': - resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} - engines: {node: '>=6.9.0'} - - '@babel/highlight@7.24.7': - resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} - engines: {node: '>=6.9.0'} - - '@babel/parser@7.23.3': - resolution: {integrity: sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/parser@7.23.6': - resolution: {integrity: sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/parser@7.25.3': - resolution: {integrity: sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==} + '@babel/parser@7.28.4': + resolution: {integrity: sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/plugin-transform-react-jsx-self@7.23.3': - resolution: {integrity: sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==} + '@babel/plugin-transform-react-jsx-self@7.27.1': + resolution: {integrity: sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-self@7.24.7': - resolution: {integrity: sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==} + '@babel/plugin-transform-react-jsx-source@7.27.1': + resolution: {integrity: sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-source@7.23.3': - resolution: {integrity: sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-jsx-source@7.24.7': - resolution: {integrity: sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/runtime@7.23.5': - resolution: {integrity: sha512-NdUTHcPe4C99WxPub+K9l9tK5/lV4UXIoaHSYgzco9BCyjKAAwzdBI+wWtYqHt7LJdbo74ZjRPJgzVweq1sz0w==} - engines: {node: '>=6.9.0'} - - '@babel/runtime@7.26.0': - resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} - engines: {node: '>=6.9.0'} - - '@babel/template@7.22.15': - resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} + '@babel/runtime@7.26.10': + resolution: {integrity: sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==} engines: {node: '>=6.9.0'} - '@babel/template@7.25.0': - resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} + '@babel/template@7.27.2': + resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.23.6': - resolution: {integrity: sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ==} + '@babel/traverse@7.28.4': + resolution: {integrity: sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.25.3': - resolution: {integrity: sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==} + '@babel/types@7.28.4': + resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==} engines: {node: '>=6.9.0'} - '@babel/types@7.23.3': - resolution: {integrity: sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.23.6': - resolution: {integrity: sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.25.2': - resolution: {integrity: sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==} - engines: {node: '>=6.9.0'} - - '@biomejs/biome@1.6.4': - resolution: {integrity: sha512-3groVd2oWsLC0ZU+XXgHSNbq31lUcOCBkCcA7sAQGBopHcmL+jmmdoWlY3S61zIh+f2mqQTQte1g6PZKb3JJjA==} + '@biomejs/biome@1.9.4': + resolution: {integrity: sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog==} engines: {node: '>=14.21.3'} hasBin: true - '@biomejs/biome@1.8.3': - resolution: {integrity: sha512-/uUV3MV+vyAczO+vKrPdOW0Iaet7UnJMU4bNMinggGJTAnBPjCoLEYcyYtYHNnUNYlv4xZMH6hVIQCAozq8d5w==} - engines: {node: '>=14.21.3'} - hasBin: true - - '@biomejs/cli-darwin-arm64@1.6.4': - resolution: {integrity: sha512-2WZef8byI9NRzGajGj5RTrroW9BxtfbP9etigW1QGAtwu/6+cLkdPOWRAs7uFtaxBNiKFYA8j/BxV5zeAo5QOQ==} + '@biomejs/cli-darwin-arm64@1.9.4': + resolution: {integrity: sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [darwin] - '@biomejs/cli-darwin-arm64@1.8.3': - resolution: {integrity: sha512-9DYOjclFpKrH/m1Oz75SSExR8VKvNSSsLnVIqdnKexj6NwmiMlKk94Wa1kZEdv6MCOHGHgyyoV57Cw8WzL5n3A==} - engines: {node: '>=14.21.3'} - cpu: [arm64] - os: [darwin] - - '@biomejs/cli-darwin-x64@1.6.4': - resolution: {integrity: sha512-uo1zgM7jvzcoDpF6dbGizejDLCqNpUIRkCj/oEK0PB0NUw8re/cn1EnxuOLZqDpn+8G75COLQTOx8UQIBBN/Kg==} + '@biomejs/cli-darwin-x64@1.9.4': + resolution: {integrity: sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg==} engines: {node: '>=14.21.3'} cpu: [x64] os: [darwin] - '@biomejs/cli-darwin-x64@1.8.3': - resolution: {integrity: sha512-UeW44L/AtbmOF7KXLCoM+9PSgPo0IDcyEUfIoOXYeANaNXXf9mLUwV1GeF2OWjyic5zj6CnAJ9uzk2LT3v/wAw==} - engines: {node: '>=14.21.3'} - cpu: [x64] - os: [darwin] - - '@biomejs/cli-linux-arm64-musl@1.6.4': - resolution: {integrity: sha512-Hp8Jwt6rjj0wCcYAEN6/cfwrrPLLlGOXZ56Lei4Pt4jy39+UuPeAVFPeclrrCfxyL1wQ2xPrhd/saTHSL6DoJg==} - engines: {node: '>=14.21.3'} - cpu: [arm64] - os: [linux] - - '@biomejs/cli-linux-arm64-musl@1.8.3': - resolution: {integrity: sha512-9yjUfOFN7wrYsXt/T/gEWfvVxKlnh3yBpnScw98IF+oOeCYb5/b/+K7YNqKROV2i1DlMjg9g/EcN9wvj+NkMuQ==} - engines: {node: '>=14.21.3'} - cpu: [arm64] - os: [linux] - - '@biomejs/cli-linux-arm64@1.6.4': - resolution: {integrity: sha512-wAOieaMNIpLrxGc2/xNvM//CIZg7ueWy3V5A4T7gDZ3OL/Go27EKE59a+vMKsBCYmTt7jFl4yHz0TUkUbodA/w==} + '@biomejs/cli-linux-arm64-musl@1.9.4': + resolution: {integrity: sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] - '@biomejs/cli-linux-arm64@1.8.3': - resolution: {integrity: sha512-fed2ji8s+I/m8upWpTJGanqiJ0rnlHOK3DdxsyVLZQ8ClY6qLuPc9uehCREBifRJLl/iJyQpHIRufLDeotsPtw==} + '@biomejs/cli-linux-arm64@1.9.4': + resolution: {integrity: sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] - '@biomejs/cli-linux-x64-musl@1.6.4': - resolution: {integrity: sha512-wqi0hr8KAx5kBO0B+m5u8QqiYFFBJOSJVSuRqTeGWW+GYLVUtXNidykNqf1JsW6jJDpbkSp2xHKE/bTlVaG2Kg==} - engines: {node: '>=14.21.3'} - cpu: [x64] - os: [linux] - - '@biomejs/cli-linux-x64-musl@1.8.3': - resolution: {integrity: sha512-UHrGJX7PrKMKzPGoEsooKC9jXJMa28TUSMjcIlbDnIO4EAavCoVmNQaIuUSH0Ls2mpGMwUIf+aZJv657zfWWjA==} + '@biomejs/cli-linux-x64-musl@1.9.4': + resolution: {integrity: sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] - '@biomejs/cli-linux-x64@1.6.4': - resolution: {integrity: sha512-qTWhuIw+/ePvOkjE9Zxf5OqSCYxtAvcTJtVmZT8YQnmY2I62JKNV2m7tf6O5ViKZUOP0mOQ6NgqHKcHH1eT8jw==} + '@biomejs/cli-linux-x64@1.9.4': + resolution: {integrity: sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] - '@biomejs/cli-linux-x64@1.8.3': - resolution: {integrity: sha512-I8G2QmuE1teISyT8ie1HXsjFRz9L1m5n83U1O6m30Kw+kPMPSKjag6QGUn+sXT8V+XWIZxFFBoTDEDZW2KPDDw==} - engines: {node: '>=14.21.3'} - cpu: [x64] - os: [linux] - - '@biomejs/cli-win32-arm64@1.6.4': - resolution: {integrity: sha512-Wp3FiEeF6v6C5qMfLkHwf4YsoNHr/n0efvoC8jCKO/kX05OXaVExj+1uVQ1eGT7Pvx0XVm/TLprRO0vq/V6UzA==} + '@biomejs/cli-win32-arm64@1.9.4': + resolution: {integrity: sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [win32] - '@biomejs/cli-win32-arm64@1.8.3': - resolution: {integrity: sha512-J+Hu9WvrBevfy06eU1Na0lpc7uR9tibm9maHynLIoAjLZpQU3IW+OKHUtyL8p6/3pT2Ju5t5emReeIS2SAxhkQ==} - engines: {node: '>=14.21.3'} - cpu: [arm64] - os: [win32] - - '@biomejs/cli-win32-x64@1.6.4': - resolution: {integrity: sha512-mz183Di5hTSGP7KjNWEhivcP1wnHLGmOxEROvoFsIxMYtDhzJDad4k5gI/1JbmA0xe4n52vsgqo09tBhrMT/Zg==} + '@biomejs/cli-win32-x64@1.9.4': + resolution: {integrity: sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA==} engines: {node: '>=14.21.3'} cpu: [x64] os: [win32] - '@biomejs/cli-win32-x64@1.8.3': - resolution: {integrity: sha512-/PJ59vA1pnQeKahemaQf4Nyj7IKUvGQSc3Ze1uIGi+Wvr1xF7rGobSrAAG01T/gUDG21vkDsZYM03NAmPiVkqg==} - engines: {node: '>=14.21.3'} - cpu: [x64] - os: [win32] - - '@brillout/import@0.2.3': - resolution: {integrity: sha512-1T8WlD75eeFSMrptGy8jiLHmfHgMmSjWvLOIUvHmSVZt+6k0eQqYUoK4KbmE4T9pVLIfxvZSOm2D68VEqKRHRw==} - - '@brillout/json-serializer@0.5.13': - resolution: {integrity: sha512-9FpmgpuoSISw6fAPVB2qwW1dGAADN28YbWpfwOErfcZxpBH4lsnejuY89qcivInnWXYJvyyPwghCuOTbtuaYFg==} - - '@brillout/json-serializer@0.5.15': - resolution: {integrity: sha512-iLAyV1HNC3nG07ypBwCJohFrajY1HeZdfBBgGuRtMH/JPddgG9bPmoSI18A1RBx67vRmY6/8rgisjR5YfTvZHA==} + '@brillout/import@0.2.6': + resolution: {integrity: sha512-1GUTmADc8trUC1YSW2lp9r6PmwluMoEyHajnE1kxVdbKGD0wJOlq/DvTWMUqLtBDCnQR+n//qgMtz6HwA/lotA==} - '@brillout/part-regex@0.1.3': - resolution: {integrity: sha512-ZyqtOYHvQs3Ca0xt9fb2OlGzCrKwXtMcAATDObkFmI4jKuObEORjWrqAslWTelquXlyEYLz7h1nt6jp50LDyJA==} + '@brillout/json-serializer@0.5.21': + resolution: {integrity: sha512-pzzT4U4A9rk7eZpFjloRoMrGG2jnptwNGAhPIH7ZVjCMHd6TaJ29hrERPaY6Bp3Xdzu8JWlHI1o3x7PysxkaHQ==} - '@brillout/picocolors@1.0.10': - resolution: {integrity: sha512-dh+JJlsBf3QYX+91Ezma8RLKNOjGDoBBmORv/NzRpQuasdyzwQCMXGGjsDu12ZhGz92TqQbL9pv79rvbheI21A==} + '@brillout/part-regex@0.1.4': + resolution: {integrity: sha512-PQy5LfRmIueEfGwhvMedsnj6KulDfxlfvUaTsUchBqA7nTge4C7taG/V6np2uCHVxxE4+cSmwM4COn9aNcMn7g==} - '@brillout/picocolors@1.0.12': - resolution: {integrity: sha512-2gowgbpAqEQz4U1D/dh3tU2fKcRm+yt724d8YTbCsVHxnLTHWP2J5RMO1iTWcoViX7rTmLvPkHHlYtEiKP4gLA==} + '@brillout/picocolors@1.0.28': + resolution: {integrity: sha512-FBsirUdUlmjmeUlEuqfnUoKAZUt+d0VfMVBYUsFQrDFEV9Rm/QDyG69PSQtQbI6SZQNiZuAWuyhE5USflzx6iQ==} - '@brillout/picocolors@1.0.14': - resolution: {integrity: sha512-XhyZY3/FUh56mDuLIjv5kN9qy+oQj7A/d2uQ6cJJ4uVv55+velua3abcrM5WIvs2RHZGA3EE7S9FWo+TjF10ew==} - - '@brillout/picocolors@1.0.15': - resolution: {integrity: sha512-VrgvPtfnKP/i8kxCAyQVd0DWg6xU8OZJndbLf/lrywd96UdMhnGL/PK42HhHhhwkDSkaiQU+zc+OPWpvqOe4Cg==} - - '@brillout/release-me@0.4.2': - resolution: {integrity: sha512-bPXYKz7uLTs9OWoPzi4Jq9gV59RY8JwfaVw8E0o0Wf1lrO5kAxKGzYCi84Oy/NhZ31ytk7M955V3/YijQ2Ijwg==} + '@brillout/release-me@0.4.8': + resolution: {integrity: sha512-3WtVJNyEU8EINekZ51sYEB4pGHcZTM7Ljip/vkUDguwTwe2AY6DjSd4Vgqs84a7H7u5j0OrXDAiMAmCti4QSfQ==} hasBin: true '@brillout/require-shim@0.1.2': resolution: {integrity: sha512-3I4LRHnVZXoSAsEoni5mosq9l6eiJED58d9V954W4CIZ88AUfYBanWGBGbJG3NztaRTpFHEA6wB3Hn93BmmJdg==} - '@brillout/test-e2e@0.5.33': - resolution: {integrity: sha512-CAhZQSGYVeMelcxbjFHZwZDT1Jk2BnNVS8JYYKkizin3ZoxQDdMYWskjO7jU+XN9xrjkvEUMlnXGXSO4E8/WjA==} + '@brillout/test-e2e@0.6.16': + resolution: {integrity: sha512-GZgF4d2cjRwPu32IGJyYVQDdwiXQW7NG87PrwxSmxmoCFCVfhdiX62mf4vPritcxu+7A8KsE9tKxec2saV5HtQ==} hasBin: true '@brillout/test-types@0.1.15': @@ -865,28 +833,61 @@ packages: peerDependencies: typescript: '>=4.0.0' - '@brillout/vite-plugin-server-entry@0.5.1': - resolution: {integrity: sha512-ZoXt8D/Z1E6e8ylKm5z8VzuxtIqPfLoWvsKkeK08LIpfCnRMxRJQLBZ1i3s9gGxE5+PvzY2dU5pBr7dL9aM8bg==} - - '@brillout/vite-plugin-server-entry@0.5.6': - resolution: {integrity: sha512-lxgvTQhQBucZehhkvq9x2C7IUfrkAhp+YkW8S0MVR5EYkf6EWBg+bYZWB0//mDfbmUcc8aAEe3uRto7pOg35Ig==} + '@brillout/vite-plugin-server-entry@0.7.15': + resolution: {integrity: sha512-0ClgcmjkhJoHbI6KhbjZlXMeA9qn/EPLXEVssjCE6IVYnVb4bTYuq635c44n7jV3GkjcgFHCQWBmNw0OAGiUvQ==} - '@chakra-ui/react@3.0.2': - resolution: {integrity: sha512-xfW0tGCLJSvNkMFrz4zyjvImugwVb4gYvsGOT9hISMhDvh20ciS3WEI8S+jia4ytkl5yI4H0KPyuMjQt/gM69Q==} + '@chakra-ui/react@3.13.0': + resolution: {integrity: sha512-HqFXuVhiQCftQT5+/9F6w0aZufHgvaSr7jJoMP+BUxihF6uaSSW2YHy2eKK4a5SWNLMOnZHYQbUUrC3WSGcYxg==} peerDependencies: '@emotion/react': '>=11' react: '>=18' react-dom: '>=18' - '@ctrl/tinycolor@3.6.1': - resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==} - engines: {node: '>=10'} + '@conventional-changelog/git-client@2.5.1': + resolution: {integrity: sha512-lAw7iA5oTPWOLjiweb7DlGEMDEvzqzLLa6aWOly2FSZ64IwLE8T458rC+o+WvI31Doz6joM7X2DoNog7mX8r4A==} + engines: {node: '>=18'} + peerDependencies: + conventional-commits-filter: ^5.0.0 + conventional-commits-parser: ^6.1.0 + peerDependenciesMeta: + conventional-commits-filter: + optional: true + conventional-commits-parser: + optional: true + + '@csstools/color-helpers@5.0.2': + resolution: {integrity: sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==} + engines: {node: '>=18'} + + '@csstools/css-calc@2.1.2': + resolution: {integrity: sha512-TklMyb3uBB28b5uQdxjReG4L80NxAqgrECqLZFQbyLekwwlcDDS8r3f07DKqeo8C4926Br0gf/ZDe17Zv4wIuw==} + engines: {node: '>=18'} + peerDependencies: + '@csstools/css-parser-algorithms': ^3.0.4 + '@csstools/css-tokenizer': ^3.0.3 - '@emotion/babel-plugin@11.12.0': - resolution: {integrity: sha512-y2WQb+oP8Jqvvclh8Q55gLUyb7UFvgv7eJfsj7td5TToBrIUtPay2kMrZi4xjq9qw2vD0ZR5fSho0yqoFgX7Rw==} + '@csstools/css-color-parser@3.0.8': + resolution: {integrity: sha512-pdwotQjCCnRPuNi06jFuP68cykU1f3ZWExLe/8MQ1LOs8Xq+fTkYgd+2V8mWUWMrOn9iS2HftPVaMZDaXzGbhQ==} + engines: {node: '>=18'} + peerDependencies: + '@csstools/css-parser-algorithms': ^3.0.4 + '@csstools/css-tokenizer': ^3.0.3 + + '@csstools/css-parser-algorithms@3.0.4': + resolution: {integrity: sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==} + engines: {node: '>=18'} + peerDependencies: + '@csstools/css-tokenizer': ^3.0.3 - '@emotion/cache@11.13.1': - resolution: {integrity: sha512-iqouYkuEblRcXmylXIwwOodiEK5Ifl7JcX7o6V4jI3iW4mLXX3dmt5xwBtIkJiQEXFAI+pC8X0i67yiPkH9Ucw==} + '@csstools/css-tokenizer@3.0.3': + resolution: {integrity: sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==} + engines: {node: '>=18'} + + '@emotion/babel-plugin@11.13.5': + resolution: {integrity: sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==} + + '@emotion/cache@11.14.0': + resolution: {integrity: sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==} '@emotion/hash@0.8.0': resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==} @@ -906,8 +907,8 @@ packages: '@emotion/memoize@0.9.0': resolution: {integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==} - '@emotion/react@11.13.3': - resolution: {integrity: sha512-lIsdU6JNrmYfJ5EbUCf4xW1ovy5wKQ2CkPRM4xogziOxH1nXxBSjpC9YqbFAP7circxMfYp+6x676BqWcEiixg==} + '@emotion/react@11.14.0': + resolution: {integrity: sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==} peerDependencies: '@types/react': '*' react: '>=16.8.0' @@ -915,8 +916,8 @@ packages: '@types/react': optional: true - '@emotion/serialize@1.3.2': - resolution: {integrity: sha512-grVnMvVPK9yUVE6rkKfAJlYZgo0cu3l9iMC77V7DW6E1DUIrU68pSEXRmFZFOFB1QFo57TncmOcvcbMDWsL4yA==} + '@emotion/serialize@1.3.3': + resolution: {integrity: sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==} '@emotion/sheet@1.4.0': resolution: {integrity: sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==} @@ -930,353 +931,350 @@ packages: '@emotion/unitless@0.8.1': resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==} - '@emotion/use-insertion-effect-with-fallbacks@1.1.0': - resolution: {integrity: sha512-+wBOcIV5snwGgI2ya3u99D7/FJquOIniQT1IKyDsBmEgwvpxMNeS65Oib7OnE2d2aY+3BU4OiH+0Wchf8yk3Hw==} + '@emotion/use-insertion-effect-with-fallbacks@1.2.0': + resolution: {integrity: sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==} peerDependencies: react: '>=16.8.0' - '@emotion/utils@1.4.1': - resolution: {integrity: sha512-BymCXzCG3r72VKJxaYVwOXATqXIZ85cuvg0YOUDxMGNrKc1DJRZk8MgV5wyXRyEayIMd4FuXJIUgTBXvDNW5cA==} + '@emotion/utils@1.4.2': + resolution: {integrity: sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==} '@emotion/weak-memoize@0.4.0': resolution: {integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==} - '@esbuild/aix-ppc64@0.21.5': - resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} - engines: {node: '>=12'} + '@esbuild/aix-ppc64@0.23.1': + resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} + engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.16.17': - resolution: {integrity: sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==} - engines: {node: '>=12'} + '@esbuild/aix-ppc64@0.25.1': + resolution: {integrity: sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.23.1': + resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} + engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.21.5': - resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} - engines: {node: '>=12'} + '@esbuild/android-arm64@0.25.1': + resolution: {integrity: sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==} + engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.16.17': - resolution: {integrity: sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==} - engines: {node: '>=12'} + '@esbuild/android-arm@0.23.1': + resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} + engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-arm@0.21.5': - resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} - engines: {node: '>=12'} + '@esbuild/android-arm@0.25.1': + resolution: {integrity: sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==} + engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.16.17': - resolution: {integrity: sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==} - engines: {node: '>=12'} + '@esbuild/android-x64@0.23.1': + resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} + engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/android-x64@0.21.5': - resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} - engines: {node: '>=12'} + '@esbuild/android-x64@0.25.1': + resolution: {integrity: sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==} + engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.16.17': - resolution: {integrity: sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==} - engines: {node: '>=12'} + '@esbuild/darwin-arm64@0.23.1': + resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} + engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.21.5': - resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} - engines: {node: '>=12'} + '@esbuild/darwin-arm64@0.25.1': + resolution: {integrity: sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==} + engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.16.17': - resolution: {integrity: sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==} - engines: {node: '>=12'} + '@esbuild/darwin-x64@0.23.1': + resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} + engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.21.5': - resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} - engines: {node: '>=12'} + '@esbuild/darwin-x64@0.25.1': + resolution: {integrity: sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==} + engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.16.17': - resolution: {integrity: sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==} - engines: {node: '>=12'} + '@esbuild/freebsd-arm64@0.23.1': + resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} + engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.21.5': - resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} - engines: {node: '>=12'} + '@esbuild/freebsd-arm64@0.25.1': + resolution: {integrity: sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==} + engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.16.17': - resolution: {integrity: sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==} - engines: {node: '>=12'} + '@esbuild/freebsd-x64@0.23.1': + resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} + engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.21.5': - resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} - engines: {node: '>=12'} + '@esbuild/freebsd-x64@0.25.1': + resolution: {integrity: sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==} + engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.16.17': - resolution: {integrity: sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==} - engines: {node: '>=12'} + '@esbuild/linux-arm64@0.23.1': + resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} + engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.21.5': - resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} - engines: {node: '>=12'} + '@esbuild/linux-arm64@0.25.1': + resolution: {integrity: sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==} + engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.16.17': - resolution: {integrity: sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==} - engines: {node: '>=12'} + '@esbuild/linux-arm@0.23.1': + resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} + engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.21.5': - resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} - engines: {node: '>=12'} + '@esbuild/linux-arm@0.25.1': + resolution: {integrity: sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==} + engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.16.17': - resolution: {integrity: sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==} - engines: {node: '>=12'} + '@esbuild/linux-ia32@0.23.1': + resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} + engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.21.5': - resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} - engines: {node: '>=12'} + '@esbuild/linux-ia32@0.25.1': + resolution: {integrity: sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==} + engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.16.17': - resolution: {integrity: sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==} - engines: {node: '>=12'} + '@esbuild/linux-loong64@0.23.1': + resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} + engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.21.5': - resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} - engines: {node: '>=12'} + '@esbuild/linux-loong64@0.25.1': + resolution: {integrity: sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==} + engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.16.17': - resolution: {integrity: sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==} - engines: {node: '>=12'} + '@esbuild/linux-mips64el@0.23.1': + resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} + engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.21.5': - resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} - engines: {node: '>=12'} + '@esbuild/linux-mips64el@0.25.1': + resolution: {integrity: sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==} + engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.16.17': - resolution: {integrity: sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==} - engines: {node: '>=12'} + '@esbuild/linux-ppc64@0.23.1': + resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} + engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.21.5': - resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} - engines: {node: '>=12'} + '@esbuild/linux-ppc64@0.25.1': + resolution: {integrity: sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==} + engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.16.17': - resolution: {integrity: sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==} - engines: {node: '>=12'} + '@esbuild/linux-riscv64@0.23.1': + resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} + engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.21.5': - resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} - engines: {node: '>=12'} + '@esbuild/linux-riscv64@0.25.1': + resolution: {integrity: sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==} + engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.16.17': - resolution: {integrity: sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==} - engines: {node: '>=12'} + '@esbuild/linux-s390x@0.23.1': + resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} + engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.21.5': - resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} - engines: {node: '>=12'} + '@esbuild/linux-s390x@0.25.1': + resolution: {integrity: sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==} + engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.16.17': - resolution: {integrity: sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==} - engines: {node: '>=12'} + '@esbuild/linux-x64@0.23.1': + resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} + engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.21.5': - resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} - engines: {node: '>=12'} + '@esbuild/linux-x64@0.25.1': + resolution: {integrity: sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==} + engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-x64@0.16.17': - resolution: {integrity: sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==} - engines: {node: '>=12'} + '@esbuild/netbsd-arm64@0.25.1': + resolution: {integrity: sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.23.1': + resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} + engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.21.5': - resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} - engines: {node: '>=12'} + '@esbuild/netbsd-x64@0.25.1': + resolution: {integrity: sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==} + engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-x64@0.16.17': - resolution: {integrity: sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==} - engines: {node: '>=12'} + '@esbuild/openbsd-arm64@0.23.1': + resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-arm64@0.25.1': + resolution: {integrity: sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.23.1': + resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} + engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.21.5': - resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} - engines: {node: '>=12'} + '@esbuild/openbsd-x64@0.25.1': + resolution: {integrity: sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==} + engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.16.17': - resolution: {integrity: sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==} - engines: {node: '>=12'} + '@esbuild/sunos-x64@0.23.1': + resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} + engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.21.5': - resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} - engines: {node: '>=12'} + '@esbuild/sunos-x64@0.25.1': + resolution: {integrity: sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==} + engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.16.17': - resolution: {integrity: sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==} - engines: {node: '>=12'} + '@esbuild/win32-arm64@0.23.1': + resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} + engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.21.5': - resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} - engines: {node: '>=12'} + '@esbuild/win32-arm64@0.25.1': + resolution: {integrity: sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==} + engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.16.17': - resolution: {integrity: sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==} - engines: {node: '>=12'} + '@esbuild/win32-ia32@0.23.1': + resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} + engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.21.5': - resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} - engines: {node: '>=12'} + '@esbuild/win32-ia32@0.25.1': + resolution: {integrity: sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==} + engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.16.17': - resolution: {integrity: sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==} - engines: {node: '>=12'} + '@esbuild/win32-x64@0.23.1': + resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} + engines: {node: '>=18'} cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.21.5': - resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} - engines: {node: '>=12'} + '@esbuild/win32-x64@0.25.1': + resolution: {integrity: sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==} + engines: {node: '>=18'} cpu: [x64] os: [win32] - '@floating-ui/core@1.6.8': - resolution: {integrity: sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==} + '@floating-ui/core@1.6.9': + resolution: {integrity: sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==} - '@floating-ui/dom@1.6.11': - resolution: {integrity: sha512-qkMCxSR24v2vGkhYDo/UzxfJN3D4syqSjyuTFz6C7XcpU1pASPRieNI0Kj5VP3/503mOfYiGY891ugBX1GlABQ==} + '@floating-ui/dom@1.6.13': + resolution: {integrity: sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==} - '@floating-ui/dom@1.6.8': - resolution: {integrity: sha512-kx62rP19VZ767Q653wsP1XZCGIirkE09E0QUGNYTM/ttbbQHqcGPdSfWFxUyyNLc/W6aoJRBajOSXhP6GXjC0Q==} - - '@floating-ui/utils@0.2.8': - resolution: {integrity: sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==} + '@floating-ui/utils@0.2.9': + resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} '@graphql-typed-document-node/core@3.2.0': resolution: {integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@hutson/parse-repository-url@5.0.0': - resolution: {integrity: sha512-e5+YUKENATs1JgYHMzTr2MW/NDcXGfYFAuOQU8gJgF/kEh4EqKgfGrfLI67bMD4tbhZVlkigz/9YYwWcbOFthg==} - engines: {node: '>=10.13.0'} - - '@internationalized/date@3.5.5': - resolution: {integrity: sha512-H+CfYvOZ0LTJeeLOqm19E3uj/4YjrmOFtBufDHPfvtI80hFAMqtrp7oCACpe4Cil5l8S0Qu/9dYfZc/5lY8WQQ==} - - '@internationalized/date@3.5.6': - resolution: {integrity: sha512-jLxQjefH9VI5P9UQuqB6qNKnvFt1Ky1TPIzHGsIlCi7sZZoMR8SdYbBGRvM0y+Jtb+ez4ieBzmiAUcpmPYpyOw==} + '@internationalized/date@3.7.0': + resolution: {integrity: sha512-VJ5WS3fcVx0bejE/YHfbDKR/yawZgKqn/if+oEeLqNwBtPzVB06olkfcnojTmEMX+gTpH+FlQ69SHNitJ8/erQ==} - '@internationalized/number@3.5.3': - resolution: {integrity: sha512-rd1wA3ebzlp0Mehj5YTuTI50AQEx80gWFyHcQu+u91/5NgdwBecO8BH6ipPfE+lmQ9d63vpB3H9SHoIUiupllw==} + '@internationalized/number@3.6.0': + resolution: {integrity: sha512-PtrRcJVy7nw++wn4W2OuePQQfTqDzfusSuY1QTtui4wa7r+rGVtR75pO8CyKvHvzyQYi3Q1uO5sY0AsB4e65Bw==} '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} - '@jest/schemas@29.6.3': - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jridgewell/gen-mapping@0.3.3': - resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} - engines: {node: '>=6.0.0'} - - '@jridgewell/gen-mapping@0.3.5': - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} - engines: {node: '>=6.0.0'} + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} - '@jridgewell/resolve-uri@3.1.1': - resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} - engines: {node: '>=6.0.0'} - - '@jridgewell/set-array@1.1.2': - resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} - engines: {node: '>=6.0.0'} + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} - '@jridgewell/set-array@1.2.1': - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} - '@jridgewell/sourcemap-codec@1.4.15': - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - '@jridgewell/trace-mapping@0.3.20': - resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} - - '@jridgewell/trace-mapping@0.3.25': - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@jridgewell/trace-mapping@0.3.30': + resolution: {integrity: sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==} '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -1297,6 +1295,9 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} + '@polka/url@1.0.0-next.28': + resolution: {integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==} + '@rc-component/async-validator@5.0.4': resolution: {integrity: sha512-qgGdcVIF604M9EqjNF0hbUTz42bz/RDtxWdWuU5EQe3hi7M8ob54B6B35rOsvX5eSvIHIzT9iH1R3n+hk3CGfg==} engines: {node: '>=14.x'} @@ -1352,106 +1353,151 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' - '@rollup/rollup-android-arm-eabi@4.20.0': - resolution: {integrity: sha512-TSpWzflCc4VGAUJZlPpgAJE1+V60MePDQnBd7PPkpuEmOy8i87aL6tinFGKBFKuEDikYpig72QzdT3QPYIi+oA==} + '@reduxjs/toolkit@2.8.2': + resolution: {integrity: sha512-MYlOhQ0sLdw4ud48FoC5w0dH9VfWQjtCjreKwYTT3l+r427qYC5Y8PihNutepr8XrNaBUDQo9khWUwQxZaqt5A==} + peerDependencies: + react: ^16.9.0 || ^17.0.0 || ^18 || ^19 + react-redux: ^7.2.1 || ^8.1.3 || ^9.0.0 + peerDependenciesMeta: + react: + optional: true + react-redux: + optional: true + + '@rolldown/pluginutils@1.0.0-beta.38': + resolution: {integrity: sha512-N/ICGKleNhA5nc9XXQG/kkKHJ7S55u0x0XUJbbkmdCnFuoRkM1Il12q9q0eX19+M7KKUEPw/daUPIRnxhcxAIw==} + + '@rollup/rollup-android-arm-eabi@4.46.2': + resolution: {integrity: sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.20.0': - resolution: {integrity: sha512-u00Ro/nok7oGzVuh/FMYfNoGqxU5CPWz1mxV85S2w9LxHR8OoMQBuSk+3BKVIDYgkpeOET5yXkx90OYFc+ytpQ==} + '@rollup/rollup-android-arm64@4.46.2': + resolution: {integrity: sha512-nTeCWY83kN64oQ5MGz3CgtPx8NSOhC5lWtsjTs+8JAJNLcP3QbLCtDDgUKQc/Ro/frpMq4SHUaHN6AMltcEoLQ==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.20.0': - resolution: {integrity: sha512-uFVfvzvsdGtlSLuL0ZlvPJvl6ZmrH4CBwLGEFPe7hUmf7htGAN+aXo43R/V6LATyxlKVC/m6UsLb7jbG+LG39Q==} + '@rollup/rollup-darwin-arm64@4.46.2': + resolution: {integrity: sha512-HV7bW2Fb/F5KPdM/9bApunQh68YVDU8sO8BvcW9OngQVN3HHHkw99wFupuUJfGR9pYLLAjcAOA6iO+evsbBaPQ==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.20.0': - resolution: {integrity: sha512-xbrMDdlev53vNXexEa6l0LffojxhqDTBeL+VUxuuIXys4x6xyvbKq5XqTXBCEUA8ty8iEJblHvFaWRJTk/icAQ==} + '@rollup/rollup-darwin-x64@4.46.2': + resolution: {integrity: sha512-SSj8TlYV5nJixSsm/y3QXfhspSiLYP11zpfwp6G/YDXctf3Xkdnk4woJIF5VQe0of2OjzTt8EsxnJDCdHd2xMA==} cpu: [x64] os: [darwin] - '@rollup/rollup-linux-arm-gnueabihf@4.20.0': - resolution: {integrity: sha512-jMYvxZwGmoHFBTbr12Xc6wOdc2xA5tF5F2q6t7Rcfab68TT0n+r7dgawD4qhPEvasDsVpQi+MgDzj2faOLsZjA==} + '@rollup/rollup-freebsd-arm64@4.46.2': + resolution: {integrity: sha512-ZyrsG4TIT9xnOlLsSSi9w/X29tCbK1yegE49RYm3tu3wF1L/B6LVMqnEWyDB26d9Ecx9zrmXCiPmIabVuLmNSg==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.46.2': + resolution: {integrity: sha512-pCgHFoOECwVCJ5GFq8+gR8SBKnMO+xe5UEqbemxBpCKYQddRQMgomv1104RnLSg7nNvgKy05sLsY51+OVRyiVw==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.46.2': + resolution: {integrity: sha512-EtP8aquZ0xQg0ETFcxUbU71MZlHaw9MChwrQzatiE8U/bvi5uv/oChExXC4mWhjiqK7azGJBqU0tt5H123SzVA==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.20.0': - resolution: {integrity: sha512-1asSTl4HKuIHIB1GcdFHNNZhxAYEdqML/MW4QmPS4G0ivbEcBr1JKlFLKsIRqjSwOBkdItn3/ZDlyvZ/N6KPlw==} + '@rollup/rollup-linux-arm-musleabihf@4.46.2': + resolution: {integrity: sha512-qO7F7U3u1nfxYRPM8HqFtLd+raev2K137dsV08q/LRKRLEc7RsiDWihUnrINdsWQxPR9jqZ8DIIZ1zJJAm5PjQ==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.20.0': - resolution: {integrity: sha512-COBb8Bkx56KldOYJfMf6wKeYJrtJ9vEgBRAOkfw6Ens0tnmzPqvlpjZiLgkhg6cA3DGzCmLmmd319pmHvKWWlQ==} + '@rollup/rollup-linux-arm64-gnu@4.46.2': + resolution: {integrity: sha512-3dRaqLfcOXYsfvw5xMrxAk9Lb1f395gkoBYzSFcc/scgRFptRXL9DOaDpMiehf9CO8ZDRJW2z45b6fpU5nwjng==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.20.0': - resolution: {integrity: sha512-+it+mBSyMslVQa8wSPvBx53fYuZK/oLTu5RJoXogjk6x7Q7sz1GNRsXWjn6SwyJm8E/oMjNVwPhmNdIjwP135Q==} + '@rollup/rollup-linux-arm64-musl@4.46.2': + resolution: {integrity: sha512-fhHFTutA7SM+IrR6lIfiHskxmpmPTJUXpWIsBXpeEwNgZzZZSg/q4i6FU4J8qOGyJ0TR+wXBwx/L7Ho9z0+uDg==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.20.0': - resolution: {integrity: sha512-yAMvqhPfGKsAxHN8I4+jE0CpLWD8cv4z7CK7BMmhjDuz606Q2tFKkWRY8bHR9JQXYcoLfopo5TTqzxgPUjUMfw==} + '@rollup/rollup-linux-loongarch64-gnu@4.46.2': + resolution: {integrity: sha512-i7wfGFXu8x4+FRqPymzjD+Hyav8l95UIZ773j7J7zRYc3Xsxy2wIn4x+llpunexXe6laaO72iEjeeGyUFmjKeA==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-ppc64-gnu@4.46.2': + resolution: {integrity: sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.20.0': - resolution: {integrity: sha512-qmuxFpfmi/2SUkAw95TtNq/w/I7Gpjurx609OOOV7U4vhvUhBcftcmXwl3rqAek+ADBwSjIC4IVNLiszoj3dPA==} + '@rollup/rollup-linux-riscv64-gnu@4.46.2': + resolution: {integrity: sha512-32k4ENb5ygtkMwPMucAb8MtV8olkPT03oiTxJbgkJa7lJ7dZMr0GCFJlyvy+K8iq7F/iuOr41ZdUHaOiqyR3iQ==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-riscv64-musl@4.46.2': + resolution: {integrity: sha512-t5B2loThlFEauloaQkZg9gxV05BYeITLvLkWOkRXogP4qHXLkWSbSHKM9S6H1schf/0YGP/qNKtiISlxvfmmZw==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.20.0': - resolution: {integrity: sha512-I0BtGXddHSHjV1mqTNkgUZLnS3WtsqebAXv11D5BZE/gfw5KoyXSAXVqyJximQXNvNzUo4GKlCK/dIwXlz+jlg==} + '@rollup/rollup-linux-s390x-gnu@4.46.2': + resolution: {integrity: sha512-YKjekwTEKgbB7n17gmODSmJVUIvj8CX7q5442/CK80L8nqOUbMtf8b01QkG3jOqyr1rotrAnW6B/qiHwfcuWQA==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.20.0': - resolution: {integrity: sha512-y+eoL2I3iphUg9tN9GB6ku1FA8kOfmF4oUEWhztDJ4KXJy1agk/9+pejOuZkNFhRwHAOxMsBPLbXPd6mJiCwew==} + '@rollup/rollup-linux-x64-gnu@4.46.2': + resolution: {integrity: sha512-Jj5a9RUoe5ra+MEyERkDKLwTXVu6s3aACP51nkfnK9wJTraCC8IMe3snOfALkrjTYd2G1ViE1hICj0fZ7ALBPA==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.20.0': - resolution: {integrity: sha512-hM3nhW40kBNYUkZb/r9k2FKK+/MnKglX7UYd4ZUy5DJs8/sMsIbqWK2piZtVGE3kcXVNj3B2IrUYROJMMCikNg==} + '@rollup/rollup-linux-x64-musl@4.46.2': + resolution: {integrity: sha512-7kX69DIrBeD7yNp4A5b81izs8BqoZkCIaxQaOpumcJ1S/kmqNFjPhDu1LHeVXv0SexfHQv5cqHsxLOjETuqDuA==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.20.0': - resolution: {integrity: sha512-psegMvP+Ik/Bg7QRJbv8w8PAytPA7Uo8fpFjXyCRHWm6Nt42L+JtoqH8eDQ5hRP7/XW2UiIriy1Z46jf0Oa1kA==} + '@rollup/rollup-win32-arm64-msvc@4.46.2': + resolution: {integrity: sha512-wiJWMIpeaak/jsbaq2HMh/rzZxHVW1rU6coyeNNpMwk5isiPjSTx0a4YLSlYDwBH/WBvLz+EtsNqQScZTLJy3g==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.20.0': - resolution: {integrity: sha512-GabekH3w4lgAJpVxkk7hUzUf2hICSQO0a/BLFA11/RMxQT92MabKAqyubzDZmMOC/hcJNlc+rrypzNzYl4Dx7A==} + '@rollup/rollup-win32-ia32-msvc@4.46.2': + resolution: {integrity: sha512-gBgaUDESVzMgWZhcyjfs9QFK16D8K6QZpwAaVNJxYDLHWayOta4ZMjGm/vsAEy3hvlS2GosVFlBlP9/Wb85DqQ==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.20.0': - resolution: {integrity: sha512-aJ1EJSuTdGnM6qbVC4B5DSmozPTqIag9fSzXRNNo+humQLG89XpPgdt16Ia56ORD7s+H8Pmyx44uczDQ0yDzpg==} + '@rollup/rollup-win32-x64-msvc@4.46.2': + resolution: {integrity: sha512-CvUo2ixeIQGtF6WvuB87XWqPQkoFAFqW+HUo/WzHwuHDvIwZCtjdWXoYCcr06iKGydiqTclC4jU/TNObC/xKZg==} cpu: [x64] os: [win32] - '@sinclair/typebox@0.27.8': - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + '@simple-libs/child-process-utils@1.0.1': + resolution: {integrity: sha512-3nWd8irxvDI6v856wpPCHZ+08iQR0oHTZfzAZmnbsLzf+Sf1odraP6uKOHDZToXq3RPRV/LbqGVlSCogm9cJjg==} + engines: {node: '>=18'} + + '@simple-libs/stream-utils@1.1.0': + resolution: {integrity: sha512-6rsHTjodIn/t90lv5snQjRPVtOosM7Vp0AKdrObymq45ojlgVwnpAqdc+0OBBrpEiy31zZ6/TKeIVqV1HwvnuQ==} + engines: {node: '>=18'} + + '@standard-schema/spec@1.0.0': + resolution: {integrity: sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==} - '@swc/helpers@0.5.13': - resolution: {integrity: sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==} + '@standard-schema/utils@0.3.0': + resolution: {integrity: sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==} - '@tanstack/query-core@5.20.1': - resolution: {integrity: sha512-OONHHYG5vzjob4An+EfzbW7TRyb+sCA0AEgHzUIMlV9NYlF7wIwbla3PUfB3ocnaK1gZyROf0Lux/CBSu0exBQ==} + '@swc/helpers@0.5.15': + resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} - '@tanstack/react-query@5.20.1': - resolution: {integrity: sha512-KRkOtJ47tv9B3EXfjHkbPkiFzOzYCOid8BrYBozk0rm9JpDB2xSf71q8w1PRudlQW6QUQIEDI9E6NIMh6AlLUw==} + '@tanstack/query-core@5.69.0': + resolution: {integrity: sha512-Kn410jq6vs1P8Nm+ZsRj9H+U3C0kjuEkYLxbiCyn3MDEiYor1j2DGVULqAz62SLZtUZ/e9Xt6xMXiJ3NJ65WyQ==} + + '@tanstack/react-query@5.69.0': + resolution: {integrity: sha512-Ift3IUNQqTcaFa1AiIQ7WCb/PPy8aexZdq9pZWLXhfLcLxH0+PZqJ2xFImxCpdDZrFRZhLJrh76geevS5xjRhA==} peerDependencies: - react: ^18.0.0 + react: ^18 || ^19 - '@testing-library/dom@9.3.3': - resolution: {integrity: sha512-fB0R+fa3AUqbLHWyxXa2kGVtf1Fe1ZZFr0Zp6AIbIAzXb2mKbEXl+PCQNUOaq5lbTab5tfctfXRNsWXxa2f7Aw==} + '@testing-library/dom@9.3.4': + resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==} engines: {node: '>=14'} - '@testing-library/react@14.2.1': - resolution: {integrity: sha512-sGdjws32ai5TLerhvzThYFbpnF9XtL65Cjf+gB0Dhr29BGqK+mAeN7SURSdu+eqgET4ANcWoC7FQpkaiGvBr+A==} + '@testing-library/react@14.3.1': + resolution: {integrity: sha512-H99XjUhWQw0lTgyMN05W3xQG1Nh4lq574D8keFf1dDoNTJgp66VbJozRaczoF+wsiaPJNt/TcnfpLGufGxSrZQ==} engines: {node: '>=14'} peerDependencies: react: ^18.0.0 @@ -1463,20 +1509,29 @@ packages: '@types/babel__core@7.20.5': resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - '@types/babel__generator@7.6.7': - resolution: {integrity: sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==} + '@types/babel__generator@7.6.8': + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} '@types/babel__template@7.4.4': resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - '@types/babel__traverse@7.20.4': - resolution: {integrity: sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==} + '@types/babel__traverse@7.20.6': + resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} + + '@types/chai@5.2.2': + resolution: {integrity: sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==} + + '@types/deep-eql@4.0.2': + resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} - '@types/estree@1.0.5': - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} - '@types/node@20.11.17': - resolution: {integrity: sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==} + '@types/node@22.15.34': + resolution: {integrity: sha512-8Y6E5WUupYy1Dd0II32BsWAx5MWdcnRd8L84Oys3veg1YrYtNtzgO4CFhiBg6MDSjk7Ay36HYOnU7/tuOzIzcw==} + + '@types/node@24.0.8': + resolution: {integrity: sha512-WytNrFSgWO/esSH9NbpWUfTMGQwCGIKfCmNlmFDNiI5gGhgMmEA+V1AEvKLeBNvvtBnailJtkrEa2OIISwrVAA==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -1484,53 +1539,59 @@ packages: '@types/parse-json@4.0.2': resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} - '@types/prop-types@15.7.10': - resolution: {integrity: sha512-mxSnDQxPqsZxmeShFH+uwQ4kO4gcJcGahjjMFeLbKE95IAZiiZyiEepGZjtXJ7hN/yfu0bu9xN2ajcU0JcxX6A==} - - '@types/react-dom@18.2.19': - resolution: {integrity: sha512-aZvQL6uUbIJpjZk4U8JZGbau9KDeAwMfmhyWorxgBkqDIEf6ROjRozcmPIicqsUwPUjbkDfHKgGee1Lq65APcA==} - - '@types/react-dom@18.3.0': - resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} - - '@types/react@18.2.55': - resolution: {integrity: sha512-Y2Tz5P4yz23brwm2d7jNon39qoAtMMmalOQv6+fEFt1mT+FcM3D841wDpoUvFXhaYenuROCy3FZYqdTjM7qVyA==} + '@types/react-dom@18.3.5': + resolution: {integrity: sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==} + peerDependencies: + '@types/react': ^18.0.0 - '@types/react@18.3.3': - resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==} + '@types/react-dom@19.2.1': + resolution: {integrity: sha512-/EEvYBdT3BflCWvTMO7YkYBHVE9Ci6XdqZciZANQgKpaiDRGOLIlRo91jbTNRQjgPFWVaRxcYc0luVNFitz57A==} + peerDependencies: + '@types/react': ^19.2.0 - '@types/scheduler@0.16.6': - resolution: {integrity: sha512-Vlktnchmkylvc9SnwwwozTv04L/e1NykF5vgoQ0XTmI8DD+wxfjQuHuvHS3p0r2jz2x2ghPs2h1FVeDirIteWA==} + '@types/react@19.2.2': + resolution: {integrity: sha512-6mDvHUFSjyT2B2yeNx2nUgMxh9LtOWvkhIU3uePn2I2oyNymUAX1NIsdgviM4CH+JSrp2D2hsMvJOkxY+0wNRA==} '@types/stylis@4.2.5': resolution: {integrity: sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==} - '@vitejs/plugin-react@4.2.1': - resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==} - engines: {node: ^14.18.0 || >=16.0.0} + '@types/use-sync-external-store@0.0.6': + resolution: {integrity: sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==} + + '@vitejs/plugin-react@5.0.4': + resolution: {integrity: sha512-La0KD0vGkVkSk6K+piWDKRUyg8Rl5iAIKRMH0vMJI0Eg47bq1eOxmoObAaQG37WMW9MSyk7Cs8EIWwJC1PtzKA==} + engines: {node: ^20.19.0 || >=22.12.0} peerDependencies: - vite: ^4.2.0 || ^5.0.0 + vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 + + '@vitest/expect@3.2.4': + resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==} - '@vitejs/plugin-react@4.3.1': - resolution: {integrity: sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==} - engines: {node: ^14.18.0 || >=16.0.0} + '@vitest/mocker@3.2.4': + resolution: {integrity: sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==} peerDependencies: - vite: ^4.2.0 || ^5.0.0 + msw: ^2.4.9 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true - '@vitest/expect@1.2.2': - resolution: {integrity: sha512-3jpcdPAD7LwHUUiT2pZTj2U82I2Tcgg2oVPvKxhn6mDI2On6tfvPQTjAI4628GUGDZrCm4Zna9iQHm5cEexOAg==} + '@vitest/pretty-format@3.2.4': + resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==} - '@vitest/runner@1.2.2': - resolution: {integrity: sha512-JctG7QZ4LSDXr5CsUweFgcpEvrcxOV1Gft7uHrvkQ+fsAVylmWQvnaAr/HDp3LAH1fztGMQZugIheTWjaGzYIg==} + '@vitest/runner@3.2.4': + resolution: {integrity: sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==} - '@vitest/snapshot@1.2.2': - resolution: {integrity: sha512-SmGY4saEw1+bwE1th6S/cZmPxz/Q4JWsl7LvbQIky2tKE35US4gd0Mjzqfr84/4OD0tikGWaWdMja/nWL5NIPA==} + '@vitest/snapshot@3.2.4': + resolution: {integrity: sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==} - '@vitest/spy@1.2.2': - resolution: {integrity: sha512-k9Gcahssw8d7X3pSLq3e3XEu/0L78mUkCjivUqCQeXJm9clfXR/Td8+AP+VC1O6fKPIDLcHDTAmBOINVuv6+7g==} + '@vitest/spy@3.2.4': + resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==} - '@vitest/utils@1.2.2': - resolution: {integrity: sha512-WKITBHLsBHlpjnDQahr+XK6RE7MiAsgrIkr0pGhQ9ygoxBfUeG0lUG5iLlzqjmKSlBv3+j5EGsriBzh+C3Tq9g==} + '@vitest/utils@3.2.4': + resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==} '@wry/caches@1.0.1': resolution: {integrity: sha512-bXuaUNLVVkD20wcGBWRyo7j9N3TxePEWFZj2Y+r9OoUzfqmavM84+mFykRicNsBqatba5JLay1t48wxaXaWnlA==} @@ -1544,438 +1605,228 @@ packages: resolution: {integrity: sha512-BRFORjsTuQv5gxcXsuDXx6oGRhuVsEGwZy6LOzRRfgu+eSfxbhUQ9L9YtSEIuIjY/o7g3iWFjrc5eSY1GXP2Dw==} engines: {node: '>=8'} - '@wry/trie@0.4.3': - resolution: {integrity: sha512-I6bHwH0fSf6RqQcnnXLJKhkSXG45MFral3GxPaY4uAl0LYDZM+YDVDAiU9bYwjTuysy1S0IeecWtmq1SZA3M1w==} - engines: {node: '>=8'} - '@wry/trie@0.5.0': resolution: {integrity: sha512-FNoYzHawTMk/6KMQoEG5O4PuioX19UbwdQKF44yw0nLfOypfQdjtfZzo/UIJWAJ23sNIFbD1Ug9lbaDGMwbqQA==} engines: {node: '>=8'} - '@zag-js/accordion@0.62.1': - resolution: {integrity: sha512-1lMKuD1GbiMuemOHOu+24BSAAG8iTD6l/4zYrQRBCTsxXzHhWqTtLF7okGgmSAs8iyNfOuWefCfaJJ3BJNSh5A==} - - '@zag-js/accordion@0.74.2': - resolution: {integrity: sha512-0E6LpQgmcbDe12akh2sKYVvk+fwxVUwjVdclj8ntzlkAYy8PNTTbd9kfNB6rX9+lJUXk/Iqb5+Qgy9RjWplnNw==} - - '@zag-js/anatomy@0.62.1': - resolution: {integrity: sha512-1JiPQOyVlO1jHwLTSNJpyfy1R1UYoaVU1mKSUww5+htAuT/1txjs04pr+8vTF/L/UVzNEZZYepB1tTabyb9LYg==} - - '@zag-js/anatomy@0.74.2': - resolution: {integrity: sha512-wIJQGBiSHYB94UA7k7o4a8xbyqDwIQ0dG52xcD7+eV1ypT+dP+BtxQKmS5w06aghNdHs8b4F2hVLDVSdyLqRkQ==} - - '@zag-js/aria-hidden@0.62.1': - resolution: {integrity: sha512-vVV8bwZhNU+AOOf/USEGV/n9zuTID+spHeC9ZAj29ibWAMmaiq2bx4t1kO4v9eKqKXULUBPPrZQ7CX7oiU616A==} - - '@zag-js/aria-hidden@0.74.2': - resolution: {integrity: sha512-F4dkdLZ3Qeu6Er9rwl8IWEAdhAjcOTRKsE1Otoi0SKjcQKlQfLTPutVDVaZQxz1ZNXNlyq3YUgFE+EiwMV7jxA==} - - '@zag-js/auto-resize@0.62.1': - resolution: {integrity: sha512-nznVkAsZGS+L+VhNO8hPnEyvagNhTezkb64SSPa8E49hJHS2DEN3T5hKCx86tDuiCMd0EdjwUCCQq3pnbzbnCQ==} - - '@zag-js/auto-resize@0.74.2': - resolution: {integrity: sha512-h7gR3LCcxgURg/Xz4IoI4ccN/A+u63zNT8HoXjBWezy050YsItj20q2Yelm6ADT9qcbC+a6W83j4C43ejy5Q5w==} - - '@zag-js/avatar@0.62.1': - resolution: {integrity: sha512-J+IRqJlpL4S9ikCQle/FHj6p8uT8Ee/D88u4k7m/An4Ot1FcrfKqfC3INB5YOI+d8hkIQVtEIAC8Yt/s4OzAMg==} - - '@zag-js/avatar@0.74.2': - resolution: {integrity: sha512-Ctk/r+rbA0ZvdORRKyLMvtxxulda5m0moa5NtT2TuZe3WlTmJRYBMlSQzXwfOAXCjQlLp+zkeyyriP441sm9OQ==} - - '@zag-js/carousel@0.62.1': - resolution: {integrity: sha512-0YQ2jJjzaS1zFLVnPBslVKI8/fY2Z6aOrcJbBjxozG27iSS6zEqmbsz3OOtcYJRlB8jLboZutpMBs3PGh5zg5Q==} - - '@zag-js/carousel@0.74.2': - resolution: {integrity: sha512-EAM3hHXlC5HNcT7D2IaX7p4aOaXLaLYkSCJcMqqo9H3CxVWa7Kfw00yTG1Z0HcRNKiPYTBF/W9fqtHwfpa5s+w==} - - '@zag-js/checkbox@0.62.1': - resolution: {integrity: sha512-xiubQLhRXedlZe4Vc6zxaDFWLSpRdGEG0jTrF3OXovYZLN7bmq0iXiYcWqsLa012+2dYN9w5B1zfQQlzf4sk2w==} - - '@zag-js/checkbox@0.74.2': - resolution: {integrity: sha512-bmF1I179fhEvEXBJU5yzHi+W2Oett0PUVUw2GFFzfIn6w0AgZKNIr8+NLtEWR0Wn0UELXNhLnBSqZC3j2jZHlA==} - - '@zag-js/clipboard@0.62.1': - resolution: {integrity: sha512-gEhCGLkAlrgNWkd7ZqF4p4yNKsR54+0YQPevEv7iX9oio8T/F8OWaDmDjA4NsXxqRe6hr5KLJbVp8dYRop30TQ==} + '@zag-js/accordion@0.82.2': + resolution: {integrity: sha512-w8+oFbSEbW0otT6LG1boO5Iy9UP5K+NalLhoD5XxP/FHS6Rp4R4zk3iolOxxtOh6JXHnghXzG7VZbDQN9R8OWw==} - '@zag-js/clipboard@0.74.2': - resolution: {integrity: sha512-0D7sIBilV+KTMwArmfa73uJUtDbAqHH3g5o3RFJ+RYpAIYQTINGLw13tsmUK7xQ8gd6M8ARAcAv1khZdwO4ykA==} + '@zag-js/anatomy@0.82.2': + resolution: {integrity: sha512-WHGKs5O443T2RSQQvUzYhEV5SNJxO5ysAnHxHdFLWBrMdLjLwLDnvyY7w30kzxeXR9/Z+2yxkgDipxRsC+qC8w==} - '@zag-js/collapsible@0.62.1': - resolution: {integrity: sha512-M4hsuqf6dVra6RvKaxQjgQjZ+iYj3XH84w6QOnt/SXbJauQoE6nfy77RI/A8O2pPuP6uLq0h2E9Eo3ftcbGBoQ==} + '@zag-js/aria-hidden@0.82.2': + resolution: {integrity: sha512-V+PjbCABKM4yxFnq9M/t3W1hvwLMVe/0Sj9VyOiAAJDICfSDudGzO+5EfJBTJt59z2Gr4r55X+wtH1uBOtTF7w==} - '@zag-js/collapsible@0.74.2': - resolution: {integrity: sha512-wZI57xWU2tlcJDPlQBUyBxg39PUkY12H6MKcf/+1KBOpJiWc87+4HDBCVSt31diUAhJwcbNsYFwJg3BA4vTw7Q==} + '@zag-js/auto-resize@0.82.2': + resolution: {integrity: sha512-93HhdycOkQMzn4g5MRWRgb5QKk03KwIiTkaU1jhx5eAatT/yYFDvrzNbAXQvr0WePcDNPnPrFS5lAY/85p0eew==} - '@zag-js/collection@0.62.1': - resolution: {integrity: sha512-Qg3OvGCvcoeV4u8IcQmNCu4dChRttVyQ9DF8Ab0qlyrjRDF+w8vMAcNcgNqn10/xX4A7B743cz023LooVsW6VA==} + '@zag-js/avatar@0.82.2': + resolution: {integrity: sha512-rGlZno6S9lm/wWLC12sLj7nyFjUXZ/76hOvpcg5d+e2bmysu+chKz1Z08ecLBVVLWkk4JRq9M3v9Jgji0EgaDQ==} - '@zag-js/collection@0.74.2': - resolution: {integrity: sha512-8Ls5TR1kKPLDucuJJ0kuwJ45jOEzhcVN4T/mbkShUrgRSB4FrcNzwdpMrKqidNz8OrtphgYYcn3xx/gGUIHLRQ==} + '@zag-js/carousel@0.82.2': + resolution: {integrity: sha512-GMbGnoDFwWS8hDUk2unlg3Selmo6JvnTaI5DKEVmwIgp0MGT8zqUk4eAClsLNiS/JunEeK6tyER7K3b4dhYz8Q==} - '@zag-js/color-picker@0.62.1': - resolution: {integrity: sha512-GLeADGcoMLcVS+UM6rn/c1BmBgSB2uTc5AWBkuKoH7TktsKo6+T/v3/QZIU7/b69qBAp3/vWZti99Flw42IDdw==} + '@zag-js/checkbox@0.82.2': + resolution: {integrity: sha512-9gE4P21YsrY+sFJaJOGG84jW64aAxl7M9S+wsmRruKmzNAwri30bOviMV11qZH2isJ44HxPuJ3iezXsLMN+Thg==} - '@zag-js/color-picker@0.74.2': - resolution: {integrity: sha512-l5YAxXjSNWT++gCBLkP/qKwdHpNSxZYGdLU5f1fNupFSSZgZlNTz99ArxsypqFrJKTVvPjDSoOhjG4BeKHAAdg==} + '@zag-js/clipboard@0.82.2': + resolution: {integrity: sha512-FU2SEHP0KthhtYJNtKU98Aw21ugHyX3CT3a75C9wJKGp5gSUDQ6FMIUT3K7GSFR8JGBQ7f/VI8AgE9gNiRpmdg==} - '@zag-js/color-utils@0.62.1': - resolution: {integrity: sha512-uXsEA0xsI4NT7YFwWZldy7LXsk32Ta+41MrckhzbSA766v+bW4sFDUYmJxwLkN4nl1QzlLAlGghhauXmW9Fs8g==} + '@zag-js/collapsible@0.82.2': + resolution: {integrity: sha512-SWOy9ANjO8vbkYwX8AvEOntkPOAXiT9b4Cg3YT5QALPEB2UMUk0CzxJXw+ilbDoRMWWus2nqgx2g6D+IAabjLQ==} - '@zag-js/color-utils@0.74.2': - resolution: {integrity: sha512-yoavZXIGuVXi/QCO89hBu9Ni0xH7o8ZcDFX/CIjr3S9sI3fjNak9efkfPFx0Ooo9x0Fvz8mpu+DPB2uk7voXDA==} + '@zag-js/collection@0.82.2': + resolution: {integrity: sha512-moWCnb2F8nfnzYpyLPnCNd10pFSIqrBJrnB4ME0C3QydYIxxwmZsnVLPzTPtnDKGT3uVfL4QX2+nsBoeu1LXrw==} - '@zag-js/combobox@0.62.1': - resolution: {integrity: sha512-EovqyFqD61YmYJYc42qKH2OE7GxMm3gamWLU/lvZe/3eyZt6TsxFe2xeP7WSsvq2v90myMajAnUb0DOpvYaCKw==} + '@zag-js/color-picker@0.82.2': + resolution: {integrity: sha512-BRxnToGNyg1HzkWfQquQM8/xg7Jd8HpJeXWQMT9hIh/XqLiz9HRsGN90I6Avv9vYXYJChw1VdSExdfR2HjlqlA==} - '@zag-js/combobox@0.74.2': - resolution: {integrity: sha512-NqG2R01NjZz5a3hGYI0Ok7MNM7OkMlYlTI5fJXDgkkhgXi5Mk87R4+AQNjP7xzSEI35rSlVIJt4ecW59cklHng==} + '@zag-js/color-utils@0.82.2': + resolution: {integrity: sha512-tBVocNpmWWBPOla0NPj5yMKefg36X176BsvhItlls3/4TB4We8Cad5Wi9G4SGm0ClYaUGPtQUK/E7UEUhfUjxA==} - '@zag-js/core@0.62.1': - resolution: {integrity: sha512-ZSjqnV5vcGDassjmZ/lxWbG244A0i+IHImVZ/a4/0JkjkH126ly+At4FC+HI571pNKiNlrqYmGzRRSBMqm37yQ==} + '@zag-js/combobox@0.82.2': + resolution: {integrity: sha512-SVLcfJNqY17MqDL4i3QbxyjEDD/t0xUB37QjgsrKzvnq6IviM6FDh6UfsTX6/NHqy28HL0Aty6NIn2NNM7WyjQ==} - '@zag-js/core@0.74.2': - resolution: {integrity: sha512-UAnj9WJdFYeTxbwSCdX8zRYhtLvlJqfqy9cn2NEugpxf+9W/GA89JzH1ZdKLyVJUIuIPoqGd4ZaAgv2p64DZ1Q==} + '@zag-js/core@0.82.2': + resolution: {integrity: sha512-yj4trnU4RzO4duiZJ7uvxECg+6MPVkEbTvTwf2TynotXBYX65LGMTqvMzZP062wvdu0jvTgZ/IbCpN1gc3hmsQ==} - '@zag-js/date-picker@0.62.1': - resolution: {integrity: sha512-Wl6yzMtrTy7XgDFbYJaRO8M5dkxLPBvAo3ilDvFBicbJViJCZ9pg1AJYh+xGaK/gfAd7O9wBdYJdHxfESlmlDg==} - - '@zag-js/date-picker@0.74.2': - resolution: {integrity: sha512-iIVQLEAV1FKM+aB7v7Xk5o4w95vdmJhe3aTYDxc6Xo+Fw4tsdUmg/UtQ1ScPzbagBo8Cut2krvkG/8SrlCRMyw==} - peerDependencies: - '@internationalized/date': '>=3.0.0' - - '@zag-js/date-utils@0.62.1': - resolution: {integrity: sha512-YBqT5YRtHOCDS2IcCZtrq7BfzBkU5c+Sc2pVTncf06/3jxjE6l6YbBncMPu5a3uWKjNld1wOTFszhSoPKZfrJA==} + '@zag-js/date-picker@0.82.2': + resolution: {integrity: sha512-6thJ3ou3u49k4mnnYMecbw0JHvHiaF2nPyToaq/Hsf5grqSijgyZtfkHoDSNFiNN4DKcv1GXErM0N0MiY0dc4A==} peerDependencies: '@internationalized/date': '>=3.0.0' - '@zag-js/date-utils@0.74.2': - resolution: {integrity: sha512-Pb7FggFOTzCTyo+ap4uuA6vBFrYDSoqW/sMI6kwuOBWL3IjFKfmmSVaem6MYycycWN8d7on4IOp0muWCcJaDUQ==} + '@zag-js/date-utils@0.82.2': + resolution: {integrity: sha512-e2jZ6AFMzwJBNgoOdmATKRH5/Mgr6EqlZmmhI061JzB3uteVOv4x2k5je+g8kWS1IADC5D2OMFQHI/bXSJ5ZFQ==} peerDependencies: '@internationalized/date': '>=3.0.0' - '@zag-js/dialog@0.62.1': - resolution: {integrity: sha512-7YRvWZ9UMUjFz0q537/uaTMBljLimWISfVHkUSa2ngbXB8LPYYbqYv5Vio2rvRFqy3nJR3HTO4cGZJGDjO655g==} - - '@zag-js/dialog@0.74.2': - resolution: {integrity: sha512-2kYqFSqpa1SShS2Z8cVqtoOML3uiwIUOZxNVKIea3ItdlMTqHJI+X/NudFvgpUvVj4NMLbUhwIgC+jN2SWDL7g==} - - '@zag-js/dismissable@0.62.1': - resolution: {integrity: sha512-muGTBISpjQEWLCrsYa9wAFaGXlVxYtyMaDgpcPpQdQPwZF86b445y4d8h9FjwkESdJ6Zcdjn21pu5CWD28T3uQ==} - - '@zag-js/dismissable@0.74.2': - resolution: {integrity: sha512-Wl6n1lW1eTKKu5Kg+6jum9nZDXYGA86XL24Rip2aOScrAo2UGCA+nSIgg7GGO5qGs52iawITba38tAe6maZQLw==} - - '@zag-js/dom-event@0.62.1': - resolution: {integrity: sha512-/+okVW69Xdoot7dutJVMz0iciwWM6DvAeLWr7LB5DZsUQMu93oqV/8BE2JArDxEcg5C208HNThGStcWlTaddgA==} - - '@zag-js/dom-event@0.74.2': - resolution: {integrity: sha512-duuwxowflkY7UUI+1vHr9ttzqn2JtJ+mgAS0cBeNmqtvK6XrNaHSrm0B4u4R/KIJ73Tx8TZGbmgN9Vwj/U2FrA==} - - '@zag-js/dom-query@0.62.1': - resolution: {integrity: sha512-sI/urNd3QX/WI7Sii+X1Z/OTWNisn7EaW3T0X9Rbn41u79DC4KeUnP+wpIq1igSJNH2zQWIWBLJ1OGhAjuSl5g==} - - '@zag-js/dom-query@0.74.2': - resolution: {integrity: sha512-g+7wIdhT1nlY5yhQWoMDzin8uYoBXeQk8TNUj3GZH/1dTX9YC0vs7vz7rotzunLkEA7nEGfLNzdO5CRQBhGp0w==} - - '@zag-js/editable@0.62.1': - resolution: {integrity: sha512-BkPLV8T9ixdhz3IxvseV24a1pBNmYhR1np+JUKap0C8thtFbDoF361haEQjCqTCfHDv+j5l1rtq/+H/TF3eEIg==} - - '@zag-js/editable@0.74.2': - resolution: {integrity: sha512-SXSaAmaqvhFPJmX25tz487skF+GTIGAmp0Y6iHqDUsUh0qDncUPOr90M+kFtud/6YUPFkzEpKQtmeczJR0LURw==} - - '@zag-js/element-rect@0.62.1': - resolution: {integrity: sha512-SefRp1IeiENoUkl7yxGzUIdxtQqgKlI+G1qlgx9MZgchH2VZCpqi+EuZgLEKzz7REMabOYqbgs6EEIxGIyNueg==} - - '@zag-js/element-rect@0.74.2': - resolution: {integrity: sha512-FK+bQ4nhdcR52868uE0rlmmq4+un5P++WDoe6S4Aldrx7FJS2XTtWMBdx09zBe48DvUYjGM4o3RbuxbCQoD0BQ==} - - '@zag-js/element-size@0.62.1': - resolution: {integrity: sha512-QCtVeIJ611hJPorKEkdfrWWcMohadplZoW8xQW/2PLSmKUhTNLfHsZLyeoYKyj5Jk4X8OAN4onnMVETFw232EA==} + '@zag-js/dialog@0.82.2': + resolution: {integrity: sha512-p0E6m28HXQMFj+l0MHJcoh326+p/iMocDFOSL1JT3h/U7JLDeW3kNJvpVGK+6vCLngJ/jnAszgQQYhlaz5smJg==} - '@zag-js/element-size@0.74.2': - resolution: {integrity: sha512-mqw0PLdPs17zrolZBlsYby5kUfo8+QpaU/HAVQavnHQZwNiX4CRBvG1YeqSP699Mvh6QDKc0JhchwAfh+eGGnA==} + '@zag-js/dismissable@0.82.2': + resolution: {integrity: sha512-oi2wLiWEll9vhgFgE4FIH9aWPwId8QExO6kcnfeZPSkytnTRetKlyhj5xsOCygElZK994JRkFP3lpGrGCET+kg==} - '@zag-js/file-upload@0.62.1': - resolution: {integrity: sha512-Wh33acYMJLNRIV2y0GdSZqoN3aX/t/uzIBWh3rVsN7tpjDYWXLYIsXQttkGLFf0sgICK+3PVD+LLaIpiGDh4+Q==} + '@zag-js/dom-query@0.82.2': + resolution: {integrity: sha512-4gI1A7Rh9/vZhOuuWzUldP3+2PIiOyR91TBDA0an1VICzHRKBelntlkBR6cZMtjH9gGxhSVxeKN2b060kJ8VQw==} - '@zag-js/file-upload@0.74.2': - resolution: {integrity: sha512-VVko5ojAoRQsalsaQxGwTt5ONcYaHuw6yFL/HqPKNzGyyG8zPBl0nRGMSZQprTyUSMDtsxNp8ydL1cbauDqU3Q==} + '@zag-js/editable@0.82.2': + resolution: {integrity: sha512-BHheMo+gRo72GCqc8rowtg8yGg7fg39AdiwIrXUQ4PU2oI+jKkxAKamLXFgu19Ne+1keLcGjNAtVWRZkqszjzw==} - '@zag-js/file-utils@0.62.1': - resolution: {integrity: sha512-p363S2pqz29wf1shcSfoY2GI9wWrJkKamNiwuehqoYFh2b8isrcWFVL3VYxm937N1/m5+rtMATQbn0a9j9sggA==} + '@zag-js/element-rect@0.82.2': + resolution: {integrity: sha512-VdHlu9fLWhKxHFL5vCQXgzqEmxhSBgzTOU0SidR3hsGLcO6dgioz86bJ7i8uPFU+uZDHhyv9Q7lBQQoO76Cr7g==} - '@zag-js/file-utils@0.74.2': - resolution: {integrity: sha512-pTyU33Ag7533X3/RCBvfbGBHFMncg5x2/3n1htSxEVLIIHxbRvvDab2IN550n3OIjMzBLfM4xjNu1R87ed2hlQ==} + '@zag-js/element-size@0.82.2': + resolution: {integrity: sha512-33sCUNJITNAqlNOP+KdMRh8R10s8MPwH+XrxucUBi2R55vWRVs9G3gcA/2uSf1mo/2us74Z4U+/KLnI5FkZycg==} - '@zag-js/focus-visible@0.74.2': - resolution: {integrity: sha512-CO5x3uCGKgigQ91S3c3vy/KEKyXK+eTveIzprFTxlQs4Zu2qMe/nJCIhIkG54fhvW/a5F9wY7Ox1f8hGZ1Z1fA==} + '@zag-js/file-upload@0.82.2': + resolution: {integrity: sha512-r1618x7BkYLh3qaKQOabD838lwM1ARP4aVbzBb5om1cNUjWgy9wCBU1PCNjsqyFzm/bTmHTXgiWdTz06NFpbTg==} - '@zag-js/form-utils@0.62.1': - resolution: {integrity: sha512-GJWRRtEpro8TNEUuEWMhIOWmVFXqiHNTTrrRLxijxUIWbsPrPdPiKL7qwBAESYoZQCmN0hU99S0w2Xmm7Q05Zg==} + '@zag-js/file-utils@0.82.2': + resolution: {integrity: sha512-cjmG+HUBXS+hYsgOfdpNOe/xIYPAQ6CyFDGvuqr4wBnhOd9YyCtn7/M+O4VfodVA9rnVQ67RQsbI/eBBZTQ+/A==} - '@zag-js/form-utils@0.74.2': - resolution: {integrity: sha512-LPaZfDhQmhyL4fMMKm4gZGUg6vwcSzaHOVlQHdAR8yoSqvO4yXEdxr2xz4civNNknD0crST2erfexGHEY6Oa/Q==} + '@zag-js/focus-trap@0.82.2': + resolution: {integrity: sha512-TZNSAqqoml6avv6puO8afMJ0ttfYQC4BvIuA/Z8yjMVPvXHcUUeVyP5mgwp2tadMWY2TJ4Bv0/xxJJvvbwNNXQ==} - '@zag-js/highlight-word@0.74.2': - resolution: {integrity: sha512-zuy2E62F/w3G94kh4l3iEAtNxqwuAdNkMwcS8EhT6mnzNcf4BgzW7Ne+O1fRb4IGazZwHPaWC0rYdTUuErK9IA==} + '@zag-js/focus-visible@0.82.2': + resolution: {integrity: sha512-fwmNDVHulJ+L6sOFavDhAMYOIZYwo/ivhkPkko2pah6pYYQDwyp4bjsmpofW/VkCgdXgClpcElCC8aoQ83A6Jg==} - '@zag-js/hover-card@0.62.1': - resolution: {integrity: sha512-ryiNHQmmHpiDiZ5nuk9nvGUgnT017q8hYf+wLSI5OJ+klHPjrHObb7I7v/fUmKzWNtIOhaL0uw9afzjRt3bLEw==} + '@zag-js/highlight-word@0.82.2': + resolution: {integrity: sha512-9sN//8j+TZFTrYIhuSSIJ0rMREVAV8xkJ8250zH///cYfVDuFLCbJp69E613ZfevipemlTQJWP1vTJ1HZGZ5vg==} - '@zag-js/hover-card@0.74.2': - resolution: {integrity: sha512-Li1lrePYcTC2UqAP/oOLcK4syyBomTmAp06CJukSXpGcYe6qUD4CqhLva0qYjvZ6SKaB9Y3BryD9RTjFvZOuZA==} + '@zag-js/hover-card@0.82.2': + resolution: {integrity: sha512-11xb3BzVxMvhSGEx9k/umq4/gt7wbjKB/TVEn2dYTdZ2NTyAa+PLXkZ60VBPnprEZ3Or3AzuWJw68uaSdqxh0A==} - '@zag-js/i18n-utils@0.62.1': - resolution: {integrity: sha512-ipzx0W6VK5x+w/PnUrN8z5SULJuLqvdzsPVBJ2iGHrMcTPC/y9JDt82nJV9fUYmG898pOZUx7vysfLLPNEAFTQ==} + '@zag-js/i18n-utils@0.82.2': + resolution: {integrity: sha512-ANmNMA7f5Hrhd0ZXVASTV62HRIJut/ioQ6lm/L6PL1+QW+o60j5wJv4HSslQuWWsdyzEpq05u2Sy9ndbcSQ5RA==} - '@zag-js/i18n-utils@0.74.2': - resolution: {integrity: sha512-S+ZJ3OFUtCoUdKkDfiF3sgXr+98rhVV+BmHgfAiEYRQA7RjeHDB3jX+eBbeZTLFqvHGtaGWCRE3knto3Ed7YvQ==} + '@zag-js/interact-outside@0.82.2': + resolution: {integrity: sha512-9AB7S6NpOr49oSh+nIl+X8wEiKj2YfXtW2Qk/GOTQ0eP9boXK45Y1pqjWvBpDF0rQYofnWPgoldw9B+rZa+lZQ==} - '@zag-js/interact-outside@0.62.1': - resolution: {integrity: sha512-V5N+kr2Uv97HWYL0U5ZVS//NMQu87XGLtI7Ae5EtHrdAEKxO2NpPwf50Gzza4zc1VEVYYFqobTlkNQ3hrrL6VQ==} + '@zag-js/live-region@0.82.2': + resolution: {integrity: sha512-q6j4qggfyUFgpAWBe48cRiaByrJVrOf3x6gHWhK7EsLu45D/0HPkvZjmDgwoRoIISoJVLeT9YquaNsh7rFKFrQ==} - '@zag-js/interact-outside@0.74.2': - resolution: {integrity: sha512-58ilkSC2UQw9PsFo4HKBrYcWC1+WRA8M6MqNf9MnxxOvAq+Y8APH0I6ExxAfUhLsk9v+6kPf0txM9MDoB0iNFA==} + '@zag-js/menu@0.82.2': + resolution: {integrity: sha512-vPRLdv9ZcQYgzgtZimXY0LKj7Rs+3EPowc2GEWcMe5ergzhKRlmG/2eRn/mSgESnLmMNx6CaYAYQdNcndd+ksA==} - '@zag-js/live-region@0.62.1': - resolution: {integrity: sha512-Giu7d5UWc2Sqb3/T0tSzqSwxJ4mVrNN+MTu06J7EaD4khK5RgX4GRpQ9rpwOS/GJT+8nc6YBhWTi7tqKN/+iHQ==} + '@zag-js/number-input@0.82.2': + resolution: {integrity: sha512-gVJZny2MS3ptOpP5W+DGnY7igOCyO9I+Z+dDWlKiLNvHM8v6GlMtxtiPuV8kL1u7TqL8HEGQENA1NZYSr+rcKQ==} - '@zag-js/live-region@0.74.2': - resolution: {integrity: sha512-l9cipG1hykvSWIbKc3/3imFQ+Sp3u2VjZirmdM2K9julo7DKxU3r63aQI2s6SpD4tfQPq4AcoXqzZBF0RnQRUg==} + '@zag-js/pagination@0.82.2': + resolution: {integrity: sha512-xPMhYQOb/QoVwQm8TTchameMsrKR6VhZmcCMzjR0KlBIf7WG4Z5H3Rfzw3HXoQaNTipY2k56YH5p4PEirGYvzA==} - '@zag-js/menu@0.62.1': - resolution: {integrity: sha512-l/PartHj6//NMlENYNBmUmeYG9K0SbjbnnIudv+rK+oyrUoX/MDCJ7bdy7ZMYxWTR127WdZlLHBxsgMe86lBqQ==} + '@zag-js/pin-input@0.82.2': + resolution: {integrity: sha512-8omi7JeA2UXMOeuMdcE2qNk86AfnA19CpY7pQ0GVKuqsxF4zSniC+4SC7uAOUymNtkdv6xVheJF696bRIoChRw==} - '@zag-js/menu@0.74.2': - resolution: {integrity: sha512-dEBerxdgPH4dGWEbFM/aY8zYtUAQL7hopv4iWPHv1NMFhWu7IShmKe2xm/4ZSKaOkiWZ2CJyMI0oHr+qQ+ZhWg==} + '@zag-js/popover@0.82.2': + resolution: {integrity: sha512-OD0hBCasb8gJU97uWE3m8bAL8XqPrIDkQF4mJ0clAC9puusDdKgRS9W5kCQzgzei3JYdZbK81Bnx5X0gOGWKwQ==} - '@zag-js/number-input@0.62.1': - resolution: {integrity: sha512-THizFB4Qwq4erMk6mI82voIo/PbbrAOSQXyPF8NPyGupSzqYntS1XPEdyqFH677PhHweelxQnvtZEm5alm1HLw==} + '@zag-js/popper@0.82.2': + resolution: {integrity: sha512-hrc9WtFge+m8zVgrxFxOPpBRvqf4YhWoJSnhPfjruBSJDrvrgBkozjCsazM3618b7bB+jpw4Pzj0H+lSsv4Ygw==} - '@zag-js/number-input@0.74.2': - resolution: {integrity: sha512-I889jfoTiKX9gRbyZCgKDyBj1+VgFCKyELbFVJhgnWQhip4MLjzI0YjWWp/wgHs/ZwEBaxvy6CRq1KOtvGkQNg==} + '@zag-js/presence@0.82.2': + resolution: {integrity: sha512-N818BC/PBkdh/yQBECrBONoN9DcYT/PNIblgHic3mG8IIfI49jnAC103gDFbROVJoI/38bk4gwMMOWesZtX/IA==} - '@zag-js/number-utils@0.62.1': - resolution: {integrity: sha512-ktnGSYKKLG9No14ivlboEzq4+jiOIWU+8yeoRrZmfdCG58g4s9JF0lBDRf3ts9vhUdofJ+vUFMPqkk2eCWyQlA==} + '@zag-js/progress@0.82.2': + resolution: {integrity: sha512-YxQXBHLUXF8BOG68sZCXkthKrZPebt02cSinafpjYXIOwauSBeMdmd8rAjsrAIFWhonaXcqxCs+jqlZRn18tEA==} - '@zag-js/number-utils@0.74.2': - resolution: {integrity: sha512-wNaixDQDotwUUKtpA524tfDvsiQQroDFZYFPZfnwKq89rPT0Zlh8LMKLL/Mfi32Zqp8UP9srdcMEy1XEGrIiNA==} + '@zag-js/qr-code@0.82.2': + resolution: {integrity: sha512-dotI3wXTGArwxKnqaLWrgNfXZGq2oe0Ur3KT8JPxHy9Kv6JWYGkge5AmtiGkwXFQR/ZxnRYE1vF1RNjFG50OKQ==} - '@zag-js/numeric-range@0.62.1': - resolution: {integrity: sha512-R4/II5MvS+eJ880srPuIlexqRH7kVsGomcsDlB5yyhHsradm7OJfC5L6osvKj1DNAitfFh8901BZFaWmQe8O1w==} + '@zag-js/radio-group@0.82.2': + resolution: {integrity: sha512-Peh3zLq8BEmoC9zHrd1n08gLlrlb5VXUpofOdEj9GqtEphLNCf/S3O5jeM6MlYZ9gHe+CkXIpXH16GDBoZVWjw==} - '@zag-js/numeric-range@0.74.2': - resolution: {integrity: sha512-sm2xlc03Zy4DdCRNmr7jUgL9s34rK0bVDezn35TCq3QMPWQndIlsCbywcmxqxxtUymwnSwizWenZaWVlspFlgg==} + '@zag-js/rating-group@0.82.2': + resolution: {integrity: sha512-J2JX9leShV3HbiFqPoKCITaSshpjjt2U9mNakGU09YUlYEtjKwlNPFpYLSkKw2ItA/T9QbYJC58kbF+bAnTL5w==} - '@zag-js/pagination@0.62.1': - resolution: {integrity: sha512-fyDXNnAGyRsQEugvNR1kfEO8hGeesOV6l2rEACdvNN6G9Cqktqd52aaWVIf805G3Ig72igW2SybI9md/rDflzQ==} - - '@zag-js/pagination@0.74.2': - resolution: {integrity: sha512-aqwqxHrgvfm6rAcxIRTSRFaWA9/UCQGiLP+P01Hg+/+IkVJeJIdxN10ImSOL4Sl9zvsu3jVCXg6xLh4ydnaWqw==} - - '@zag-js/pin-input@0.62.1': - resolution: {integrity: sha512-CTAOyQCLaNSWH29bhc4XruEkvnYFJN1QF/x5axtHV+cir05zcdB3L7Sna4D6nUBSwd0tOGnUmPlviyP7zkpgBA==} - - '@zag-js/pin-input@0.74.2': - resolution: {integrity: sha512-1LxK/VSU8t9w9/c726gZNHXnawU4SnN0DxsYQa4YxN1RDwFp/RwKp0hLAsunKx7yBdyC1VVyqVPYZdZYQotdQg==} - - '@zag-js/popover@0.62.1': - resolution: {integrity: sha512-cT6okb5Yq69YWx6G1vonNEnEg4MlBXRbXLflLBqOP1PTwhk6RwlndXGV2uCdlnR0mUJa/RKldzdUcwOQesJaag==} - - '@zag-js/popover@0.74.2': - resolution: {integrity: sha512-B0U2/XJ630kWYY1x5UTBMxXjy2EfbH9T3eRQlSXZS/uToEzvhsYvw/YaIRqyvYxPyrnmB72to6r5Kw8omryw4Q==} - - '@zag-js/popper@0.62.1': - resolution: {integrity: sha512-tyLEdYIsv3cgnWCWzPPv9f72hzmQDQcObDIczIZt+OQr89qgyhGHt5jR1f0Qxsz9zZlSPsEftccyXRQYInQtxQ==} - - '@zag-js/popper@0.74.2': - resolution: {integrity: sha512-gsS32rxw+bSKOLOtF/VPNNafzO/fEU58OYIfM7yA4swrEupUqdfAF/ihNH+Uj/AZQKj2tnwLTR1fJ1w3czpY9w==} - - '@zag-js/presence@0.62.1': - resolution: {integrity: sha512-qjnr1WpW5yetRp2j2V0ocRvr6X6TuWNxjL2DyJAusodcsSElF2V0UuFOLT/xIZA8BVIbgcyCvcPB01PHugC5Ww==} - - '@zag-js/presence@0.74.2': - resolution: {integrity: sha512-57eBd5C205jYUQ7Rsbft9YRy4euNDdxKDpdLdInqk8egf2vFaUWIV152pm5iOGRVidDGgcIunTFvHFCT1rbATQ==} - - '@zag-js/progress@0.62.1': - resolution: {integrity: sha512-7FyeP/wCiJ2dao1y/4RzhrLeIse305YtRMTDaVE5EnOJK3nit2Rrl+z8kGx5aqrGQcGsLH/rh5QYFp689Nx57Q==} - - '@zag-js/progress@0.74.2': - resolution: {integrity: sha512-4LNhFP18g21ni4Hv0RQEYqcMhiyMzTsu1IPizy8I5l3mJvsV6b7w591K2iC4mybLynPBodvkl+fLKqKm3Z+1IA==} - - '@zag-js/qr-code@0.62.1': - resolution: {integrity: sha512-648qXQduIqq4CZWN07D1UOcczZrdp3UjBSHFEi4PQHTz1Vg08pH0BIZDqiqpupG9niYJEB/GPLGofRQQYoIoDw==} - - '@zag-js/qr-code@0.74.2': - resolution: {integrity: sha512-GHAmnHz9pdaP0c5/n4aPSo67Bk1Cvv9PIHuOKKLyalRcao/ARvtiS6371logfB1l9DHtMSARWaZXDrIdNZx/gQ==} - - '@zag-js/radio-group@0.62.1': - resolution: {integrity: sha512-VVGTUkHgD27vBTYeP7hPYi+eDRXkq7xtlv6Ml062t3gcTWBhc/2eaI6iZ7awlxTl9052sflzbawrrDysPREuAQ==} - - '@zag-js/radio-group@0.74.2': - resolution: {integrity: sha512-Ntbi21CTqXIVMrGccVSefwCapACSTOy4XFDM9/piTLeRlfmNxsy7j9hl7EFBpovbe4WYLHjNQaL3MM+hXEjRRQ==} - - '@zag-js/rating-group@0.62.1': - resolution: {integrity: sha512-gXvHofr3gfZcaMh7Y3FU+wyj7ge1R0BgsuPJWFUShlAlxjnnE7e3AqjSGlzuvpkWMkc6KKDyKRJlMVWLCv94OA==} - - '@zag-js/rating-group@0.74.2': - resolution: {integrity: sha512-Yg30ph9YMy5g6TPHU9MD/NEheaz8qOsVVkefG2EvRVfO2ZGXJclqZHg8/TW8nzUGp3Mt/fAq0A7jfeKvJBcNng==} - - '@zag-js/react@0.74.2': - resolution: {integrity: sha512-Vli4cigN032dQM69Dr/2rR5FSSN+rzYJUiqAo3oNyvvWSSsgLvoNYcfltxY0Tah/PIftbF1NBUNYaUtv3OJgzA==} + '@zag-js/react@0.82.2': + resolution: {integrity: sha512-lDul3lRZae2ptkOQSfobl5ZQfX6rhcoN5ILLVbGzBJ9hRtNfMTVfKKxXdF2/pg53sMgggK4hZNR3W2P21uC+Wg==} peerDependencies: react: '>=18.0.0' react-dom: '>=18.0.0' - '@zag-js/rect-utils@0.62.1': - resolution: {integrity: sha512-6w56LuRD382Oa2FXi4AfKQqgtUPS/nc/mZzXiaqKz9b5aFA1CXtmEwNC2GaiXhkqJp5DyxHwujDfQP1WXACnRQ==} - - '@zag-js/rect-utils@0.74.2': - resolution: {integrity: sha512-bG48u1NsWBRx/fTQfDFskOkwKzpROVhuzJQi/OtnugHQj1nFfZ5CMpEX3BPv5PGwvOia2ZDm84+e12WucFhr0g==} - - '@zag-js/remove-scroll@0.62.1': - resolution: {integrity: sha512-7xpX6HUrOEq/TNLIWojYnQf7kj20bk8ueOKpu7cTZmoN0LSL6cS09uil+NOqb+SzZsiRmQKvzd3fQBNwbdab5Q==} - - '@zag-js/remove-scroll@0.74.2': - resolution: {integrity: sha512-aEuspeZ98eAEGlAfnCh0syzbmFnMuov9yJc8Ud//pbXd+96J7X1xa4TilHZ+ppm8IZZLGc91axXHwkbIINC1Qw==} - - '@zag-js/select@0.62.1': - resolution: {integrity: sha512-dgU65imBSeB8+QfHkN68j7Xqd/d6wsF42itJ0AeRSdgnCHgTWdN9rRCK5EDbNkJue51oMkdsnJ7XG1k+oCgiAg==} - - '@zag-js/select@0.74.2': - resolution: {integrity: sha512-Xl3CV1ONpQG3Ah0sriiuCFHXuiuzYz9KQkmEapcE+O5kzLADheIvgFRQYiMdLCltEfSBSBJvPrRM08aGyQgSpw==} - - '@zag-js/signature-pad@0.62.1': - resolution: {integrity: sha512-hWZSWT9J9V1kbImkj8qXHCqS0TYm7nms9oAhcQ2QNIiGO38wqW8Yswos8sqAj8VtzHxkSMIeL1by7Zgy3Xjq9g==} + '@zag-js/rect-utils@0.82.2': + resolution: {integrity: sha512-cmjxI+90La4Kz4CeGAN7EJ6wFbPEjZArnvU7TeUA+FrgRQvotjFrzI4zZ20BTgnlgMH7ahVNFO2qsVp+kcc2LQ==} - '@zag-js/signature-pad@0.74.2': - resolution: {integrity: sha512-Ba5v3J/fQWVR81wvhHAfwbCjqJlv/15If0SCbKiTA879I5s9dZVYAkvibeGlIEK46SEKbeUpAewE/+eGgrrE6A==} + '@zag-js/remove-scroll@0.82.2': + resolution: {integrity: sha512-v6ELaC9+sC+YoAkFjOBabjsXAoQgQA5secFDWWjzSVROWynH1mKNbBxakGCqEKtF67ZGbkAy+ysAZJoOkDsW4g==} - '@zag-js/slider@0.62.1': - resolution: {integrity: sha512-v5rgPJF3fh7bBPu0wzEGpN4EcXpK5cSw4OAwxatmbtkYsg2Udwv6WL26CB5Q2zVwYIR6R532b/bjFqicfVs+SA==} + '@zag-js/scroll-snap@0.82.2': + resolution: {integrity: sha512-Fl+utIAJr6nwNDnIML2jGIDRiFrDsQS77soGt8rT9Bj5swqdHpzwdTW3yu/VYlnPbvfrsB7SmMt1HzldukdOHQ==} - '@zag-js/slider@0.74.2': - resolution: {integrity: sha512-aDuzKySgFOm/D0opDyQOo2KMWFN9ZHuF50rG5cfIgl9dzo447iJfLzObcpAwNpQJq5P7/q+23K+sh+/NRGoUbw==} + '@zag-js/select@0.82.2': + resolution: {integrity: sha512-2aiXx/3PKc6vexloHj6GYndAbnPoe5W5mH2VSHM25Obu0XYkn28OLKTDIyHlqcycypVci2j5MnhCEkqQK/JKuw==} - '@zag-js/splitter@0.62.1': - resolution: {integrity: sha512-Ni93ZaprnbctAsbuot8sEw9DDfNMgkelnd5xQfAiwpgjwUgnY8733LRbWydC5OUPoJ/cCs3XiNKa0CHwclcq6Q==} + '@zag-js/signature-pad@0.82.2': + resolution: {integrity: sha512-o44M7B+cKmmiKmNFEIVTufr59jqvFShLri/EmkS1fY3KMSrnMHWNoa6xbJlVpz4DJMwI8PxapoN+lYxMTYUUEQ==} - '@zag-js/splitter@0.74.2': - resolution: {integrity: sha512-2PHBD4Y8h4ZcVphMWSDP6EsSamLYburQDDgJTSN5npcWsLu4iZ45T1U8bV0uICs+UJP9fko4YvjABrPv42asLQ==} + '@zag-js/slider@0.82.2': + resolution: {integrity: sha512-ef059F+zWcYVjX3lxTDgb2KEcYNrLMrvJEFyaVg11wRLtwjRqVrjFxn9W/ZpR6pWnJol2D+BV8b478NmTpRwog==} - '@zag-js/steps@0.74.2': - resolution: {integrity: sha512-UTf5SIvfIfuAuGxRZLi5zDN3LGWQp2jdycS9JnKwL+KJKeHPmTu4OtXbRc2c4lEO0z1T9sVOHB0GPwBGK4+c3Q==} + '@zag-js/splitter@0.82.2': + resolution: {integrity: sha512-36KJkdjtogjG0MTXbcf5b8Ienl02KFoKPPx96uOwlWdvbuypwww6z9kAsWQ+CGkpaKXqxZIweO7BCO4seVCwuQ==} - '@zag-js/store@0.62.1': - resolution: {integrity: sha512-0xkz7b/Rs9cHeI5CB3UH4yMlVzys3l+IsJU3KRWZwqWohDjTEqRyzcuFD6AH28WAcJPjIgOQYnRYzYSoMGZtDQ==} + '@zag-js/steps@0.82.2': + resolution: {integrity: sha512-otREJYUKLY+Dku89fCJ5TzkMHxe1Nk4Y5jffyWWOHkf+xy50Ist6jWjGxdIcU2cUwomAJZvPIuz0bq6WjBZ+zg==} - '@zag-js/store@0.74.2': - resolution: {integrity: sha512-LXCSyIVf6G4SvoPojNxOUiK45Lg1Qo/I8NCIoWAgSh6WgthuyEP05oLlW0OdvfHWLsnSwUjJmfuoRQAQNS3M8Q==} + '@zag-js/store@0.82.2': + resolution: {integrity: sha512-tjG99kSFfnUHWMTe3y+CAqCrH/RGCB2V5y0BoasITYAqTpqbCfPJH0R2+UYsY3kLqPnE+JDkkh1TnwcqKLc0/w==} - '@zag-js/switch@0.62.1': - resolution: {integrity: sha512-uh0yy3NuZqHF+jPVZ2oMcAtPx32eTnBebiROBGBDgj1A5yZBirfQm8j/vZLSILhDq9TdktHS9/gITJ7TvgV4cQ==} + '@zag-js/switch@0.82.2': + resolution: {integrity: sha512-sUZTcHN1+UxtU7cv+kRaz31OVrNdBqR3BC4bqWkjz/ihshAdzHquwKDkOtYiKjIGV9h8CwcuuCksrbwqCJ3apw==} - '@zag-js/switch@0.74.2': - resolution: {integrity: sha512-I5OTZ26Rp3ADySnzpIlI47+BiUAhSIXLMpQQ/T2XCpF9hsrxmAwmpyyJ+48L7aLHtzeEusBOATU+CWMEgycRPQ==} + '@zag-js/tabs@0.82.2': + resolution: {integrity: sha512-8y4eYpu4oZlANehMavGqu4bG5fepgjGuPDZNeNHzwWnbCh1TjoKJ20HvluRRzOgKoErQqD9+WT3V4Khw8Sd62Q==} - '@zag-js/tabs@0.62.1': - resolution: {integrity: sha512-BpY6oA2nmZLpYu8nQrpi+zTF4txTiMYIMB31CmbFmbJ3hMVkEqk8sgNzNQY3LrzkkSemDRBHxPZ5H+YKaQrEdg==} + '@zag-js/tags-input@0.82.2': + resolution: {integrity: sha512-L9bXHImBs+F0nlWbM6TeUZFN3ur/vwGGbT0sFw9FtsL/+5XmTQfZ5wert3l/qeUE1RJrohFBxsVvq4hz6UYUCw==} - '@zag-js/tabs@0.74.2': - resolution: {integrity: sha512-e/xkk4aihOikJsw47Q8nwAm/vUlfgXkkGxydquZg4Z42EDNYt5XcxPpIW+7gbzK+ergDYN7JyHQ4+sIRRPA/jg==} - - '@zag-js/tags-input@0.62.1': - resolution: {integrity: sha512-8gJ4ckQQ0BB3oUGgIEGkmB6wIKSf7xx0q6e3tqTbfZnPhmWP4hpli38XAOYjsBQyNXmQW89H/Rp8/8W1A/Vpow==} - - '@zag-js/tags-input@0.74.2': - resolution: {integrity: sha512-bE1Z2dANz7f734AuX2b4RtGk6/L8Nf44Q1wxCZ++3CLYV6EBBBDb2kNWr/Pz23md58ve+AcFcd/pzKtoXfWcdw==} - - '@zag-js/text-selection@0.62.1': - resolution: {integrity: sha512-0b049CnWN/Nyp/F/nbeU6G8BI/fzwlSQTTDWK81yRFADDFTZ2mWpVAWJF/fY0rKjsn4ucDykCS7GXMIo5rYILQ==} - - '@zag-js/text-selection@0.74.2': - resolution: {integrity: sha512-c7fLss1VyFnQzs5f5HNMD3qyJczH+SNzOgqMwU6apKpgYRLMMI0S4F03I/cyDQrCPZMcy6F/bl6zlQmdqb6WLQ==} - - '@zag-js/time-picker@0.62.1': - resolution: {integrity: sha512-THNASHp9Fu5f4/LC3t3qJfsYD6FqjhbP7HrjIDDFOcdNGRzOTfbEpKF3JtJgmM6F+/fuQKhe6FUbcluMd9zo8Q==} - - '@zag-js/time-picker@0.74.2': - resolution: {integrity: sha512-VSsIQ+RUKo1hC+ip2Hq2jsiBTZNV+cuRntGXvVFegI1VG8W2ug6CtW5ilfxcQte8dfn1s6g2F4TY0g79F7svgA==} + '@zag-js/time-picker@0.82.2': + resolution: {integrity: sha512-NIJUrZMrLH6ciphwsmVsqMGyNEw6qtYlI3F6tlPLhVvnXJDcvc0PaGMe5OBM3yKFluQaVWUIVAR84urdhCBbpg==} peerDependencies: '@internationalized/date': '>=3.0.0' - '@zag-js/timer@0.74.2': - resolution: {integrity: sha512-T8JGTNd9tJXUZqerBSDVsv1upD0vpccZqXZthpl8u4KFXj8vR/CZ9fW00linc+tR9XdxvBbkxk3EW/BPbNvoDw==} - - '@zag-js/toast@0.62.1': - resolution: {integrity: sha512-Kb+OiFx7KUG0fAExIL06xWEfhxeMRJACvP6q4B4FNuFX+6N06RbV/PZtLbPbffOodd7VhSk1W37T7t6Np32mvg==} - - '@zag-js/toast@0.74.2': - resolution: {integrity: sha512-Xt4F1BxP0U15WoNx73gIpnFRkCB3/dRkA5zQPECzR/U2drN2JAoCdb9wNQjxmR/6DWkT4PuCeWliUcskHDY8Wg==} + '@zag-js/timer@0.82.2': + resolution: {integrity: sha512-lpCgHcSL4FNRb+UwlLu/J70iEr0vb2Dybwu39NkzxRi8LuBJGxrXGlTG8Apn2nldf7HHsSLT6cF7Nr0NohQa+Q==} - '@zag-js/toggle-group@0.62.1': - resolution: {integrity: sha512-h7jQtWJt11uws6IYBd3kQzOyOemtZ5CqR7lt4XZdni3J1EtymKRJNha2JIukIETZS9/0VU1fPcuDkQeCXcGHgQ==} + '@zag-js/toast@0.82.2': + resolution: {integrity: sha512-jAPzB4hxq90DmsvcuHepqzl/YMTnQQivkA7WG03hq/C5bAoPhpIvLauCTKiVW9SjgGfaTM6wuOQmMQEYiIe/rQ==} - '@zag-js/toggle-group@0.74.2': - resolution: {integrity: sha512-4wAsl33rP/LQq052sE+UYn0tfiJtZeINishI+0xrWc7iQY61F6l6UtZUR4I/NT3sa8XV2xSgunVPP4dVN0JlpA==} + '@zag-js/toggle-group@0.82.2': + resolution: {integrity: sha512-aJKP96iwDw/2Z98VWT40ii6CHTSrrvfsGJ03+dE8Mio6a43wiFKhatGLFIMTcu1EExiBmTAec4uUm4A1Xzbu1w==} - '@zag-js/tooltip@0.62.1': - resolution: {integrity: sha512-318EJU6B4FR0nMNU79qMAgdOiVM6vbDiRWBHjGLDBK3z5No3lKfo4TZb/NqBmmi2W7ZFPiPwvLFsTql+H0xDbA==} + '@zag-js/tooltip@0.82.2': + resolution: {integrity: sha512-s7kXaBR3Ehu7kPzr9xX7FoWlqQ76eEViqGS1RPDtdDVgD1Hg7bfjZ1nCWDKgIuZF7gP/Iq4iC1i5iTOBIdeIOQ==} - '@zag-js/tooltip@0.74.2': - resolution: {integrity: sha512-lHs7dp1wUK4B+iY227ZfsQelVcRrad7ZVAh27ZzRdCkUE7KMi8ev45YudbnSM3ltCMGe6F+it7jWcalccFad4w==} + '@zag-js/tour@0.82.2': + resolution: {integrity: sha512-oQyVXSJIw7PeXRnHypI+zKp0mHm8oNiVzgcYBIASk/E9JU0U+DGXh8vRdvzsrQlZD+AKT2rjv1v8xvbVUEngSw==} - '@zag-js/tree-view@0.62.1': - resolution: {integrity: sha512-Y7qj16X18uElsD5jA9l03+rKEg1/5JIGRutO+NlEbs9Ffb7y34vqcEWquA+YgDfqXVWk2b5v9xcU1iKuKhOagQ==} + '@zag-js/tree-view@0.82.2': + resolution: {integrity: sha512-7+05aXig4mlISMZ+eKJpi3p+9r9u+h0S5Mvsw2o5Dz7XX/BfPTK8GEEDFWwuJKm03wNBuKCQ8+X1pxUisZqXVQ==} - '@zag-js/tree-view@0.74.2': - resolution: {integrity: sha512-oLizz/iU5xj3KCIy/oADAIhs2NjLl3LawYYktD8k02JF2XRPi8bDnRF96E0YPeLOnf5XdEEXmDD2A1l+gWrReg==} + '@zag-js/types@0.82.2': + resolution: {integrity: sha512-OUN4QropdK3XZcjtm4n5JVMhbgp78F3pavLDvWCcwW0QwtckJljX6E17N9ViajVti8itKKXCuNRHCMhqLT8jwQ==} - '@zag-js/types@0.62.1': - resolution: {integrity: sha512-wjJvasoxg/rsFhMTaGLJEjYnSGaXz7DymtO+wWOIfa+O6y44flHc8wRQ1l6ZRRetCz4RALTuwhZI+0ESZ1Bpwg==} + '@zag-js/utils@0.82.2': + resolution: {integrity: sha512-tN87VEEoo240O2CzQdHvtBVPF8hHqLdpNzDT+obNIQrRj4wbNQ5Ze3Zwrd6/SoBe7ImKgkwbAlgu4k5+v9sDcA==} - '@zag-js/types@0.74.2': - resolution: {integrity: sha512-UYdHh5Jj2LZZwP8Amm9YEoj9f/zYNWuuw+HRGCLZew6moHvKj/HHKJHLooPPjGztFIeRsnicE1mJ9E2bDllBaw==} - - '@zag-js/utils@0.62.1': - resolution: {integrity: sha512-90sk7Li2mqoMCAfZbns1xrySEg4PIFPwLpiRO/T2kvKpc9z/qsq2WqDFpS8eqHfYRmkLnmQa0Bw1LzItYYsGVQ==} - - '@zag-js/utils@0.74.2': - resolution: {integrity: sha512-WtIsNyDvnslCjtIIP/bRzx3bJMaT0cIgI3f+TgiFWhtQMlUZMpBkwkKVfvUwI5qcZ+ZOMeoonAWFqFECCb3h3g==} - - JSONStream@1.3.5: - resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} - hasBin: true - - acorn-walk@8.3.2: - resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} - engines: {node: '>=0.4.0'} - - acorn@8.11.2: - resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} + acorn@8.14.1: + resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==} engines: {node: '>=0.4.0'} hasBin: true - add-stream@1.0.0: - resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==} - - agent-base@7.1.0: - resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} + agent-base@7.1.3: + resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} engines: {node: '>= 14'} ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} engines: {node: '>=12'} - ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} @@ -1988,21 +1839,18 @@ packages: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} - antd@5.22.5: - resolution: {integrity: sha512-+0UP8w+ULVv2OIzCDVz7j6I0UfH6mMLHSWO6qzpBc+9psOoVQLRbyAE21XnZM/eGrt2MNsEDL5fmlhXL/V8JyQ==} + antd@5.24.4: + resolution: {integrity: sha512-s89666DcoWeekJFaIqbtz2vRlIvgPR28GuDYYGUpW1mVP08bV7HZAPBH5lFJKYNGKrN3dHbZGgRK5aNRD2iPHg==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - aria-hidden@1.2.4: - resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==} - engines: {node: '>=10'} - aria-query@5.1.3: resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} - array-buffer-byte-length@1.0.0: - resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + array-buffer-byte-length@1.0.2: + resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} + engines: {node: '>= 0.4'} array-ify@1.0.0: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} @@ -2010,11 +1858,15 @@ packages: assertion-error@1.1.0: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} + asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - available-typed-arrays@1.0.5: - resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} babel-plugin-macros@3.1.0: @@ -2027,17 +1879,12 @@ packages: brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.22.2: - resolution: {integrity: sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - browserslist@4.23.3: - resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==} + browserslist@4.24.4: + resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -2048,8 +1895,17 @@ packages: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} - call-bind@1.0.5: - resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} + + call-bind@1.0.8: + resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} + engines: {node: '>= 0.4'} + + call-bound@1.0.4: + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} + engines: {node: '>= 0.4'} callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} @@ -2058,19 +1914,16 @@ packages: camelize@1.0.1: resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} - caniuse-lite@1.0.30001571: - resolution: {integrity: sha512-tYq/6MoXhdezDLFZuCO/TKboTzuQ/xR5cFdgXPfDtM7/kchBO3b4VWghE/OAi/DV7tTdhmLjZiZBZi1fA/GheQ==} - - caniuse-lite@1.0.30001651: - resolution: {integrity: sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==} + caniuse-lite@1.0.30001706: + resolution: {integrity: sha512-3ZczoTApMAZwPKYWmwVbQMFpXBDds3/0VciVoUwPUbldlYyVLmRVuRs/PcUZtHpbLRpzzDvrvnFuREsGt6lUug==} - chai@4.3.10: - resolution: {integrity: sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==} + chai@4.5.0: + resolution: {integrity: sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==} engines: {node: '>=4'} - chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} + chai@5.2.0: + resolution: {integrity: sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==} + engines: {node: '>=12'} chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} @@ -2079,22 +1932,20 @@ packages: check-error@1.0.3: resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + check-error@2.1.1: + resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} + engines: {node: '>= 16'} + classnames@2.5.1: resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} client-only@0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} - color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} - color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} @@ -2109,69 +1960,34 @@ packages: compare-func@2.0.0: resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} - compute-scroll-into-view@3.1.0: - resolution: {integrity: sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg==} - - conventional-changelog-angular@7.0.0: - resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==} - engines: {node: '>=16'} - - conventional-changelog-atom@4.0.0: - resolution: {integrity: sha512-q2YtiN7rnT1TGwPTwjjBSIPIzDJCRE+XAUahWxnh+buKK99Kks4WLMHoexw38GXx9OUxAsrp44f9qXe5VEMYhw==} - engines: {node: '>=16'} - - conventional-changelog-codemirror@4.0.0: - resolution: {integrity: sha512-hQSojc/5imn1GJK3A75m9hEZZhc3urojA5gMpnar4JHmgLnuM3CUIARPpEk86glEKr3c54Po3WV/vCaO/U8g3Q==} - engines: {node: '>=16'} - - conventional-changelog-conventionalcommits@7.0.2: - resolution: {integrity: sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==} - engines: {node: '>=16'} - - conventional-changelog-core@7.0.0: - resolution: {integrity: sha512-UYgaB1F/COt7VFjlYKVE/9tTzfU3VUq47r6iWf6lM5T7TlOxr0thI63ojQueRLIpVbrtHK4Ffw+yQGduw2Bhdg==} - engines: {node: '>=16'} - - conventional-changelog-ember@4.0.0: - resolution: {integrity: sha512-D0IMhwcJUg1Y8FSry6XAplEJcljkHVlvAZddhhsdbL1rbsqRsMfGx/PIkPYq0ru5aDgn+OxhQ5N5yR7P9mfsvA==} - engines: {node: '>=16'} - - conventional-changelog-eslint@5.0.0: - resolution: {integrity: sha512-6JtLWqAQIeJLn/OzUlYmzd9fKeNSWmQVim9kql+v4GrZwLx807kAJl3IJVc3jTYfVKWLxhC3BGUxYiuVEcVjgA==} - engines: {node: '>=16'} - - conventional-changelog-express@4.0.0: - resolution: {integrity: sha512-yWyy5c7raP9v7aTvPAWzqrztACNO9+FEI1FSYh7UP7YT1AkWgv5UspUeB5v3Ibv4/o60zj2o9GF2tqKQ99lIsw==} - engines: {node: '>=16'} - - conventional-changelog-jquery@5.0.0: - resolution: {integrity: sha512-slLjlXLRNa/icMI3+uGLQbtrgEny3RgITeCxevJB+p05ExiTgHACP5p3XiMKzjBn80n+Rzr83XMYfRInEtCPPw==} - engines: {node: '>=16'} + compute-scroll-into-view@3.1.1: + resolution: {integrity: sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==} - conventional-changelog-jshint@4.0.0: - resolution: {integrity: sha512-LyXq1bbl0yG0Ai1SbLxIk8ZxUOe3AjnlwE6sVRQmMgetBk+4gY9EO3d00zlEt8Y8gwsITytDnPORl8al7InTjg==} - engines: {node: '>=16'} + conventional-changelog-angular@8.0.0: + resolution: {integrity: sha512-CLf+zr6St0wIxos4bmaKHRXWAcsCXrJU6F4VdNDrGRK3B8LDLKoX3zuMV5GhtbGkVR/LohZ6MT6im43vZLSjmA==} + engines: {node: '>=18'} - conventional-changelog-preset-loader@4.1.0: - resolution: {integrity: sha512-HozQjJicZTuRhCRTq4rZbefaiCzRM2pr6u2NL3XhrmQm4RMnDXfESU6JKu/pnKwx5xtdkYfNCsbhN5exhiKGJA==} - engines: {node: '>=16'} + conventional-changelog-preset-loader@5.0.0: + resolution: {integrity: sha512-SetDSntXLk8Jh1NOAl1Gu5uLiCNSYenB5tm0YVeZKePRIgDW9lQImromTwLa3c/Gae298tsgOM+/CYT9XAl0NA==} + engines: {node: '>=18'} - conventional-changelog-writer@7.0.1: - resolution: {integrity: sha512-Uo+R9neH3r/foIvQ0MKcsXkX642hdm9odUp7TqgFS7BsalTcjzRlIfWZrZR1gbxOozKucaKt5KAbjW8J8xRSmA==} - engines: {node: '>=16'} + conventional-changelog-writer@8.1.0: + resolution: {integrity: sha512-dpC440QnORNCO81XYuRRFOLCsjKj4W7tMkUIn3lR6F/FAaJcWLi7iCj6IcEvSQY2zw6VUgwUKd5DEHKEWrpmEQ==} + engines: {node: '>=18'} hasBin: true - conventional-changelog@5.1.0: - resolution: {integrity: sha512-aWyE/P39wGYRPllcCEZDxTVEmhyLzTc9XA6z6rVfkuCD2UBnhV/sgSOKbQrEG5z9mEZJjnopjgQooTKxEg8mAg==} - engines: {node: '>=16'} + conventional-changelog@7.0.2: + resolution: {integrity: sha512-dz38xbKg2Nzd2zoPY1PXPq7skbN1tdx402OkcirIE44LetmoWODmt4h/6AwtQb6+ZHjbmMfW6Jxt4dyGt5P8cw==} + engines: {node: '>=18'} + hasBin: true - conventional-commits-filter@4.0.0: - resolution: {integrity: sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A==} - engines: {node: '>=16'} + conventional-commits-filter@5.0.0: + resolution: {integrity: sha512-tQMagCOC59EVgNZcC5zl7XqO30Wki9i9J3acbUvkaosCT6JX3EeFwJD7Qqp4MCikRnzS18WXV3BLIQ66ytu6+Q==} + engines: {node: '>=18'} - conventional-commits-parser@5.0.0: - resolution: {integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==} - engines: {node: '>=16'} + conventional-commits-parser@6.2.0: + resolution: {integrity: sha512-uLnoLeIW4XaoFtH37qEcg/SXMJmKF4vi7V0H2rnPueg+VEtFGA/asSCNTcq4M/GQ6QmlzchAEtOoDTtKqWeHag==} + engines: {node: '>=18'} hasBin: true convert-source-map@1.9.0: @@ -2187,8 +2003,8 @@ packages: resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} engines: {node: '>=10'} - cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} css-color-keywords@1.0.0: @@ -2198,20 +2014,13 @@ packages: css-to-react-native@3.2.0: resolution: {integrity: sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==} - cssstyle@4.0.1: - resolution: {integrity: sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==} + cssstyle@4.3.0: + resolution: {integrity: sha512-6r0NiY0xizYqfBvWp1G7WXJ06/bZyrk7Dc6PHql82C/pKGUTKu4yAX4Y8JPamb1ob9nBKuxWzCGTRuGwU3yxJQ==} engines: {node: '>=18'} - csstype@3.1.2: - resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} - csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - dargs@8.1.0: - resolution: {integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==} - engines: {node: '>=12'} - data-uri-to-buffer@4.0.1: resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} engines: {node: '>= 12'} @@ -2223,8 +2032,8 @@ packages: dayjs@1.11.13: resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} - debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + debug@4.4.1: + resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -2232,19 +2041,23 @@ packages: supports-color: optional: true - decimal.js@10.4.3: - resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + decimal.js@10.5.0: + resolution: {integrity: sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==} - deep-eql@4.1.3: - resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + deep-eql@4.1.4: + resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} + engines: {node: '>=6'} + + deep-eql@5.0.2: + resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} engines: {node: '>=6'} deep-equal@2.2.3: resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} engines: {node: '>= 0.4'} - define-data-property@1.1.1: - resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} define-properties@1.2.1: @@ -2255,12 +2068,8 @@ packages: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} - devalue@4.3.2: - resolution: {integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==} - - diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + devalue@4.3.3: + resolution: {integrity: sha512-UH8EL6H2ifcY8TbD2QsxwCC/pr5xSwPvv85LrLXVihmHVC3T3YqTCIwnR5ak0yO1KYqlxrPVOA/JVZJYPy2ATg==} dom-accessibility-api@0.5.16: resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} @@ -2269,14 +2078,15 @@ packages: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} engines: {node: '>=8'} + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - electron-to-chromium@1.4.616: - resolution: {integrity: sha512-1n7zWYh8eS0L9Uy+GskE0lkBUNK83cXTVJI0pU3mGprFsbfSdAc15VTFbo+A+Bq4pwstmL30AVcEU3Fo463lNg==} - - electron-to-chromium@1.5.5: - resolution: {integrity: sha512-QR7/A7ZkMS8tZuoftC/jfqNkZLQO779SSW3YuZHP4eXpj3EffGLFcB/Xu9AAZQzLccTiCV+EmUo3ha4mQ9wnlA==} + electron-to-chromium@1.5.123: + resolution: {integrity: sha512-refir3NlutEZqlKaBLK0tzlVLe5P2wDKS7UQt/3SpibizgsRAPOsqQC3ffw1nlv3ze5gjRQZYHoPymgVZkplFA==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -2291,34 +2101,42 @@ packages: error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + es-get-iterator@1.1.3: resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} - es-module-lexer@1.4.1: - resolution: {integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==} + es-module-lexer@1.7.0: + resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} - esbuild@0.16.17: - resolution: {integrity: sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==} - engines: {node: '>=12'} - hasBin: true + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + engines: {node: '>= 0.4'} - esbuild@0.21.5: - resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} - engines: {node: '>=12'} + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} + engines: {node: '>= 0.4'} + + esbuild@0.23.1: + resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} + engines: {node: '>=18'} hasBin: true - escalade@3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} - engines: {node: '>=6'} + esbuild@0.25.1: + resolution: {integrity: sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==} + engines: {node: '>=18'} + hasBin: true - escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} - escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} @@ -2330,47 +2148,53 @@ packages: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} - execa@8.0.1: - resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} - engines: {node: '>=16.17'} + expect-type@1.2.1: + resolution: {integrity: sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw==} + engines: {node: '>=12.0.0'} - fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} - fastq@1.15.0: - resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + fast-safe-stringify@2.1.1: + resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + + fastq@1.19.1: + resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} + + fd-package-json@1.2.0: + resolution: {integrity: sha512-45LSPmWf+gC5tdCQMNH4s9Sr00bIkiD9aN7dc5hqkrEw1geRYyDQS1v1oMHAW3ysfxfndqGsrDREHHjNNbKUfA==} + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true fetch-blob@3.2.0: resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} engines: {node: ^12.20 || >= 14.13} - fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} find-root@1.1.0: resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} - find-up@6.3.0: - resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - focus-trap@7.5.4: - resolution: {integrity: sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==} - - focus-trap@7.6.0: - resolution: {integrity: sha512-1td0l3pMkWJLFipobUcGaf+5DTY4PLDDrcqoSaKP8ediO/CoWCCYk/fT/Y2A4e6TNB+Sh6clRJCjOPPnKoNHnQ==} - - for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + for-each@0.3.5: + resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} + engines: {node: '>= 0.4'} - foreground-child@3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + foreground-child@3.3.1: + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} engines: {node: '>=14'} - form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + form-data@4.0.2: + resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==} engines: {node: '>= 6'} formdata-polyfill@4.0.10: @@ -2400,42 +2224,29 @@ packages: get-func-name@2.0.2: resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} - get-intrinsic@1.2.2: - resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} + + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} - get-stream@8.0.1: - resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} - engines: {node: '>=16'} - - git-raw-commits@4.0.0: - resolution: {integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==} - engines: {node: '>=16'} - hasBin: true - - git-semver-tags@7.0.1: - resolution: {integrity: sha512-NY0ZHjJzyyNXHTDZmj+GG7PyuAKtMsyWSwh07CR2hOZFa+/yoTsXci/nF2obzL8UDhakFNkD9gNdt/Ed+cxh2Q==} - engines: {node: '>=16'} - hasBin: true - glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} - glob@10.3.12: - resolution: {integrity: sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==} - engines: {node: '>=16 || 14 >=14.17'} + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true - globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - - gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} graphql-tag@2.12.6: resolution: {integrity: sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==} @@ -2443,8 +2254,8 @@ packages: peerDependencies: graphql: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - graphql@16.9.0: - resolution: {integrity: sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==} + graphql@16.10.0: + resolution: {integrity: sha512-AjqGKbDGUFRKIRCP9tCKiIGHyriz2oHEbPIbEtcSLSs4YjReZOIPQQWek4+6hjw62H9QShXHyaGivGiYVLeYFQ==} engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} handlebars@4.7.8: @@ -2452,101 +2263,96 @@ packages: engines: {node: '>=0.4.7'} hasBin: true - has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} - - has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} + has-bigints@1.1.0: + resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} + engines: {node: '>= 0.4'} has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - has-property-descriptors@1.0.1: - resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} - - has-proto@1.0.1: - resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} - engines: {node: '>= 0.4'} + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} engines: {node: '>= 0.4'} - has-tostringtag@1.0.0: - resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} - hasown@2.0.0: - resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} hoist-non-react-statics@3.3.2: resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} - hosted-git-info@7.0.1: - resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==} - engines: {node: ^16.14.0 || >=18.0.0} + hosted-git-info@8.1.0: + resolution: {integrity: sha512-Rw/B2DNQaPBICNXEm8balFz9a6WpZrkCGpcWFpy7nCj+NyhSdqXipmfvtmWt9xGfp0wZnBxB+iVpLmQMYt47Tw==} + engines: {node: ^18.17.0 || >=20.5.0} html-encoding-sniffer@4.0.0: resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} engines: {node: '>=18'} - http-proxy-agent@7.0.0: - resolution: {integrity: sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==} + http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} - https-proxy-agent@7.0.2: - resolution: {integrity: sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==} + https-proxy-agent@7.0.6: + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} - human-signals@5.0.0: - resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} - engines: {node: '>=16.17.0'} - iconv-lite@0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} - import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + immer@10.1.3: + resolution: {integrity: sha512-tmjF/k8QDKydUlm3mZU+tjM6zeq9/fFpPqH9SzWmBnVVKsPBg/V66qsMwb3/Bo90cgUN+ghdVBess+hPsxUyRw==} + + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} - internal-slot@1.0.6: - resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} + internal-slot@1.1.0: + resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} - is-arguments@1.1.1: - resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + is-arguments@1.2.0: + resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==} engines: {node: '>= 0.4'} - is-array-buffer@3.0.2: - resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + is-array-buffer@3.0.5: + resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} + engines: {node: '>= 0.4'} is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + is-bigint@1.1.0: + resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} + engines: {node: '>= 0.4'} - is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + is-boolean-object@1.2.2: + resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} engines: {node: '>= 0.4'} is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} + engines: {node: '>= 0.4'} - is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + is-date-object@1.1.0: + resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} engines: {node: '>= 0.4'} is-extglob@2.1.1: @@ -2561,11 +2367,12 @@ packages: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} - is-map@2.0.2: - resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} - is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + is-number-object@1.1.1: + resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} engines: {node: '>= 0.4'} is-number@7.0.0: @@ -2579,45 +2386,37 @@ packages: is-potential-custom-element-name@1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} - is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + is-regex@1.2.1: + resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} engines: {node: '>= 0.4'} - is-set@2.0.2: - resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} + is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} - is-shared-array-buffer@1.0.2: - resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + is-shared-array-buffer@1.0.4: + resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} + engines: {node: '>= 0.4'} is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} - is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + is-string@1.1.1: + resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} engines: {node: '>= 0.4'} - is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + is-symbol@1.1.1: + resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} engines: {node: '>= 0.4'} - is-text-path@2.0.0: - resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==} - engines: {node: '>=8'} - - is-typed-array@1.1.12: - resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} + is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} engines: {node: '>= 0.4'} - is-weakmap@2.0.1: - resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} - - is-weakset@2.0.2: - resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + is-weakset@2.0.4: + resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} + engines: {node: '>= 0.4'} isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} @@ -2629,15 +2428,17 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - jackspeak@2.3.6: - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} - engines: {node: '>=14'} + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - jsdom@24.0.0: - resolution: {integrity: sha512-UDS2NayCvmXSXVP6mpTj+73JnNQadZlr9N68189xib2tx5Mls7swlTNao26IoHv46BZJFvXygyRtyXd1feAk1A==} + js-tokens@9.0.1: + resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} + + jsdom@24.1.3: + resolution: {integrity: sha512-MyL55p3Ut3cXbeBEG7Hcv0mVM8pp8PBNWxRqchZnSfAiES1v1mRnMeFfaHWIPULpwsYfvO+ZmMZz5tGCnjzDUQ==} engines: {node: '>=18'} peerDependencies: canvas: ^2.11.2 @@ -2645,21 +2446,14 @@ packages: canvas: optional: true - jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} hasBin: true json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - json-parse-even-better-errors@3.0.0: - resolution: {integrity: sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - json-stringify-safe@5.0.1: - resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} - json2mq@0.2.0: resolution: {integrity: sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==} @@ -2668,32 +2462,9 @@ packages: engines: {node: '>=6'} hasBin: true - jsonc-parser@3.2.0: - resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} - - jsonparse@1.3.1: - resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} - engines: {'0': node >= 0.2.0} - - klona@2.0.6: - resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} - engines: {node: '>= 8'} - lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - lines-and-columns@2.0.4: - resolution: {integrity: sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - local-pkg@0.5.0: - resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} - engines: {node: '>=14'} - - locate-path@7.2.0: - resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true @@ -2701,9 +2472,11 @@ packages: loupe@2.3.7: resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} - lru-cache@10.2.2: - resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} - engines: {node: 14 || >=16.14} + loupe@3.1.4: + resolution: {integrity: sha512-wJzkKwJrheKtknCOKNEtDK4iqg/MxmZheEMtSTYvnzRdEYaZzmgH976nenp8WdJRdx5Vc1X/9MO0Oszl6ezeXg==} + + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -2712,13 +2485,16 @@ packages: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true - magic-string@0.30.5: - resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} - engines: {node: '>=12'} + magic-string@0.30.17: + resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} - meow@12.1.1: - resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} - engines: {node: '>=16.10'} + meow@13.2.0: + resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} + engines: {node: '>=18'} merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -2727,8 +2503,8 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} mime-db@1.52.0: @@ -2743,29 +2519,26 @@ packages: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} - mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} - - minimatch@9.0.4: - resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - minipass@7.1.0: - resolution: {integrity: sha512-oGZRv2OT1lO2UF1zUcwdTb3wqUwI0kBGTgt/T7OdSj6M6N5m3o5uPf0AIW6lVxGGoiWUR7e2AwTE+xiwK8WQig==} + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} - mlly@1.4.2: - resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} + mrmime@2.0.1: + resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} + engines: {node: '>=10'} - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true @@ -2774,83 +2547,56 @@ packages: node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} - engines: {node: '>=10.5.0'} - - node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true + engines: {node: '>=10.5.0'} + deprecated: Use your platform's native DOMException instead node-fetch@3.3.2: resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} - - node-releases@2.0.18: - resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + node-releases@2.0.19: + resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} - normalize-package-data@6.0.0: - resolution: {integrity: sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==} - engines: {node: ^16.14.0 || >=18.0.0} + normalize-package-data@7.0.0: + resolution: {integrity: sha512-k6U0gKRIuNCTkwHGZqblCfLfBRh+w1vI6tBo+IeJwq2M8FUiOqhX7GH+GArQGScA7azd1WfyRCvxoXDO3hQDIA==} + engines: {node: ^18.17.0 || >=20.5.0} npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} - npm-run-path@5.2.0: - resolution: {integrity: sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - nwsapi@2.2.7: - resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} + nwsapi@2.2.19: + resolution: {integrity: sha512-94bcyI3RsqiZufXjkr3ltkI86iEl+I7uiHVDtcq9wJUTwYQJ5odHDeSzkkrRzi80jJ8MaeZgqKjH1bAWAFw9bA==} object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + object-inspect@1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} + engines: {node: '>= 0.4'} - object-is@1.1.5: - resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} + object-is@1.1.6: + resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} engines: {node: '>= 0.4'} object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} - object.assign@4.1.5: - resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + object.assign@4.1.7: + resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} engines: {node: '>= 0.4'} onetime@5.1.2: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} - onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} - - optimism@0.18.0: - resolution: {integrity: sha512-tGn8+REwLRNFnb9WmcY5IfpOqeX2kpaYJ1s6Ae3mn12AeydLkR3j+jSCmVQFoXqU8D41PAJ1RG1rCRNWmNZVmQ==} - - p-limit@4.0.0: - resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - p-limit@5.0.0: - resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} - engines: {node: '>=18'} + optimism@0.18.1: + resolution: {integrity: sha512-mLXNwWPa9dgFyDqkNi54sjDyNJ9/fTI6WGBLgnXku1vdKY/jovHfZT5r+aiVeFFLOz+foPNOm5YJ4mqgld2GBQ==} - p-locate@6.0.0: - resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} @@ -2860,79 +2606,64 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} - parse-json@7.1.1: - resolution: {integrity: sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==} - engines: {node: '>=16'} - - parse5@7.1.2: - resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} - - path-exists@5.0.0: - resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + parse5@7.2.1: + resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==} path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} - path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} - path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-scurry@1.10.2: - resolution: {integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==} - engines: {node: '>=16 || 14 >=14.17'} + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} - pathe@1.1.1: - resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} pathval@1.1.1: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + pathval@2.0.1: + resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==} + engines: {node: '>= 14.16'} + perfect-freehand@1.2.2: resolution: {integrity: sha512-eh31l019WICQ03pkF3FSzHxB8n07ItqIQ++G5UV8JX0zVOXzgTGCqnRR0jJ2h9U8/2uW4W4mtGJELt9kEV0CFQ==} - picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - - picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} + pixelmatch@5.3.0: resolution: {integrity: sha512-o8mkY4E/+LNUf6LzX96ht6k6CEDi65k9G2rjMtBe9Oo+VPKSvl+0GKHuH/AlG+GA5LPG/i5hrekkxUc3s2HU+Q==} hasBin: true - pkg-types@1.0.3: - resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} - - playwright-chromium@1.42.1: - resolution: {integrity: sha512-VelpmKJ+3G3QlAFfA9JIuEYyU8b8vQrlIPY3tIaGv+adn7mem56SP04e+zMudcxisfOT3suQOSTD1qs6YErdDg==} - engines: {node: '>=16'} - hasBin: true - - playwright-core@1.42.1: - resolution: {integrity: sha512-mxz6zclokgrke9p1vtdy/COWBH+eOZgYUVVU34C73M+4j4HLlQJHtfcqiqqxpP0o8HhMkflvfbquLX5dg6wlfA==} - engines: {node: '>=16'} + playwright-chromium@1.51.1: + resolution: {integrity: sha512-IQpN8lgv/fx++WRxT8ITZylDwYAamd3Fv5H9g2AWsicp0N829L1oXHziK/6l9h/TMxioSTqc4ifPiZLS8nITxw==} + engines: {node: '>=18'} hasBin: true - playwright-core@1.45.0: - resolution: {integrity: sha512-lZmHlFQ0VYSpAs43dRq1/nJ9G/6SiTI7VPqidld9TDefL9tX87bTKExWZZUF5PeRyqtXqd8fQi2qmfIedkwsNQ==} + playwright-core@1.51.1: + resolution: {integrity: sha512-/crRMj8+j/Nq5s8QcvegseuyeZPxpQCZb6HNk3Sos3BlZyAknRjoyJPFWkpNn8v0+P3WiwqFF8P+zQo4eqiNuw==} engines: {node: '>=18'} hasBin: true - playwright@1.45.0: - resolution: {integrity: sha512-4z3ac3plDfYzGB6r0Q3LF8POPR20Z8D0aXcxbJvmfMgSSq1hkcgvFRXJk9rUq5H/MJ0Ktal869hhOdI/zUTeLA==} + playwright@1.51.1: + resolution: {integrity: sha512-kkx+MB2KQRkyxjYPc3a0wLZZoDczmppyGJIvQ43l+aZihkaVvmu/21kiyaHeHjiFxjxNNFnUncKmcGIyOojsaw==} engines: {node: '>=18'} hasBin: true @@ -2940,19 +2671,23 @@ packages: resolution: {integrity: sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg==} engines: {node: '>=12.13.0'} + possible-typed-array-names@1.1.0: + resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} + engines: {node: '>= 0.4'} + postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss@8.4.38: - resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} + postcss@8.4.49: + resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} engines: {node: ^10 || ^12 || >=14} - postcss@8.4.41: - resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==} + postcss@8.5.6: + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} engines: {node: ^10 || ^12 || >=14} - prettier@3.2.5: - resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} + prettier@3.5.3: + resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==} engines: {node: '>=14'} hasBin: true @@ -2960,21 +2695,17 @@ packages: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - proxy-compare@3.0.0: - resolution: {integrity: sha512-y44MCkgtZUCT9tZGuE278fB7PWVf7fRYy0vbRXAts2o5F0EfC4fIQrvQQGBJo1WJbFcVLXzApOscyJuZqHQc1w==} + proxy-compare@3.0.1: + resolution: {integrity: sha512-V9plBAt3qjMlS1+nC8771KNf6oJ12gExvaxnNzN/9yVRLdTv/lc+oJlnSzrdYDAvBfTStPCoiaCOTmTs0adv7Q==} proxy-memoize@3.0.1: resolution: {integrity: sha512-VDdG/VYtOgdGkWJx7y0o7p+zArSf2383Isci8C+BP3YXgMYDoPd3cCBjw0JdWb6YBb9sFiOPbAADDVTPJnh+9g==} - psl@1.9.0: - resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + psl@1.15.0: + resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} @@ -2986,14 +2717,14 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - rc-cascader@3.30.0: - resolution: {integrity: sha512-rrzSbk1Bdqbu+pDwiLCLHu72+lwX9BZ28+JKzoi0DWZ4N29QYFeip8Gctl33QVd2Xg3Rf14D3yAOG76ElJw16w==} + rc-cascader@3.33.1: + resolution: {integrity: sha512-Kyl4EJ7ZfCBuidmZVieegcbFw0RcU5bHHSbtEdmuLYd0fYHCAiYKZ6zon7fWAVyC6rWWOOib0XKdTSf7ElC9rg==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - rc-checkbox@3.3.0: - resolution: {integrity: sha512-Ih3ZaAcoAiFKJjifzwsGiT/f/quIkxJoklW4yKGho14Olulwn8gN7hOBve0/WGDg5o/l/5mL0w7ff7/YGvefVw==} + rc-checkbox@3.5.0: + resolution: {integrity: sha512-aOAQc3E98HteIIsSqm6Xk2FPKIER6+5vyEFMZfo73TqM+VVAIqOkHoPjgKLqSNtVLWScoaM7vY2ZrGEheI79yg==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' @@ -3029,32 +2760,32 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' - rc-image@7.11.0: - resolution: {integrity: sha512-aZkTEZXqeqfPZtnSdNUnKQA0N/3MbgR7nUnZ+/4MfSFWPFHZau4p5r5ShaI0KPEMnNjv4kijSCFq/9wtJpwykw==} + rc-image@7.11.1: + resolution: {integrity: sha512-XuoWx4KUXg7hNy5mRTy1i8c8p3K8boWg6UajbHpDXS5AlRVucNfTi5YxTtPBTBzegxAZpvuLfh3emXFt6ybUdA==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - rc-input-number@9.3.0: - resolution: {integrity: sha512-JQ363ywqRyxwgVxpg2z2kja3CehTpYdqR7emJ/6yJjRdbvo+RvfE83fcpBCIJRq3zLp8SakmEXq60qzWyZ7Usw==} + rc-input-number@9.4.0: + resolution: {integrity: sha512-Tiy4DcXcFXAf9wDhN8aUAyMeCLHJUHA/VA/t7Hj8ZEx5ETvxG7MArDOSE6psbiSCo+vJPm4E3fGN710ITVn6GA==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - rc-input@1.6.4: - resolution: {integrity: sha512-lBZhfRD4NSAUW0zOKLUeI6GJuXkxeZYi0hr8VcJgJpyTNOvHw1ysrKWAHcEOAAHj7guxgmWYSi6xWrEdfrSAsA==} + rc-input@1.7.3: + resolution: {integrity: sha512-A5w4egJq8+4JzlQ55FfQjDnPvOaAbzwC3VLOAdOytyek3TboSOP9qxN+Gifup+shVXfvecBLBbWBpWxmk02SWQ==} peerDependencies: react: '>=16.0.0' react-dom: '>=16.0.0' - rc-mentions@2.17.0: - resolution: {integrity: sha512-sfHy+qLvc+p8jx8GUsujZWXDOIlIimp6YQz7N5ONQ6bHsa2kyG+BLa5k2wuxgebBbH97is33wxiyq5UkiXRpHA==} + rc-mentions@2.19.1: + resolution: {integrity: sha512-KK3bAc/bPFI993J3necmaMXD2reZTzytZdlTvkeBbp50IGH1BDPDvxLdHDUrpQx2b2TGaVJsn+86BvYa03kGqA==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - rc-menu@9.16.0: - resolution: {integrity: sha512-vAL0yqPkmXWk3+YKRkmIR8TYj3RVdEt3ptG2jCJXWNAvQbT0VJJdRyHZ7kG/l1JsZlB+VJq/VcYOo69VR4oD+w==} + rc-menu@9.16.1: + resolution: {integrity: sha512-ghHx6/6Dvp+fw8CJhDUHFHDJ84hJE3BXNCzSgLdmNiFErWSOaZNsihDAsKq9ByTALo/xkNIwtDFGIl6r+RPXBg==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' @@ -3065,27 +2796,27 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' - rc-notification@5.6.2: - resolution: {integrity: sha512-Id4IYMoii3zzrG0lB0gD6dPgJx4Iu95Xu0BQrhHIbp7ZnAZbLqdqQ73aIWH0d0UFcElxwaKjnzNovTjo7kXz7g==} + rc-notification@5.6.3: + resolution: {integrity: sha512-42szwnn8VYQoT6GnjO00i1iwqV9D1TTMvxObWsuLwgl0TsOokzhkYiufdtQBsJMFjJravS1hfDKVMHLKLcPE4g==} engines: {node: '>=8.x'} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - rc-overflow@1.3.2: - resolution: {integrity: sha512-nsUm78jkYAoPygDAcGZeC2VwIg/IBGSodtOY3pMof4W3M9qRJgqaDYm03ZayHlde3I6ipliAxbN0RUcGf5KOzw==} + rc-overflow@1.4.1: + resolution: {integrity: sha512-3MoPQQPV1uKyOMVNd6SZfONi+f3st0r8PksexIdBTeIYbMX0Jr+k7pHEDvsXtR4BpCv90/Pv2MovVNhktKrwvw==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - rc-pagination@5.0.0: - resolution: {integrity: sha512-QjrPvbAQwps93iluvFM62AEYglGYhWW2q/nliQqmvkTi4PXP4HHoh00iC1Sa5LLVmtWQHmG73fBi2x6H6vFHRg==} + rc-pagination@5.1.0: + resolution: {integrity: sha512-8416Yip/+eclTFdHXLKTxZvn70duYVGTvUUWbckCCZoIl3jagqke3GLsFrMs0bsQBikiYpZLD9206Ej4SOdOXQ==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - rc-picker@4.8.3: - resolution: {integrity: sha512-hJ45qoEs4mfxXPAJdp1n3sKwADul874Cd0/HwnsEOE60H+tgiJUGgbOD62As3EG/rFVNS5AWRfBCDJJfmRqOVQ==} + rc-picker@4.11.3: + resolution: {integrity: sha512-MJ5teb7FlNE0NFHTncxXQ62Y5lytq6sh5nUw0iH8OkHL/TjARSEvSHpr940pWgjGANpjCwyMdvsEV55l5tYNSg==} engines: {node: '>=8.x'} peerDependencies: date-fns: '>= 2.x' @@ -3110,8 +2841,8 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' - rc-rate@2.13.0: - resolution: {integrity: sha512-oxvx1Q5k5wD30sjN5tqAyWTvJfLNNJn7Oq3IeS4HxWfAiC4BOXMITNAsw7u/fzdtO4MS8Ki8uRLOzcnEuoQiAw==} + rc-rate@2.13.1: + resolution: {integrity: sha512-QUhQ9ivQ8Gy7mtMZPAjLbxBt5y9GRp65VcUyGUMF3N3fhiftivPHdpuDIaWIMOTEprAjZPC08bls1dQB+I1F2Q==} engines: {node: '>=8.x'} peerDependencies: react: '>=16.9.0' @@ -3123,21 +2854,21 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' - rc-segmented@2.5.0: - resolution: {integrity: sha512-B28Fe3J9iUFOhFJET3RoXAPFJ2u47QvLSYcZWC4tFYNGPEjug5LAxEasZlA/PpAxhdOPqGWsGbSj7ftneukJnw==} + rc-segmented@2.7.0: + resolution: {integrity: sha512-liijAjXz+KnTRVnxxXG2sYDGd6iLL7VpGGdR8gwoxAXy2KglviKCxLWZdjKYJzYzGSUwKDSTdYk8brj54Bn5BA==} peerDependencies: react: '>=16.0.0' react-dom: '>=16.0.0' - rc-select@14.16.4: - resolution: {integrity: sha512-jP6qf7+vjnxGvPpfPWbGYfFlSl3h8L2XcD4O7g2GYXmEeBC0mw+nPD7i++OOE8v3YGqP8xtYjRKAWCMLfjgxlw==} + rc-select@14.16.6: + resolution: {integrity: sha512-YPMtRPqfZWOm2XGTbx5/YVr1HT0vn//8QS77At0Gjb3Lv+Lbut0IORJPKLWu1hQ3u4GsA0SrDzs7nI8JG7Zmyg==} engines: {node: '>=8.x'} peerDependencies: react: '*' react-dom: '*' - rc-slider@11.1.7: - resolution: {integrity: sha512-ytYbZei81TX7otdC0QvoYD72XSlxvTihNth5OeZ6PMXyEDq/vHdWFulQmfDGyXK1NwKwSlKgpvINOa88uT5g2A==} + rc-slider@11.1.8: + resolution: {integrity: sha512-2gg/72YFSpKP+Ja5AjC5DPL1YnV8DEITDQrcc1eASrUYjl0esptaBVJBh5nLTXCCp15eD8EuGjwezVGSHhs9tQ==} engines: {node: '>=8.x'} peerDependencies: react: '>=16.9.0' @@ -3156,40 +2887,40 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' - rc-table@7.49.0: - resolution: {integrity: sha512-/FoPLX94muAQOxVpi1jhnpKjOIqUbT81eELQPAzSXOke4ky4oCWYUXOcVpL31ZCO90xScwVSXRd7coqtgtB1Ng==} + rc-table@7.50.4: + resolution: {integrity: sha512-Y+YuncnQqoS5e7yHvfvlv8BmCvwDYDX/2VixTBEhkMDk9itS9aBINp4nhzXFKiBP/frG4w0pS9d9Rgisl0T1Bw==} engines: {node: '>=8.x'} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - rc-tabs@15.4.0: - resolution: {integrity: sha512-llKuyiAVqmXm2z7OrmhX5cNb2ueZaL8ZyA2P4R+6/72NYYcbEgOXibwHiQCFY2RiN3swXl53SIABi2CumUS02g==} + rc-tabs@15.5.1: + resolution: {integrity: sha512-yiWivLAjEo5d1v2xlseB2dQocsOhkoVSfo1krS8v8r+02K+TBUjSjXIf7dgyVSxp6wRIPv5pMi5hanNUlQMgUA==} engines: {node: '>=8.x'} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - rc-textarea@1.8.2: - resolution: {integrity: sha512-UFAezAqltyR00a8Lf0IPAyTd29Jj9ee8wt8DqXyDMal7r/Cg/nDt3e1OOv3Th4W6mKaZijjgwuPXhAfVNTN8sw==} + rc-textarea@1.9.0: + resolution: {integrity: sha512-dQW/Bc/MriPBTugj2Kx9PMS5eXCCGn2cxoIaichjbNvOiARlaHdI99j4DTxLl/V8+PIfW06uFy7kjfUIDDKyxQ==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - rc-tooltip@6.2.1: - resolution: {integrity: sha512-rws0duD/3sHHsD905Nex7FvoUGy2UBQRhTkKxeEvr2FB+r21HsOxcDJI0TzyO8NHhnAA8ILr8pfbSBg5Jj5KBg==} + rc-tooltip@6.4.0: + resolution: {integrity: sha512-kqyivim5cp8I5RkHmpsp1Nn/Wk+1oeloMv9c7LXNgDxUpGm+RbXJGL+OPvDlcRnx9DBeOe4wyOIl4OKUERyH1g==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - rc-tree-select@5.24.5: - resolution: {integrity: sha512-PnyR8LZJWaiEFw0SHRqo4MNQWyyZsyMs8eNmo68uXZWjxc7QqeWcjPPoONN0rc90c3HZqGF9z+Roz+GLzY5GXA==} + rc-tree-select@5.27.0: + resolution: {integrity: sha512-2qTBTzwIT7LRI1o7zLyrCzmo5tQanmyGbSaGTIf7sYimCklAToVVfpMC6OAldSKolcnjorBYPNSKQqJmN3TCww==} peerDependencies: react: '*' react-dom: '*' - rc-tree@5.10.1: - resolution: {integrity: sha512-FPXb3tT/u39mgjr6JNlHaUTYfHkVGW56XaGDahDpEFLGsnPxGcVLNTjcqoQb/GNbSCycl7tD7EvIymwOTP0+Yw==} + rc-tree@5.13.1: + resolution: {integrity: sha512-FNhIefhftobCdUJshO7M8uZTA9F4OPGVXqGfZkkD/5soDeOhwO06T/aKTrg0WD8gRg/pyfq+ql3aMymLHCTC4A==} engines: {node: '>=10.x'} peerDependencies: react: '*' @@ -3201,32 +2932,26 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' - rc-util@5.43.0: - resolution: {integrity: sha512-AzC7KKOXFqAdIBqdGWepL9Xn7cm3vnAmjlHqUnoQaTMZYhM4VlXGLkkHHxj/BZ7Td0+SOPKB4RGPboBVKT9htw==} + rc-util@5.44.4: + resolution: {integrity: sha512-resueRJzmHG9Q6rI/DfK6Kdv9/Lfls05vzMs1Sk3M2P+3cJa+MakaZyWY8IPfehVuhPJFKrIY1IK4GqbiaiY5w==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - rc-util@5.44.2: - resolution: {integrity: sha512-uGSk3hpPBLa3/0QAcKhCjgl4SFnhQCJDLvvpoLdbR6KgDuXrujG+dQaUeUvBJr2ZWak1O/9n+cYbJiWmmk95EQ==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-virtual-list@3.15.0: - resolution: {integrity: sha512-dF2YQztqrU3ijAeWOqscTshCEr7vpimzSqAVjO1AyAmaqcHulaXpnGR0ptK5PXfxTUy48VkJOiglMIxlkYGs0w==} + rc-virtual-list@3.18.5: + resolution: {integrity: sha512-1FuxVSxhzTj3y8k5xMPbhXCB0t2TOiI3Tq+qE2Bu+GGV7f+ECVuQl4OUg6lZ2qT5fordTW7CBpr9czdzXCI7Pg==} engines: {node: '>=8.x'} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - react-dom@18.3.1: - resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + react-dom@19.2.0: + resolution: {integrity: sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ==} peerDependencies: - react: ^18.3.1 + react: ^19.2.0 - react-error-boundary@4.0.12: - resolution: {integrity: sha512-kJdxdEYlb7CPC1A0SeUY38cHpjuu6UkvzKiAmqmOFL21VRfMhOcWxTCBgLVCO0VEMh9JhFNcVaXlV4/BTpiwOA==} + react-error-boundary@4.1.2: + resolution: {integrity: sha512-GQDxZ5Jd+Aq/qUxbCm1UtzmL/s++V7zKgE8yMktJiCQXCCFZnMZh9ng+6/Ne6PjNSXH0L9CjeOEREfRnq6Duag==} peerDependencies: react: '>=16.13.1' @@ -3236,40 +2961,48 @@ packages: react-is@17.0.2: resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - react-is@18.2.0: - resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - react-refresh@0.14.0: - resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} - engines: {node: '>=0.10.0'} + react-redux@9.2.0: + resolution: {integrity: sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==} + peerDependencies: + '@types/react': ^18.2.25 || ^19 + react: ^18.0 || ^19 + redux: ^5.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + redux: + optional: true - react-refresh@0.14.2: - resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} + react-refresh@0.17.0: + resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==} engines: {node: '>=0.10.0'} - react-streaming@0.3.43: - resolution: {integrity: sha512-ULRCEEJu9bhMiupIR96dmE7i1j1+y7K/InE5uuF3AcP0iFFzsqdKLltGqB72ktOhfwn++iyWnzh1PHnKqR/xNw==} + react-streaming@0.4.11: + resolution: {integrity: sha512-CU/2favSlE3sC/Rg+hUzarf7u1nikv8ZULxGwNOygqo+i2FYxcy8WfSbL8xJap8RizNubdpQ862q6eTSeZkKew==} peerDependencies: - react: '>=18' - react-dom: '>=18' + react: '>=19' + react-dom: '>=19' - react@18.3.1: - resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + react@19.2.0: + resolution: {integrity: sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==} engines: {node: '>=0.10.0'} - read-pkg-up@10.1.0: - resolution: {integrity: sha512-aNtBq4jR8NawpKJQldrQcSW9y/d+KWH4v24HWkHljOZ7H0av+YTGANBzRh9A5pw7v/bLVsLVPpOhJ7gHNVy8lA==} - engines: {node: '>=16'} + redux-thunk@3.1.0: + resolution: {integrity: sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==} + peerDependencies: + redux: ^5.0.0 - read-pkg@8.1.0: - resolution: {integrity: sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ==} - engines: {node: '>=16'} + redux@5.0.1: + resolution: {integrity: sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==} - regenerator-runtime@0.14.0: - resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} + regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - regexp.prototype.flags@1.5.1: - resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} + regexp.prototype.flags@1.5.4: + resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} engines: {node: '>= 0.4'} rehackt@0.1.0: @@ -3286,6 +3019,9 @@ packages: requires-port@1.0.0: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + reselect@5.1.1: + resolution: {integrity: sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==} + resize-observer-polyfill@1.5.1: resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} @@ -3293,34 +3029,37 @@ packages: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} - resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + resolve@1.22.10: + resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} + engines: {node: '>= 0.4'} hasBin: true - response-iterator@0.2.6: - resolution: {integrity: sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw==} - engines: {node: '>=0.8'} - - reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rimraf@5.0.5: - resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} - engines: {node: '>=14'} + rimraf@5.0.10: + resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} hasBin: true - rollup@4.20.0: - resolution: {integrity: sha512-6rbWBChcnSGzIlXeIdNIZTopKYad8ZG8ajhl78lGRLsI2rX8IkaotQhVas2Ma+GPxJav19wrSzvRvuiv0YKzWw==} + rollup@4.46.2: + resolution: {integrity: sha512-WMmLFI+Boh6xbop+OAGo9cQ3OgX9MIg7xOQjn+pTCwOkk+FNDAeAemXkJ3HzDJrVXleLOFVa1ipuc1AmEx1Dwg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true - rrweb-cssom@0.6.0: - resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} + rrweb-cssom@0.7.1: + resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==} + + rrweb-cssom@0.8.0: + resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + safe-regex-test@1.1.0: + resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} + engines: {node: '>= 0.4'} + safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} @@ -3328,8 +3067,8 @@ packages: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} - scheduler@0.23.2: - resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + scheduler@0.27.0: + resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} scroll-into-view-if-needed@3.1.0: resolution: {integrity: sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==} @@ -3338,17 +3077,17 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.6.2: - resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} + semver@7.7.1: + resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} engines: {node: '>=10'} hasBin: true - set-function-length@1.1.1: - resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} - set-function-name@2.0.1: - resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} + set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} engines: {node: '>= 0.4'} shallowequal@1.1.0: @@ -3362,8 +3101,21 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - side-channel@1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + side-channel-list@1.0.0: + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + engines: {node: '>= 0.4'} + + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} + + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} + + side-channel@1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + engines: {node: '>= 0.4'} siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} @@ -3375,8 +3127,12 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + sirv@3.0.1: + resolution: {integrity: sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==} + engines: {node: '>=18'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} source-map-support@0.5.21: @@ -3393,27 +3149,23 @@ packages: spdx-correct@3.2.0: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} - spdx-exceptions@2.3.0: - resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} spdx-expression-parse@3.0.1: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - spdx-license-ids@3.0.16: - resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==} - - split2@4.2.0: - resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} - engines: {node: '>= 10.x'} + spdx-license-ids@3.0.21: + resolution: {integrity: sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==} stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - std-env@3.5.0: - resolution: {integrity: sha512-JGUEaALvL0Mf6JCfYnJOTcobY+Nc7sG/TemDRBqCA0wEr4DER7zDchaaixTlmOxAjG1uRJmX82EQcxwTQTkqVA==} + std-env@3.9.0: + resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} - stop-iteration-iterator@1.0.0: - resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} + stop-iteration-iterator@1.1.0: + resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} engines: {node: '>= 0.4'} string-convert@0.2.1: @@ -3439,15 +3191,11 @@ packages: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} - strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} - - strip-literal@1.3.0: - resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} + strip-literal@3.0.0: + resolution: {integrity: sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==} - styled-components@6.1.13: - resolution: {integrity: sha512-M0+N2xSnAtwcVAQeFEsGWFFxXDftHUD7XrKla06QbpUMmbmtFBMMTcKWvFXtWxuD5qQkB8iU5gk6QASlx2ZRMw==} + styled-components@6.1.16: + resolution: {integrity: sha512-KpWB6ORAWGmbWM10cDJfEV6sXc/uVkkkQV3SLwTNQ/E/PqWgNHIoMSLh1Lnk2FkB9+JHK7uuMq1i+9ArxDD7iQ==} engines: {node: '>= 16'} peerDependencies: react: '>= 16.8.0' @@ -3472,12 +3220,8 @@ packages: stylis@4.3.2: resolution: {integrity: sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==} - stylis@4.3.4: - resolution: {integrity: sha512-osIBl6BGUmSfDkyH2mB7EFvCJntXDrLhKjHTRj/rK6xLH0yuPrHULDRQzKokSOD4VoorhtKpfcfW1GAntu8now==} - - supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} + stylis@4.3.6: + resolution: {integrity: sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==} supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} @@ -3494,34 +3238,31 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - tabbable@6.2.0: - resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} - - text-extensions@2.4.0: - resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} - engines: {node: '>=8'} - throttle-debounce@5.0.2: resolution: {integrity: sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==} engines: {node: '>=12.22'} - through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + tinybench@2.9.0: + resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} - tinybench@2.5.1: - resolution: {integrity: sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==} + tinyexec@0.3.2: + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} - tinypool@0.8.2: - resolution: {integrity: sha512-SUszKYe5wgsxnNOVlBYO6IC+8VGWdVGZWAqUxp3UErNBtptZvWbwyUOyzNL59zigz2rCA92QiL3wvG+JDSdJdQ==} - engines: {node: '>=14.0.0'} + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} - tinyspy@2.2.0: - resolution: {integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==} + tinypool@1.1.1: + resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==} + engines: {node: ^18.0.0 || >=20.0.0} + + tinyrainbow@2.0.0: + resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} engines: {node: '>=14.0.0'} - to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} + tinyspy@4.0.3: + resolution: {integrity: sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==} + engines: {node: '>=14.0.0'} to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} @@ -3530,15 +3271,16 @@ packages: toggle-selection@1.0.6: resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} - tough-cookie@4.1.3: - resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} + totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} engines: {node: '>=6'} - tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + tough-cookie@4.1.4: + resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} + engines: {node: '>=6'} - tr46@5.0.0: - resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} + tr46@5.1.0: + resolution: {integrity: sha512-IUWnUK7ADYR5Sl1fZlO1INDUhVhatWl7BtJWsIhwJ0UAK7ilzzIa8uIqOO/aYVWHZPJkKbEL+362wrzoeRF7bw==} engines: {node: '>=18'} ts-invariant@0.10.3: @@ -3548,54 +3290,35 @@ packages: tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - tslib@2.6.3: - resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + type-detect@4.1.0: + resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==} engines: {node: '>=4'} - type-fest@3.13.1: - resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} - engines: {node: '>=14.16'} - - type-fest@4.8.1: - resolution: {integrity: sha512-ShaaYnjf+0etG8W/FumARKMjjIToy/haCaTjN2dvcewOSoNqCQzdgG7m2JVOlM5qndGTHjkvsrWZs+k/2Z7E0Q==} - engines: {node: '>=16'} - - typescript@5.5.3: - resolution: {integrity: sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==} + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} engines: {node: '>=14.17'} hasBin: true - typescript@5.5.4: - resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} - engines: {node: '>=14.17'} - hasBin: true - - ufo@1.3.2: - resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==} - - uglify-js@3.17.4: - resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} + uglify-js@3.19.3: + resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} engines: {node: '>=0.8.0'} hasBin: true - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + undici-types@6.21.0: + resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + + undici-types@7.8.0: + resolution: {integrity: sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==} universalify@0.2.0: resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} engines: {node: '>= 4.0.0'} - update-browserslist-db@1.0.13: - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - update-browserslist-db@1.1.0: - resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} + update-browserslist-db@1.1.3: + resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -3606,52 +3329,53 @@ packages: url-parse@1.5.10: resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + use-sync-external-store@1.4.0: + resolution: {integrity: sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - vike@0.4.203: - resolution: {integrity: sha512-La+0BK+QvZ0N+ggVvEBgXtnKKOdVkNah44Z9c+2mkJZVIbw9eBybQ8G9AilxFbsz8ikBhBNRVHR4ubKoWfN9ZA==} - engines: {node: '>=18.0.0'} + vike@0.4.242: + resolution: {integrity: sha512-oDogaWBjX26BiI24JXdrFsxFZPzuu1xNDMiwq/wu+BsXd1yDQGbmYQgKfE5u4RHqLPj7OCt1F6Rdg8Yz9s1rdQ==} + engines: {node: '>=20.19.0'} hasBin: true peerDependencies: react-streaming: '>=0.3.42' - vite: '>=5.1.0' + vite: '>=6.3.0' peerDependenciesMeta: react-streaming: optional: true - - vike@0.4.211: - resolution: {integrity: sha512-W7HbzTqwuIhLm/HmOl5rjCX4ZuOhxTgI/h0bqBkVOeCwrO8Ixo545oQJeXQ+3MojpDThLQFMeBvwdN9T03wVrw==} - engines: {node: '>=18.0.0'} - hasBin: true - peerDependencies: - react-streaming: '>=0.3.42' - vite: '>=5.1.0' - peerDependenciesMeta: - react-streaming: + vite: optional: true - vite-node@1.2.2: - resolution: {integrity: sha512-1as4rDTgVWJO3n1uHmUYqq7nsFgINQ9u+mRcXpjeOMJUmviqNKjcZB7UfRZrlM7MjYXMKpuWp5oGkjaFLnjawg==} - engines: {node: ^18.0.0 || >=20.0.0} + vite-node@3.2.4: + resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true - vite@5.4.0: - resolution: {integrity: sha512-5xokfMX0PIiwCMCMb9ZJcMyh5wbBun0zUzKib+L65vAZ8GY9ePZMXxFrHbr/Kyll2+LSCY7xtERPpxkBDKngwg==} - engines: {node: ^18.0.0 || >=20.0.0} + vite@7.1.9: + resolution: {integrity: sha512-4nVGliEpxmhCL8DslSAUdxlB6+SMrhB0a1v5ijlh1xB1nEPuy1mxaHxysVucLHuWryAxLWg6a5ei+U4TLn/rFg==} + engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' + '@types/node': ^20.19.0 || >=22.12.0 + jiti: '>=1.21.0' + less: ^4.0.0 lightningcss: ^1.21.0 - sass: '*' - sass-embedded: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 peerDependenciesMeta: '@types/node': optional: true + jiti: + optional: true less: optional: true lightningcss: @@ -3666,21 +3390,28 @@ packages: optional: true terser: optional: true + tsx: + optional: true + yaml: + optional: true - vitest@1.2.2: - resolution: {integrity: sha512-d5Ouvrnms3GD9USIK36KG8OZ5bEvKEkITFtnGv56HFaSlbItJuYr7hv2Lkn903+AvRAgSixiamozUVfORUekjw==} - engines: {node: ^18.0.0 || >=20.0.0} + vitest@3.2.4: + resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' - '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': ^1.0.0 - '@vitest/ui': ^1.0.0 + '@types/debug': ^4.1.12 + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + '@vitest/browser': 3.2.4 + '@vitest/ui': 3.2.4 happy-dom: '*' jsdom: '*' peerDependenciesMeta: '@edge-runtime/vm': optional: true + '@types/debug': + optional: true '@types/node': optional: true '@vitest/browser': @@ -3696,12 +3427,12 @@ packages: resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} engines: {node: '>=18'} - web-streams-polyfill@3.2.1: - resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==} - engines: {node: '>= 8'} + walk-up-path@3.0.1: + resolution: {integrity: sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==} - webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + web-streams-polyfill@3.3.3: + resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} + engines: {node: '>= 8'} webidl-conversions@7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} @@ -3715,21 +3446,20 @@ packages: resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} engines: {node: '>=18'} - whatwg-url@14.0.0: - resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==} + 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==} - - which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + which-boxed-primitive@1.1.1: + resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} + engines: {node: '>= 0.4'} - which-collection@1.0.1: - resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} - which-typed-array@1.1.13: - resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} + which-typed-array@1.1.19: + resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} engines: {node: '>= 0.4'} which@2.0.2: @@ -3737,8 +3467,8 @@ packages: engines: {node: '>= 8'} hasBin: true - why-is-node-running@2.2.2: - resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} + why-is-node-running@2.3.0: + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} engines: {node: '>=8'} hasBin: true @@ -3753,8 +3483,8 @@ packages: resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} engines: {node: '>=12'} - ws@8.16.0: - resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} + ws@8.18.1: + resolution: {integrity: sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -3779,630 +3509,424 @@ packages: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} - yocto-queue@1.0.0: - resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} - engines: {node: '>=12.20'} - zen-observable-ts@1.2.5: resolution: {integrity: sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg==} zen-observable@0.8.15: resolution: {integrity: sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==} -snapshots: + zustand@5.0.8: + resolution: {integrity: sha512-gyPKpIaxY9XcO2vSMrLbiER7QMAMGOQZVRdJ6Zi782jkbzZygq5GI9nG8g+sMgitRtndwaBSl7uiqC49o1SSiw==} + engines: {node: '>=12.20.0'} + peerDependencies: + '@types/react': '>=18.0.0' + immer: '>=9.0.6' + react: '>=18.0.0' + use-sync-external-store: '>=1.2.0' + peerDependenciesMeta: + '@types/react': + optional: true + immer: + optional: true + react: + optional: true + use-sync-external-store: + optional: true - '@ampproject/remapping@2.2.1': - dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.20 +snapshots: - '@ant-design/colors@7.1.0': + '@ant-design/colors@7.2.0': dependencies: - '@ctrl/tinycolor': 3.6.1 + '@ant-design/fast-color': 2.0.6 - '@ant-design/cssinjs-utils@1.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@ant-design/cssinjs-utils@1.1.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: - '@ant-design/cssinjs': 1.22.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@babel/runtime': 7.26.0 - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@ant-design/cssinjs': 1.23.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@babel/runtime': 7.26.10 + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - '@ant-design/cssinjs@1.22.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@ant-design/cssinjs@1.23.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.10 '@emotion/hash': 0.8.0 '@emotion/unitless': 0.7.5 classnames: 2.5.1 csstype: 3.1.3 - rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - stylis: 4.3.4 + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) + stylis: 4.3.6 '@ant-design/fast-color@2.0.6': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.10 '@ant-design/icons-svg@4.4.2': {} - '@ant-design/icons@5.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@ant-design/icons@5.6.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: - '@ant-design/colors': 7.1.0 + '@ant-design/colors': 7.2.0 '@ant-design/icons-svg': 4.4.2 - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.10 classnames: 2.5.1 - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - '@ant-design/react-slick@1.1.2(react@18.3.1)': + '@ant-design/react-slick@1.1.2(react@19.2.0)': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.10 classnames: 2.5.1 json2mq: 0.2.0 - react: 18.3.1 + react: 19.2.0 resize-observer-polyfill: 1.5.1 throttle-debounce: 5.0.2 - '@apollo/client-react-streaming@0.11.2(@apollo/client@3.10.8(@types/react@18.2.55)(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': + '@apollo/client-react-streaming@0.11.11(@apollo/client@3.13.5(@types/react@19.2.2)(graphql@16.10.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(graphql@16.10.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: - '@apollo/client': 3.10.8(@types/react@18.2.55)(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 + '@apollo/client': 3.13.5(@types/react@19.2.2)(graphql@16.10.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@wry/equality': 0.5.7 + graphql: 16.10.0 + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) ts-invariant: 0.10.3 - '@apollo/client@3.10.8(@types/react@18.2.55)(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@apollo/client@3.13.5(@types/react@19.2.2)(graphql@16.10.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: - '@graphql-typed-document-node/core': 3.2.0(graphql@16.9.0) + '@graphql-typed-document-node/core': 3.2.0(graphql@16.10.0) '@wry/caches': 1.0.1 '@wry/equality': 0.5.7 '@wry/trie': 0.5.0 - graphql: 16.9.0 - graphql-tag: 2.12.6(graphql@16.9.0) + graphql: 16.10.0 + graphql-tag: 2.12.6(graphql@16.10.0) hoist-non-react-statics: 3.3.2 - optimism: 0.18.0 + optimism: 0.18.1 prop-types: 15.8.1 - rehackt: 0.1.0(@types/react@18.2.55)(react@18.3.1) - response-iterator: 0.2.6 + rehackt: 0.1.0(@types/react@19.2.2)(react@19.2.0) symbol-observable: 4.0.0 ts-invariant: 0.10.3 - tslib: 2.6.3 + tslib: 2.8.1 zen-observable-ts: 1.2.5 optionalDependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) transitivePeerDependencies: - '@types/react' - '@ark-ui/anatomy@3.5.0(@internationalized/date@3.5.6)': - dependencies: - '@zag-js/accordion': 0.62.1 - '@zag-js/anatomy': 0.62.1 - '@zag-js/avatar': 0.62.1 - '@zag-js/carousel': 0.62.1 - '@zag-js/checkbox': 0.62.1 - '@zag-js/clipboard': 0.62.1 - '@zag-js/collapsible': 0.62.1 - '@zag-js/color-picker': 0.62.1 - '@zag-js/color-utils': 0.62.1 - '@zag-js/combobox': 0.62.1 - '@zag-js/date-picker': 0.62.1 - '@zag-js/date-utils': 0.62.1(@internationalized/date@3.5.6) - '@zag-js/dialog': 0.62.1 - '@zag-js/editable': 0.62.1 - '@zag-js/file-upload': 0.62.1 - '@zag-js/hover-card': 0.62.1 - '@zag-js/menu': 0.62.1 - '@zag-js/number-input': 0.62.1 - '@zag-js/pagination': 0.62.1 - '@zag-js/pin-input': 0.62.1 - '@zag-js/popover': 0.62.1 - '@zag-js/presence': 0.62.1 - '@zag-js/progress': 0.62.1 - '@zag-js/qr-code': 0.62.1 - '@zag-js/radio-group': 0.62.1 - '@zag-js/rating-group': 0.62.1 - '@zag-js/select': 0.62.1 - '@zag-js/signature-pad': 0.62.1 - '@zag-js/slider': 0.62.1 - '@zag-js/splitter': 0.62.1 - '@zag-js/switch': 0.62.1 - '@zag-js/tabs': 0.62.1 - '@zag-js/tags-input': 0.62.1 - '@zag-js/time-picker': 0.62.1 - '@zag-js/toast': 0.62.1 - '@zag-js/toggle-group': 0.62.1 - '@zag-js/tooltip': 0.62.1 - '@zag-js/tree-view': 0.62.1 - transitivePeerDependencies: - - '@internationalized/date' - - '@ark-ui/react@4.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@internationalized/date': 3.5.6 - '@zag-js/accordion': 0.74.2 - '@zag-js/anatomy': 0.74.2 - '@zag-js/avatar': 0.74.2 - '@zag-js/carousel': 0.74.2 - '@zag-js/checkbox': 0.74.2 - '@zag-js/clipboard': 0.74.2 - '@zag-js/collapsible': 0.74.2 - '@zag-js/collection': 0.74.2 - '@zag-js/color-picker': 0.74.2 - '@zag-js/color-utils': 0.74.2 - '@zag-js/combobox': 0.74.2 - '@zag-js/core': 0.74.2 - '@zag-js/date-picker': 0.74.2(@internationalized/date@3.5.6) - '@zag-js/date-utils': 0.74.2(@internationalized/date@3.5.6) - '@zag-js/dialog': 0.74.2 - '@zag-js/dom-query': 0.74.2 - '@zag-js/editable': 0.74.2 - '@zag-js/file-upload': 0.74.2 - '@zag-js/file-utils': 0.74.2 - '@zag-js/highlight-word': 0.74.2 - '@zag-js/hover-card': 0.74.2 - '@zag-js/i18n-utils': 0.74.2 - '@zag-js/menu': 0.74.2 - '@zag-js/number-input': 0.74.2 - '@zag-js/pagination': 0.74.2 - '@zag-js/pin-input': 0.74.2 - '@zag-js/popover': 0.74.2 - '@zag-js/presence': 0.74.2 - '@zag-js/progress': 0.74.2 - '@zag-js/qr-code': 0.74.2 - '@zag-js/radio-group': 0.74.2 - '@zag-js/rating-group': 0.74.2 - '@zag-js/react': 0.74.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@zag-js/select': 0.74.2 - '@zag-js/signature-pad': 0.74.2 - '@zag-js/slider': 0.74.2 - '@zag-js/splitter': 0.74.2 - '@zag-js/steps': 0.74.2 - '@zag-js/switch': 0.74.2 - '@zag-js/tabs': 0.74.2 - '@zag-js/tags-input': 0.74.2 - '@zag-js/time-picker': 0.74.2(@internationalized/date@3.5.6) - '@zag-js/timer': 0.74.2 - '@zag-js/toast': 0.74.2 - '@zag-js/toggle-group': 0.74.2 - '@zag-js/tooltip': 0.74.2 - '@zag-js/tree-view': 0.74.2 - '@zag-js/types': 0.74.2 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@babel/code-frame@7.23.5': - dependencies: - '@babel/highlight': 7.23.4 - chalk: 2.4.2 - - '@babel/code-frame@7.24.7': - dependencies: - '@babel/highlight': 7.24.7 - picocolors: 1.0.1 - - '@babel/compat-data@7.23.5': {} - - '@babel/compat-data@7.25.2': {} - - '@babel/core@7.23.6': - dependencies: - '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.6 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) - '@babel/helpers': 7.23.6 - '@babel/parser': 7.23.6 - '@babel/template': 7.22.15 - '@babel/traverse': 7.23.6 - '@babel/types': 7.23.6 - convert-source-map: 2.0.0 - debug: 4.3.4 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/core@7.25.2': - dependencies: - '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.0 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helpers': 7.25.0 - '@babel/parser': 7.25.3 - '@babel/template': 7.25.0 - '@babel/traverse': 7.25.3 - '@babel/types': 7.25.2 + '@ark-ui/react@4.9.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + dependencies: + '@internationalized/date': 3.7.0 + '@zag-js/accordion': 0.82.2 + '@zag-js/anatomy': 0.82.2 + '@zag-js/auto-resize': 0.82.2 + '@zag-js/avatar': 0.82.2 + '@zag-js/carousel': 0.82.2 + '@zag-js/checkbox': 0.82.2 + '@zag-js/clipboard': 0.82.2 + '@zag-js/collapsible': 0.82.2 + '@zag-js/collection': 0.82.2 + '@zag-js/color-picker': 0.82.2 + '@zag-js/color-utils': 0.82.2 + '@zag-js/combobox': 0.82.2 + '@zag-js/core': 0.82.2 + '@zag-js/date-picker': 0.82.2(@internationalized/date@3.7.0) + '@zag-js/date-utils': 0.82.2(@internationalized/date@3.7.0) + '@zag-js/dialog': 0.82.2 + '@zag-js/dom-query': 0.82.2 + '@zag-js/editable': 0.82.2 + '@zag-js/file-upload': 0.82.2 + '@zag-js/file-utils': 0.82.2 + '@zag-js/focus-trap': 0.82.2 + '@zag-js/highlight-word': 0.82.2 + '@zag-js/hover-card': 0.82.2 + '@zag-js/i18n-utils': 0.82.2 + '@zag-js/menu': 0.82.2 + '@zag-js/number-input': 0.82.2 + '@zag-js/pagination': 0.82.2 + '@zag-js/pin-input': 0.82.2 + '@zag-js/popover': 0.82.2 + '@zag-js/presence': 0.82.2 + '@zag-js/progress': 0.82.2 + '@zag-js/qr-code': 0.82.2 + '@zag-js/radio-group': 0.82.2 + '@zag-js/rating-group': 0.82.2 + '@zag-js/react': 0.82.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@zag-js/select': 0.82.2 + '@zag-js/signature-pad': 0.82.2 + '@zag-js/slider': 0.82.2 + '@zag-js/splitter': 0.82.2 + '@zag-js/steps': 0.82.2 + '@zag-js/switch': 0.82.2 + '@zag-js/tabs': 0.82.2 + '@zag-js/tags-input': 0.82.2 + '@zag-js/time-picker': 0.82.2(@internationalized/date@3.7.0) + '@zag-js/timer': 0.82.2 + '@zag-js/toast': 0.82.2 + '@zag-js/toggle-group': 0.82.2 + '@zag-js/tooltip': 0.82.2 + '@zag-js/tour': 0.82.2 + '@zag-js/tree-view': 0.82.2 + '@zag-js/types': 0.82.2 + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) + + '@asamuzakjp/css-color@3.1.1': + dependencies: + '@csstools/css-calc': 2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-color-parser': 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 + lru-cache: 10.4.3 + + '@babel/code-frame@7.27.1': + dependencies: + '@babel/helper-validator-identifier': 7.27.1 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/compat-data@7.28.0': {} + + '@babel/core@7.28.4': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.3 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4) + '@babel/helpers': 7.28.4 + '@babel/parser': 7.28.4 + '@babel/template': 7.27.2 + '@babel/traverse': 7.28.4 + '@babel/types': 7.28.4 + '@jridgewell/remapping': 2.3.5 convert-source-map: 2.0.0 - debug: 4.3.4 + debug: 4.4.1 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/generator@7.23.6': - dependencies: - '@babel/types': 7.23.6 - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.20 - jsesc: 2.5.2 - - '@babel/generator@7.25.0': - dependencies: - '@babel/types': 7.25.2 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 2.5.2 - - '@babel/helper-compilation-targets@7.23.6': + '@babel/generator@7.28.3': dependencies: - '@babel/compat-data': 7.23.5 - '@babel/helper-validator-option': 7.23.5 - browserslist: 4.22.2 - lru-cache: 5.1.1 - semver: 6.3.1 + '@babel/parser': 7.28.4 + '@babel/types': 7.28.4 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.30 + jsesc: 3.1.0 - '@babel/helper-compilation-targets@7.25.2': + '@babel/helper-compilation-targets@7.27.2': dependencies: - '@babel/compat-data': 7.25.2 - '@babel/helper-validator-option': 7.24.8 - browserslist: 4.23.3 + '@babel/compat-data': 7.28.0 + '@babel/helper-validator-option': 7.27.1 + browserslist: 4.24.4 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-environment-visitor@7.22.20': {} - - '@babel/helper-function-name@7.23.0': - dependencies: - '@babel/template': 7.22.15 - '@babel/types': 7.25.2 - - '@babel/helper-hoist-variables@7.22.5': - dependencies: - '@babel/types': 7.25.2 - - '@babel/helper-module-imports@7.24.7': - dependencies: - '@babel/traverse': 7.25.3 - '@babel/types': 7.25.2 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-transforms@7.23.3(@babel/core@7.23.6)': - dependencies: - '@babel/core': 7.23.6 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-simple-access': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.20 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-simple-access': 7.24.7 - '@babel/helper-validator-identifier': 7.24.7 - '@babel/traverse': 7.25.3 - transitivePeerDependencies: - - supports-color - - '@babel/helper-plugin-utils@7.22.5': {} - - '@babel/helper-plugin-utils@7.24.8': {} - - '@babel/helper-simple-access@7.22.5': - dependencies: - '@babel/types': 7.25.2 + '@babel/helper-globals@7.28.0': {} - '@babel/helper-simple-access@7.24.7': + '@babel/helper-module-imports@7.27.1': dependencies: - '@babel/traverse': 7.25.3 - '@babel/types': 7.25.2 + '@babel/traverse': 7.28.4 + '@babel/types': 7.28.4 transitivePeerDependencies: - supports-color - '@babel/helper-split-export-declaration@7.22.6': - dependencies: - '@babel/types': 7.25.2 - - '@babel/helper-string-parser@7.22.5': {} - - '@babel/helper-string-parser@7.23.4': {} - - '@babel/helper-string-parser@7.24.8': {} - - '@babel/helper-validator-identifier@7.22.20': {} - - '@babel/helper-validator-identifier@7.24.7': {} - - '@babel/helper-validator-option@7.23.5': {} - - '@babel/helper-validator-option@7.24.8': {} - - '@babel/helpers@7.23.6': + '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.4)': dependencies: - '@babel/template': 7.22.15 - '@babel/traverse': 7.23.6 - '@babel/types': 7.23.6 + '@babel/core': 7.28.4 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@babel/traverse': 7.28.4 transitivePeerDependencies: - supports-color - '@babel/helpers@7.25.0': - dependencies: - '@babel/template': 7.25.0 - '@babel/types': 7.25.2 - - '@babel/highlight@7.23.4': - dependencies: - '@babel/helper-validator-identifier': 7.22.20 - chalk: 2.4.2 - js-tokens: 4.0.0 - - '@babel/highlight@7.24.7': - dependencies: - '@babel/helper-validator-identifier': 7.24.7 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.0.1 - - '@babel/parser@7.23.3': - dependencies: - '@babel/types': 7.25.2 - - '@babel/parser@7.23.6': - dependencies: - '@babel/types': 7.23.6 - - '@babel/parser@7.25.3': - dependencies: - '@babel/types': 7.25.2 + '@babel/helper-plugin-utils@7.27.1': {} - '@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.23.6)': - dependencies: - '@babel/core': 7.23.6 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-string-parser@7.27.1': {} - '@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-validator-identifier@7.27.1': {} - '@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.23.6)': - dependencies: - '@babel/core': 7.23.6 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option@7.27.1': {} - '@babel/plugin-transform-react-jsx-source@7.24.7(@babel/core@7.25.2)': + '@babel/helpers@7.28.4': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/template': 7.27.2 + '@babel/types': 7.28.4 - '@babel/runtime@7.23.5': + '@babel/parser@7.28.4': dependencies: - regenerator-runtime: 0.14.0 + '@babel/types': 7.28.4 - '@babel/runtime@7.26.0': + '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.28.4)': dependencies: - regenerator-runtime: 0.14.0 + '@babel/core': 7.28.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/template@7.22.15': + '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/code-frame': 7.23.5 - '@babel/parser': 7.23.6 - '@babel/types': 7.23.6 + '@babel/core': 7.28.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/template@7.25.0': + '@babel/runtime@7.26.10': dependencies: - '@babel/code-frame': 7.24.7 - '@babel/parser': 7.25.3 - '@babel/types': 7.25.2 + regenerator-runtime: 0.14.1 - '@babel/traverse@7.23.6': + '@babel/template@7.27.2': dependencies: - '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.6 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.23.6 - '@babel/types': 7.23.6 - debug: 4.3.4 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color + '@babel/code-frame': 7.27.1 + '@babel/parser': 7.28.4 + '@babel/types': 7.28.4 - '@babel/traverse@7.25.3': + '@babel/traverse@7.28.4': dependencies: - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.0 - '@babel/parser': 7.25.3 - '@babel/template': 7.25.0 - '@babel/types': 7.25.2 - debug: 4.3.4 - globals: 11.12.0 + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.3 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.28.4 + '@babel/template': 7.27.2 + '@babel/types': 7.28.4 + debug: 4.4.1 transitivePeerDependencies: - supports-color - '@babel/types@7.23.3': - dependencies: - '@babel/helper-string-parser': 7.22.5 - '@babel/helper-validator-identifier': 7.22.20 - to-fast-properties: 2.0.0 - - '@babel/types@7.23.6': - dependencies: - '@babel/helper-string-parser': 7.23.4 - '@babel/helper-validator-identifier': 7.22.20 - to-fast-properties: 2.0.0 - - '@babel/types@7.25.2': + '@babel/types@7.28.4': dependencies: - '@babel/helper-string-parser': 7.24.8 - '@babel/helper-validator-identifier': 7.24.7 - to-fast-properties: 2.0.0 + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 - '@biomejs/biome@1.6.4': + '@biomejs/biome@1.9.4': optionalDependencies: - '@biomejs/cli-darwin-arm64': 1.6.4 - '@biomejs/cli-darwin-x64': 1.6.4 - '@biomejs/cli-linux-arm64': 1.6.4 - '@biomejs/cli-linux-arm64-musl': 1.6.4 - '@biomejs/cli-linux-x64': 1.6.4 - '@biomejs/cli-linux-x64-musl': 1.6.4 - '@biomejs/cli-win32-arm64': 1.6.4 - '@biomejs/cli-win32-x64': 1.6.4 - - '@biomejs/biome@1.8.3': - optionalDependencies: - '@biomejs/cli-darwin-arm64': 1.8.3 - '@biomejs/cli-darwin-x64': 1.8.3 - '@biomejs/cli-linux-arm64': 1.8.3 - '@biomejs/cli-linux-arm64-musl': 1.8.3 - '@biomejs/cli-linux-x64': 1.8.3 - '@biomejs/cli-linux-x64-musl': 1.8.3 - '@biomejs/cli-win32-arm64': 1.8.3 - '@biomejs/cli-win32-x64': 1.8.3 - - '@biomejs/cli-darwin-arm64@1.6.4': - optional: true - - '@biomejs/cli-darwin-arm64@1.8.3': - optional: true - - '@biomejs/cli-darwin-x64@1.6.4': - optional: true - - '@biomejs/cli-darwin-x64@1.8.3': - optional: true - - '@biomejs/cli-linux-arm64-musl@1.6.4': - optional: true - - '@biomejs/cli-linux-arm64-musl@1.8.3': - optional: true - - '@biomejs/cli-linux-arm64@1.6.4': - optional: true - - '@biomejs/cli-linux-arm64@1.8.3': - optional: true - - '@biomejs/cli-linux-x64-musl@1.6.4': + '@biomejs/cli-darwin-arm64': 1.9.4 + '@biomejs/cli-darwin-x64': 1.9.4 + '@biomejs/cli-linux-arm64': 1.9.4 + '@biomejs/cli-linux-arm64-musl': 1.9.4 + '@biomejs/cli-linux-x64': 1.9.4 + '@biomejs/cli-linux-x64-musl': 1.9.4 + '@biomejs/cli-win32-arm64': 1.9.4 + '@biomejs/cli-win32-x64': 1.9.4 + + '@biomejs/cli-darwin-arm64@1.9.4': optional: true - '@biomejs/cli-linux-x64-musl@1.8.3': + '@biomejs/cli-darwin-x64@1.9.4': optional: true - '@biomejs/cli-linux-x64@1.6.4': + '@biomejs/cli-linux-arm64-musl@1.9.4': optional: true - '@biomejs/cli-linux-x64@1.8.3': + '@biomejs/cli-linux-arm64@1.9.4': optional: true - '@biomejs/cli-win32-arm64@1.6.4': + '@biomejs/cli-linux-x64-musl@1.9.4': optional: true - '@biomejs/cli-win32-arm64@1.8.3': + '@biomejs/cli-linux-x64@1.9.4': optional: true - '@biomejs/cli-win32-x64@1.6.4': + '@biomejs/cli-win32-arm64@1.9.4': optional: true - '@biomejs/cli-win32-x64@1.8.3': + '@biomejs/cli-win32-x64@1.9.4': optional: true - '@brillout/import@0.2.3': {} - - '@brillout/json-serializer@0.5.13': {} - - '@brillout/json-serializer@0.5.15': {} - - '@brillout/part-regex@0.1.3': {} + '@brillout/import@0.2.6': {} - '@brillout/picocolors@1.0.10': {} + '@brillout/json-serializer@0.5.21': {} - '@brillout/picocolors@1.0.12': {} + '@brillout/part-regex@0.1.4': {} - '@brillout/picocolors@1.0.14': {} + '@brillout/picocolors@1.0.28': {} - '@brillout/picocolors@1.0.15': {} - - '@brillout/release-me@0.4.2': + '@brillout/release-me@0.4.8(conventional-commits-filter@5.0.0)': dependencies: - '@brillout/picocolors': 1.0.15 + '@brillout/picocolors': 1.0.28 commander: 11.1.0 - conventional-changelog: 5.1.0 + conventional-changelog: 7.0.2(conventional-commits-filter@5.0.0) + conventional-changelog-angular: 8.0.0 execa: 5.1.1 - semver: 7.6.2 + semver: 7.7.1 + transitivePeerDependencies: + - conventional-commits-filter '@brillout/require-shim@0.1.2': {} - '@brillout/test-e2e@0.5.33': + '@brillout/test-e2e@0.6.16': dependencies: - '@brillout/part-regex': 0.1.3 - '@brillout/picocolors': 1.0.10 - chai: 4.3.10 - esbuild: 0.16.17 - fast-glob: 3.3.2 - node-fetch: 2.7.0 + '@brillout/part-regex': 0.1.4 + '@brillout/picocolors': 1.0.28 + chai: 4.5.0 + esbuild: 0.23.1 + fast-glob: 3.3.3 pixelmatch: 5.3.0 - playwright-chromium: 1.42.1 + playwright-chromium: 1.51.1 pngjs: 6.0.0 source-map-support: 0.5.21 strip-ansi: 6.0.1 - transitivePeerDependencies: - - encoding - '@brillout/test-types@0.1.15(typescript@5.5.4)': + '@brillout/test-types@0.1.15(typescript@5.9.3)': dependencies: - '@brillout/picocolors': 1.0.12 - fast-glob: 3.3.2 + '@brillout/picocolors': 1.0.28 + fast-glob: 3.3.3 source-map-support: 0.5.21 - typescript: 5.5.4 - - '@brillout/vite-plugin-server-entry@0.5.1': - dependencies: - '@brillout/import': 0.2.3 + typescript: 5.9.3 - '@brillout/vite-plugin-server-entry@0.5.6': + '@brillout/vite-plugin-server-entry@0.7.15': dependencies: - '@brillout/import': 0.2.3 - '@brillout/picocolors': 1.0.15 + '@brillout/import': 0.2.6 + '@brillout/picocolors': 1.0.28 - '@chakra-ui/react@3.0.2(@emotion/react@11.13.3(@types/react@18.3.3)(react@18.3.1))(@internationalized/date@3.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@chakra-ui/react@3.13.0(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: - '@ark-ui/anatomy': 3.5.0(@internationalized/date@3.5.6) - '@ark-ui/react': 4.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@ark-ui/react': 4.9.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@emotion/is-prop-valid': 1.3.1 - '@emotion/react': 11.13.3(@types/react@18.3.3)(react@18.3.1) - '@emotion/serialize': 1.3.2 - '@emotion/use-insertion-effect-with-fallbacks': 1.1.0(react@18.3.1) - '@emotion/utils': 1.4.1 + '@emotion/react': 11.14.0(@types/react@19.2.2)(react@19.2.0) + '@emotion/serialize': 1.3.3 + '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.2.0) + '@emotion/utils': 1.4.2 '@pandacss/is-valid-prop': 0.41.0 csstype: 3.1.3 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - transitivePeerDependencies: - - '@internationalized/date' + fast-safe-stringify: 2.1.1 + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) + + '@conventional-changelog/git-client@2.5.1(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.2.0)': + dependencies: + '@simple-libs/child-process-utils': 1.0.1 + '@simple-libs/stream-utils': 1.1.0 + semver: 7.7.1 + optionalDependencies: + conventional-commits-filter: 5.0.0 + conventional-commits-parser: 6.2.0 + + '@csstools/color-helpers@5.0.2': {} + + '@csstools/css-calc@2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': + dependencies: + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 - '@ctrl/tinycolor@3.6.1': {} + '@csstools/css-color-parser@3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': + dependencies: + '@csstools/color-helpers': 5.0.2 + '@csstools/css-calc': 2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 + + '@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3)': + dependencies: + '@csstools/css-tokenizer': 3.0.3 + + '@csstools/css-tokenizer@3.0.3': {} - '@emotion/babel-plugin@11.12.0': + '@emotion/babel-plugin@11.13.5': dependencies: - '@babel/helper-module-imports': 7.24.7 - '@babel/runtime': 7.23.5 + '@babel/helper-module-imports': 7.27.1 + '@babel/runtime': 7.26.10 '@emotion/hash': 0.9.2 '@emotion/memoize': 0.9.0 - '@emotion/serialize': 1.3.2 + '@emotion/serialize': 1.3.3 babel-plugin-macros: 3.1.0 convert-source-map: 1.9.0 escape-string-regexp: 4.0.0 @@ -4412,11 +3936,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@emotion/cache@11.13.1': + '@emotion/cache@11.14.0': dependencies: '@emotion/memoize': 0.9.0 '@emotion/sheet': 1.4.0 - '@emotion/utils': 1.4.1 + '@emotion/utils': 1.4.2 '@emotion/weak-memoize': 0.4.0 stylis: 4.2.0 @@ -4436,28 +3960,28 @@ snapshots: '@emotion/memoize@0.9.0': {} - '@emotion/react@11.13.3(@types/react@18.3.3)(react@18.3.1)': + '@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0)': dependencies: - '@babel/runtime': 7.23.5 - '@emotion/babel-plugin': 11.12.0 - '@emotion/cache': 11.13.1 - '@emotion/serialize': 1.3.2 - '@emotion/use-insertion-effect-with-fallbacks': 1.1.0(react@18.3.1) - '@emotion/utils': 1.4.1 + '@babel/runtime': 7.26.10 + '@emotion/babel-plugin': 11.13.5 + '@emotion/cache': 11.14.0 + '@emotion/serialize': 1.3.3 + '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.2.0) + '@emotion/utils': 1.4.2 '@emotion/weak-memoize': 0.4.0 hoist-non-react-statics: 3.3.2 - react: 18.3.1 + react: 19.2.0 optionalDependencies: - '@types/react': 18.3.3 + '@types/react': 19.2.2 transitivePeerDependencies: - supports-color - '@emotion/serialize@1.3.2': + '@emotion/serialize@1.3.3': dependencies: '@emotion/hash': 0.9.2 '@emotion/memoize': 0.9.0 '@emotion/unitless': 0.10.0 - '@emotion/utils': 1.4.1 + '@emotion/utils': 1.4.2 csstype: 3.1.3 '@emotion/sheet@1.4.0': {} @@ -4468,182 +3992,183 @@ snapshots: '@emotion/unitless@0.8.1': {} - '@emotion/use-insertion-effect-with-fallbacks@1.1.0(react@18.3.1)': + '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@19.2.0)': dependencies: - react: 18.3.1 + react: 19.2.0 - '@emotion/utils@1.4.1': {} + '@emotion/utils@1.4.2': {} '@emotion/weak-memoize@0.4.0': {} - '@esbuild/aix-ppc64@0.21.5': + '@esbuild/aix-ppc64@0.23.1': optional: true - '@esbuild/android-arm64@0.16.17': + '@esbuild/aix-ppc64@0.25.1': optional: true - '@esbuild/android-arm64@0.21.5': + '@esbuild/android-arm64@0.23.1': optional: true - '@esbuild/android-arm@0.16.17': + '@esbuild/android-arm64@0.25.1': optional: true - '@esbuild/android-arm@0.21.5': + '@esbuild/android-arm@0.23.1': optional: true - '@esbuild/android-x64@0.16.17': + '@esbuild/android-arm@0.25.1': optional: true - '@esbuild/android-x64@0.21.5': + '@esbuild/android-x64@0.23.1': optional: true - '@esbuild/darwin-arm64@0.16.17': + '@esbuild/android-x64@0.25.1': optional: true - '@esbuild/darwin-arm64@0.21.5': + '@esbuild/darwin-arm64@0.23.1': optional: true - '@esbuild/darwin-x64@0.16.17': + '@esbuild/darwin-arm64@0.25.1': optional: true - '@esbuild/darwin-x64@0.21.5': + '@esbuild/darwin-x64@0.23.1': optional: true - '@esbuild/freebsd-arm64@0.16.17': + '@esbuild/darwin-x64@0.25.1': optional: true - '@esbuild/freebsd-arm64@0.21.5': + '@esbuild/freebsd-arm64@0.23.1': optional: true - '@esbuild/freebsd-x64@0.16.17': + '@esbuild/freebsd-arm64@0.25.1': optional: true - '@esbuild/freebsd-x64@0.21.5': + '@esbuild/freebsd-x64@0.23.1': optional: true - '@esbuild/linux-arm64@0.16.17': + '@esbuild/freebsd-x64@0.25.1': optional: true - '@esbuild/linux-arm64@0.21.5': + '@esbuild/linux-arm64@0.23.1': optional: true - '@esbuild/linux-arm@0.16.17': + '@esbuild/linux-arm64@0.25.1': optional: true - '@esbuild/linux-arm@0.21.5': + '@esbuild/linux-arm@0.23.1': optional: true - '@esbuild/linux-ia32@0.16.17': + '@esbuild/linux-arm@0.25.1': optional: true - '@esbuild/linux-ia32@0.21.5': + '@esbuild/linux-ia32@0.23.1': optional: true - '@esbuild/linux-loong64@0.16.17': + '@esbuild/linux-ia32@0.25.1': optional: true - '@esbuild/linux-loong64@0.21.5': + '@esbuild/linux-loong64@0.23.1': optional: true - '@esbuild/linux-mips64el@0.16.17': + '@esbuild/linux-loong64@0.25.1': optional: true - '@esbuild/linux-mips64el@0.21.5': + '@esbuild/linux-mips64el@0.23.1': optional: true - '@esbuild/linux-ppc64@0.16.17': + '@esbuild/linux-mips64el@0.25.1': optional: true - '@esbuild/linux-ppc64@0.21.5': + '@esbuild/linux-ppc64@0.23.1': optional: true - '@esbuild/linux-riscv64@0.16.17': + '@esbuild/linux-ppc64@0.25.1': optional: true - '@esbuild/linux-riscv64@0.21.5': + '@esbuild/linux-riscv64@0.23.1': optional: true - '@esbuild/linux-s390x@0.16.17': + '@esbuild/linux-riscv64@0.25.1': optional: true - '@esbuild/linux-s390x@0.21.5': + '@esbuild/linux-s390x@0.23.1': optional: true - '@esbuild/linux-x64@0.16.17': + '@esbuild/linux-s390x@0.25.1': optional: true - '@esbuild/linux-x64@0.21.5': + '@esbuild/linux-x64@0.23.1': optional: true - '@esbuild/netbsd-x64@0.16.17': + '@esbuild/linux-x64@0.25.1': optional: true - '@esbuild/netbsd-x64@0.21.5': + '@esbuild/netbsd-arm64@0.25.1': optional: true - '@esbuild/openbsd-x64@0.16.17': + '@esbuild/netbsd-x64@0.23.1': optional: true - '@esbuild/openbsd-x64@0.21.5': + '@esbuild/netbsd-x64@0.25.1': optional: true - '@esbuild/sunos-x64@0.16.17': + '@esbuild/openbsd-arm64@0.23.1': optional: true - '@esbuild/sunos-x64@0.21.5': + '@esbuild/openbsd-arm64@0.25.1': optional: true - '@esbuild/win32-arm64@0.16.17': + '@esbuild/openbsd-x64@0.23.1': optional: true - '@esbuild/win32-arm64@0.21.5': + '@esbuild/openbsd-x64@0.25.1': optional: true - '@esbuild/win32-ia32@0.16.17': + '@esbuild/sunos-x64@0.23.1': optional: true - '@esbuild/win32-ia32@0.21.5': + '@esbuild/sunos-x64@0.25.1': optional: true - '@esbuild/win32-x64@0.16.17': + '@esbuild/win32-arm64@0.23.1': optional: true - '@esbuild/win32-x64@0.21.5': + '@esbuild/win32-arm64@0.25.1': optional: true - '@floating-ui/core@1.6.8': - dependencies: - '@floating-ui/utils': 0.2.8 + '@esbuild/win32-ia32@0.23.1': + optional: true - '@floating-ui/dom@1.6.11': - dependencies: - '@floating-ui/core': 1.6.8 - '@floating-ui/utils': 0.2.8 + '@esbuild/win32-ia32@0.25.1': + optional: true - '@floating-ui/dom@1.6.8': - dependencies: - '@floating-ui/core': 1.6.8 - '@floating-ui/utils': 0.2.8 + '@esbuild/win32-x64@0.23.1': + optional: true + + '@esbuild/win32-x64@0.25.1': + optional: true - '@floating-ui/utils@0.2.8': {} + '@floating-ui/core@1.6.9': + dependencies: + '@floating-ui/utils': 0.2.9 - '@graphql-typed-document-node/core@3.2.0(graphql@16.9.0)': + '@floating-ui/dom@1.6.13': dependencies: - graphql: 16.9.0 + '@floating-ui/core': 1.6.9 + '@floating-ui/utils': 0.2.9 - '@hutson/parse-repository-url@5.0.0': {} + '@floating-ui/utils@0.2.9': {} - '@internationalized/date@3.5.5': + '@graphql-typed-document-node/core@3.2.0(graphql@16.10.0)': dependencies: - '@swc/helpers': 0.5.13 + graphql: 16.10.0 - '@internationalized/date@3.5.6': + '@internationalized/date@3.7.0': dependencies: - '@swc/helpers': 0.5.13 + '@swc/helpers': 0.5.15 - '@internationalized/number@3.5.3': + '@internationalized/number@3.6.0': dependencies: - '@swc/helpers': 0.5.13 + '@swc/helpers': 0.5.15 '@isaacs/cliui@8.0.2': dependencies: @@ -4654,39 +4179,24 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 - '@jest/schemas@29.6.3': - dependencies: - '@sinclair/typebox': 0.27.8 - - '@jridgewell/gen-mapping@0.3.3': + '@jridgewell/gen-mapping@0.3.13': dependencies: - '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.20 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.30 - '@jridgewell/gen-mapping@0.3.5': + '@jridgewell/remapping@2.3.5': dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.25 - - '@jridgewell/resolve-uri@3.1.1': {} + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.30 - '@jridgewell/set-array@1.1.2': {} + '@jridgewell/resolve-uri@3.1.2': {} - '@jridgewell/set-array@1.2.1': {} + '@jridgewell/sourcemap-codec@1.5.0': {} - '@jridgewell/sourcemap-codec@1.4.15': {} - - '@jridgewell/trace-mapping@0.3.20': - dependencies: - '@jridgewell/resolve-uri': 3.1.1 - '@jridgewell/sourcemap-codec': 1.4.15 - - '@jridgewell/trace-mapping@0.3.25': + '@jridgewell/trace-mapping@0.3.30': dependencies: - '@jridgewell/resolve-uri': 3.1.1 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 '@nodelib/fs.scandir@2.1.5': dependencies: @@ -4698,147 +4208,186 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.15.0 + fastq: 1.19.1 '@pandacss/is-valid-prop@0.41.0': {} '@pkgjs/parseargs@0.11.0': optional: true + '@polka/url@1.0.0-next.28': {} + '@rc-component/async-validator@5.0.4': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.10 - '@rc-component/color-picker@2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@rc-component/color-picker@2.0.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: '@ant-design/fast-color': 2.0.6 - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.10 classnames: 2.5.1 - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - '@rc-component/context@1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@rc-component/context@1.4.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: - '@babel/runtime': 7.26.0 - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@babel/runtime': 7.26.10 + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) '@rc-component/mini-decimal@1.1.0': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.10 + + '@rc-component/mutate-observer@1.1.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + dependencies: + '@babel/runtime': 7.26.10 + classnames: 2.5.1 + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) + + '@rc-component/portal@1.1.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + dependencies: + '@babel/runtime': 7.26.10 + classnames: 2.5.1 + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - '@rc-component/mutate-observer@1.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@rc-component/qrcode@1.0.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.10 classnames: 2.5.1 - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - '@rc-component/portal@1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@rc-component/tour@1.15.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.10 + '@rc-component/portal': 1.1.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@rc-component/trigger': 2.2.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0) classnames: 2.5.1 - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - '@rc-component/qrcode@1.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@rc-component/trigger@2.2.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.10 + '@rc-component/portal': 1.1.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0) classnames: 2.5.1 - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + rc-motion: 2.9.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-resize-observer: 1.4.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) + + '@reduxjs/toolkit@2.8.2(react-redux@9.2.0(@types/react@19.2.2)(react@19.2.0)(redux@5.0.1))(react@19.2.0)': + dependencies: + '@standard-schema/spec': 1.0.0 + '@standard-schema/utils': 0.3.0 + immer: 10.1.3 + redux: 5.0.1 + redux-thunk: 3.1.0(redux@5.0.1) + reselect: 5.1.1 + optionalDependencies: + react: 19.2.0 + react-redux: 9.2.0(@types/react@19.2.2)(react@19.2.0)(redux@5.0.1) + + '@rolldown/pluginutils@1.0.0-beta.38': {} + + '@rollup/rollup-android-arm-eabi@4.46.2': + optional: true + + '@rollup/rollup-android-arm64@4.46.2': + optional: true - '@rc-component/tour@1.15.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.0 - '@rc-component/portal': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@rc-component/trigger': 2.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - classnames: 2.5.1 - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@rollup/rollup-darwin-arm64@4.46.2': + optional: true - '@rc-component/trigger@2.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.0 - '@rc-component/portal': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@rollup/rollup-darwin-x64@4.46.2': + optional: true - '@rollup/rollup-android-arm-eabi@4.20.0': + '@rollup/rollup-freebsd-arm64@4.46.2': optional: true - '@rollup/rollup-android-arm64@4.20.0': + '@rollup/rollup-freebsd-x64@4.46.2': optional: true - '@rollup/rollup-darwin-arm64@4.20.0': + '@rollup/rollup-linux-arm-gnueabihf@4.46.2': optional: true - '@rollup/rollup-darwin-x64@4.20.0': + '@rollup/rollup-linux-arm-musleabihf@4.46.2': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.20.0': + '@rollup/rollup-linux-arm64-gnu@4.46.2': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.20.0': + '@rollup/rollup-linux-arm64-musl@4.46.2': optional: true - '@rollup/rollup-linux-arm64-gnu@4.20.0': + '@rollup/rollup-linux-loongarch64-gnu@4.46.2': optional: true - '@rollup/rollup-linux-arm64-musl@4.20.0': + '@rollup/rollup-linux-ppc64-gnu@4.46.2': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.20.0': + '@rollup/rollup-linux-riscv64-gnu@4.46.2': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.20.0': + '@rollup/rollup-linux-riscv64-musl@4.46.2': optional: true - '@rollup/rollup-linux-s390x-gnu@4.20.0': + '@rollup/rollup-linux-s390x-gnu@4.46.2': optional: true - '@rollup/rollup-linux-x64-gnu@4.20.0': + '@rollup/rollup-linux-x64-gnu@4.46.2': optional: true - '@rollup/rollup-linux-x64-musl@4.20.0': + '@rollup/rollup-linux-x64-musl@4.46.2': optional: true - '@rollup/rollup-win32-arm64-msvc@4.20.0': + '@rollup/rollup-win32-arm64-msvc@4.46.2': optional: true - '@rollup/rollup-win32-ia32-msvc@4.20.0': + '@rollup/rollup-win32-ia32-msvc@4.46.2': optional: true - '@rollup/rollup-win32-x64-msvc@4.20.0': + '@rollup/rollup-win32-x64-msvc@4.46.2': optional: true - '@sinclair/typebox@0.27.8': {} + '@simple-libs/child-process-utils@1.0.1': + dependencies: + '@simple-libs/stream-utils': 1.1.0 + '@types/node': 22.15.34 + + '@simple-libs/stream-utils@1.1.0': + dependencies: + '@types/node': 22.15.34 + + '@standard-schema/spec@1.0.0': {} - '@swc/helpers@0.5.13': + '@standard-schema/utils@0.3.0': {} + + '@swc/helpers@0.5.15': dependencies: - tslib: 2.6.3 + tslib: 2.8.1 - '@tanstack/query-core@5.20.1': {} + '@tanstack/query-core@5.69.0': {} - '@tanstack/react-query@5.20.1(react@18.3.1)': + '@tanstack/react-query@5.69.0(react@19.2.0)': dependencies: - '@tanstack/query-core': 5.20.1 - react: 18.3.1 + '@tanstack/query-core': 5.69.0 + react: 19.2.0 - '@testing-library/dom@9.3.3': + '@testing-library/dom@9.3.4': dependencies: - '@babel/code-frame': 7.23.5 - '@babel/runtime': 7.23.5 + '@babel/code-frame': 7.27.1 + '@babel/runtime': 7.26.10 '@types/aria-query': 5.0.4 aria-query: 5.1.3 chalk: 4.1.2 @@ -4846,1121 +4395,608 @@ snapshots: lz-string: 1.5.0 pretty-format: 27.5.1 - '@testing-library/react@14.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@testing-library/react@14.3.1(@types/react@19.2.2)(react@19.2.0)': dependencies: - '@babel/runtime': 7.23.5 - '@testing-library/dom': 9.3.3 - '@types/react-dom': 18.3.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@babel/runtime': 7.26.10 + '@testing-library/dom': 9.3.4 + '@types/react-dom': 18.3.5(@types/react@19.2.2) + react: 19.2.0 + transitivePeerDependencies: + - '@types/react' '@types/aria-query@5.0.4': {} '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.23.6 - '@babel/types': 7.23.6 - '@types/babel__generator': 7.6.7 + '@babel/parser': 7.28.4 + '@babel/types': 7.28.4 + '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.4 + '@types/babel__traverse': 7.20.6 - '@types/babel__generator@7.6.7': + '@types/babel__generator@7.6.8': dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.28.4 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.23.3 - '@babel/types': 7.23.3 + '@babel/parser': 7.28.4 + '@babel/types': 7.28.4 - '@types/babel__traverse@7.20.4': + '@types/babel__traverse@7.20.6': dependencies: - '@babel/types': 7.23.3 - - '@types/estree@1.0.5': {} + '@babel/types': 7.28.4 - '@types/node@20.11.17': + '@types/chai@5.2.2': dependencies: - undici-types: 5.26.5 + '@types/deep-eql': 4.0.2 - '@types/normalize-package-data@2.4.4': {} + '@types/deep-eql@4.0.2': {} - '@types/parse-json@4.0.2': {} + '@types/estree@1.0.8': {} - '@types/prop-types@15.7.10': {} + '@types/node@22.15.34': + dependencies: + undici-types: 6.21.0 - '@types/react-dom@18.2.19': + '@types/node@24.0.8': dependencies: - '@types/react': 18.3.3 + undici-types: 7.8.0 + + '@types/normalize-package-data@2.4.4': {} + + '@types/parse-json@4.0.2': {} - '@types/react-dom@18.3.0': + '@types/react-dom@18.3.5(@types/react@19.2.2)': dependencies: - '@types/react': 18.2.55 + '@types/react': 19.2.2 - '@types/react@18.2.55': + '@types/react-dom@19.2.1(@types/react@19.2.2)': dependencies: - '@types/prop-types': 15.7.10 - '@types/scheduler': 0.16.6 - csstype: 3.1.2 + '@types/react': 19.2.2 - '@types/react@18.3.3': + '@types/react@19.2.2': dependencies: - '@types/prop-types': 15.7.10 csstype: 3.1.3 - '@types/scheduler@0.16.6': {} - '@types/stylis@4.2.5': {} - '@vitejs/plugin-react@4.2.1(vite@5.4.0(@types/node@20.11.17))': + '@types/use-sync-external-store@0.0.6': {} + + '@vitejs/plugin-react@5.0.4(vite@7.1.9(@types/node@24.0.8))': dependencies: - '@babel/core': 7.23.6 - '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.6) + '@babel/core': 7.28.4 + '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.28.4) + '@rolldown/pluginutils': 1.0.0-beta.38 '@types/babel__core': 7.20.5 - react-refresh: 0.14.0 - vite: 5.4.0(@types/node@20.11.17) + react-refresh: 0.17.0 + vite: 7.1.9(@types/node@24.0.8) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@4.3.1(vite@5.4.0(@types/node@20.11.17))': + '@vitest/expect@3.2.4': dependencies: - '@babel/core': 7.25.2 - '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.25.2) - '@types/babel__core': 7.20.5 - react-refresh: 0.14.2 - vite: 5.4.0(@types/node@20.11.17) - transitivePeerDependencies: - - supports-color + '@types/chai': 5.2.2 + '@vitest/spy': 3.2.4 + '@vitest/utils': 3.2.4 + chai: 5.2.0 + tinyrainbow: 2.0.0 + + '@vitest/mocker@3.2.4(vite@7.1.9(@types/node@24.0.8))': + dependencies: + '@vitest/spy': 3.2.4 + estree-walker: 3.0.3 + magic-string: 0.30.17 + optionalDependencies: + vite: 7.1.9(@types/node@24.0.8) - '@vitest/expect@1.2.2': + '@vitest/pretty-format@3.2.4': dependencies: - '@vitest/spy': 1.2.2 - '@vitest/utils': 1.2.2 - chai: 4.3.10 + tinyrainbow: 2.0.0 - '@vitest/runner@1.2.2': + '@vitest/runner@3.2.4': dependencies: - '@vitest/utils': 1.2.2 - p-limit: 5.0.0 - pathe: 1.1.1 + '@vitest/utils': 3.2.4 + pathe: 2.0.3 + strip-literal: 3.0.0 - '@vitest/snapshot@1.2.2': + '@vitest/snapshot@3.2.4': dependencies: - magic-string: 0.30.5 - pathe: 1.1.1 - pretty-format: 29.7.0 + '@vitest/pretty-format': 3.2.4 + magic-string: 0.30.17 + pathe: 2.0.3 - '@vitest/spy@1.2.2': + '@vitest/spy@3.2.4': dependencies: - tinyspy: 2.2.0 + tinyspy: 4.0.3 - '@vitest/utils@1.2.2': + '@vitest/utils@3.2.4': dependencies: - diff-sequences: 29.6.3 - estree-walker: 3.0.3 - loupe: 2.3.7 - pretty-format: 29.7.0 + '@vitest/pretty-format': 3.2.4 + loupe: 3.1.4 + tinyrainbow: 2.0.0 '@wry/caches@1.0.1': dependencies: - tslib: 2.6.3 + tslib: 2.8.1 '@wry/context@0.7.4': dependencies: - tslib: 2.6.3 + tslib: 2.8.1 '@wry/equality@0.5.7': dependencies: - tslib: 2.6.3 - - '@wry/trie@0.4.3': - dependencies: - tslib: 2.6.3 + tslib: 2.8.1 '@wry/trie@0.5.0': dependencies: - tslib: 2.6.3 - - '@zag-js/accordion@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 + tslib: 2.8.1 - '@zag-js/accordion@0.74.2': + '@zag-js/accordion@0.82.2': dependencies: - '@zag-js/anatomy': 0.74.2 - '@zag-js/core': 0.74.2 - '@zag-js/dom-event': 0.74.2 - '@zag-js/dom-query': 0.74.2 - '@zag-js/types': 0.74.2 - '@zag-js/utils': 0.74.2 + '@zag-js/anatomy': 0.82.2 + '@zag-js/core': 0.82.2 + '@zag-js/dom-query': 0.82.2 + '@zag-js/types': 0.82.2 + '@zag-js/utils': 0.82.2 - '@zag-js/anatomy@0.62.1': {} + '@zag-js/anatomy@0.82.2': {} - '@zag-js/anatomy@0.74.2': {} + '@zag-js/aria-hidden@0.82.2': {} - '@zag-js/aria-hidden@0.62.1': + '@zag-js/auto-resize@0.82.2': dependencies: - '@zag-js/dom-query': 0.62.1 + '@zag-js/dom-query': 0.82.2 - '@zag-js/aria-hidden@0.74.2': + '@zag-js/avatar@0.82.2': dependencies: - aria-hidden: 1.2.4 + '@zag-js/anatomy': 0.82.2 + '@zag-js/core': 0.82.2 + '@zag-js/dom-query': 0.82.2 + '@zag-js/types': 0.82.2 + '@zag-js/utils': 0.82.2 - '@zag-js/auto-resize@0.62.1': + '@zag-js/carousel@0.82.2': dependencies: - '@zag-js/dom-query': 0.62.1 + '@zag-js/anatomy': 0.82.2 + '@zag-js/core': 0.82.2 + '@zag-js/dom-query': 0.82.2 + '@zag-js/scroll-snap': 0.82.2 + '@zag-js/types': 0.82.2 + '@zag-js/utils': 0.82.2 - '@zag-js/auto-resize@0.74.2': + '@zag-js/checkbox@0.82.2': dependencies: - '@zag-js/dom-query': 0.74.2 + '@zag-js/anatomy': 0.82.2 + '@zag-js/core': 0.82.2 + '@zag-js/dom-query': 0.82.2 + '@zag-js/focus-visible': 0.82.2 + '@zag-js/types': 0.82.2 + '@zag-js/utils': 0.82.2 - '@zag-js/avatar@0.62.1': + '@zag-js/clipboard@0.82.2': dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 + '@zag-js/anatomy': 0.82.2 + '@zag-js/core': 0.82.2 + '@zag-js/dom-query': 0.82.2 + '@zag-js/types': 0.82.2 + '@zag-js/utils': 0.82.2 - '@zag-js/avatar@0.74.2': + '@zag-js/collapsible@0.82.2': dependencies: - '@zag-js/anatomy': 0.74.2 - '@zag-js/core': 0.74.2 - '@zag-js/dom-query': 0.74.2 - '@zag-js/types': 0.74.2 - '@zag-js/utils': 0.74.2 + '@zag-js/anatomy': 0.82.2 + '@zag-js/core': 0.82.2 + '@zag-js/dom-query': 0.82.2 + '@zag-js/types': 0.82.2 + '@zag-js/utils': 0.82.2 - '@zag-js/carousel@0.62.1': + '@zag-js/collection@0.82.2': dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 + '@zag-js/utils': 0.82.2 - '@zag-js/carousel@0.74.2': + '@zag-js/color-picker@0.82.2': dependencies: - '@zag-js/anatomy': 0.74.2 - '@zag-js/core': 0.74.2 - '@zag-js/dom-query': 0.74.2 - '@zag-js/types': 0.74.2 - '@zag-js/utils': 0.74.2 + '@zag-js/anatomy': 0.82.2 + '@zag-js/color-utils': 0.82.2 + '@zag-js/core': 0.82.2 + '@zag-js/dismissable': 0.82.2 + '@zag-js/dom-query': 0.82.2 + '@zag-js/popper': 0.82.2 + '@zag-js/types': 0.82.2 + '@zag-js/utils': 0.82.2 - '@zag-js/checkbox@0.62.1': + '@zag-js/color-utils@0.82.2': dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/form-utils': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 + '@zag-js/utils': 0.82.2 - '@zag-js/checkbox@0.74.2': + '@zag-js/combobox@0.82.2': dependencies: - '@zag-js/anatomy': 0.74.2 - '@zag-js/core': 0.74.2 - '@zag-js/dom-event': 0.74.2 - '@zag-js/dom-query': 0.74.2 - '@zag-js/focus-visible': 0.74.2 - '@zag-js/form-utils': 0.74.2 - '@zag-js/types': 0.74.2 - '@zag-js/utils': 0.74.2 + '@zag-js/anatomy': 0.82.2 + '@zag-js/aria-hidden': 0.82.2 + '@zag-js/collection': 0.82.2 + '@zag-js/core': 0.82.2 + '@zag-js/dismissable': 0.82.2 + '@zag-js/dom-query': 0.82.2 + '@zag-js/popper': 0.82.2 + '@zag-js/types': 0.82.2 + '@zag-js/utils': 0.82.2 - '@zag-js/clipboard@0.62.1': + '@zag-js/core@0.82.2': dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 + '@zag-js/store': 0.82.2 + '@zag-js/utils': 0.82.2 - '@zag-js/clipboard@0.74.2': + '@zag-js/date-picker@0.82.2(@internationalized/date@3.7.0)': dependencies: - '@zag-js/anatomy': 0.74.2 - '@zag-js/core': 0.74.2 - '@zag-js/dom-query': 0.74.2 - '@zag-js/types': 0.74.2 - '@zag-js/utils': 0.74.2 + '@internationalized/date': 3.7.0 + '@zag-js/anatomy': 0.82.2 + '@zag-js/core': 0.82.2 + '@zag-js/date-utils': 0.82.2(@internationalized/date@3.7.0) + '@zag-js/dismissable': 0.82.2 + '@zag-js/dom-query': 0.82.2 + '@zag-js/live-region': 0.82.2 + '@zag-js/popper': 0.82.2 + '@zag-js/types': 0.82.2 + '@zag-js/utils': 0.82.2 - '@zag-js/collapsible@0.62.1': + '@zag-js/date-utils@0.82.2(@internationalized/date@3.7.0)': dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 + '@internationalized/date': 3.7.0 - '@zag-js/collapsible@0.74.2': + '@zag-js/dialog@0.82.2': dependencies: - '@zag-js/anatomy': 0.74.2 - '@zag-js/core': 0.74.2 - '@zag-js/dom-query': 0.74.2 - '@zag-js/types': 0.74.2 - '@zag-js/utils': 0.74.2 + '@zag-js/anatomy': 0.82.2 + '@zag-js/aria-hidden': 0.82.2 + '@zag-js/core': 0.82.2 + '@zag-js/dismissable': 0.82.2 + '@zag-js/dom-query': 0.82.2 + '@zag-js/focus-trap': 0.82.2 + '@zag-js/remove-scroll': 0.82.2 + '@zag-js/types': 0.82.2 + '@zag-js/utils': 0.82.2 - '@zag-js/collection@0.62.1': + '@zag-js/dismissable@0.82.2': dependencies: - '@zag-js/utils': 0.62.1 - - '@zag-js/collection@0.74.2': - dependencies: - '@zag-js/utils': 0.74.2 - - '@zag-js/color-picker@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/color-utils': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dismissable': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/form-utils': 0.62.1 - '@zag-js/popper': 0.62.1 - '@zag-js/text-selection': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - - '@zag-js/color-picker@0.74.2': - dependencies: - '@zag-js/anatomy': 0.74.2 - '@zag-js/color-utils': 0.74.2 - '@zag-js/core': 0.74.2 - '@zag-js/dismissable': 0.74.2 - '@zag-js/dom-event': 0.74.2 - '@zag-js/dom-query': 0.74.2 - '@zag-js/form-utils': 0.74.2 - '@zag-js/popper': 0.74.2 - '@zag-js/text-selection': 0.74.2 - '@zag-js/types': 0.74.2 - '@zag-js/utils': 0.74.2 - - '@zag-js/color-utils@0.62.1': - dependencies: - '@zag-js/numeric-range': 0.62.1 - - '@zag-js/color-utils@0.74.2': - dependencies: - '@zag-js/numeric-range': 0.74.2 - - '@zag-js/combobox@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/aria-hidden': 0.62.1 - '@zag-js/collection': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dismissable': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/popper': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - - '@zag-js/combobox@0.74.2': - dependencies: - '@zag-js/anatomy': 0.74.2 - '@zag-js/aria-hidden': 0.74.2 - '@zag-js/collection': 0.74.2 - '@zag-js/core': 0.74.2 - '@zag-js/dismissable': 0.74.2 - '@zag-js/dom-event': 0.74.2 - '@zag-js/dom-query': 0.74.2 - '@zag-js/popper': 0.74.2 - '@zag-js/types': 0.74.2 - '@zag-js/utils': 0.74.2 - - '@zag-js/core@0.62.1': - dependencies: - '@zag-js/store': 0.62.1 - klona: 2.0.6 - - '@zag-js/core@0.74.2': - dependencies: - '@zag-js/store': 0.74.2 - '@zag-js/utils': 0.74.2 - klona: 2.0.6 + '@zag-js/dom-query': 0.82.2 + '@zag-js/interact-outside': 0.82.2 + '@zag-js/utils': 0.82.2 - '@zag-js/date-picker@0.62.1': + '@zag-js/dom-query@0.82.2': dependencies: - '@internationalized/date': 3.5.5 - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/date-utils': 0.62.1(@internationalized/date@3.5.5) - '@zag-js/dismissable': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/form-utils': 0.62.1 - '@zag-js/live-region': 0.62.1 - '@zag-js/popper': 0.62.1 - '@zag-js/text-selection': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - - '@zag-js/date-picker@0.74.2(@internationalized/date@3.5.6)': - dependencies: - '@internationalized/date': 3.5.6 - '@zag-js/anatomy': 0.74.2 - '@zag-js/core': 0.74.2 - '@zag-js/date-utils': 0.74.2(@internationalized/date@3.5.6) - '@zag-js/dismissable': 0.74.2 - '@zag-js/dom-event': 0.74.2 - '@zag-js/dom-query': 0.74.2 - '@zag-js/form-utils': 0.74.2 - '@zag-js/live-region': 0.74.2 - '@zag-js/popper': 0.74.2 - '@zag-js/text-selection': 0.74.2 - '@zag-js/types': 0.74.2 - '@zag-js/utils': 0.74.2 - - '@zag-js/date-utils@0.62.1(@internationalized/date@3.5.5)': - dependencies: - '@internationalized/date': 3.5.5 - - '@zag-js/date-utils@0.62.1(@internationalized/date@3.5.6)': - dependencies: - '@internationalized/date': 3.5.6 + '@zag-js/types': 0.82.2 - '@zag-js/date-utils@0.74.2(@internationalized/date@3.5.6)': - dependencies: - '@internationalized/date': 3.5.6 - - '@zag-js/dialog@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/aria-hidden': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dismissable': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/remove-scroll': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - focus-trap: 7.5.4 - - '@zag-js/dialog@0.74.2': - dependencies: - '@zag-js/anatomy': 0.74.2 - '@zag-js/aria-hidden': 0.74.2 - '@zag-js/core': 0.74.2 - '@zag-js/dismissable': 0.74.2 - '@zag-js/dom-query': 0.74.2 - '@zag-js/remove-scroll': 0.74.2 - '@zag-js/types': 0.74.2 - '@zag-js/utils': 0.74.2 - focus-trap: 7.6.0 - - '@zag-js/dismissable@0.62.1': + '@zag-js/editable@0.82.2': dependencies: - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/interact-outside': 0.62.1 - '@zag-js/utils': 0.62.1 + '@zag-js/anatomy': 0.82.2 + '@zag-js/core': 0.82.2 + '@zag-js/dom-query': 0.82.2 + '@zag-js/interact-outside': 0.82.2 + '@zag-js/types': 0.82.2 + '@zag-js/utils': 0.82.2 - '@zag-js/dismissable@0.74.2': - dependencies: - '@zag-js/dom-event': 0.74.2 - '@zag-js/dom-query': 0.74.2 - '@zag-js/interact-outside': 0.74.2 - '@zag-js/utils': 0.74.2 + '@zag-js/element-rect@0.82.2': {} - '@zag-js/dom-event@0.62.1': - dependencies: - '@zag-js/dom-query': 0.62.1 - '@zag-js/text-selection': 0.62.1 - '@zag-js/types': 0.62.1 + '@zag-js/element-size@0.82.2': {} - '@zag-js/dom-event@0.74.2': + '@zag-js/file-upload@0.82.2': dependencies: - '@zag-js/dom-query': 0.74.2 - '@zag-js/text-selection': 0.74.2 - '@zag-js/types': 0.74.2 - - '@zag-js/dom-query@0.62.1': {} + '@zag-js/anatomy': 0.82.2 + '@zag-js/core': 0.82.2 + '@zag-js/dom-query': 0.82.2 + '@zag-js/file-utils': 0.82.2 + '@zag-js/i18n-utils': 0.82.2 + '@zag-js/types': 0.82.2 + '@zag-js/utils': 0.82.2 - '@zag-js/dom-query@0.74.2': {} - - '@zag-js/editable@0.62.1': + '@zag-js/file-utils@0.82.2': dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/form-utils': 0.62.1 - '@zag-js/interact-outside': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 + '@zag-js/i18n-utils': 0.82.2 - '@zag-js/editable@0.74.2': + '@zag-js/focus-trap@0.82.2': dependencies: - '@zag-js/anatomy': 0.74.2 - '@zag-js/core': 0.74.2 - '@zag-js/dom-event': 0.74.2 - '@zag-js/dom-query': 0.74.2 - '@zag-js/form-utils': 0.74.2 - '@zag-js/interact-outside': 0.74.2 - '@zag-js/types': 0.74.2 - '@zag-js/utils': 0.74.2 - - '@zag-js/element-rect@0.62.1': {} + '@zag-js/dom-query': 0.82.2 - '@zag-js/element-rect@0.74.2': {} - - '@zag-js/element-size@0.62.1': {} - - '@zag-js/element-size@0.74.2': {} - - '@zag-js/file-upload@0.62.1': + '@zag-js/focus-visible@0.82.2': dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/file-utils': 0.62.1 - '@zag-js/i18n-utils': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 + '@zag-js/dom-query': 0.82.2 - '@zag-js/file-upload@0.74.2': - dependencies: - '@zag-js/anatomy': 0.74.2 - '@zag-js/core': 0.74.2 - '@zag-js/dom-query': 0.74.2 - '@zag-js/file-utils': 0.74.2 - '@zag-js/i18n-utils': 0.74.2 - '@zag-js/types': 0.74.2 - '@zag-js/utils': 0.74.2 + '@zag-js/highlight-word@0.82.2': {} - '@zag-js/file-utils@0.62.1': + '@zag-js/hover-card@0.82.2': dependencies: - '@zag-js/i18n-utils': 0.62.1 + '@zag-js/anatomy': 0.82.2 + '@zag-js/core': 0.82.2 + '@zag-js/dismissable': 0.82.2 + '@zag-js/dom-query': 0.82.2 + '@zag-js/popper': 0.82.2 + '@zag-js/types': 0.82.2 + '@zag-js/utils': 0.82.2 - '@zag-js/file-utils@0.74.2': + '@zag-js/i18n-utils@0.82.2': dependencies: - '@zag-js/i18n-utils': 0.74.2 + '@zag-js/dom-query': 0.82.2 - '@zag-js/focus-visible@0.74.2': + '@zag-js/interact-outside@0.82.2': dependencies: - '@zag-js/dom-query': 0.74.2 + '@zag-js/dom-query': 0.82.2 + '@zag-js/utils': 0.82.2 - '@zag-js/form-utils@0.62.1': {} + '@zag-js/live-region@0.82.2': {} - '@zag-js/form-utils@0.74.2': {} - - '@zag-js/highlight-word@0.74.2': {} - - '@zag-js/hover-card@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dismissable': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/popper': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - - '@zag-js/hover-card@0.74.2': + '@zag-js/menu@0.82.2': dependencies: - '@zag-js/anatomy': 0.74.2 - '@zag-js/core': 0.74.2 - '@zag-js/dismissable': 0.74.2 - '@zag-js/dom-query': 0.74.2 - '@zag-js/popper': 0.74.2 - '@zag-js/types': 0.74.2 - '@zag-js/utils': 0.74.2 + '@zag-js/anatomy': 0.82.2 + '@zag-js/core': 0.82.2 + '@zag-js/dismissable': 0.82.2 + '@zag-js/dom-query': 0.82.2 + '@zag-js/popper': 0.82.2 + '@zag-js/rect-utils': 0.82.2 + '@zag-js/types': 0.82.2 + '@zag-js/utils': 0.82.2 - '@zag-js/i18n-utils@0.62.1': + '@zag-js/number-input@0.82.2': dependencies: - '@zag-js/dom-query': 0.62.1 + '@internationalized/number': 3.6.0 + '@zag-js/anatomy': 0.82.2 + '@zag-js/core': 0.82.2 + '@zag-js/dom-query': 0.82.2 + '@zag-js/types': 0.82.2 + '@zag-js/utils': 0.82.2 - '@zag-js/i18n-utils@0.74.2': + '@zag-js/pagination@0.82.2': dependencies: - '@zag-js/dom-query': 0.74.2 + '@zag-js/anatomy': 0.82.2 + '@zag-js/core': 0.82.2 + '@zag-js/dom-query': 0.82.2 + '@zag-js/types': 0.82.2 + '@zag-js/utils': 0.82.2 - '@zag-js/interact-outside@0.62.1': + '@zag-js/pin-input@0.82.2': dependencies: - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/utils': 0.62.1 + '@zag-js/anatomy': 0.82.2 + '@zag-js/core': 0.82.2 + '@zag-js/dom-query': 0.82.2 + '@zag-js/types': 0.82.2 + '@zag-js/utils': 0.82.2 - '@zag-js/interact-outside@0.74.2': + '@zag-js/popover@0.82.2': dependencies: - '@zag-js/dom-event': 0.74.2 - '@zag-js/dom-query': 0.74.2 - '@zag-js/utils': 0.74.2 + '@zag-js/anatomy': 0.82.2 + '@zag-js/aria-hidden': 0.82.2 + '@zag-js/core': 0.82.2 + '@zag-js/dismissable': 0.82.2 + '@zag-js/dom-query': 0.82.2 + '@zag-js/focus-trap': 0.82.2 + '@zag-js/popper': 0.82.2 + '@zag-js/remove-scroll': 0.82.2 + '@zag-js/types': 0.82.2 + '@zag-js/utils': 0.82.2 - '@zag-js/live-region@0.62.1': {} - - '@zag-js/live-region@0.74.2': {} - - '@zag-js/menu@0.62.1': + '@zag-js/popper@0.82.2': dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dismissable': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/popper': 0.62.1 - '@zag-js/rect-utils': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 + '@floating-ui/dom': 1.6.13 + '@zag-js/dom-query': 0.82.2 + '@zag-js/utils': 0.82.2 - '@zag-js/menu@0.74.2': + '@zag-js/presence@0.82.2': dependencies: - '@zag-js/anatomy': 0.74.2 - '@zag-js/core': 0.74.2 - '@zag-js/dismissable': 0.74.2 - '@zag-js/dom-event': 0.74.2 - '@zag-js/dom-query': 0.74.2 - '@zag-js/popper': 0.74.2 - '@zag-js/rect-utils': 0.74.2 - '@zag-js/types': 0.74.2 - '@zag-js/utils': 0.74.2 + '@zag-js/core': 0.82.2 + '@zag-js/types': 0.82.2 - '@zag-js/number-input@0.62.1': + '@zag-js/progress@0.82.2': dependencies: - '@internationalized/number': 3.5.3 - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/form-utils': 0.62.1 - '@zag-js/number-utils': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 + '@zag-js/anatomy': 0.82.2 + '@zag-js/core': 0.82.2 + '@zag-js/dom-query': 0.82.2 + '@zag-js/types': 0.82.2 + '@zag-js/utils': 0.82.2 - '@zag-js/number-input@0.74.2': + '@zag-js/qr-code@0.82.2': dependencies: - '@internationalized/number': 3.5.3 - '@zag-js/anatomy': 0.74.2 - '@zag-js/core': 0.74.2 - '@zag-js/dom-event': 0.74.2 - '@zag-js/dom-query': 0.74.2 - '@zag-js/form-utils': 0.74.2 - '@zag-js/number-utils': 0.74.2 - '@zag-js/types': 0.74.2 - '@zag-js/utils': 0.74.2 - - '@zag-js/number-utils@0.62.1': {} - - '@zag-js/number-utils@0.74.2': {} - - '@zag-js/numeric-range@0.62.1': {} - - '@zag-js/numeric-range@0.74.2': {} + '@zag-js/anatomy': 0.82.2 + '@zag-js/core': 0.82.2 + '@zag-js/dom-query': 0.82.2 + '@zag-js/types': 0.82.2 + '@zag-js/utils': 0.82.2 + proxy-memoize: 3.0.1 + uqr: 0.1.2 - '@zag-js/pagination@0.62.1': + '@zag-js/radio-group@0.82.2': dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 + '@zag-js/anatomy': 0.82.2 + '@zag-js/core': 0.82.2 + '@zag-js/dom-query': 0.82.2 + '@zag-js/element-rect': 0.82.2 + '@zag-js/focus-visible': 0.82.2 + '@zag-js/types': 0.82.2 + '@zag-js/utils': 0.82.2 - '@zag-js/pagination@0.74.2': + '@zag-js/rating-group@0.82.2': dependencies: - '@zag-js/anatomy': 0.74.2 - '@zag-js/core': 0.74.2 - '@zag-js/dom-query': 0.74.2 - '@zag-js/types': 0.74.2 - '@zag-js/utils': 0.74.2 + '@zag-js/anatomy': 0.82.2 + '@zag-js/core': 0.82.2 + '@zag-js/dom-query': 0.82.2 + '@zag-js/types': 0.82.2 + '@zag-js/utils': 0.82.2 - '@zag-js/pin-input@0.62.1': + '@zag-js/react@0.82.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/form-utils': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 + '@zag-js/core': 0.82.2 + '@zag-js/store': 0.82.2 + '@zag-js/types': 0.82.2 + proxy-compare: 3.0.1 + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - '@zag-js/pin-input@0.74.2': - dependencies: - '@zag-js/anatomy': 0.74.2 - '@zag-js/core': 0.74.2 - '@zag-js/dom-event': 0.74.2 - '@zag-js/dom-query': 0.74.2 - '@zag-js/form-utils': 0.74.2 - '@zag-js/types': 0.74.2 - '@zag-js/utils': 0.74.2 - - '@zag-js/popover@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/aria-hidden': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dismissable': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/popper': 0.62.1 - '@zag-js/remove-scroll': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - focus-trap: 7.5.4 - - '@zag-js/popover@0.74.2': - dependencies: - '@zag-js/anatomy': 0.74.2 - '@zag-js/aria-hidden': 0.74.2 - '@zag-js/core': 0.74.2 - '@zag-js/dismissable': 0.74.2 - '@zag-js/dom-query': 0.74.2 - '@zag-js/popper': 0.74.2 - '@zag-js/remove-scroll': 0.74.2 - '@zag-js/types': 0.74.2 - '@zag-js/utils': 0.74.2 - focus-trap: 7.6.0 - - '@zag-js/popper@0.62.1': - dependencies: - '@floating-ui/dom': 1.6.8 - '@zag-js/dom-query': 0.62.1 - '@zag-js/utils': 0.62.1 - - '@zag-js/popper@0.74.2': - dependencies: - '@floating-ui/dom': 1.6.11 - '@zag-js/dom-query': 0.74.2 - '@zag-js/utils': 0.74.2 - - '@zag-js/presence@0.62.1': - dependencies: - '@zag-js/core': 0.62.1 - '@zag-js/types': 0.62.1 + '@zag-js/rect-utils@0.82.2': {} - '@zag-js/presence@0.74.2': + '@zag-js/remove-scroll@0.82.2': dependencies: - '@zag-js/core': 0.74.2 - '@zag-js/types': 0.74.2 - - '@zag-js/progress@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 + '@zag-js/dom-query': 0.82.2 - '@zag-js/progress@0.74.2': + '@zag-js/scroll-snap@0.82.2': dependencies: - '@zag-js/anatomy': 0.74.2 - '@zag-js/core': 0.74.2 - '@zag-js/dom-query': 0.74.2 - '@zag-js/types': 0.74.2 - '@zag-js/utils': 0.74.2 - - '@zag-js/qr-code@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - proxy-memoize: 3.0.1 - uqr: 0.1.2 + '@zag-js/dom-query': 0.82.2 - '@zag-js/qr-code@0.74.2': + '@zag-js/select@0.82.2': dependencies: - '@zag-js/anatomy': 0.74.2 - '@zag-js/core': 0.74.2 - '@zag-js/dom-query': 0.74.2 - '@zag-js/types': 0.74.2 - '@zag-js/utils': 0.74.2 - proxy-memoize: 3.0.1 - uqr: 0.1.2 - - '@zag-js/radio-group@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/element-rect': 0.62.1 - '@zag-js/form-utils': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - - '@zag-js/radio-group@0.74.2': - dependencies: - '@zag-js/anatomy': 0.74.2 - '@zag-js/core': 0.74.2 - '@zag-js/dom-query': 0.74.2 - '@zag-js/element-rect': 0.74.2 - '@zag-js/focus-visible': 0.74.2 - '@zag-js/form-utils': 0.74.2 - '@zag-js/types': 0.74.2 - '@zag-js/utils': 0.74.2 - - '@zag-js/rating-group@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/form-utils': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - - '@zag-js/rating-group@0.74.2': - dependencies: - '@zag-js/anatomy': 0.74.2 - '@zag-js/core': 0.74.2 - '@zag-js/dom-event': 0.74.2 - '@zag-js/dom-query': 0.74.2 - '@zag-js/form-utils': 0.74.2 - '@zag-js/types': 0.74.2 - '@zag-js/utils': 0.74.2 - - '@zag-js/react@0.74.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@zag-js/core': 0.74.2 - '@zag-js/store': 0.74.2 - '@zag-js/types': 0.74.2 - proxy-compare: 3.0.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@zag-js/rect-utils@0.62.1': {} - - '@zag-js/rect-utils@0.74.2': {} - - '@zag-js/remove-scroll@0.62.1': - dependencies: - '@zag-js/dom-query': 0.62.1 - - '@zag-js/remove-scroll@0.74.2': - dependencies: - '@zag-js/dom-query': 0.74.2 - - '@zag-js/select@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/collection': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dismissable': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/form-utils': 0.62.1 - '@zag-js/popper': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - - '@zag-js/select@0.74.2': - dependencies: - '@zag-js/anatomy': 0.74.2 - '@zag-js/collection': 0.74.2 - '@zag-js/core': 0.74.2 - '@zag-js/dismissable': 0.74.2 - '@zag-js/dom-event': 0.74.2 - '@zag-js/dom-query': 0.74.2 - '@zag-js/form-utils': 0.74.2 - '@zag-js/popper': 0.74.2 - '@zag-js/types': 0.74.2 - '@zag-js/utils': 0.74.2 - - '@zag-js/signature-pad@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - perfect-freehand: 1.2.2 + '@zag-js/anatomy': 0.82.2 + '@zag-js/collection': 0.82.2 + '@zag-js/core': 0.82.2 + '@zag-js/dismissable': 0.82.2 + '@zag-js/dom-query': 0.82.2 + '@zag-js/popper': 0.82.2 + '@zag-js/types': 0.82.2 + '@zag-js/utils': 0.82.2 - '@zag-js/signature-pad@0.74.2': + '@zag-js/signature-pad@0.82.2': dependencies: - '@zag-js/anatomy': 0.74.2 - '@zag-js/core': 0.74.2 - '@zag-js/dom-event': 0.74.2 - '@zag-js/dom-query': 0.74.2 - '@zag-js/types': 0.74.2 - '@zag-js/utils': 0.74.2 + '@zag-js/anatomy': 0.82.2 + '@zag-js/core': 0.82.2 + '@zag-js/dom-query': 0.82.2 + '@zag-js/types': 0.82.2 + '@zag-js/utils': 0.82.2 perfect-freehand: 1.2.2 - '@zag-js/slider@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/element-size': 0.62.1 - '@zag-js/form-utils': 0.62.1 - '@zag-js/numeric-range': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - - '@zag-js/slider@0.74.2': - dependencies: - '@zag-js/anatomy': 0.74.2 - '@zag-js/core': 0.74.2 - '@zag-js/dom-event': 0.74.2 - '@zag-js/dom-query': 0.74.2 - '@zag-js/element-size': 0.74.2 - '@zag-js/form-utils': 0.74.2 - '@zag-js/numeric-range': 0.74.2 - '@zag-js/types': 0.74.2 - '@zag-js/utils': 0.74.2 - - '@zag-js/splitter@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/number-utils': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - - '@zag-js/splitter@0.74.2': - dependencies: - '@zag-js/anatomy': 0.74.2 - '@zag-js/core': 0.74.2 - '@zag-js/dom-event': 0.74.2 - '@zag-js/dom-query': 0.74.2 - '@zag-js/number-utils': 0.74.2 - '@zag-js/types': 0.74.2 - '@zag-js/utils': 0.74.2 - - '@zag-js/steps@0.74.2': - dependencies: - '@zag-js/anatomy': 0.74.2 - '@zag-js/core': 0.74.2 - '@zag-js/dom-query': 0.74.2 - '@zag-js/types': 0.74.2 - '@zag-js/utils': 0.74.2 - - '@zag-js/store@0.62.1': - dependencies: - proxy-compare: 3.0.0 - - '@zag-js/store@0.74.2': - dependencies: - proxy-compare: 3.0.0 - - '@zag-js/switch@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/form-utils': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - - '@zag-js/switch@0.74.2': - dependencies: - '@zag-js/anatomy': 0.74.2 - '@zag-js/core': 0.74.2 - '@zag-js/dom-event': 0.74.2 - '@zag-js/dom-query': 0.74.2 - '@zag-js/focus-visible': 0.74.2 - '@zag-js/form-utils': 0.74.2 - '@zag-js/types': 0.74.2 - '@zag-js/utils': 0.74.2 - - '@zag-js/tabs@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/element-rect': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - - '@zag-js/tabs@0.74.2': - dependencies: - '@zag-js/anatomy': 0.74.2 - '@zag-js/core': 0.74.2 - '@zag-js/dom-event': 0.74.2 - '@zag-js/dom-query': 0.74.2 - '@zag-js/element-rect': 0.74.2 - '@zag-js/types': 0.74.2 - '@zag-js/utils': 0.74.2 - - '@zag-js/tags-input@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/auto-resize': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/form-utils': 0.62.1 - '@zag-js/interact-outside': 0.62.1 - '@zag-js/live-region': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - - '@zag-js/tags-input@0.74.2': - dependencies: - '@zag-js/anatomy': 0.74.2 - '@zag-js/auto-resize': 0.74.2 - '@zag-js/core': 0.74.2 - '@zag-js/dom-event': 0.74.2 - '@zag-js/dom-query': 0.74.2 - '@zag-js/form-utils': 0.74.2 - '@zag-js/interact-outside': 0.74.2 - '@zag-js/live-region': 0.74.2 - '@zag-js/types': 0.74.2 - '@zag-js/utils': 0.74.2 - - '@zag-js/text-selection@0.62.1': - dependencies: - '@zag-js/dom-query': 0.62.1 - - '@zag-js/text-selection@0.74.2': - dependencies: - '@zag-js/dom-query': 0.74.2 - - '@zag-js/time-picker@0.62.1': - dependencies: - '@internationalized/date': 3.5.5 - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dismissable': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/popper': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - - '@zag-js/time-picker@0.74.2(@internationalized/date@3.5.6)': - dependencies: - '@internationalized/date': 3.5.6 - '@zag-js/anatomy': 0.74.2 - '@zag-js/core': 0.74.2 - '@zag-js/dismissable': 0.74.2 - '@zag-js/dom-event': 0.74.2 - '@zag-js/dom-query': 0.74.2 - '@zag-js/popper': 0.74.2 - '@zag-js/types': 0.74.2 - '@zag-js/utils': 0.74.2 - - '@zag-js/timer@0.74.2': - dependencies: - '@zag-js/anatomy': 0.74.2 - '@zag-js/core': 0.74.2 - '@zag-js/dom-query': 0.74.2 - '@zag-js/types': 0.74.2 - '@zag-js/utils': 0.74.2 - - '@zag-js/toast@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dismissable': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - - '@zag-js/toast@0.74.2': - dependencies: - '@zag-js/anatomy': 0.74.2 - '@zag-js/core': 0.74.2 - '@zag-js/dismissable': 0.74.2 - '@zag-js/dom-event': 0.74.2 - '@zag-js/dom-query': 0.74.2 - '@zag-js/types': 0.74.2 - '@zag-js/utils': 0.74.2 - - '@zag-js/toggle-group@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - - '@zag-js/toggle-group@0.74.2': - dependencies: - '@zag-js/anatomy': 0.74.2 - '@zag-js/core': 0.74.2 - '@zag-js/dom-event': 0.74.2 - '@zag-js/dom-query': 0.74.2 - '@zag-js/types': 0.74.2 - '@zag-js/utils': 0.74.2 - - '@zag-js/tooltip@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/popper': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - - '@zag-js/tooltip@0.74.2': - dependencies: - '@zag-js/anatomy': 0.74.2 - '@zag-js/core': 0.74.2 - '@zag-js/dom-event': 0.74.2 - '@zag-js/dom-query': 0.74.2 - '@zag-js/focus-visible': 0.74.2 - '@zag-js/popper': 0.74.2 - '@zag-js/types': 0.74.2 - '@zag-js/utils': 0.74.2 - - '@zag-js/tree-view@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - - '@zag-js/tree-view@0.74.2': - dependencies: - '@zag-js/anatomy': 0.74.2 - '@zag-js/core': 0.74.2 - '@zag-js/dom-event': 0.74.2 - '@zag-js/dom-query': 0.74.2 - '@zag-js/types': 0.74.2 - '@zag-js/utils': 0.74.2 - - '@zag-js/types@0.62.1': - dependencies: - csstype: 3.1.3 - - '@zag-js/types@0.74.2': + '@zag-js/slider@0.82.2': + dependencies: + '@zag-js/anatomy': 0.82.2 + '@zag-js/core': 0.82.2 + '@zag-js/dom-query': 0.82.2 + '@zag-js/element-size': 0.82.2 + '@zag-js/types': 0.82.2 + '@zag-js/utils': 0.82.2 + + '@zag-js/splitter@0.82.2': + dependencies: + '@zag-js/anatomy': 0.82.2 + '@zag-js/core': 0.82.2 + '@zag-js/dom-query': 0.82.2 + '@zag-js/types': 0.82.2 + '@zag-js/utils': 0.82.2 + + '@zag-js/steps@0.82.2': + dependencies: + '@zag-js/anatomy': 0.82.2 + '@zag-js/core': 0.82.2 + '@zag-js/dom-query': 0.82.2 + '@zag-js/types': 0.82.2 + '@zag-js/utils': 0.82.2 + + '@zag-js/store@0.82.2': + dependencies: + proxy-compare: 3.0.1 + + '@zag-js/switch@0.82.2': + dependencies: + '@zag-js/anatomy': 0.82.2 + '@zag-js/core': 0.82.2 + '@zag-js/dom-query': 0.82.2 + '@zag-js/focus-visible': 0.82.2 + '@zag-js/types': 0.82.2 + '@zag-js/utils': 0.82.2 + + '@zag-js/tabs@0.82.2': + dependencies: + '@zag-js/anatomy': 0.82.2 + '@zag-js/core': 0.82.2 + '@zag-js/dom-query': 0.82.2 + '@zag-js/element-rect': 0.82.2 + '@zag-js/types': 0.82.2 + '@zag-js/utils': 0.82.2 + + '@zag-js/tags-input@0.82.2': + dependencies: + '@zag-js/anatomy': 0.82.2 + '@zag-js/auto-resize': 0.82.2 + '@zag-js/core': 0.82.2 + '@zag-js/dom-query': 0.82.2 + '@zag-js/interact-outside': 0.82.2 + '@zag-js/live-region': 0.82.2 + '@zag-js/types': 0.82.2 + '@zag-js/utils': 0.82.2 + + '@zag-js/time-picker@0.82.2(@internationalized/date@3.7.0)': + dependencies: + '@internationalized/date': 3.7.0 + '@zag-js/anatomy': 0.82.2 + '@zag-js/core': 0.82.2 + '@zag-js/dismissable': 0.82.2 + '@zag-js/dom-query': 0.82.2 + '@zag-js/popper': 0.82.2 + '@zag-js/types': 0.82.2 + '@zag-js/utils': 0.82.2 + + '@zag-js/timer@0.82.2': + dependencies: + '@zag-js/anatomy': 0.82.2 + '@zag-js/core': 0.82.2 + '@zag-js/dom-query': 0.82.2 + '@zag-js/types': 0.82.2 + '@zag-js/utils': 0.82.2 + + '@zag-js/toast@0.82.2': + dependencies: + '@zag-js/anatomy': 0.82.2 + '@zag-js/core': 0.82.2 + '@zag-js/dismissable': 0.82.2 + '@zag-js/dom-query': 0.82.2 + '@zag-js/types': 0.82.2 + '@zag-js/utils': 0.82.2 + + '@zag-js/toggle-group@0.82.2': + dependencies: + '@zag-js/anatomy': 0.82.2 + '@zag-js/core': 0.82.2 + '@zag-js/dom-query': 0.82.2 + '@zag-js/types': 0.82.2 + '@zag-js/utils': 0.82.2 + + '@zag-js/tooltip@0.82.2': + dependencies: + '@zag-js/anatomy': 0.82.2 + '@zag-js/core': 0.82.2 + '@zag-js/dom-query': 0.82.2 + '@zag-js/focus-visible': 0.82.2 + '@zag-js/popper': 0.82.2 + '@zag-js/types': 0.82.2 + '@zag-js/utils': 0.82.2 + + '@zag-js/tour@0.82.2': + dependencies: + '@zag-js/anatomy': 0.82.2 + '@zag-js/core': 0.82.2 + '@zag-js/dismissable': 0.82.2 + '@zag-js/dom-query': 0.82.2 + '@zag-js/focus-trap': 0.82.2 + '@zag-js/interact-outside': 0.82.2 + '@zag-js/popper': 0.82.2 + '@zag-js/types': 0.82.2 + '@zag-js/utils': 0.82.2 + + '@zag-js/tree-view@0.82.2': + dependencies: + '@zag-js/anatomy': 0.82.2 + '@zag-js/collection': 0.82.2 + '@zag-js/core': 0.82.2 + '@zag-js/dom-query': 0.82.2 + '@zag-js/types': 0.82.2 + '@zag-js/utils': 0.82.2 + + '@zag-js/types@0.82.2': dependencies: csstype: 3.1.3 - '@zag-js/utils@0.62.1': {} - - '@zag-js/utils@0.74.2': {} - - JSONStream@1.3.5: - dependencies: - jsonparse: 1.3.1 - through: 2.3.8 - - acorn-walk@8.3.2: {} + '@zag-js/utils@0.82.2': {} - acorn@8.11.2: {} + acorn@8.14.1: {} - add-stream@1.0.0: {} - - agent-base@7.1.0: - dependencies: - debug: 4.3.4 - transitivePeerDependencies: - - supports-color + agent-base@7.1.3: {} ansi-regex@5.0.1: {} - ansi-regex@6.0.1: {} - - ansi-styles@3.2.1: - dependencies: - color-convert: 1.9.3 + ansi-regex@6.1.0: {} ansi-styles@4.3.0: dependencies: @@ -5970,57 +5006,57 @@ snapshots: ansi-styles@6.2.1: {} - antd@5.22.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@ant-design/colors': 7.1.0 - '@ant-design/cssinjs': 1.22.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@ant-design/cssinjs-utils': 1.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@ant-design/icons': 5.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@ant-design/react-slick': 1.1.2(react@18.3.1) - '@babel/runtime': 7.26.0 - '@ctrl/tinycolor': 3.6.1 - '@rc-component/color-picker': 2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@rc-component/mutate-observer': 1.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@rc-component/qrcode': 1.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@rc-component/tour': 1.15.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@rc-component/trigger': 2.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + antd@5.24.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0): + dependencies: + '@ant-design/colors': 7.2.0 + '@ant-design/cssinjs': 1.23.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@ant-design/cssinjs-utils': 1.1.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@ant-design/fast-color': 2.0.6 + '@ant-design/icons': 5.6.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@ant-design/react-slick': 1.1.2(react@19.2.0) + '@babel/runtime': 7.26.10 + '@rc-component/color-picker': 2.0.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@rc-component/mutate-observer': 1.1.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@rc-component/qrcode': 1.0.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@rc-component/tour': 1.15.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@rc-component/trigger': 2.2.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0) classnames: 2.5.1 copy-to-clipboard: 3.3.3 dayjs: 1.11.13 - rc-cascader: 3.30.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-checkbox: 3.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-collapse: 3.9.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-dialog: 9.6.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-drawer: 7.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-dropdown: 4.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-field-form: 2.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-image: 7.11.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-input: 1.6.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-input-number: 9.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-mentions: 2.17.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-menu: 9.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-notification: 5.6.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-pagination: 5.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-picker: 4.8.3(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-progress: 4.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-rate: 2.13.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-segmented: 2.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-select: 14.16.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-slider: 11.1.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-steps: 6.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-switch: 4.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-table: 7.49.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-tabs: 15.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-textarea: 1.8.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-tooltip: 6.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-tree: 5.10.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-tree-select: 5.24.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-upload: 4.8.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + rc-cascader: 3.33.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-checkbox: 3.5.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-collapse: 3.9.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-dialog: 9.6.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-drawer: 7.2.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-dropdown: 4.2.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-field-form: 2.7.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-image: 7.11.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-input: 1.7.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-input-number: 9.4.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-mentions: 2.19.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-menu: 9.16.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-motion: 2.9.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-notification: 5.6.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-pagination: 5.1.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-picker: 4.11.3(dayjs@1.11.13)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-progress: 4.0.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-rate: 2.13.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-resize-observer: 1.4.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-segmented: 2.7.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-select: 14.16.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-slider: 11.1.8(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-steps: 6.0.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-switch: 4.1.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-table: 7.50.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-tabs: 15.5.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-textarea: 1.9.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-tooltip: 6.4.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-tree: 5.13.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-tree-select: 5.27.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-upload: 4.8.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) scroll-into-view-if-needed: 3.1.0 throttle-debounce: 5.0.2 transitivePeerDependencies: @@ -6028,32 +5064,32 @@ snapshots: - luxon - moment - aria-hidden@1.2.4: - dependencies: - tslib: 2.6.3 - aria-query@5.1.3: dependencies: deep-equal: 2.2.3 - array-buffer-byte-length@1.0.0: + array-buffer-byte-length@1.0.2: dependencies: - call-bind: 1.0.5 - is-array-buffer: 3.0.2 + call-bound: 1.0.4 + is-array-buffer: 3.0.5 array-ify@1.0.0: {} assertion-error@1.1.0: {} + assertion-error@2.0.1: {} + asynckit@0.4.0: {} - available-typed-arrays@1.0.5: {} + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.1.0 babel-plugin-macros@3.1.0: dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.10 cosmiconfig: 7.1.0 - resolve: 1.22.8 + resolve: 1.22.10 balanced-match@1.0.2: {} @@ -6061,57 +5097,61 @@ snapshots: dependencies: balanced-match: 1.0.2 - braces@3.0.2: - dependencies: - fill-range: 7.0.1 - - browserslist@4.22.2: + braces@3.0.3: dependencies: - caniuse-lite: 1.0.30001571 - electron-to-chromium: 1.4.616 - node-releases: 2.0.14 - update-browserslist-db: 1.0.13(browserslist@4.22.2) + fill-range: 7.1.1 - browserslist@4.23.3: + browserslist@4.24.4: dependencies: - caniuse-lite: 1.0.30001651 - electron-to-chromium: 1.5.5 - node-releases: 2.0.18 - update-browserslist-db: 1.1.0(browserslist@4.23.3) + caniuse-lite: 1.0.30001706 + electron-to-chromium: 1.5.123 + node-releases: 2.0.19 + update-browserslist-db: 1.1.3(browserslist@4.24.4) buffer-from@1.1.2: {} cac@6.7.14: {} - call-bind@1.0.5: + call-bind-apply-helpers@1.0.2: dependencies: + es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.2 - set-function-length: 1.1.1 + + call-bind@1.0.8: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + get-intrinsic: 1.3.0 + set-function-length: 1.2.2 + + call-bound@1.0.4: + dependencies: + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 callsites@3.1.0: {} camelize@1.0.1: {} - caniuse-lite@1.0.30001571: {} + caniuse-lite@1.0.30001706: {} - caniuse-lite@1.0.30001651: {} - - chai@4.3.10: + chai@4.5.0: dependencies: assertion-error: 1.1.0 check-error: 1.0.3 - deep-eql: 4.1.3 + deep-eql: 4.1.4 get-func-name: 2.0.2 loupe: 2.3.7 pathval: 1.1.1 - type-detect: 4.0.8 + type-detect: 4.1.0 - chalk@2.4.2: + chai@5.2.0: dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 + assertion-error: 2.0.1 + check-error: 2.1.1 + deep-eql: 5.0.2 + loupe: 3.1.4 + pathval: 2.0.1 chalk@4.1.2: dependencies: @@ -6122,20 +5162,16 @@ snapshots: dependencies: get-func-name: 2.0.2 + check-error@2.1.1: {} + classnames@2.5.1: {} client-only@0.0.1: {} - color-convert@1.9.3: - dependencies: - color-name: 1.1.3 - color-convert@2.0.1: dependencies: color-name: 1.1.4 - color-name@1.1.3: {} - color-name@1.1.4: {} combined-stream@1.0.8: @@ -6149,78 +5185,39 @@ snapshots: array-ify: 1.0.0 dot-prop: 5.3.0 - compute-scroll-into-view@3.1.0: {} + compute-scroll-into-view@3.1.1: {} - conventional-changelog-angular@7.0.0: + conventional-changelog-angular@8.0.0: dependencies: compare-func: 2.0.0 - conventional-changelog-atom@4.0.0: {} - - conventional-changelog-codemirror@4.0.0: {} - - conventional-changelog-conventionalcommits@7.0.2: - dependencies: - compare-func: 2.0.0 + conventional-changelog-preset-loader@5.0.0: {} - conventional-changelog-core@7.0.0: + conventional-changelog-writer@8.1.0: dependencies: - '@hutson/parse-repository-url': 5.0.0 - add-stream: 1.0.0 - conventional-changelog-writer: 7.0.1 - conventional-commits-parser: 5.0.0 - git-raw-commits: 4.0.0 - git-semver-tags: 7.0.1 - hosted-git-info: 7.0.1 - normalize-package-data: 6.0.0 - read-pkg: 8.1.0 - read-pkg-up: 10.1.0 - - conventional-changelog-ember@4.0.0: {} - - conventional-changelog-eslint@5.0.0: {} - - conventional-changelog-express@4.0.0: {} - - conventional-changelog-jquery@5.0.0: {} + conventional-commits-filter: 5.0.0 + handlebars: 4.7.8 + meow: 13.2.0 + semver: 7.7.1 - conventional-changelog-jshint@4.0.0: + conventional-changelog@7.0.2(conventional-commits-filter@5.0.0): dependencies: - compare-func: 2.0.0 + '@conventional-changelog/git-client': 2.5.1(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.2.0) + '@types/normalize-package-data': 2.4.4 + conventional-changelog-preset-loader: 5.0.0 + conventional-changelog-writer: 8.1.0 + conventional-commits-parser: 6.2.0 + fd-package-json: 1.2.0 + meow: 13.2.0 + normalize-package-data: 7.0.0 + transitivePeerDependencies: + - conventional-commits-filter - conventional-changelog-preset-loader@4.1.0: {} + conventional-commits-filter@5.0.0: {} - conventional-changelog-writer@7.0.1: + conventional-commits-parser@6.2.0: dependencies: - conventional-commits-filter: 4.0.0 - handlebars: 4.7.8 - json-stringify-safe: 5.0.1 - meow: 12.1.1 - semver: 7.6.2 - split2: 4.2.0 - - conventional-changelog@5.1.0: - dependencies: - conventional-changelog-angular: 7.0.0 - conventional-changelog-atom: 4.0.0 - conventional-changelog-codemirror: 4.0.0 - conventional-changelog-conventionalcommits: 7.0.2 - conventional-changelog-core: 7.0.0 - conventional-changelog-ember: 4.0.0 - conventional-changelog-eslint: 5.0.0 - conventional-changelog-express: 4.0.0 - conventional-changelog-jquery: 5.0.0 - conventional-changelog-jshint: 4.0.0 - conventional-changelog-preset-loader: 4.1.0 - - conventional-commits-filter@4.0.0: {} - - conventional-commits-parser@5.0.0: - dependencies: - JSONStream: 1.3.5 - is-text-path: 2.0.0 - meow: 12.1.1 - split2: 4.2.0 + meow: 13.2.0 convert-source-map@1.9.0: {} @@ -6233,12 +5230,12 @@ snapshots: cosmiconfig@7.1.0: dependencies: '@types/parse-json': 4.0.2 - import-fresh: 3.3.0 + import-fresh: 3.3.1 parse-json: 5.2.0 path-type: 4.0.0 yaml: 1.10.2 - cross-spawn@7.0.3: + cross-spawn@7.0.6: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 @@ -6252,73 +5249,70 @@ snapshots: css-color-keywords: 1.0.0 postcss-value-parser: 4.2.0 - cssstyle@4.0.1: + cssstyle@4.3.0: dependencies: - rrweb-cssom: 0.6.0 - - csstype@3.1.2: {} + '@asamuzakjp/css-color': 3.1.1 + rrweb-cssom: 0.8.0 csstype@3.1.3: {} - dargs@8.1.0: {} - data-uri-to-buffer@4.0.1: {} data-urls@5.0.0: dependencies: whatwg-mimetype: 4.0.0 - whatwg-url: 14.0.0 + whatwg-url: 14.2.0 dayjs@1.11.13: {} - debug@4.3.4: + debug@4.4.1: dependencies: - ms: 2.1.2 + ms: 2.1.3 - decimal.js@10.4.3: {} + decimal.js@10.5.0: {} - deep-eql@4.1.3: + deep-eql@4.1.4: dependencies: - type-detect: 4.0.8 + type-detect: 4.1.0 + + deep-eql@5.0.2: {} deep-equal@2.2.3: dependencies: - array-buffer-byte-length: 1.0.0 - call-bind: 1.0.5 + array-buffer-byte-length: 1.0.2 + call-bind: 1.0.8 es-get-iterator: 1.1.3 - get-intrinsic: 1.2.2 - is-arguments: 1.1.1 - is-array-buffer: 3.0.2 - is-date-object: 1.0.5 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.2 + get-intrinsic: 1.3.0 + is-arguments: 1.2.0 + is-array-buffer: 3.0.5 + is-date-object: 1.1.0 + is-regex: 1.2.1 + is-shared-array-buffer: 1.0.4 isarray: 2.0.5 - object-is: 1.1.5 + object-is: 1.1.6 object-keys: 1.1.1 - object.assign: 4.1.5 - regexp.prototype.flags: 1.5.1 - side-channel: 1.0.4 - which-boxed-primitive: 1.0.2 - which-collection: 1.0.1 - which-typed-array: 1.1.13 + object.assign: 4.1.7 + regexp.prototype.flags: 1.5.4 + side-channel: 1.1.0 + which-boxed-primitive: 1.1.1 + which-collection: 1.0.2 + which-typed-array: 1.1.19 - define-data-property@1.1.1: + define-data-property@1.1.4: dependencies: - get-intrinsic: 1.2.2 - gopd: 1.0.1 - has-property-descriptors: 1.0.1 + es-define-property: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 define-properties@1.2.1: dependencies: - define-data-property: 1.1.1 - has-property-descriptors: 1.0.1 + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 object-keys: 1.1.1 delayed-stream@1.0.0: {} - devalue@4.3.2: {} - - diff-sequences@29.6.3: {} + devalue@4.3.3: {} dom-accessibility-api@0.5.16: {} @@ -6326,11 +5320,15 @@ snapshots: dependencies: is-obj: 2.0.0 - eastasianwidth@0.2.0: {} + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 - electron-to-chromium@1.4.616: {} + eastasianwidth@0.2.0: {} - electron-to-chromium@1.5.5: {} + electron-to-chromium@1.5.123: {} emoji-regex@8.0.0: {} @@ -6342,86 +5340,101 @@ snapshots: dependencies: is-arrayish: 0.2.1 + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + es-get-iterator@1.1.3: dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - has-symbols: 1.0.3 - is-arguments: 1.1.1 - is-map: 2.0.2 - is-set: 2.0.2 - is-string: 1.0.7 + call-bind: 1.0.8 + get-intrinsic: 1.3.0 + has-symbols: 1.1.0 + is-arguments: 1.2.0 + is-map: 2.0.3 + is-set: 2.0.3 + is-string: 1.1.1 isarray: 2.0.5 - stop-iteration-iterator: 1.0.0 + stop-iteration-iterator: 1.1.0 + + es-module-lexer@1.7.0: {} - es-module-lexer@1.4.1: {} + es-object-atoms@1.1.1: + dependencies: + es-errors: 1.3.0 + + es-set-tostringtag@2.1.0: + dependencies: + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 - esbuild@0.16.17: + esbuild@0.23.1: optionalDependencies: - '@esbuild/android-arm': 0.16.17 - '@esbuild/android-arm64': 0.16.17 - '@esbuild/android-x64': 0.16.17 - '@esbuild/darwin-arm64': 0.16.17 - '@esbuild/darwin-x64': 0.16.17 - '@esbuild/freebsd-arm64': 0.16.17 - '@esbuild/freebsd-x64': 0.16.17 - '@esbuild/linux-arm': 0.16.17 - '@esbuild/linux-arm64': 0.16.17 - '@esbuild/linux-ia32': 0.16.17 - '@esbuild/linux-loong64': 0.16.17 - '@esbuild/linux-mips64el': 0.16.17 - '@esbuild/linux-ppc64': 0.16.17 - '@esbuild/linux-riscv64': 0.16.17 - '@esbuild/linux-s390x': 0.16.17 - '@esbuild/linux-x64': 0.16.17 - '@esbuild/netbsd-x64': 0.16.17 - '@esbuild/openbsd-x64': 0.16.17 - '@esbuild/sunos-x64': 0.16.17 - '@esbuild/win32-arm64': 0.16.17 - '@esbuild/win32-ia32': 0.16.17 - '@esbuild/win32-x64': 0.16.17 - - esbuild@0.21.5: + '@esbuild/aix-ppc64': 0.23.1 + '@esbuild/android-arm': 0.23.1 + '@esbuild/android-arm64': 0.23.1 + '@esbuild/android-x64': 0.23.1 + '@esbuild/darwin-arm64': 0.23.1 + '@esbuild/darwin-x64': 0.23.1 + '@esbuild/freebsd-arm64': 0.23.1 + '@esbuild/freebsd-x64': 0.23.1 + '@esbuild/linux-arm': 0.23.1 + '@esbuild/linux-arm64': 0.23.1 + '@esbuild/linux-ia32': 0.23.1 + '@esbuild/linux-loong64': 0.23.1 + '@esbuild/linux-mips64el': 0.23.1 + '@esbuild/linux-ppc64': 0.23.1 + '@esbuild/linux-riscv64': 0.23.1 + '@esbuild/linux-s390x': 0.23.1 + '@esbuild/linux-x64': 0.23.1 + '@esbuild/netbsd-x64': 0.23.1 + '@esbuild/openbsd-arm64': 0.23.1 + '@esbuild/openbsd-x64': 0.23.1 + '@esbuild/sunos-x64': 0.23.1 + '@esbuild/win32-arm64': 0.23.1 + '@esbuild/win32-ia32': 0.23.1 + '@esbuild/win32-x64': 0.23.1 + + esbuild@0.25.1: optionalDependencies: - '@esbuild/aix-ppc64': 0.21.5 - '@esbuild/android-arm': 0.21.5 - '@esbuild/android-arm64': 0.21.5 - '@esbuild/android-x64': 0.21.5 - '@esbuild/darwin-arm64': 0.21.5 - '@esbuild/darwin-x64': 0.21.5 - '@esbuild/freebsd-arm64': 0.21.5 - '@esbuild/freebsd-x64': 0.21.5 - '@esbuild/linux-arm': 0.21.5 - '@esbuild/linux-arm64': 0.21.5 - '@esbuild/linux-ia32': 0.21.5 - '@esbuild/linux-loong64': 0.21.5 - '@esbuild/linux-mips64el': 0.21.5 - '@esbuild/linux-ppc64': 0.21.5 - '@esbuild/linux-riscv64': 0.21.5 - '@esbuild/linux-s390x': 0.21.5 - '@esbuild/linux-x64': 0.21.5 - '@esbuild/netbsd-x64': 0.21.5 - '@esbuild/openbsd-x64': 0.21.5 - '@esbuild/sunos-x64': 0.21.5 - '@esbuild/win32-arm64': 0.21.5 - '@esbuild/win32-ia32': 0.21.5 - '@esbuild/win32-x64': 0.21.5 - - escalade@3.1.1: {} - - escalade@3.1.2: {} - - escape-string-regexp@1.0.5: {} + '@esbuild/aix-ppc64': 0.25.1 + '@esbuild/android-arm': 0.25.1 + '@esbuild/android-arm64': 0.25.1 + '@esbuild/android-x64': 0.25.1 + '@esbuild/darwin-arm64': 0.25.1 + '@esbuild/darwin-x64': 0.25.1 + '@esbuild/freebsd-arm64': 0.25.1 + '@esbuild/freebsd-x64': 0.25.1 + '@esbuild/linux-arm': 0.25.1 + '@esbuild/linux-arm64': 0.25.1 + '@esbuild/linux-ia32': 0.25.1 + '@esbuild/linux-loong64': 0.25.1 + '@esbuild/linux-mips64el': 0.25.1 + '@esbuild/linux-ppc64': 0.25.1 + '@esbuild/linux-riscv64': 0.25.1 + '@esbuild/linux-s390x': 0.25.1 + '@esbuild/linux-x64': 0.25.1 + '@esbuild/netbsd-arm64': 0.25.1 + '@esbuild/netbsd-x64': 0.25.1 + '@esbuild/openbsd-arm64': 0.25.1 + '@esbuild/openbsd-x64': 0.25.1 + '@esbuild/sunos-x64': 0.25.1 + '@esbuild/win32-arm64': 0.25.1 + '@esbuild/win32-ia32': 0.25.1 + '@esbuild/win32-x64': 0.25.1 + + escalade@3.2.0: {} escape-string-regexp@4.0.0: {} estree-walker@3.0.3: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.8 execa@5.1.1: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 get-stream: 6.0.1 human-signals: 2.1.0 is-stream: 2.0.1 @@ -6431,67 +5444,55 @@ snapshots: signal-exit: 3.0.7 strip-final-newline: 2.0.0 - execa@8.0.1: - dependencies: - cross-spawn: 7.0.3 - get-stream: 8.0.1 - human-signals: 5.0.0 - is-stream: 3.0.0 - merge-stream: 2.0.0 - npm-run-path: 5.2.0 - onetime: 6.0.0 - signal-exit: 4.1.0 - strip-final-newline: 3.0.0 + expect-type@1.2.1: {} - fast-glob@3.3.2: + fast-glob@3.3.3: dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.5 + micromatch: 4.0.8 - fastq@1.15.0: - dependencies: - reusify: 1.0.4 + fast-safe-stringify@2.1.1: {} - fetch-blob@3.2.0: + fastq@1.19.1: dependencies: - node-domexception: 1.0.0 - web-streams-polyfill: 3.2.1 + reusify: 1.1.0 - fill-range@7.0.1: + fd-package-json@1.2.0: dependencies: - to-regex-range: 5.0.1 + walk-up-path: 3.0.1 - find-root@1.1.0: {} + fdir@6.5.0(picomatch@4.0.3): + optionalDependencies: + picomatch: 4.0.3 - find-up@6.3.0: + fetch-blob@3.2.0: dependencies: - locate-path: 7.2.0 - path-exists: 5.0.0 + node-domexception: 1.0.0 + web-streams-polyfill: 3.3.3 - focus-trap@7.5.4: + fill-range@7.1.1: dependencies: - tabbable: 6.2.0 + to-regex-range: 5.0.1 - focus-trap@7.6.0: - dependencies: - tabbable: 6.2.0 + find-root@1.1.0: {} - for-each@0.3.3: + for-each@0.3.5: dependencies: is-callable: 1.2.7 - foreground-child@3.1.1: + foreground-child@3.3.1: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 signal-exit: 4.1.0 - form-data@4.0.0: + form-data@4.0.2: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 mime-types: 2.1.35 formdata-polyfill@4.0.10: @@ -6512,52 +5513,47 @@ snapshots: get-func-name@2.0.2: {} - get-intrinsic@1.2.2: + get-intrinsic@1.3.0: dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 function-bind: 1.1.2 - has-proto: 1.0.1 - has-symbols: 1.0.3 - hasown: 2.0.0 - - get-stream@6.0.1: {} - - get-stream@8.0.1: {} + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + math-intrinsics: 1.1.0 - git-raw-commits@4.0.0: + get-proto@1.0.1: dependencies: - dargs: 8.1.0 - meow: 12.1.1 - split2: 4.2.0 + dunder-proto: 1.0.1 + es-object-atoms: 1.1.1 - git-semver-tags@7.0.1: - dependencies: - meow: 12.1.1 - semver: 7.6.2 + get-stream@6.0.1: {} glob-parent@5.1.2: dependencies: is-glob: 4.0.3 - glob@10.3.12: + glob@10.4.5: dependencies: - foreground-child: 3.1.1 - jackspeak: 2.3.6 - minimatch: 9.0.4 - minipass: 7.1.0 - path-scurry: 1.10.2 + foreground-child: 3.3.1 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 - globals@11.12.0: {} - - gopd@1.0.1: - dependencies: - get-intrinsic: 1.2.2 + gopd@1.2.0: {} - graphql-tag@2.12.6(graphql@16.9.0): + graphql-tag@2.12.6(graphql@16.10.0): dependencies: - graphql: 16.9.0 - tslib: 2.6.3 + graphql: 16.10.0 + tslib: 2.8.1 - graphql@16.9.0: {} + graphql@16.10.0: {} handlebars@4.7.8: dependencies: @@ -6566,27 +5562,23 @@ snapshots: source-map: 0.6.1 wordwrap: 1.0.0 optionalDependencies: - uglify-js: 3.17.4 + uglify-js: 3.19.3 - has-bigints@1.0.2: {} - - has-flag@3.0.0: {} + has-bigints@1.1.0: {} has-flag@4.0.0: {} - has-property-descriptors@1.0.1: + has-property-descriptors@1.0.2: dependencies: - get-intrinsic: 1.2.2 - - has-proto@1.0.1: {} + es-define-property: 1.0.1 - has-symbols@1.0.3: {} + has-symbols@1.1.0: {} - has-tostringtag@1.0.0: + has-tostringtag@1.0.2: dependencies: - has-symbols: 1.0.3 + has-symbols: 1.1.0 - hasown@2.0.0: + hasown@2.0.2: dependencies: function-bind: 1.1.2 @@ -6594,78 +5586,79 @@ snapshots: dependencies: react-is: 16.13.1 - hosted-git-info@7.0.1: + hosted-git-info@8.1.0: dependencies: - lru-cache: 10.2.2 + lru-cache: 10.4.3 html-encoding-sniffer@4.0.0: dependencies: whatwg-encoding: 3.1.1 - http-proxy-agent@7.0.0: + http-proxy-agent@7.0.2: dependencies: - agent-base: 7.1.0 - debug: 4.3.4 + agent-base: 7.1.3 + debug: 4.4.1 transitivePeerDependencies: - supports-color - https-proxy-agent@7.0.2: + https-proxy-agent@7.0.6: dependencies: - agent-base: 7.1.0 - debug: 4.3.4 + agent-base: 7.1.3 + debug: 4.4.1 transitivePeerDependencies: - supports-color human-signals@2.1.0: {} - human-signals@5.0.0: {} - iconv-lite@0.6.3: dependencies: safer-buffer: 2.1.2 - import-fresh@3.3.0: + immer@10.1.3: {} + + import-fresh@3.3.1: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 - internal-slot@1.0.6: + internal-slot@1.1.0: dependencies: - get-intrinsic: 1.2.2 - hasown: 2.0.0 - side-channel: 1.0.4 + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.1.0 - is-arguments@1.1.1: + is-arguments@1.2.0: dependencies: - call-bind: 1.0.5 - has-tostringtag: 1.0.0 + call-bound: 1.0.4 + has-tostringtag: 1.0.2 - is-array-buffer@3.0.2: + is-array-buffer@3.0.5: dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - is-typed-array: 1.1.12 + call-bind: 1.0.8 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 is-arrayish@0.2.1: {} - is-bigint@1.0.4: + is-bigint@1.1.0: dependencies: - has-bigints: 1.0.2 + has-bigints: 1.1.0 - is-boolean-object@1.1.2: + is-boolean-object@1.2.2: dependencies: - call-bind: 1.0.5 - has-tostringtag: 1.0.0 + call-bound: 1.0.4 + has-tostringtag: 1.0.2 is-callable@1.2.7: {} - is-core-module@2.13.1: + is-core-module@2.16.1: dependencies: - hasown: 2.0.0 + hasown: 2.0.2 - is-date-object@1.0.5: + is-date-object@1.1.0: dependencies: - has-tostringtag: 1.0.0 + call-bound: 1.0.4 + has-tostringtag: 1.0.2 is-extglob@2.1.1: {} @@ -6675,11 +5668,12 @@ snapshots: dependencies: is-extglob: 2.1.1 - is-map@2.0.2: {} + is-map@2.0.3: {} - is-number-object@1.0.7: + is-number-object@1.1.1: dependencies: - has-tostringtag: 1.0.0 + call-bound: 1.0.4 + has-tostringtag: 1.0.2 is-number@7.0.0: {} @@ -6687,43 +5681,38 @@ snapshots: is-potential-custom-element-name@1.0.1: {} - is-regex@1.1.4: + is-regex@1.2.1: dependencies: - call-bind: 1.0.5 - has-tostringtag: 1.0.0 + call-bound: 1.0.4 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 - is-set@2.0.2: {} + is-set@2.0.3: {} - is-shared-array-buffer@1.0.2: + is-shared-array-buffer@1.0.4: dependencies: - call-bind: 1.0.5 + call-bound: 1.0.4 is-stream@2.0.1: {} - is-stream@3.0.0: {} - - is-string@1.0.7: - dependencies: - has-tostringtag: 1.0.0 - - is-symbol@1.0.4: - dependencies: - has-symbols: 1.0.3 - - is-text-path@2.0.0: + is-string@1.1.1: dependencies: - text-extensions: 2.4.0 + call-bound: 1.0.4 + has-tostringtag: 1.0.2 - is-typed-array@1.1.12: + is-symbol@1.1.1: dependencies: - which-typed-array: 1.1.13 + call-bound: 1.0.4 + has-symbols: 1.1.0 + safe-regex-test: 1.1.0 - is-weakmap@2.0.1: {} + is-weakmap@2.0.2: {} - is-weakset@2.0.2: + is-weakset@2.0.4: dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 isarray@2.0.5: {} @@ -6731,7 +5720,7 @@ snapshots: isexe@2.0.0: {} - jackspeak@2.3.6: + jackspeak@3.4.3: dependencies: '@isaacs/cliui': 8.0.2 optionalDependencies: @@ -6739,67 +5728,48 @@ snapshots: js-tokens@4.0.0: {} - jsdom@24.0.0: + js-tokens@9.0.1: {} + + jsdom@24.1.3: dependencies: - cssstyle: 4.0.1 + cssstyle: 4.3.0 data-urls: 5.0.0 - decimal.js: 10.4.3 - form-data: 4.0.0 + decimal.js: 10.5.0 + form-data: 4.0.2 html-encoding-sniffer: 4.0.0 - http-proxy-agent: 7.0.0 - https-proxy-agent: 7.0.2 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.7 - parse5: 7.1.2 - rrweb-cssom: 0.6.0 + nwsapi: 2.2.19 + parse5: 7.2.1 + rrweb-cssom: 0.7.1 saxes: 6.0.0 symbol-tree: 3.2.4 - tough-cookie: 4.1.3 + tough-cookie: 4.1.4 w3c-xmlserializer: 5.0.0 webidl-conversions: 7.0.0 whatwg-encoding: 3.1.1 whatwg-mimetype: 4.0.0 - whatwg-url: 14.0.0 - ws: 8.16.0 + whatwg-url: 14.2.0 + ws: 8.18.1 xml-name-validator: 5.0.0 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - jsesc@2.5.2: {} + jsesc@3.1.0: {} json-parse-even-better-errors@2.3.1: {} - json-parse-even-better-errors@3.0.0: {} - - json-stringify-safe@5.0.1: {} - json2mq@0.2.0: dependencies: string-convert: 0.2.1 json5@2.2.3: {} - jsonc-parser@3.2.0: {} - - jsonparse@1.3.1: {} - - klona@2.0.6: {} - lines-and-columns@1.2.4: {} - lines-and-columns@2.0.4: {} - - local-pkg@0.5.0: - dependencies: - mlly: 1.4.2 - pkg-types: 1.0.3 - - locate-path@7.2.0: - dependencies: - p-locate: 6.0.0 - loose-envify@1.4.0: dependencies: js-tokens: 4.0.0 @@ -6808,7 +5778,9 @@ snapshots: dependencies: get-func-name: 2.0.2 - lru-cache@10.2.2: {} + loupe@3.1.4: {} + + lru-cache@10.4.3: {} lru-cache@5.1.1: dependencies: @@ -6816,19 +5788,21 @@ snapshots: lz-string@1.5.0: {} - magic-string@0.30.5: + magic-string@0.30.17: dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 + + math-intrinsics@1.1.0: {} - meow@12.1.1: {} + meow@13.2.0: {} merge-stream@2.0.0: {} merge2@1.4.1: {} - micromatch@4.0.5: + micromatch@4.0.8: dependencies: - braces: 3.0.2 + braces: 3.0.3 picomatch: 2.3.1 mime-db@1.52.0: {} @@ -6839,106 +5813,76 @@ snapshots: mimic-fn@2.1.0: {} - mimic-fn@4.0.0: {} - - minimatch@9.0.4: + minimatch@9.0.5: dependencies: brace-expansion: 2.0.1 minimist@1.2.8: {} - minipass@7.1.0: {} + minipass@7.1.2: {} - mlly@1.4.2: - dependencies: - acorn: 8.11.2 - pathe: 1.1.1 - pkg-types: 1.0.3 - ufo: 1.3.2 + mrmime@2.0.1: {} - ms@2.1.2: {} + ms@2.1.3: {} - nanoid@3.3.7: {} + nanoid@3.3.11: {} neo-async@2.6.2: {} node-domexception@1.0.0: {} - node-fetch@2.7.0: - dependencies: - whatwg-url: 5.0.0 - node-fetch@3.3.2: dependencies: data-uri-to-buffer: 4.0.1 fetch-blob: 3.2.0 formdata-polyfill: 4.0.10 - node-releases@2.0.14: {} + node-releases@2.0.19: {} - node-releases@2.0.18: {} - - normalize-package-data@6.0.0: + normalize-package-data@7.0.0: dependencies: - hosted-git-info: 7.0.1 - is-core-module: 2.13.1 - semver: 7.6.2 + hosted-git-info: 8.1.0 + semver: 7.7.1 validate-npm-package-license: 3.0.4 npm-run-path@4.0.1: dependencies: path-key: 3.1.1 - npm-run-path@5.2.0: - dependencies: - path-key: 4.0.0 - - nwsapi@2.2.7: {} + nwsapi@2.2.19: {} object-assign@4.1.1: {} - object-inspect@1.13.1: {} + object-inspect@1.13.4: {} - object-is@1.1.5: + object-is@1.1.6: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.8 define-properties: 1.2.1 object-keys@1.1.1: {} - object.assign@4.1.5: + object.assign@4.1.7: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.8 + call-bound: 1.0.4 define-properties: 1.2.1 - has-symbols: 1.0.3 + es-object-atoms: 1.1.1 + has-symbols: 1.1.0 object-keys: 1.1.1 onetime@5.1.2: dependencies: mimic-fn: 2.1.0 - onetime@6.0.0: - dependencies: - mimic-fn: 4.0.0 - - optimism@0.18.0: + optimism@0.18.1: dependencies: '@wry/caches': 1.0.1 '@wry/context': 0.7.4 - '@wry/trie': 0.4.3 - tslib: 2.6.3 - - p-limit@4.0.0: - dependencies: - yocto-queue: 1.0.0 - - p-limit@5.0.0: - dependencies: - yocto-queue: 1.0.0 + '@wry/trie': 0.5.0 + tslib: 2.8.1 - p-locate@6.0.0: - dependencies: - p-limit: 4.0.0 + package-json-from-dist@1.0.1: {} parent-module@1.0.1: dependencies: @@ -6946,91 +5890,75 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.27.1 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - parse-json@7.1.1: - dependencies: - '@babel/code-frame': 7.24.7 - error-ex: 1.3.2 - json-parse-even-better-errors: 3.0.0 - lines-and-columns: 2.0.4 - type-fest: 3.13.1 - - parse5@7.1.2: + parse5@7.2.1: dependencies: entities: 4.5.0 - path-exists@5.0.0: {} - path-key@3.1.1: {} - path-key@4.0.0: {} - path-parse@1.0.7: {} - path-scurry@1.10.2: + path-scurry@1.11.1: dependencies: - lru-cache: 10.2.2 - minipass: 7.1.0 + lru-cache: 10.4.3 + minipass: 7.1.2 path-type@4.0.0: {} - pathe@1.1.1: {} + pathe@2.0.3: {} pathval@1.1.1: {} - perfect-freehand@1.2.2: {} + pathval@2.0.1: {} - picocolors@1.0.0: {} + perfect-freehand@1.2.2: {} - picocolors@1.0.1: {} + picocolors@1.1.1: {} picomatch@2.3.1: {} + picomatch@4.0.3: {} + pixelmatch@5.3.0: dependencies: pngjs: 6.0.0 - pkg-types@1.0.3: - dependencies: - jsonc-parser: 3.2.0 - mlly: 1.4.2 - pathe: 1.1.1 - - playwright-chromium@1.42.1: + playwright-chromium@1.51.1: dependencies: - playwright-core: 1.42.1 - - playwright-core@1.42.1: {} + playwright-core: 1.51.1 - playwright-core@1.45.0: {} + playwright-core@1.51.1: {} - playwright@1.45.0: + playwright@1.51.1: dependencies: - playwright-core: 1.45.0 + playwright-core: 1.51.1 optionalDependencies: fsevents: 2.3.2 pngjs@6.0.0: {} + possible-typed-array-names@1.1.0: {} + postcss-value-parser@4.2.0: {} - postcss@8.4.38: + postcss@8.4.49: dependencies: - nanoid: 3.3.7 - picocolors: 1.0.1 - source-map-js: 1.2.0 + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 - postcss@8.4.41: + postcss@8.5.6: dependencies: - nanoid: 3.3.7 - picocolors: 1.0.1 - source-map-js: 1.2.0 + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 - prettier@3.2.5: {} + prettier@3.5.3: {} pretty-format@27.5.1: dependencies: @@ -7038,25 +5966,21 @@ snapshots: ansi-styles: 5.2.0 react-is: 17.0.2 - pretty-format@29.7.0: - dependencies: - '@jest/schemas': 29.6.3 - ansi-styles: 5.2.0 - react-is: 18.2.0 - prop-types@15.8.1: dependencies: loose-envify: 1.4.0 object-assign: 4.1.1 react-is: 16.13.1 - proxy-compare@3.0.0: {} + proxy-compare@3.0.1: {} proxy-memoize@3.0.1: dependencies: - proxy-compare: 3.0.0 + proxy-compare: 3.0.1 - psl@1.9.0: {} + psl@1.15.0: + dependencies: + punycode: 2.3.1 punycode@2.3.1: {} @@ -7064,469 +5988,476 @@ snapshots: queue-microtask@1.2.3: {} - rc-cascader@3.30.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + rc-cascader@3.33.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.10 classnames: 2.5.1 - rc-select: 14.16.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-tree: 5.10.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + rc-select: 14.16.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-tree: 5.13.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - rc-checkbox@3.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + rc-checkbox@3.5.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.10 classnames: 2.5.1 - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - rc-collapse@3.9.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + rc-collapse@3.9.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.10 classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + rc-motion: 2.9.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - rc-dialog@9.6.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + rc-dialog@9.6.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: - '@babel/runtime': 7.26.0 - '@rc-component/portal': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@babel/runtime': 7.26.10 + '@rc-component/portal': 1.1.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0) classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + rc-motion: 2.9.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - rc-drawer@7.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + rc-drawer@7.2.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: - '@babel/runtime': 7.26.0 - '@rc-component/portal': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@babel/runtime': 7.26.10 + '@rc-component/portal': 1.1.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0) classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + rc-motion: 2.9.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - rc-dropdown@4.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + rc-dropdown@4.2.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: - '@babel/runtime': 7.26.0 - '@rc-component/trigger': 2.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@babel/runtime': 7.26.10 + '@rc-component/trigger': 2.2.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0) classnames: 2.5.1 - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - rc-field-form@2.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + rc-field-form@2.7.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.10 '@rc-component/async-validator': 5.0.4 - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - rc-image@7.11.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + rc-image@7.11.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: - '@babel/runtime': 7.26.0 - '@rc-component/portal': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@babel/runtime': 7.26.10 + '@rc-component/portal': 1.1.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0) classnames: 2.5.1 - rc-dialog: 9.6.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + rc-dialog: 9.6.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-motion: 2.9.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - rc-input-number@9.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + rc-input-number@9.4.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.10 '@rc-component/mini-decimal': 1.1.0 classnames: 2.5.1 - rc-input: 1.6.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + rc-input: 1.7.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - rc-input@1.6.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + rc-input@1.7.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.10 classnames: 2.5.1 - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - rc-mentions@2.17.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + rc-mentions@2.19.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: - '@babel/runtime': 7.26.0 - '@rc-component/trigger': 2.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@babel/runtime': 7.26.10 + '@rc-component/trigger': 2.2.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0) classnames: 2.5.1 - rc-input: 1.6.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-menu: 9.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-textarea: 1.8.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + rc-input: 1.7.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-menu: 9.16.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-textarea: 1.9.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - rc-menu@9.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + rc-menu@9.16.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: - '@babel/runtime': 7.26.0 - '@rc-component/trigger': 2.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@babel/runtime': 7.26.10 + '@rc-component/trigger': 2.2.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0) classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-overflow: 1.3.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + rc-motion: 2.9.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-overflow: 1.4.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - rc-motion@2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + rc-motion@2.9.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.10 classnames: 2.5.1 - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - rc-notification@5.6.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + rc-notification@5.6.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.10 classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + rc-motion: 2.9.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - rc-overflow@1.3.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + rc-overflow@1.4.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.10 classnames: 2.5.1 - rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + rc-resize-observer: 1.4.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - rc-pagination@5.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + rc-pagination@5.1.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.10 classnames: 2.5.1 - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - rc-picker@4.8.3(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + rc-picker@4.11.3(dayjs@1.11.13)(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: - '@babel/runtime': 7.26.0 - '@rc-component/trigger': 2.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@babel/runtime': 7.26.10 + '@rc-component/trigger': 2.2.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0) classnames: 2.5.1 - rc-overflow: 1.3.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + rc-overflow: 1.4.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-resize-observer: 1.4.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) optionalDependencies: dayjs: 1.11.13 - rc-progress@4.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + rc-progress@4.0.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.10 classnames: 2.5.1 - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - rc-rate@2.13.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + rc-rate@2.13.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.10 classnames: 2.5.1 - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - rc-resize-observer@1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + rc-resize-observer@1.4.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.10 classnames: 2.5.1 - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) resize-observer-polyfill: 1.5.1 - rc-segmented@2.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + rc-segmented@2.7.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.10 classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + rc-motion: 2.9.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - rc-select@14.16.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + rc-select@14.16.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: - '@babel/runtime': 7.26.0 - '@rc-component/trigger': 2.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@babel/runtime': 7.26.10 + '@rc-component/trigger': 2.2.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0) classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-overflow: 1.3.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-virtual-list: 3.15.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + rc-motion: 2.9.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-overflow: 1.4.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-virtual-list: 3.18.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - rc-slider@11.1.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + rc-slider@11.1.8(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.10 classnames: 2.5.1 - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - rc-steps@6.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + rc-steps@6.0.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.10 classnames: 2.5.1 - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - rc-switch@4.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + rc-switch@4.1.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.10 classnames: 2.5.1 - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - rc-table@7.49.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + rc-table@7.50.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: - '@babel/runtime': 7.26.0 - '@rc-component/context': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@babel/runtime': 7.26.10 + '@rc-component/context': 1.4.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) classnames: 2.5.1 - rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-virtual-list: 3.15.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + rc-resize-observer: 1.4.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-virtual-list: 3.18.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - rc-tabs@15.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + rc-tabs@15.5.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.10 classnames: 2.5.1 - rc-dropdown: 4.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-menu: 9.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + rc-dropdown: 4.2.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-menu: 9.16.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-motion: 2.9.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-resize-observer: 1.4.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - rc-textarea@1.8.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + rc-textarea@1.9.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.10 classnames: 2.5.1 - rc-input: 1.6.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + rc-input: 1.7.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-resize-observer: 1.4.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - rc-tooltip@6.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + rc-tooltip@6.4.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: - '@babel/runtime': 7.26.0 - '@rc-component/trigger': 2.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@babel/runtime': 7.26.10 + '@rc-component/trigger': 2.2.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0) classnames: 2.5.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - rc-tree-select@5.24.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + rc-tree-select@5.27.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.10 classnames: 2.5.1 - rc-select: 14.16.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-tree: 5.10.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + rc-select: 14.16.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-tree: 5.13.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - rc-tree@5.10.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + rc-tree@5.13.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.10 classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-virtual-list: 3.15.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + rc-motion: 2.9.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-virtual-list: 3.18.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - rc-upload@4.8.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + rc-upload@4.8.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.10 classnames: 2.5.1 - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-util@5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-is: 18.2.0 + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - rc-util@5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + rc-util@5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: - '@babel/runtime': 7.26.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-is: 18.2.0 + '@babel/runtime': 7.26.10 + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) + react-is: 18.3.1 - rc-virtual-list@3.15.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + rc-virtual-list@3.18.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.10 classnames: 2.5.1 - rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + rc-resize-observer: 1.4.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + rc-util: 5.44.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - react-dom@18.3.1(react@18.3.1): + react-dom@19.2.0(react@19.2.0): dependencies: - loose-envify: 1.4.0 - react: 18.3.1 - scheduler: 0.23.2 + react: 19.2.0 + scheduler: 0.27.0 - react-error-boundary@4.0.12(react@18.3.1): + react-error-boundary@4.1.2(react@19.2.0): dependencies: - '@babel/runtime': 7.23.5 - react: 18.3.1 + '@babel/runtime': 7.26.10 + react: 19.2.0 react-is@16.13.1: {} react-is@17.0.2: {} - react-is@18.2.0: {} + react-is@18.3.1: {} - react-refresh@0.14.0: {} + react-redux@9.2.0(@types/react@19.2.2)(react@19.2.0)(redux@5.0.1): + dependencies: + '@types/use-sync-external-store': 0.0.6 + react: 19.2.0 + use-sync-external-store: 1.4.0(react@19.2.0) + optionalDependencies: + '@types/react': 19.2.2 + redux: 5.0.1 - react-refresh@0.14.2: {} + react-refresh@0.17.0: {} - react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + react-streaming@0.4.11(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: - '@brillout/import': 0.2.3 - '@brillout/json-serializer': 0.5.13 - '@brillout/picocolors': 1.0.14 + '@brillout/import': 0.2.6 + '@brillout/json-serializer': 0.5.21 + '@brillout/picocolors': 1.0.28 isbot-fast: 1.2.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - react@18.3.1: - dependencies: - loose-envify: 1.4.0 + react@19.2.0: {} - read-pkg-up@10.1.0: + redux-thunk@3.1.0(redux@5.0.1): dependencies: - find-up: 6.3.0 - read-pkg: 8.1.0 - type-fest: 4.8.1 + redux: 5.0.1 - read-pkg@8.1.0: - dependencies: - '@types/normalize-package-data': 2.4.4 - normalize-package-data: 6.0.0 - parse-json: 7.1.1 - type-fest: 4.8.1 + redux@5.0.1: {} - regenerator-runtime@0.14.0: {} + regenerator-runtime@0.14.1: {} - regexp.prototype.flags@1.5.1: + regexp.prototype.flags@1.5.4: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.8 define-properties: 1.2.1 - set-function-name: 2.0.1 + es-errors: 1.3.0 + get-proto: 1.0.1 + gopd: 1.2.0 + set-function-name: 2.0.2 - rehackt@0.1.0(@types/react@18.2.55)(react@18.3.1): + rehackt@0.1.0(@types/react@19.2.2)(react@19.2.0): optionalDependencies: - '@types/react': 18.2.55 - react: 18.3.1 + '@types/react': 19.2.2 + react: 19.2.0 requires-port@1.0.0: {} + reselect@5.1.1: {} + resize-observer-polyfill@1.5.1: {} resolve-from@4.0.0: {} - resolve@1.22.8: + resolve@1.22.10: dependencies: - is-core-module: 2.13.1 + is-core-module: 2.16.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - response-iterator@0.2.6: {} + reusify@1.1.0: {} - reusify@1.0.4: {} - - rimraf@5.0.5: + rimraf@5.0.10: dependencies: - glob: 10.3.12 + glob: 10.4.5 - rollup@4.20.0: + rollup@4.46.2: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.8 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.20.0 - '@rollup/rollup-android-arm64': 4.20.0 - '@rollup/rollup-darwin-arm64': 4.20.0 - '@rollup/rollup-darwin-x64': 4.20.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.20.0 - '@rollup/rollup-linux-arm-musleabihf': 4.20.0 - '@rollup/rollup-linux-arm64-gnu': 4.20.0 - '@rollup/rollup-linux-arm64-musl': 4.20.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.20.0 - '@rollup/rollup-linux-riscv64-gnu': 4.20.0 - '@rollup/rollup-linux-s390x-gnu': 4.20.0 - '@rollup/rollup-linux-x64-gnu': 4.20.0 - '@rollup/rollup-linux-x64-musl': 4.20.0 - '@rollup/rollup-win32-arm64-msvc': 4.20.0 - '@rollup/rollup-win32-ia32-msvc': 4.20.0 - '@rollup/rollup-win32-x64-msvc': 4.20.0 + '@rollup/rollup-android-arm-eabi': 4.46.2 + '@rollup/rollup-android-arm64': 4.46.2 + '@rollup/rollup-darwin-arm64': 4.46.2 + '@rollup/rollup-darwin-x64': 4.46.2 + '@rollup/rollup-freebsd-arm64': 4.46.2 + '@rollup/rollup-freebsd-x64': 4.46.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.46.2 + '@rollup/rollup-linux-arm-musleabihf': 4.46.2 + '@rollup/rollup-linux-arm64-gnu': 4.46.2 + '@rollup/rollup-linux-arm64-musl': 4.46.2 + '@rollup/rollup-linux-loongarch64-gnu': 4.46.2 + '@rollup/rollup-linux-ppc64-gnu': 4.46.2 + '@rollup/rollup-linux-riscv64-gnu': 4.46.2 + '@rollup/rollup-linux-riscv64-musl': 4.46.2 + '@rollup/rollup-linux-s390x-gnu': 4.46.2 + '@rollup/rollup-linux-x64-gnu': 4.46.2 + '@rollup/rollup-linux-x64-musl': 4.46.2 + '@rollup/rollup-win32-arm64-msvc': 4.46.2 + '@rollup/rollup-win32-ia32-msvc': 4.46.2 + '@rollup/rollup-win32-x64-msvc': 4.46.2 fsevents: 2.3.3 - rrweb-cssom@0.6.0: {} + rrweb-cssom@0.7.1: {} + + rrweb-cssom@0.8.0: {} run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 + safe-regex-test@1.1.0: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-regex: 1.2.1 + safer-buffer@2.1.2: {} saxes@6.0.0: dependencies: xmlchars: 2.2.0 - scheduler@0.23.2: - dependencies: - loose-envify: 1.4.0 + scheduler@0.27.0: {} scroll-into-view-if-needed@3.1.0: dependencies: - compute-scroll-into-view: 3.1.0 + compute-scroll-into-view: 3.1.1 semver@6.3.1: {} - semver@7.6.2: {} + semver@7.7.1: {} - set-function-length@1.1.1: + set-function-length@1.2.2: dependencies: - define-data-property: 1.1.1 - get-intrinsic: 1.2.2 - gopd: 1.0.1 - has-property-descriptors: 1.0.1 + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.3.0 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 - set-function-name@2.0.1: + set-function-name@2.0.2: dependencies: - define-data-property: 1.1.1 + define-data-property: 1.1.4 + es-errors: 1.3.0 functions-have-names: 1.2.3 - has-property-descriptors: 1.0.1 + has-property-descriptors: 1.0.2 shallowequal@1.1.0: {} @@ -7536,11 +6467,33 @@ snapshots: shebang-regex@3.0.0: {} - side-channel@1.0.4: + side-channel-list@1.0.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + side-channel-map: 1.0.1 + + side-channel@1.1.0: dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - object-inspect: 1.13.1 + es-errors: 1.3.0 + object-inspect: 1.13.4 + side-channel-list: 1.0.0 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 siginfo@2.0.0: {} @@ -7548,7 +6501,13 @@ snapshots: signal-exit@4.1.0: {} - source-map-js@1.2.0: {} + sirv@3.0.1: + dependencies: + '@polka/url': 1.0.0-next.28 + mrmime: 2.0.1 + totalist: 3.0.1 + + source-map-js@1.2.1: {} source-map-support@0.5.21: dependencies: @@ -7562,26 +6521,25 @@ snapshots: spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.16 + spdx-license-ids: 3.0.21 - spdx-exceptions@2.3.0: {} + spdx-exceptions@2.5.0: {} spdx-expression-parse@3.0.1: dependencies: - spdx-exceptions: 2.3.0 - spdx-license-ids: 3.0.16 - - spdx-license-ids@3.0.16: {} + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.21 - split2@4.2.0: {} + spdx-license-ids@3.0.21: {} stackback@0.0.2: {} - std-env@3.5.0: {} + std-env@3.9.0: {} - stop-iteration-iterator@1.0.0: + stop-iteration-iterator@1.1.0: dependencies: - internal-slot: 1.0.6 + es-errors: 1.3.0 + internal-slot: 1.1.0 string-convert@0.2.1: {} @@ -7603,44 +6561,38 @@ snapshots: strip-ansi@7.1.0: dependencies: - ansi-regex: 6.0.1 + ansi-regex: 6.1.0 strip-final-newline@2.0.0: {} - strip-final-newline@3.0.0: {} - - strip-literal@1.3.0: + strip-literal@3.0.0: dependencies: - acorn: 8.11.2 + js-tokens: 9.0.1 - styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + styled-components@6.1.16(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: '@emotion/is-prop-valid': 1.2.2 '@emotion/unitless': 0.8.1 '@types/stylis': 4.2.5 css-to-react-native: 3.2.0 csstype: 3.1.3 - postcss: 8.4.38 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + postcss: 8.4.49 + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) shallowequal: 1.1.0 stylis: 4.3.2 tslib: 2.6.2 - styled-jsx@5.1.6(react@18.3.1): + styled-jsx@5.1.6(react@19.2.0): dependencies: client-only: 0.0.1 - react: 18.3.1 + react: 19.2.0 stylis@4.2.0: {} stylis@4.3.2: {} - stylis@4.3.4: {} - - supports-color@5.5.0: - dependencies: - has-flag: 3.0.0 + stylis@4.3.6: {} supports-color@7.2.0: dependencies: @@ -7652,21 +6604,22 @@ snapshots: symbol-tree@3.2.4: {} - tabbable@6.2.0: {} - - text-extensions@2.4.0: {} - throttle-debounce@5.0.2: {} - through@2.3.8: {} + tinybench@2.9.0: {} + + tinyexec@0.3.2: {} - tinybench@2.5.1: {} + tinyglobby@0.2.15: + dependencies: + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 - tinypool@0.8.2: {} + tinypool@1.1.1: {} - tinyspy@2.2.0: {} + tinyrainbow@2.0.0: {} - to-fast-properties@2.0.0: {} + tinyspy@4.0.3: {} to-regex-range@5.0.1: dependencies: @@ -7674,57 +6627,45 @@ snapshots: toggle-selection@1.0.6: {} - tough-cookie@4.1.3: + totalist@3.0.1: {} + + tough-cookie@4.1.4: dependencies: - psl: 1.9.0 + psl: 1.15.0 punycode: 2.3.1 universalify: 0.2.0 url-parse: 1.5.10 - tr46@0.0.3: {} - - tr46@5.0.0: + tr46@5.1.0: dependencies: punycode: 2.3.1 ts-invariant@0.10.3: dependencies: - tslib: 2.6.3 + tslib: 2.8.1 tslib@2.6.2: {} - tslib@2.6.3: {} - - type-detect@4.0.8: {} - - type-fest@3.13.1: {} - - type-fest@4.8.1: {} + tslib@2.8.1: {} - typescript@5.5.3: {} + type-detect@4.1.0: {} - typescript@5.5.4: {} + typescript@5.9.3: {} - ufo@1.3.2: {} - - uglify-js@3.17.4: + uglify-js@3.19.3: optional: true - undici-types@5.26.5: {} + undici-types@6.21.0: {} - universalify@0.2.0: {} + undici-types@7.8.0: {} - update-browserslist-db@1.0.13(browserslist@4.22.2): - dependencies: - browserslist: 4.22.2 - escalade: 3.1.1 - picocolors: 1.0.1 + universalify@0.2.0: {} - update-browserslist-db@1.1.0(browserslist@4.23.3): + update-browserslist-db@1.1.3(browserslist@4.24.4): dependencies: - browserslist: 4.23.3 - escalade: 3.1.2 - picocolors: 1.0.1 + browserslist: 4.24.4 + escalade: 3.2.0 + picocolors: 1.1.1 uqr@0.1.2: {} @@ -7733,56 +6674,47 @@ snapshots: querystringify: 2.2.0 requires-port: 1.0.0 + use-sync-external-store@1.4.0(react@19.2.0): + dependencies: + react: 19.2.0 + validate-npm-package-license@3.0.4: dependencies: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 - vike@0.4.203(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.0(@types/node@20.11.17)): - dependencies: - '@brillout/import': 0.2.3 - '@brillout/json-serializer': 0.5.13 - '@brillout/picocolors': 1.0.15 - '@brillout/require-shim': 0.1.2 - '@brillout/vite-plugin-server-entry': 0.5.1 - acorn: 8.11.2 - cac: 6.7.14 - es-module-lexer: 1.4.1 - esbuild: 0.21.5 - fast-glob: 3.3.2 - semver: 7.6.2 - source-map-support: 0.5.21 - vite: 5.4.0(@types/node@20.11.17) - optionalDependencies: - react-streaming: 0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - - vike@0.4.211(react-streaming@0.3.43(react@18.3.1))(vite@5.4.0(@types/node@20.11.17)): + vike@0.4.242(react-streaming@0.4.11(react@19.2.0))(vite@7.1.9): dependencies: - '@brillout/import': 0.2.3 - '@brillout/json-serializer': 0.5.15 - '@brillout/picocolors': 1.0.15 + '@brillout/import': 0.2.6 + '@brillout/json-serializer': 0.5.21 + '@brillout/picocolors': 1.0.28 '@brillout/require-shim': 0.1.2 - '@brillout/vite-plugin-server-entry': 0.5.6 - acorn: 8.11.2 + '@brillout/vite-plugin-server-entry': 0.7.15 + acorn: 8.14.1 cac: 6.7.14 - es-module-lexer: 1.4.1 - esbuild: 0.21.5 - fast-glob: 3.3.2 - semver: 7.6.2 + es-module-lexer: 1.7.0 + esbuild: 0.25.1 + json5: 2.2.3 + magic-string: 0.30.17 + picomatch: 4.0.3 + semver: 7.7.1 + sirv: 3.0.1 source-map-support: 0.5.21 - vite: 5.4.0(@types/node@20.11.17) + tinyglobby: 0.2.15 optionalDependencies: - react-streaming: 0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-streaming: 0.4.11(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + vite: 7.1.9(@types/node@24.0.8) - vite-node@1.2.2(@types/node@20.11.17): + vite-node@3.2.4(@types/node@24.0.8): dependencies: cac: 6.7.14 - debug: 4.3.4 - pathe: 1.1.1 - picocolors: 1.0.1 - vite: 5.4.0(@types/node@20.11.17) + debug: 4.4.1 + es-module-lexer: 1.7.0 + pathe: 2.0.3 + vite: 7.1.9(@types/node@24.0.8) transitivePeerDependencies: - '@types/node' + - jiti - less - lightningcss - sass @@ -7791,59 +6723,70 @@ snapshots: - sugarss - supports-color - terser + - tsx + - yaml - vite@5.4.0(@types/node@20.11.17): + vite@7.1.9(@types/node@24.0.8): dependencies: - esbuild: 0.21.5 - postcss: 8.4.41 - rollup: 4.20.0 + esbuild: 0.25.1 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.46.2 + tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 20.11.17 + '@types/node': 24.0.8 fsevents: 2.3.3 - vitest@1.2.2(@types/node@20.11.17)(jsdom@24.0.0): - dependencies: - '@vitest/expect': 1.2.2 - '@vitest/runner': 1.2.2 - '@vitest/snapshot': 1.2.2 - '@vitest/spy': 1.2.2 - '@vitest/utils': 1.2.2 - acorn-walk: 8.3.2 - cac: 6.7.14 - chai: 4.3.10 - debug: 4.3.4 - execa: 8.0.1 - local-pkg: 0.5.0 - magic-string: 0.30.5 - pathe: 1.1.1 - picocolors: 1.0.0 - std-env: 3.5.0 - strip-literal: 1.3.0 - tinybench: 2.5.1 - tinypool: 0.8.2 - vite: 5.4.0(@types/node@20.11.17) - vite-node: 1.2.2(@types/node@20.11.17) - why-is-node-running: 2.2.2 + vitest@3.2.4(@types/node@24.0.8)(jsdom@24.1.3): + dependencies: + '@types/chai': 5.2.2 + '@vitest/expect': 3.2.4 + '@vitest/mocker': 3.2.4(vite@7.1.9(@types/node@24.0.8)) + '@vitest/pretty-format': 3.2.4 + '@vitest/runner': 3.2.4 + '@vitest/snapshot': 3.2.4 + '@vitest/spy': 3.2.4 + '@vitest/utils': 3.2.4 + chai: 5.2.0 + debug: 4.4.1 + expect-type: 1.2.1 + magic-string: 0.30.17 + pathe: 2.0.3 + picomatch: 4.0.3 + std-env: 3.9.0 + tinybench: 2.9.0 + tinyexec: 0.3.2 + tinyglobby: 0.2.15 + tinypool: 1.1.1 + tinyrainbow: 2.0.0 + vite: 7.1.9(@types/node@24.0.8) + vite-node: 3.2.4(@types/node@24.0.8) + why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 20.11.17 - jsdom: 24.0.0 + '@types/node': 24.0.8 + jsdom: 24.1.3 transitivePeerDependencies: + - jiti - less - lightningcss + - msw - sass - sass-embedded - stylus - sugarss - supports-color - terser + - tsx + - yaml w3c-xmlserializer@5.0.0: dependencies: xml-name-validator: 5.0.0 - web-streams-polyfill@3.2.1: {} + walk-up-path@3.0.1: {} - webidl-conversions@3.0.1: {} + web-streams-polyfill@3.3.3: {} webidl-conversions@7.0.0: {} @@ -7853,44 +6796,41 @@ snapshots: whatwg-mimetype@4.0.0: {} - whatwg-url@14.0.0: + whatwg-url@14.2.0: dependencies: - tr46: 5.0.0 + tr46: 5.1.0 webidl-conversions: 7.0.0 - whatwg-url@5.0.0: - dependencies: - tr46: 0.0.3 - webidl-conversions: 3.0.1 - - which-boxed-primitive@1.0.2: + which-boxed-primitive@1.1.1: dependencies: - is-bigint: 1.0.4 - is-boolean-object: 1.1.2 - is-number-object: 1.0.7 - is-string: 1.0.7 - is-symbol: 1.0.4 + is-bigint: 1.1.0 + is-boolean-object: 1.2.2 + is-number-object: 1.1.1 + is-string: 1.1.1 + is-symbol: 1.1.1 - which-collection@1.0.1: + which-collection@1.0.2: dependencies: - is-map: 2.0.2 - is-set: 2.0.2 - is-weakmap: 2.0.1 - is-weakset: 2.0.2 + is-map: 2.0.3 + is-set: 2.0.3 + is-weakmap: 2.0.2 + is-weakset: 2.0.4 - which-typed-array@1.1.13: + which-typed-array@1.1.19: dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.5 - for-each: 0.3.3 - gopd: 1.0.1 - has-tostringtag: 1.0.0 + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.4 + for-each: 0.3.5 + get-proto: 1.0.1 + gopd: 1.2.0 + has-tostringtag: 1.0.2 which@2.0.2: dependencies: isexe: 2.0.0 - why-is-node-running@2.2.2: + why-is-node-running@2.3.0: dependencies: siginfo: 2.0.0 stackback: 0.0.2 @@ -7909,7 +6849,7 @@ snapshots: string-width: 5.1.2 strip-ansi: 7.1.0 - ws@8.16.0: {} + ws@8.18.1: {} xml-name-validator@5.0.0: {} @@ -7919,10 +6859,15 @@ snapshots: yaml@1.10.2: {} - yocto-queue@1.0.0: {} - zen-observable-ts@1.2.5: dependencies: zen-observable: 0.8.15 zen-observable@0.8.15: {} + + zustand@5.0.8(@types/react@19.2.2)(immer@10.1.3)(react@19.2.0)(use-sync-external-store@1.4.0(react@19.2.0)): + optionalDependencies: + '@types/react': 19.2.2 + immer: 10.1.3 + react: 19.2.0 + use-sync-external-store: 1.4.0(react@19.2.0)