From 9b2387d23daabcb16b0172e4c8aa0cd85cbb93d0 Mon Sep 17 00:00:00 2001 From: Joseph Date: Thu, 20 Aug 2026 15:26:38 +0200 Subject: [PATCH 1/6] docs: Explicit cache output description (#97548) Completing the input-output pair for cached functions. This is addressing user confusion around what happens to a cached function, and functions within the scope. --- docs/01-app/01-getting-started/08-caching.mdx | 2 +- .../03-api-reference/01-directives/index.mdx | 2 +- .../01-directives/use-cache.mdx | 237 +++++++++++------- 3 files changed, 149 insertions(+), 92 deletions(-) diff --git a/docs/01-app/01-getting-started/08-caching.mdx b/docs/01-app/01-getting-started/08-caching.mdx index 4c04b73f1f4d..0a90fb510a9f 100644 --- a/docs/01-app/01-getting-started/08-caching.mdx +++ b/docs/01-app/01-getting-started/08-caching.mdx @@ -51,7 +51,7 @@ A cache directive gives a result a lifetime, information Next.js uses to apply r > **Good to know:** We recommend pairing every cache directive with a [`cacheLife`](/docs/app/api-reference/functions/cacheLife). Without one, the implicit `default` profile applies. -Arguments and any closed-over values from parent scopes automatically become part of the [cache key](/docs/app/api-reference/directives/use-cache#cache-keys), which means different inputs will produce separate cache entries. See [serialization requirements and constraints](/docs/app/api-reference/directives/use-cache#constraints) for details on what can be cached and how arguments work. +Arguments and any values captured from parent scopes automatically become part of the [cache key](/docs/app/api-reference/directives/use-cache#cache-keys), which means different inputs will produce separate cache entries. See [cache output](/docs/app/api-reference/directives/use-cache#cache-output) for what an entry holds, and [serialization requirements and constraints](/docs/app/api-reference/directives/use-cache#constraints) for details on what can be cached and how arguments work. ### Data-level caching diff --git a/docs/01-app/03-api-reference/01-directives/index.mdx b/docs/01-app/03-api-reference/01-directives/index.mdx index ce66a186dae6..d0bea6a75b1c 100644 --- a/docs/01-app/03-api-reference/01-directives/index.mdx +++ b/docs/01-app/03-api-reference/01-directives/index.mdx @@ -73,7 +73,7 @@ A directive imposes rules on the code it covers: - **`'use server'`** marks the functions it covers as [Server Functions](/docs/app/glossary#server-function). Server Functions must be `async`. When invoked from a Client Component, their arguments and return values are serialized across the network. The Client Component receives a reference that invokes the function on the server, not the function's code. - **`'use cache'`** caches the output of the functions or components it covers based on their inputs. Cached functions and components must be `async`. Their arguments and return values must be serializable, except for non-serializable values that the cached code passes through without inspecting. Cached code cannot read request-time APIs like `cookies()`, `headers()`, or `searchParams` directly. -File-level directive rules also apply to framework exports. With `'use cache'` at the top of a page or layout file, exported functions such as `generateMetadata` and `generateStaticParams` must be `async`. A file-level `'use cache'` directive does not allow non-function exports. +With `'use cache'` at the top of a page or layout file, exported functions such as `generateMetadata` and `generateStaticParams` must be `async`. ## Placement decides what you cache diff --git a/docs/01-app/03-api-reference/01-directives/use-cache.mdx b/docs/01-app/03-api-reference/01-directives/use-cache.mdx index 75659409caf4..60dcc73f310a 100644 --- a/docs/01-app/03-api-reference/01-directives/use-cache.mdx +++ b/docs/01-app/03-api-reference/01-directives/use-cache.mdx @@ -45,14 +45,15 @@ const nextConfig = { module.exports = nextConfig ``` -Then, add `use cache` at the file, component, or function level. All functions and components using `use cache` must be async. When used at file level, every exported function becomes a cached function and must also be async: +Then, add `use cache` at the function, component, or file level. Cached functions and components must be async: ```tsx -// File level -'use cache' - -export default async function Page() { - // ... +// Function level +export async function getData() { + 'use cache' + const res = await fetch('https://api.example.com/data') + const data = await res.json() + return data } // Component level @@ -60,13 +61,16 @@ export async function MyComponent() { 'use cache' return <> } +``` -// Function level -export async function getData() { - 'use cache' - const res = await fetch('https://api.example.com/data') - const data = await res.json() - return data +When used at file level, every exported function becomes a cached function and must also be async: + +```tsx +// File level +'use cache' + +export default async function Page() { + // ... } ``` @@ -102,6 +106,43 @@ In the snippet above, `userId` is captured from the outer scope and `filter` is > **Good to know:** When a cached function reads [root parameters](/docs/app/api-reference/functions/next-root-params), only the ones it actually reads become part of its cache key. +### Cache output + +A cached function produces the same output for the same inputs. The first call with a given set of inputs runs the function body and stores its output. Every later call with the same inputs reuses that output, within a render pass and across requests, for as long as the entry lasts. + +Outputs are stored by a [cache handler](/docs/app/api-reference/config/next-config-js/cacheHandlers), [in memory](#runtime-caching-considerations) by default, and last until they [revalidate](#revalidation). + +```tsx filename="lib/orders.ts" +import { cacheLife } from 'next/cache' + +export async function getOrderSummary(accountId: string) { + 'use cache' + cacheLife('hours') + + const orders = await getOrders(accountId) + const totals = await getOrderTotals(accountId) + + return { orders, totals } +} + +export async function getOrders(accountId: string) { + 'use cache' + cacheLife('hours') + + return db.orders.findMany({ where: { accountId } }) +} + +export async function getOrderTotals(accountId: string) { + return db.orders.aggregate({ where: { accountId }, _sum: { amount: true } }) +} +``` + +In the example above, each `accountId` has its own entry for `getOrderSummary`, holding the serialized `{ orders, totals }` object it returns. Calls to `getOrders` have their own entries, keyed by the same `accountId`. If an earlier call, through the summary or directly, already filled one, `db.orders.findMany` doesn't run and those orders become part of the summary's output. See [nested caching behavior](/docs/app/api-reference/functions/cacheLife#nested-caching-behavior) for how an inner lifetime affects the entry around it. + +Note that `getOrderTotals` is not cached. It is exported so other parts of the application can read fresh totals in an uncached scope. Inside `getOrderSummary`, though, the totals query only runs when that function runs following the `'hours'` lifetime set there. + +With [Cache Components](/docs/app/api-reference/config/next-config-js/cacheComponents), prerendering fills the entry and keeps rendering, so this output contributes to the route's [static shell](/docs/app/getting-started/caching#prerendering) and can contribute to its [prefetch](/docs/app/getting-started/caching#prefetching). A cache life too short to store safely leaves a hole that resolves at request time instead. See [prerendering behavior](/docs/app/api-reference/functions/cacheLife#prerendering-behavior) for the thresholds. + ## Serialization Arguments to cached functions and their return values must be serializable. @@ -352,68 +393,30 @@ Both `cacheLife` and `cacheTag` integrate across client and server caching layer ## Examples -### Caching an entire route with `use cache` - -To prerender an entire route, add `use cache` to the top of **both** the `layout` and `page` files. Each of these segments are treated as separate entry points in your application, and will be cached independently. - -```tsx filename="app/layout.tsx" switcher -'use cache' - -export default async function Layout({ children }: { children: ReactNode }) { - return
{children}
-} -``` - -```jsx filename="app/layout.js" switcher -'use cache' - -export default async function Layout({ children }) { - return
{children}
-} -``` - -Any components imported and nested in `page` file are part of the cache output associated with the `page`. +### Caching function output with `use cache` -```tsx filename="app/page.tsx" switcher -'use cache' +You can add `use cache` to any asynchronous function, not only to components and routes. You might want to cache a network request, a database query, or a slow computation. -async function Users() { - const res = await fetch('https://api.example.com/users') - const users = await res.json() - // loop through users -} +```tsx filename="app/actions.ts" highlight={2} switcher +export async function getData() { + 'use cache' -export default async function Page() { - return ( -
- -
- ) + const res = await fetch('https://api.example.com/data') + const data = await res.json() + return data } ``` -```jsx filename="app/page.js" switcher -'use cache' - -async function Users() { - const res = await fetch('https://api.example.com/users') - const users = await res.json() - // loop through users -} +```jsx filename="app/actions.js" highlight={2} switcher +export async function getData() { + 'use cache' -export default async function Page() { - return ( -
- -
- ) + const res = await fetch('https://api.example.com/data') + const data = await res.json() + return data } ``` -> **Good to know**: -> -> - If `use cache` is added only to the `layout` or the `page`, only that route segment and any components imported into it will be cached. - ### Caching a component's output with `use cache` You can use `use cache` at the component level to cache any fetches or computations performed within that component. The cache entry will be reused as long as the serialized props produce the same value in each instance. @@ -450,32 +453,6 @@ export async function Bookings({ type = 'haircut' }) { } ``` -### Caching function output with `use cache` - -Since you can add `use cache` to any asynchronous function, you aren't limited to caching components or routes only. You might want to cache a network request, a database query, or a slow computation. - -```tsx filename="app/actions.ts" highlight={2} switcher -export async function getData() { - 'use cache' - - const res = await fetch('https://api.example.com/data') - const data = await res.json() - return data -} -``` - -```jsx filename="app/actions.js" highlight={2} switcher -export async function getData() { - 'use cache' - - const res = await fetch('https://api.example.com/data') - const data = await res.json() - return data -} -``` - -> **Good to know:** When a cached directive (`use cache`, [`use cache: private`](/docs/app/api-reference/directives/use-cache-private), or [`use cache: remote`](/docs/app/api-reference/directives/use-cache-remote)) is at the top of a file, you can import its exported functions into a Client Component and call them directly; they run on the server and return the result, similar to a [Server Function](/docs/app/glossary#server-function). Prefer calling cached functions on the server and passing results down as props. - ### Interleaving In React, composition with `children` or slots is a well-known pattern for building flexible components. When using `use cache`, you can continue to compose your UI in this way. Anything included as `children`, or other compositional slots, in the returned JSX will be passed through the cached component without affecting its cache entry. @@ -609,6 +586,86 @@ export default function ClientComponent({ action }) { } ``` +### Caching a module's exports with `use cache` + +Placing the directive at the top of a file covers every export, instead of repeating it on each one. Every exported function it covers must be async. + +```tsx filename="app/lib/reports.ts" +'use cache' + +export async function getMonthlyTotals(accountId: string) { + return db.orders.aggregate({ where: { accountId }, _sum: { amount: true } }) +} + +export async function getTopProducts() { + return db.products.findMany({ orderBy: { sales: 'desc' }, take: 10 }) +} +``` + +Framework function exports are covered like any other, so [`generateMetadata`](/docs/app/api-reference/functions/generate-metadata) and [`generateStaticParams`](/docs/app/api-reference/functions/generate-static-params) must be async in such a file. + +> **Good to know**: +> +> - When a cached directive (`use cache`, [`use cache: private`](/docs/app/api-reference/directives/use-cache-private), or [`use cache: remote`](/docs/app/api-reference/directives/use-cache-remote)) is at the top of a file, you can import its exported functions into a Client Component and call them directly; they run on the server and return the result, similar to a [Server Function](/docs/app/glossary#server-function). Prefer calling cached functions on the server and passing results down as props. + +### Caching a route segment's output with `use cache` + +A `page` or `layout` file is a module too, so a file-level directive there follows the same rules. Each route segment is a separate entry point and is cached independently. To prerender a whole route, add `use cache` to the top of every segment file it renders: the `page`, the `layout`, and any [parallel route](/docs/app/api-reference/file-conventions/parallel-routes) slots. + +```tsx filename="app/layout.tsx" switcher +'use cache' + +export default async function Layout({ children }: { children: ReactNode }) { + return
{children}
+} +``` + +```jsx filename="app/layout.js" switcher +'use cache' + +export default async function Layout({ children }) { + return
{children}
+} +``` + +A cached `layout` does not cache the `children` it renders, since slots pass through without affecting its entry. See [Interleaving](#interleaving). + +```tsx filename="app/page.tsx" switcher +'use cache' + +async function Users() { + const res = await fetch('https://api.example.com/users') + const users = await res.json() + // loop through users +} + +export default async function Page() { + return ( +
+ +
+ ) +} +``` + +```jsx filename="app/page.js" switcher +'use cache' + +async function Users() { + const res = await fetch('https://api.example.com/users') + const users = await res.json() + // loop through users +} + +export default async function Page() { + return ( +
+ +
+ ) +} +``` + ## Troubleshooting ### Debugging cache behavior From 2cc3694fda396a297d05bf21e46ed970b5396b9a Mon Sep 17 00:00:00 2001 From: Janka Uryga Date: Thu, 20 Aug 2026 15:27:11 +0200 Subject: [PATCH 2/6] [PPF] Scaffold unstable_navigation() (#97236) Scaffolds a new API, `unstable_navigation()`. It's only allowed in server code, so we ban it from being imported in the client. Implementation follows upstack. Intended to be merged together. --- .../src/transforms/react_server_components.rs | 1 + .../app-dir/unstable-navigation/input.js | 6 ++++++ .../app-dir/unstable-navigation/output.js | 5 +++++ .../app-dir/unstable-navigation/output.stderr | 9 +++++++++ .../client-graph/unstable-navigation/input.js | 6 ++++++ .../client-graph/unstable-navigation/output.js | 5 +++++ .../unstable-navigation/output.stderr | 8 ++++++++ packages/next/cache.d.ts | 2 ++ packages/next/cache.js | 4 ++++ packages/next/errors.json | 3 ++- .../router-utils/cache-life-type-utils.test.ts | 6 ++++++ .../lib/router-utils/cache-life-type-utils.ts | 1 + .../next/src/server/request/cache-stages.ts | 17 +++++++++++++++++ 13 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 crates/next-custom-transforms/tests/errors/react-server-components/client-graph/app-dir/unstable-navigation/input.js create mode 100644 crates/next-custom-transforms/tests/errors/react-server-components/client-graph/app-dir/unstable-navigation/output.js create mode 100644 crates/next-custom-transforms/tests/errors/react-server-components/client-graph/app-dir/unstable-navigation/output.stderr create mode 100644 crates/next-custom-transforms/tests/errors/react-server-components/client-graph/unstable-navigation/input.js create mode 100644 crates/next-custom-transforms/tests/errors/react-server-components/client-graph/unstable-navigation/output.js create mode 100644 crates/next-custom-transforms/tests/errors/react-server-components/client-graph/unstable-navigation/output.stderr create mode 100644 packages/next/src/server/request/cache-stages.ts diff --git a/crates/next-custom-transforms/src/transforms/react_server_components.rs b/crates/next-custom-transforms/src/transforms/react_server_components.rs index 187d628f02df..03559971beae 100644 --- a/crates/next-custom-transforms/src/transforms/react_server_components.rs +++ b/crates/next-custom-transforms/src/transforms/react_server_components.rs @@ -725,6 +725,7 @@ impl ReactServerComponentValidator { "unstable_cacheLife", "cacheTag", "unstable_cacheTag", + "unstable_navigation", // "unstable_noStore" // no-op in client, but allowed for legacy reasons ], ), diff --git a/crates/next-custom-transforms/tests/errors/react-server-components/client-graph/app-dir/unstable-navigation/input.js b/crates/next-custom-transforms/tests/errors/react-server-components/client-graph/app-dir/unstable-navigation/input.js new file mode 100644 index 000000000000..42eed0629ded --- /dev/null +++ b/crates/next-custom-transforms/tests/errors/react-server-components/client-graph/app-dir/unstable-navigation/input.js @@ -0,0 +1,6 @@ +import { unstable_navigation } from 'next/cache' + +export async function test() { + await unstable_navigation() + return null +} diff --git a/crates/next-custom-transforms/tests/errors/react-server-components/client-graph/app-dir/unstable-navigation/output.js b/crates/next-custom-transforms/tests/errors/react-server-components/client-graph/app-dir/unstable-navigation/output.js new file mode 100644 index 000000000000..57b132273cc9 --- /dev/null +++ b/crates/next-custom-transforms/tests/errors/react-server-components/client-graph/app-dir/unstable-navigation/output.js @@ -0,0 +1,5 @@ +import { unstable_navigation } from 'next/cache'; +export async function test() { + await unstable_navigation(); + return null; +} diff --git a/crates/next-custom-transforms/tests/errors/react-server-components/client-graph/app-dir/unstable-navigation/output.stderr b/crates/next-custom-transforms/tests/errors/react-server-components/client-graph/app-dir/unstable-navigation/output.stderr new file mode 100644 index 000000000000..560aaf83a3d0 --- /dev/null +++ b/crates/next-custom-transforms/tests/errors/react-server-components/client-graph/app-dir/unstable-navigation/output.stderr @@ -0,0 +1,9 @@ + x You're importing a module that depends on "unstable_navigation" into a React Client Component module. This API is only available in Server Components but one of its parents is marked with "use + | client", so this module is also a Client Component. + | Learn more: https://nextjs.org/docs/app/building-your-application/rendering + | + | + ,-[input.js:1:1] + 1 | import { unstable_navigation } from 'next/cache' + : ^^^^^^^^^^^^^^^^^^^ + `---- diff --git a/crates/next-custom-transforms/tests/errors/react-server-components/client-graph/unstable-navigation/input.js b/crates/next-custom-transforms/tests/errors/react-server-components/client-graph/unstable-navigation/input.js new file mode 100644 index 000000000000..42eed0629ded --- /dev/null +++ b/crates/next-custom-transforms/tests/errors/react-server-components/client-graph/unstable-navigation/input.js @@ -0,0 +1,6 @@ +import { unstable_navigation } from 'next/cache' + +export async function test() { + await unstable_navigation() + return null +} diff --git a/crates/next-custom-transforms/tests/errors/react-server-components/client-graph/unstable-navigation/output.js b/crates/next-custom-transforms/tests/errors/react-server-components/client-graph/unstable-navigation/output.js new file mode 100644 index 000000000000..57b132273cc9 --- /dev/null +++ b/crates/next-custom-transforms/tests/errors/react-server-components/client-graph/unstable-navigation/output.js @@ -0,0 +1,5 @@ +import { unstable_navigation } from 'next/cache'; +export async function test() { + await unstable_navigation(); + return null; +} diff --git a/crates/next-custom-transforms/tests/errors/react-server-components/client-graph/unstable-navigation/output.stderr b/crates/next-custom-transforms/tests/errors/react-server-components/client-graph/unstable-navigation/output.stderr new file mode 100644 index 000000000000..360807a8dfa7 --- /dev/null +++ b/crates/next-custom-transforms/tests/errors/react-server-components/client-graph/unstable-navigation/output.stderr @@ -0,0 +1,8 @@ + x You're importing a module that depends on "unstable_navigation". This API is only available in Server Components in the App Router, but you are using it in the Pages Router. + | Learn more: https://nextjs.org/docs/app/building-your-application/rendering/server-components + | + | + ,-[input.js:1:1] + 1 | import { unstable_navigation } from 'next/cache' + : ^^^^^^^^^^^^^^^^^^^ + `---- diff --git a/packages/next/cache.d.ts b/packages/next/cache.d.ts index 014e3c117eea..b52685ac04de 100644 --- a/packages/next/cache.d.ts +++ b/packages/next/cache.d.ts @@ -154,3 +154,5 @@ export function cacheLife(profile: { export const unstable_cacheLife: typeof cacheLife export const unstable_cacheTag: typeof cacheTag + +export { unstable_navigation } from 'next/dist/server/request/cache-stages' diff --git a/packages/next/cache.js b/packages/next/cache.js index c978a57cbd4d..97c603e80671 100644 --- a/packages/next/cache.js +++ b/packages/next/cache.js @@ -25,6 +25,7 @@ if (process.env.NEXT_RUNTIME === '') { refresh: notAvailableInClient('refresh'), cacheLife: notAvailableInClient('cacheLife'), cacheTag: notAvailableInClient('cacheTag'), + unstable_navigation: notAvailableInClient('unstable_navigation'), } } else { // Keep server requires in this branch so browser builds can DCE them. @@ -49,6 +50,8 @@ if (process.env.NEXT_RUNTIME === '') { io: require('next/dist/server/request/io').io, cacheLife: require('next/dist/server/use-cache/cache-life').cacheLife, cacheTag: require('next/dist/server/use-cache/cache-tag').cacheTag, + unstable_navigation: require('next/dist/server/request/cache-stages') + .unstable_navigation, } } @@ -95,3 +98,4 @@ exports.cacheTag = cacheExports.cacheTag exports.unstable_cacheTag = cacheExports.unstable_cacheTag exports.refresh = cacheExports.refresh exports.io = cacheExports.io +exports.unstable_navigation = cacheExports.unstable_navigation diff --git a/packages/next/errors.json b/packages/next/errors.json index e6358e6e0947..872ce5547caf 100644 --- a/packages/next/errors.json +++ b/packages/next/errors.json @@ -1474,5 +1474,6 @@ "1473": "Invariant: image cache entry \"%s\" is empty", "1474": "Invariant: cannot write an empty buffer to the image cache", "1475": "Invariant: no direct app page entry found for %s", - "1476": "Not implemented: this behavior is not yet supported when `experimental.concurrentRouterQueue` is enabled." + "1476": "Not implemented: this behavior is not yet supported when `experimental.concurrentRouterQueue` is enabled.", + "1477": "unstable_navigation() is not implemented yet." } diff --git a/packages/next/src/server/lib/router-utils/cache-life-type-utils.test.ts b/packages/next/src/server/lib/router-utils/cache-life-type-utils.test.ts index 7665945809b8..6d1c22e7cca3 100644 --- a/packages/next/src/server/lib/router-utils/cache-life-type-utils.test.ts +++ b/packages/next/src/server/lib/router-utils/cache-life-type-utils.test.ts @@ -30,6 +30,7 @@ describe('cache-life-type-utils', () => { } from 'next/dist/server/web/spec-extension/revalidate' export { unstable_noStore } from 'next/dist/server/web/spec-extension/unstable-no-store' export { io } from 'next/dist/server/request/io' + export { unstable_navigation } from 'next/dist/server/request/cache-stages' /** @@ -188,6 +189,7 @@ describe('cache-life-type-utils', () => { } from 'next/dist/server/web/spec-extension/revalidate' export { unstable_noStore } from 'next/dist/server/web/spec-extension/unstable-no-store' export { io } from 'next/dist/server/request/io' + export { unstable_navigation } from 'next/dist/server/request/cache-stages' /** @@ -266,6 +268,7 @@ describe('cache-life-type-utils', () => { } from 'next/dist/server/web/spec-extension/revalidate' export { unstable_noStore } from 'next/dist/server/web/spec-extension/unstable-no-store' export { io } from 'next/dist/server/request/io' + export { unstable_navigation } from 'next/dist/server/request/cache-stages' /** @@ -343,6 +346,7 @@ describe('cache-life-type-utils', () => { } from 'next/dist/server/web/spec-extension/revalidate' export { unstable_noStore } from 'next/dist/server/web/spec-extension/unstable-no-store' export { io } from 'next/dist/server/request/io' + export { unstable_navigation } from 'next/dist/server/request/cache-stages' /** @@ -421,6 +425,7 @@ describe('cache-life-type-utils', () => { } from 'next/dist/server/web/spec-extension/revalidate' export { unstable_noStore } from 'next/dist/server/web/spec-extension/unstable-no-store' export { io } from 'next/dist/server/request/io' + export { unstable_navigation } from 'next/dist/server/request/cache-stages' /** @@ -503,6 +508,7 @@ describe('cache-life-type-utils', () => { } from 'next/dist/server/web/spec-extension/revalidate' export { unstable_noStore } from 'next/dist/server/web/spec-extension/unstable-no-store' export { io } from 'next/dist/server/request/io' + export { unstable_navigation } from 'next/dist/server/request/cache-stages' /** diff --git a/packages/next/src/server/lib/router-utils/cache-life-type-utils.ts b/packages/next/src/server/lib/router-utils/cache-life-type-utils.ts index c256db8b179e..41b56de28848 100644 --- a/packages/next/src/server/lib/router-utils/cache-life-type-utils.ts +++ b/packages/next/src/server/lib/router-utils/cache-life-type-utils.ts @@ -178,6 +178,7 @@ declare module 'next/cache' { } from 'next/dist/server/web/spec-extension/revalidate' export { unstable_noStore } from 'next/dist/server/web/spec-extension/unstable-no-store' export { io } from 'next/dist/server/request/io' + export { unstable_navigation } from 'next/dist/server/request/cache-stages' ${overloads} diff --git a/packages/next/src/server/request/cache-stages.ts b/packages/next/src/server/request/cache-stages.ts new file mode 100644 index 000000000000..907c6721a786 --- /dev/null +++ b/packages/next/src/server/request/cache-stages.ts @@ -0,0 +1,17 @@ +/** + * This function allows you to indicate that the subsequent code should be + * deferred to the actual navigation instead of rendering during a runtime + * prefetch. Runtime prefetches are rendered per-user, per-link, so deferring + * content below `await unstable_navigation()` saves that per-request + * rendering cost. + * + * It has no effect during static prerendering — static output is computed + * once and shared across many clients, so there's no per-request cost to + * save — and no effect on the initial load of a page. + * + * Unlike `connection()`, it does not mark the subtree as request-dependent — + * content below `await unstable_navigation()` remains fully cacheable. + */ +export function unstable_navigation(): Promise { + throw new Error('unstable_navigation() is not implemented yet.') +} From 1be0ab80c4d11bf68b69aa6eb1cd467ecf19e946 Mon Sep 17 00:00:00 2001 From: Janka Uryga Date: Thu, 20 Aug 2026 15:27:11 +0200 Subject: [PATCH 3/6] [PPF] unstable_navigation() (#96908) `navigation()` is a new API that allows omitting contents from runtime shells and runtime prefetches. Conceptually, the point is to express that something is expensive to compute, so we shouldn't do it for requests that may not get used (shells and prefetches). Notably, this means that it's fine to include it in a static prerender -- it'll be computed once and used for many requests, so it doesn't make sense to exclude it. ## Implementation The split in behavior across static and runtime prerenders is a departure from how most of our APIs behave -- usually, if something resolves statically, then it also resolves in "more complete" prerender. Departing from this leads to some implementation complexity. We include three new stages, used by two facets of the implementation: ```diff export enum RenderStage { Before = 1, // ShellStatic = 10, + PrefetchStatic = 11, <------- params, prefetch() [static prerenders] + NavigationStatic = 12 <------navigation() [static prerenders] Static = 13, <--------------- finish accumulators [static prerenders] // ShellRuntime = 20, Runtime = 21, <-------------- params, prefetch() [runtime prerenders] + NavigationRuntime = 22, <---- navigation() [runtime prerenders] // Dynamic = 30, Abandoned = 40, } ``` ### NavigationRuntime In runtime prerenders (or dev renders that simulate them), `navigation()` resolves in `NavigationRuntime` We only reach this stage in 1. the embedded runtime prerender produced for Cached Navigations and 2. during dev/prod full staged renders -- runtime shells end in `ShellRuntime`, and runtime prefetches end in `Runtime`. Notably, this means that content gated behind `navigation()` is included in the embedded runtime prefetch stream. ### PrefetchStatic & NavigationStatic This is a helper stage added before `Static`. Static prefetches still use the `Static` stage for their output. This new stage exists so that we can resolve static `params` (and `prefetch()` when we implement it) which the stage is named after) separately from `navigation()`, which resolves in `NavigationStatic`, after which the prerender ends in `Static`. This separation is important, because during static prerenders we track whether or not runtime APIs are used (see `trackRuntimeDataAccessed`) to determine if a runtime shell (or runtime prefetch) might give us more content than the static ones. However, a runtime shell/prefethc **would not resolve navigation()**, so `await navigation(); await cookies()` would not reveal more content, and thus shouldn't count as a usage that prevents static optimization. We achieve this by checking the stage inside `trackRuntimeDataAccessedImpl` and not tracking anything if we reached the `NavigationStatic` stage. ### Behavior of shells and validation As noted before, `navigation()` has an incompatible resolution order between static and runtime prerenders. In #97040, we did some groundwork to deal with this in validation. Static prerenders resolve `navigation()`, which means that static shells include content gated behind navigation(). This means that Static Shell Validation allows them. On the other hand, App shells **do not** resolve `navigation()`. This leads to an inconsistency for Instant Validation -- a `await navigation()` might be fine if a page is prefetched statically, but would become blocking as soon as the page starts using runtime data and switches to a runtime shell. To avoid this pitfall, we pessimistically assume that any `navigation()` _might_ be part of a runtime shell/prefetch, so any `navigation()` unguarded by Suspense will error in IV. In practice, this is handled analogously to static params: we do a dev render with `needsAppShell: true`, which makes `navigation()` resolve in `NavigationRuntime`, and then we use the `ShellRuntime` stage when validating, which means that `navigation()` will be a hole. Note that the discriminated error message logic currently only retries errors using the `Runtime` stage, which won't have `navigation()` resolved either, so it will be incorrectly reported as dynamic data. This will be improved in a follow up. --- packages/next/errors.json | 9 +- .../next/src/server/app-render/app-render.tsx | 159 ++++++++----- .../src/server/app-render/staged-rendering.ts | 13 +- .../src/server/dynamic-rendering-utils.ts | 15 +- .../node-environment-extensions/io-utils.tsx | 5 +- .../next/src/server/request/cache-stages.ts | 139 +++++++++++- .../dev-warmup.util.ts | 13 ++ .../app/apis/[param]/page.tsx | 4 +- .../app/apis/[param]/page.tsx | 4 +- .../page.tsx | 25 ++ .../app/shells/(default)/page.tsx | 6 + .../valid-navigation-with-suspense/page.tsx | 28 +++ .../valid-unguarded-navigation/page.tsx | 23 ++ .../app/suspense-in-root/page.tsx | 6 + .../sync-io/sync-io-after-navigation/page.tsx | 28 +++ .../head-and-reporting.util.ts | 91 +++++++- .../sync-io-and-blocking.util.ts | 64 +++++- ...ed-navigations-partial-prefetching.test.ts | 3 + .../app/runtime-prefetchable/page.tsx | 11 + .../prefetch-app-shell/app/(default)/page.tsx | 32 +++ .../runtime-navigation/[id]/page.tsx | 48 ++++ .../(default)/static-navigation/[id]/page.tsx | 52 +++++ .../prefetch-app-shell.test.ts | 214 ++++++++++++++++++ .../app/dynamic-param/[slug]/page.tsx | 11 + .../prefetch-static-shell/app/page.tsx | 10 + .../app/uses-navigation-static/page.tsx | 17 ++ .../uses-runtime-after-navigation/page.tsx | 52 +++++ .../prefetch-static-shell.test.ts | 109 ++++++++- 28 files changed, 1116 insertions(+), 75 deletions(-) create mode 100644 test/e2e/app-dir/instant-validation/app/shells/(default)/invalid-navigation-without-suspense/page.tsx create mode 100644 test/e2e/app-dir/instant-validation/app/shells/(default)/valid-navigation-with-suspense/page.tsx create mode 100644 test/e2e/app-dir/instant-validation/app/suspense-in-root/non-app-shell/valid-unguarded-navigation/page.tsx create mode 100644 test/e2e/app-dir/instant-validation/app/suspense-in-root/sync-io/sync-io-after-navigation/page.tsx create mode 100644 test/e2e/app-dir/segment-cache/prefetch-app-shell/app/(default)/runtime-navigation/[id]/page.tsx create mode 100644 test/e2e/app-dir/segment-cache/prefetch-app-shell/app/(default)/static-navigation/[id]/page.tsx create mode 100644 test/e2e/app-dir/segment-cache/prefetch-static-shell/app/uses-navigation-static/page.tsx create mode 100644 test/e2e/app-dir/segment-cache/prefetch-static-shell/app/uses-runtime-after-navigation/page.tsx diff --git a/packages/next/errors.json b/packages/next/errors.json index 872ce5547caf..c653ca8a00b2 100644 --- a/packages/next/errors.json +++ b/packages/next/errors.json @@ -1475,5 +1475,12 @@ "1474": "Invariant: cannot write an empty buffer to the image cache", "1475": "Invariant: no direct app page entry found for %s", "1476": "Not implemented: this behavior is not yet supported when `experimental.concurrentRouterQueue` is enabled.", - "1477": "unstable_navigation() is not implemented yet." + "1477": "unstable_navigation() is not implemented yet.", + "1478": "`unstable_navigation` must not be used within a Client Component. Next.js should be preventing `unstable_navigation` from being included in Client Components statically, but did not in this case.", + "1479": "Route %s used \\`unstable_navigation()\\` inside a function cached with \\`unstable_cache()\\`. The \\`unstable_navigation()\\` function is used to indicate the subsequent code must only run during an actual navigation, but \\`unstable_cache()\\` caches must be able to be produced before a navigation, so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache", + "1480": "Route %s used \\`unstable_navigation()\\` inside \\`generateStaticParams\\`. This is not supported because \\`generateStaticParams\\` runs at build time without a navigation. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context", + "1481": "Route %s used \\`unstable_navigation()\\`, which requires Cache Components to be enabled. Learn more: https://nextjs.org/docs/app/api-reference/config/next-config-js/cacheComponents", + "1482": "Route %s used \\`unstable_navigation()\\` inside \\`after()\\` while rendering. The \\`unstable_navigation()\\` function is used to indicate the subsequent code must only run during an actual navigation, but \\`after()\\` executes after the request, so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/app/api-reference/functions/after", + "1483": "Route %s used \\`unstable_navigation()\\` inside \"use cache: private\". This is not currently supported. Instead, move the \"use cache\" directive to a function that's called below \\`await unstable_navigation()\\`, so that the cached content is deferred to the navigation without caching the stage boundary itself. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache", + "1484": "Route %s used \\`unstable_navigation()\\` inside \"use cache\". This is not currently supported. Instead, move the \"use cache\" directive to a function that's called below \\`await unstable_navigation()\\`, so that the cached content is deferred to the navigation without caching the stage boundary itself. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache" } diff --git a/packages/next/src/server/app-render/app-render.tsx b/packages/next/src/server/app-render/app-render.tsx index 567dd6b4e0e3..09cd505181fc 100644 --- a/packages/next/src/server/app-render/app-render.tsx +++ b/packages/next/src/server/app-render/app-render.tsx @@ -1178,9 +1178,9 @@ async function generateStagedDynamicFlightRenderResultNode( return dynamicStream }, - () => { - stageController.advanceStage(RenderStage.Static) - }, + () => stageController.advanceStage(RenderStage.PrefetchStatic), + () => stageController.advanceStage(RenderStage.NavigationStatic), + () => stageController.advanceStage(RenderStage.Static), () => { // This is a separate task that doesn't advance a stage. It forces // draining the immediate queue so that the stale time iterable and vary @@ -1190,9 +1190,7 @@ async function generateStagedDynamicFlightRenderResultNode( finishAccumulatingVaryParams(requestStore.varyParamsAccumulator) } }, - () => { - stageController.advanceStage(RenderStage.Dynamic) - } + () => stageController.advanceStage(RenderStage.Dynamic) ) return new FlightRenderResult(flightStream, { @@ -1220,8 +1218,8 @@ async function spawnRuntimePrefetchWithFilledCaches( const staleTimeIterable = new StaleTimeIterable() // We want to be able to rewind the result to a session shell. - const mode: RuntimePrerenderMode = { - type: 'rewindable-session-shell', + const mode: RuntimePrerenderMode & { type: 'navigation' } = { + type: 'navigation', shellUsedSessionDataDeferred: createPromiseWithResolvers(), shellByteLengthDeferred: createPromiseWithResolvers(), } @@ -1231,10 +1229,7 @@ async function spawnRuntimePrefetchWithFilledCaches( ctx, generateDynamicRSCPayload.bind(null, ctx, { staleTimeIterable, - shellByteLengthPromise: - mode.type === 'rewindable-session-shell' - ? mode.shellByteLengthDeferred.promise - : undefined, + shellByteLengthPromise: mode.shellByteLengthDeferred.promise, shellUsedSessionDataPromise: mode.shellUsedSessionDataDeferred.promise, }), prerenderResumeDataCache, @@ -1321,12 +1316,10 @@ async function stagedRenderWithoutCachesInDevNode( } ) }, - () => { - stageController.advanceStage(RenderStage.Static) - }, - () => { - stageController.advanceStage(RenderStage.Dynamic) - } + () => stageController.advanceStage(RenderStage.PrefetchStatic), + () => stageController.advanceStage(RenderStage.NavigationStatic), + () => stageController.advanceStage(RenderStage.Static), + () => stageController.advanceStage(RenderStage.Dynamic) ) } @@ -1334,10 +1327,13 @@ function getEnvironmentNameForStageWithoutCaches(stage: RenderStage) { switch (stage) { case RenderStage.Before: case RenderStage.ShellStatic: + case RenderStage.PrefetchStatic: + case RenderStage.NavigationStatic: case RenderStage.Static: return 'Prerender' case RenderStage.ShellRuntime: case RenderStage.Runtime: + case RenderStage.NavigationRuntime: case RenderStage.Dynamic: case RenderStage.Abandoned: return 'Server' @@ -1824,6 +1820,11 @@ type RuntimePrerenderMode = shellUsedSessionDataDeferred: PromiseWithResolvers shellByteLengthDeferred: PromiseWithResolvers } + | { + type: 'navigation' + shellUsedSessionDataDeferred: PromiseWithResolvers + shellByteLengthDeferred: PromiseWithResolvers + } async function finalRuntimeServerPrerender( mode: RuntimePrerenderMode, @@ -1849,6 +1850,18 @@ async function finalRuntimeServerPrerender( isDebugDynamicAccesses ) + let finalStage: AdvanceableRenderStage + switch (mode.type) { + case 'session-shell-only': + finalStage = RenderStage.ShellRuntime + break + case 'rewindable-session-shell': + finalStage = RenderStage.Runtime + break + case 'navigation': + finalStage = RenderStage.NavigationRuntime + break + } const finalStageController = new StagedRenderingController({ abortSignal: finalServerController.signal, abandonController: null, @@ -1857,11 +1870,7 @@ async function finalRuntimeServerPrerender( // (or App Shell) is stricter and never allows sync IO in any stage // that we go through here (i.e. < Dynamic) syncIO: SyncIOMode.AllowedInDynamic, - // we only reach the runtime stage if we're doing a rewindable render - finalStage: - mode.type === 'session-shell-only' - ? RenderStage.ShellRuntime - : RenderStage.Runtime, + finalStage, }) const varyParamsAccumulator = createResponseVaryParamsAccumulator() @@ -1974,6 +1983,14 @@ async function finalRuntimeServerPrerender( streamState ) }, + () => { + if (checkUnexpectedAbort()) return + finalStageController.advanceStage(RenderStage.PrefetchStatic) + }, + () => { + if (checkUnexpectedAbort()) return + finalStageController.advanceStage(RenderStage.NavigationStatic) + }, () => { if (checkUnexpectedAbort()) return finalStageController.advanceStage(RenderStage.Static) @@ -1985,26 +2002,21 @@ async function finalRuntimeServerPrerender( () => { if (checkUnexpectedAbort()) return - if (mode.type === 'session-shell-only') { - // We're only rendering a shell, so we do not advance to stages where link data is resolved. - return - } + // We may not reach this stage depending on the mode. + if (finalStage < RenderStage.Runtime) return + finalStageController.advanceStage(RenderStage.Runtime) }, () => { if (checkUnexpectedAbort()) return - // Finish the accumulators. We need to wait for Flight to flush the result into the stream, - // which is scheduled in a (fast) immediate, so we do this in a separate task - // (fast immediates will be drained at the end of the task, so in the next task we know we're done flushing) - // Check if session data unblocked new content in the shell. const didSessionDataUnblockNewContent = stageByteLengths[RenderStage.ShellRuntime] > stageByteLengths[RenderStage.Static] mode.shellUsedSessionDataDeferred.resolve(didSessionDataUnblockNewContent) - if (mode.type === 'rewindable-session-shell') { + if ('shellByteLengthDeferred' in mode) { // If advancing to the runtime stage didn't unblock new content, // then the result does not depend on link data and can be used as a shell (indicated via `null`). // Otherwise, send a byte length to indicate where the shell content ends. @@ -2017,6 +2029,19 @@ async function finalRuntimeServerPrerender( : null ) } + }, + () => { + if (checkUnexpectedAbort()) return + + // We may not reach this stage depending on the mode. + if (finalStage < RenderStage.NavigationRuntime) return + + finalStageController.advanceStage(RenderStage.NavigationRuntime) + }, + () => { + // Finish the accumulators. We need to wait for Flight to flush the result into the stream, + // which is scheduled in a (fast) immediate, so we do this in a separate task + // (fast immediates will be drained at the end of the task, so in the next task we know we're done flushing) staleTimeIterable.close() finishAccumulatingVaryParams(varyParamsAccumulator) @@ -2025,8 +2050,10 @@ async function finalRuntimeServerPrerender( if (checkUnexpectedAbort()) return if (streamState.isPending) { - // If the prerender is still pending then it must depend on dynamic data - // (or, if this is a shell prefetch, link data) + // If the prerender is still pending then it must be blocked by + // - prefetch(), navigation(), or dynamic data (for shell prefetches) + // - navigation() or dynamic data (for runtime prefetches) + // - dynamic data (for runtime prefetch streams embedded in navigations) resultIsPartial = true } @@ -3925,9 +3952,9 @@ async function renderToStream( return dynamicStream }, - () => { - stageController.advanceStage(RenderStage.Static) - }, + () => stageController.advanceStage(RenderStage.PrefetchStatic), + () => stageController.advanceStage(RenderStage.NavigationStatic), + () => stageController.advanceStage(RenderStage.Static), () => { // This is a separate task that doesn't advance a stage. It forces // draining the immediate queue so that the stale time iterable and vary @@ -3937,9 +3964,7 @@ async function renderToStream( finishAccumulatingVaryParams(requestStore.varyParamsAccumulator) } }, - () => { - stageController.advanceStage(RenderStage.Dynamic) - } + () => stageController.advanceStage(RenderStage.Dynamic) ) reactServerResult = new ReactServerResult(flightStream) @@ -5358,10 +5383,13 @@ function getEnvironmentNameForStage(stage: RenderStage) { switch (stage) { case RenderStage.Before: case RenderStage.ShellStatic: + case RenderStage.PrefetchStatic: + case RenderStage.NavigationStatic: case RenderStage.Static: return 'Prerender' case RenderStage.ShellRuntime: case RenderStage.Runtime: + case RenderStage.NavigationRuntime: return 'Prefetch' case RenderStage.Dynamic: case RenderStage.Abandoned: @@ -5579,6 +5607,8 @@ async function streamStagedRenderInDev({ ), }) }, + () => checkCacheMissAndAdvance(RenderStage.PrefetchStatic), + () => checkCacheMissAndAdvance(RenderStage.NavigationStatic), () => checkCacheMissAndAdvance(RenderStage.Static), () => checkReveal(RenderStage.Static), @@ -5588,6 +5618,8 @@ async function streamStagedRenderInDev({ () => checkCacheMissAndAdvance(RenderStage.Runtime), () => checkReveal(RenderStage.Runtime), + () => checkCacheMissAndAdvance(RenderStage.NavigationRuntime), + () => { // Advance to the dynamic stage even while caches are still filling, so // dynamic content streams to the browser right away instead of being @@ -5737,9 +5769,12 @@ async function renderWithWarmCachesForValidationInDev( validationAbortSignal ) }, + () => stageController.advanceStage(RenderStage.PrefetchStatic), + () => stageController.advanceStage(RenderStage.NavigationStatic), () => stageController.advanceStage(RenderStage.Static), () => stageController.advanceStage(RenderStage.ShellRuntime), () => stageController.advanceStage(RenderStage.Runtime), + () => stageController.advanceStage(RenderStage.NavigationRuntime), () => stageController.advanceStage(RenderStage.Dynamic) ) @@ -5868,11 +5903,14 @@ async function prerenderWithWarmCachesForStaticValidationInDev( collectChunk ) }, + () => stageController.advanceStage(RenderStage.PrefetchStatic), + () => stageController.advanceStage(RenderStage.NavigationStatic), () => stageController.advanceStage(RenderStage.Static), () => stageController.advanceStage(RenderStage.ShellRuntime), () => stageController.advanceStage(RenderStage.Runtime), + // NOTE: We don't need `NavigationRuntime`, because we set `needsAppShell: false` + // so `navigation()` resolves in the static stages. () => { - // Do not advance to the dynamic stage, abort instead. abortInRenderContext(requestStore, finalReactController) } ) @@ -7805,18 +7843,13 @@ async function renderWithRestartOnCacheMissInValidation( accumulatedChunksPromise.catch(() => {}) return { accumulatedChunksPromise } }, - () => { - advanceStageIfNoCacheMiss(RenderStage.Static) - }, - () => { - advanceStageIfNoCacheMiss(RenderStage.ShellRuntime) - }, - () => { - advanceStageIfNoCacheMiss(RenderStage.Runtime) - }, - () => { - advanceStageIfNoCacheMiss(RenderStage.Dynamic) - } + () => advanceStageIfNoCacheMiss(RenderStage.PrefetchStatic), + () => advanceStageIfNoCacheMiss(RenderStage.NavigationStatic), + () => advanceStageIfNoCacheMiss(RenderStage.Static), + () => advanceStageIfNoCacheMiss(RenderStage.ShellRuntime), + () => advanceStageIfNoCacheMiss(RenderStage.Runtime), + () => advanceStageIfNoCacheMiss(RenderStage.NavigationRuntime), + () => advanceStageIfNoCacheMiss(RenderStage.Dynamic) ) if (initialStageController.currentStage !== RenderStage.Abandoned) { @@ -7913,9 +7946,12 @@ async function renderWithRestartOnCacheMissInValidation( accumulatedChunksPromise, } }, + () => finalStageController.advanceStage(RenderStage.PrefetchStatic), + () => finalStageController.advanceStage(RenderStage.NavigationStatic), () => finalStageController.advanceStage(RenderStage.Static), () => finalStageController.advanceStage(RenderStage.ShellRuntime), () => finalStageController.advanceStage(RenderStage.Runtime), + () => finalStageController.advanceStage(RenderStage.NavigationRuntime), () => finalStageController.advanceStage(RenderStage.Dynamic) ) @@ -9133,7 +9169,6 @@ async function prerenderToStream( } let debugEndTime: number | undefined = undefined - let didLinkDataUnblockNewContent = false await runInSequentialTasks( async () => { @@ -9186,6 +9221,14 @@ async function prerenderToStream( streamState ) }, + () => { + if (checkUnexpectedAbort()) return + finalStageController.advanceStage(RenderStage.PrefetchStatic) + }, + () => { + if (checkUnexpectedAbort()) return + finalStageController.advanceStage(RenderStage.NavigationStatic) + }, () => { if (checkUnexpectedAbort()) return finalStageController.advanceStage(RenderStage.Static) @@ -9197,12 +9240,10 @@ async function prerenderToStream( // which is scheduled in a (fast) immediate, so we do this in a separate task // (fast immediates will be drained at the end of the task, so in the next task we know we're done flushing) - // If new chunks were emitted in the static stage - // (after unblocking link data, i.e. static params) - // then the prerender uses link data. + // Check if new chunks were emitted after unblocking link data or navigation(). // NOTE: we must capture this *before* resolving staleTime/varyParams, // which always emit new static chunks. - didLinkDataUnblockNewContent = + const hasMoreContentThanShell = collectedChunksByStage[RenderStage.Static].length > collectedChunksByStage[RenderStage.ShellStatic].length @@ -9221,7 +9262,7 @@ async function prerenderToStream( finishAccumulatingVaryParams(varyParamsAccumulator) shellByteLengthDeferred.resolve( - didLinkDataUnblockNewContent + hasMoreContentThanShell ? collectedChunksByStage[RenderStage.ShellStatic].reduce( (acc, chunk) => acc + chunk.byteLength, 0 diff --git a/packages/next/src/server/app-render/staged-rendering.ts b/packages/next/src/server/app-render/staged-rendering.ts index 7ae3e30551d6..c8e82d8cb8a5 100644 --- a/packages/next/src/server/app-render/staged-rendering.ts +++ b/packages/next/src/server/app-render/staged-rendering.ts @@ -4,14 +4,16 @@ import { createPromiseWithResolvers } from '../../shared/lib/promise-with-resolv export enum RenderStage { Before = 1, // - ShellStatic = 11, + ShellStatic = 10, + PrefetchStatic = 11, + NavigationStatic = 12, Static = 13, // - ShellRuntime = 21, - Runtime = 23, + ShellRuntime = 20, + Runtime = 21, + NavigationRuntime = 22, // Dynamic = 30, - // Abandoned = 40, } @@ -22,10 +24,13 @@ export type AdvanceableRenderStage = Exclude< export const RENDER_STAGE_ADVANCE_ORDER: AdvanceableRenderStage[] = [ RenderStage.ShellStatic, + RenderStage.PrefetchStatic, + RenderStage.NavigationStatic, RenderStage.Static, // RenderStage.ShellRuntime, RenderStage.Runtime, + RenderStage.NavigationRuntime, // RenderStage.Dynamic, ] diff --git a/packages/next/src/server/dynamic-rendering-utils.ts b/packages/next/src/server/dynamic-rendering-utils.ts index 054f0cccaf75..33b30b78975d 100644 --- a/packages/next/src/server/dynamic-rendering-utils.ts +++ b/packages/next/src/server/dynamic-rendering-utils.ts @@ -248,6 +248,19 @@ function trackRuntimeDataAccessedImpl( ): void { switch (workUnitStore.type) { case 'prerender': { + const { stagedRendering } = workUnitStore + if ( + stagedRendering && + stagedRendering.currentStage >= RenderStage.NavigationStatic + ) { + // Ignore any accesses that happen after `navigation()` resolves. + // The purpose of this tracking is to judge whether a runtime prefetch + // would give us a more complete result than a static one. + // But `navigation()` wouldn't have resolved in a runtime prefetch, + // so e.g. `await navigation(); await cookies()` wouldn't have more content + // in those, and we shouldn't count it. + return + } // Response-level flag (the payload's `u`, forwarded to segment // responses as `needsRuntimeRequest`): resolved for every kind of // access — a pre-upgrade fallback response must keep reporting that @@ -412,7 +425,7 @@ export function trackPromiseUsed(promise: Promise, onUse: () => void) { export const RENDER_STAGES_BY_DATA_KIND = { sessionData: RenderStage.ShellRuntime as const, - staticLinkData: RenderStage.Static as const, + staticLinkData: RenderStage.PrefetchStatic as const, runtimeLinkData: RenderStage.Runtime as const, } diff --git a/packages/next/src/server/node-environment-extensions/io-utils.tsx b/packages/next/src/server/node-environment-extensions/io-utils.tsx index 8a71de4c8e4c..44261d0f122d 100644 --- a/packages/next/src/server/node-environment-extensions/io-utils.tsx +++ b/packages/next/src/server/node-environment-extensions/io-utils.tsx @@ -61,12 +61,15 @@ export function io(expression: string, type: SyncIOApiType) { // `shouldTrackSyncInterrupt`/`syncInterruptCurrentStageWithReason` switch (stageController.currentStage) { case RenderStage.ShellStatic: + case RenderStage.PrefetchStatic: + case RenderStage.NavigationStatic: case RenderStage.Static: { syncIOError = createSyncIOError(workStore.route, expression, type) break } case RenderStage.ShellRuntime: - case RenderStage.Runtime: { + case RenderStage.Runtime: + case RenderStage.NavigationRuntime: { // We're in the Runtime stage. // We only error for Sync IO in the Runtime stage if the route has partialPrefetching enabled. syncIOError = createSyncIORuntimeError( diff --git a/packages/next/src/server/request/cache-stages.ts b/packages/next/src/server/request/cache-stages.ts index 907c6721a786..6c0c9b72c2ad 100644 --- a/packages/next/src/server/request/cache-stages.ts +++ b/packages/next/src/server/request/cache-stages.ts @@ -1,3 +1,16 @@ +import { workAsyncStorage } from '../app-render/work-async-storage.external' +import { + throwForMissingRequestStore, + workUnitAsyncStorage, +} from '../app-render/work-unit-async-storage.external' +import { + applyOwnerStack, + trackIncompatibleShellContent, +} from '../dynamic-rendering-utils' +import { isRequestApiAllowedInCurrentPhase } from './utils' +import { InvariantError } from '../../shared/lib/invariant-error' +import { RenderStage } from '../app-render/staged-rendering' + /** * This function allows you to indicate that the subsequent code should be * deferred to the actual navigation instead of rendering during a runtime @@ -13,5 +26,129 @@ * content below `await unstable_navigation()` remains fully cacheable. */ export function unstable_navigation(): Promise { - throw new Error('unstable_navigation() is not implemented yet.') + const workStore = workAsyncStorage.getStore() + const workUnitStore = workUnitAsyncStorage.getStore() + + if (!workStore || !workUnitStore) { + const callingExpression = 'unstable_navigation' + throwForMissingRequestStore(callingExpression) + } + if (!process.env.__NEXT_CACHE_COMPONENTS) { + throw new Error( + `Route ${workStore.route} used \`unstable_navigation()\`, which requires Cache Components to be enabled. Learn more: https://nextjs.org/docs/app/api-reference/config/next-config-js/cacheComponents` + ) + } + + if (!isRequestApiAllowedInCurrentPhase(workUnitStore)) { + throw new Error( + `Route ${workStore.route} used \`unstable_navigation()\` inside \`after()\` while rendering. The \`unstable_navigation()\` function is used to indicate the subsequent code must only run during an actual navigation, but \`after()\` executes after the request, so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/app/api-reference/functions/after` + ) + } + + switch (workUnitStore.type) { + case 'prerender': { + // Static prerenders are computed once and shared across many + // clients, so there's no per-request prefetch cost to save by + // deferring the content — it's deliberately included in the static + // output (and thus in static prefetches). + // However, it's excluded from the shell, and has to be separated from + // unstable_prefetch(), so we have to delay it. + const { stagedRendering } = workUnitStore + if (!stagedRendering) { + // Prospective prerender + return Promise.resolve(undefined) + } else { + // Final prerender + return stagedRendering.delayUntilStage( + RenderStage.NavigationStatic, + 'unstable_navigation', + undefined + ) + } + } + case 'prerender-runtime': { + // In a shell or runtime prefetch, navigation() doesn't resolve, + // because they don't reach `NavigationRuntime`. + // It'll only resolve in a runtime prerender produced during a navigation. + // Note that this does not mark the subtree as dynamic -- content guarded by + // navigation() is still considered cacheable. + const { stagedRendering } = workUnitStore + if (!stagedRendering) { + // Prospective prerender + return Promise.resolve(undefined) + } else { + // Final prerender + return stagedRendering.delayUntilStage( + RenderStage.NavigationRuntime, + 'unstable_navigation', + undefined + ) + } + } + case 'request': { + const { stagedRendering } = workUnitStore + if (stagedRendering) { + // We can either recover a static shell or a runtime shell, but not both. + trackIncompatibleShellContent(workUnitStore) + const stage = workUnitStore.needsAppShell + ? RenderStage.NavigationRuntime // Match the timing of 'prerender-runtime'. + : RenderStage.NavigationStatic // Match the timing of 'prerender'. + + return stagedRendering.delayUntilStage( + stage, + 'unstable_navigation', + undefined + ) + } + return Promise.resolve(undefined) + } + + case 'cache': { + const error = new Error( + `Route ${workStore.route} used \`unstable_navigation()\` inside "use cache". This is not currently supported. Instead, move the "use cache" directive to a function that's called below \`await unstable_navigation()\`, so that the cached content is deferred to the navigation without caching the stage boundary itself. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache` + ) + Error.captureStackTrace(error, unstable_navigation) + applyOwnerStack(error) + workStore.invalidDynamicUsageError ??= error + throw error + } + case 'private-cache': { + const error = new Error( + `Route ${workStore.route} used \`unstable_navigation()\` inside "use cache: private". This is not currently supported. Instead, move the "use cache" directive to a function that's called below \`await unstable_navigation()\`, so that the cached content is deferred to the navigation without caching the stage boundary itself. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache` + ) + Error.captureStackTrace(error, unstable_navigation) + applyOwnerStack(error) + workStore.invalidDynamicUsageError ??= error + throw error + } + case 'unstable-cache': { + throw new Error( + `Route ${workStore.route} used \`unstable_navigation()\` inside a function cached with \`unstable_cache()\`. The \`unstable_navigation()\` function is used to indicate the subsequent code must only run during an actual navigation, but \`unstable_cache()\` caches must be able to be produced before a navigation, so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache` + ) + } + case 'generate-static-params': { + throw new Error( + `Route ${workStore.route} used \`unstable_navigation()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without a navigation. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context` + ) + } + case 'prerender-client': + case 'validation-client': { + const exportName = '`unstable_navigation`' + throw new InvariantError( + `${exportName} must not be used within a Client Component. Next.js should be preventing ${exportName} from being included in Client Components statically, but did not in this case.` + ) + } + case 'prerender-legacy': { + // NOTE: Should not be reachable, because we don't use this mode in cacheComponents, + // which we require at the top + throw new Error( + `Route ${workStore.route} used \`unstable_navigation()\`, which requires Cache Components to be enabled. Learn more: https://nextjs.org/docs/app/api-reference/config/next-config-js/cacheComponents` + ) + } + + default: { + workUnitStore satisfies never + return Promise.resolve(undefined) + } + } } diff --git a/test/development/app-dir/cache-components-dev-warmup/dev-warmup.util.ts b/test/development/app-dir/cache-components-dev-warmup/dev-warmup.util.ts index fb91224ae6d3..9b2ca16200f8 100644 --- a/test/development/app-dir/cache-components-dev-warmup/dev-warmup.util.ts +++ b/test/development/app-dir/cache-components-dev-warmup/dev-warmup.util.ts @@ -341,6 +341,19 @@ export function runDevWarmupTests({ assertLog(logs, `after params`, 'Prefetch') assertLog(logs, `after searchParams`, 'Prefetch') + assertLog( + logs, + `after navigation`, + // For initial load, navigation() follows static prerender timing. + // For client nav, it follows app-shell timing if `partialPrefetching` is on, + // and static timing otherwise. + isInitialLoad + ? 'Prerender' + : partialPrefetching || hasRuntimePrefetch + ? 'Prefetch' + : 'Prerender' + ) + assertLog(logs, 'after connection', 'Server') } diff --git a/test/development/app-dir/cache-components-dev-warmup/fixtures/with-prefetch-config/app/apis/[param]/page.tsx b/test/development/app-dir/cache-components-dev-warmup/fixtures/with-prefetch-config/app/apis/[param]/page.tsx index 344fdf5f8b8a..c5ae2e7de207 100644 --- a/test/development/app-dir/cache-components-dev-warmup/fixtures/with-prefetch-config/app/apis/[param]/page.tsx +++ b/test/development/app-dir/cache-components-dev-warmup/fixtures/with-prefetch-config/app/apis/[param]/page.tsx @@ -1,6 +1,7 @@ import { cookies, headers } from 'next/headers' import { CachedData } from '../../data-fetching' import { connection } from 'next/server' +import { unstable_navigation as navigation } from 'next/cache' import { Suspense } from 'react' export const instant = true @@ -18,11 +19,12 @@ export default function Page({ params, searchParams }) { connection()} /> - {/* Runtime */} cookies()} /> headers()} /> params} /> searchParams} /> + navigation()} /> + {/* Dynamic */} connection()} /> diff --git a/test/development/app-dir/cache-components-dev-warmup/fixtures/without-prefetch-config/app/apis/[param]/page.tsx b/test/development/app-dir/cache-components-dev-warmup/fixtures/without-prefetch-config/app/apis/[param]/page.tsx index 117533ce2e7a..151b6680bd96 100644 --- a/test/development/app-dir/cache-components-dev-warmup/fixtures/without-prefetch-config/app/apis/[param]/page.tsx +++ b/test/development/app-dir/cache-components-dev-warmup/fixtures/without-prefetch-config/app/apis/[param]/page.tsx @@ -1,6 +1,7 @@ import { cookies, headers } from 'next/headers' import { CachedData } from '../../data-fetching' import { connection } from 'next/server' +import { unstable_navigation as navigation } from 'next/cache' import { Suspense } from 'react' const CACHE_KEY = __dirname + '/__PAGE__' @@ -15,11 +16,12 @@ export default function Page({ params, searchParams }) { connection()} /> - {/* Runtime */} cookies()} /> headers()} /> params} /> searchParams} /> + navigation()} /> + {/* Dynamic */} connection()} /> diff --git a/test/e2e/app-dir/instant-validation/app/shells/(default)/invalid-navigation-without-suspense/page.tsx b/test/e2e/app-dir/instant-validation/app/shells/(default)/invalid-navigation-without-suspense/page.tsx new file mode 100644 index 000000000000..a89f3ceb86a8 --- /dev/null +++ b/test/e2e/app-dir/instant-validation/app/shells/(default)/invalid-navigation-without-suspense/page.tsx @@ -0,0 +1,25 @@ +import { Instant } from 'next' +import { unstable_navigation as navigation } from 'next/cache' + +export const instant: Instant = { + level: 'experimental-error', +} + +export const prefetch = 'partial' + +export default async function Page() { + return ( +
+

+ This page is missing a suspense around navigation(), so we can't render + a shell. +

+ +
+ ) +} + +async function NavigationContent() { + await navigation() + return
{`Navigation content`}
+} diff --git a/test/e2e/app-dir/instant-validation/app/shells/(default)/page.tsx b/test/e2e/app-dir/instant-validation/app/shells/(default)/page.tsx index 7ca6f34bc519..3f5117dbfd1a 100644 --- a/test/e2e/app-dir/instant-validation/app/shells/(default)/page.tsx +++ b/test/e2e/app-dir/instant-validation/app/shells/(default)/page.tsx @@ -38,6 +38,12 @@ export default async function Page() {
  • +
  • + +
  • +
  • + +
  • ) diff --git a/test/e2e/app-dir/instant-validation/app/shells/(default)/valid-navigation-with-suspense/page.tsx b/test/e2e/app-dir/instant-validation/app/shells/(default)/valid-navigation-with-suspense/page.tsx new file mode 100644 index 000000000000..07401515f3f0 --- /dev/null +++ b/test/e2e/app-dir/instant-validation/app/shells/(default)/valid-navigation-with-suspense/page.tsx @@ -0,0 +1,28 @@ +import { Instant } from 'next' +import { unstable_navigation as navigation } from 'next/cache' +import { Suspense } from 'react' + +export const instant: Instant = { + level: 'experimental-error', +} + +export const prefetch = 'partial' + +export default async function Page() { + return ( +
    +

    + This page has a suspense around navigation(), so we can render a shell + and should have no validation errors. +

    + + + +
    + ) +} + +async function NavigationContent() { + await navigation() + return
    {`Navigation content`}
    +} diff --git a/test/e2e/app-dir/instant-validation/app/suspense-in-root/non-app-shell/valid-unguarded-navigation/page.tsx b/test/e2e/app-dir/instant-validation/app/suspense-in-root/non-app-shell/valid-unguarded-navigation/page.tsx new file mode 100644 index 000000000000..c7c0eab2f08a --- /dev/null +++ b/test/e2e/app-dir/instant-validation/app/suspense-in-root/non-app-shell/valid-unguarded-navigation/page.tsx @@ -0,0 +1,23 @@ +import { Instant } from 'next' +import { unstable_navigation as navigation } from 'next/cache' + +export const instant: Instant = { + level: 'experimental-error', +} + +export default async function Page() { + return ( +
    +

    + This page is missing a suspense around navigation(), but that's allowed + if we're not in partialPrefetching and aren't rendering App Shells. +

    + +
    + ) +} + +async function NavigationContent() { + await navigation() + return
    {`Navigation content`}
    +} diff --git a/test/e2e/app-dir/instant-validation/app/suspense-in-root/page.tsx b/test/e2e/app-dir/instant-validation/app/suspense-in-root/page.tsx index 6c2b329d08ff..92d1154ff029 100644 --- a/test/e2e/app-dir/instant-validation/app/suspense-in-root/page.tsx +++ b/test/e2e/app-dir/instant-validation/app/suspense-in-root/page.tsx @@ -51,6 +51,9 @@ export default async function Page() {
  • +
  • + +
  • @@ -299,6 +302,9 @@ export default async function Page() {
  • +
  • + +
  • Blocking await attribution

    diff --git a/test/e2e/app-dir/instant-validation/app/suspense-in-root/sync-io/sync-io-after-navigation/page.tsx b/test/e2e/app-dir/instant-validation/app/suspense-in-root/sync-io/sync-io-after-navigation/page.tsx new file mode 100644 index 000000000000..80acd212b720 --- /dev/null +++ b/test/e2e/app-dir/instant-validation/app/suspense-in-root/sync-io/sync-io-after-navigation/page.tsx @@ -0,0 +1,28 @@ +import { unstable_navigation as navigation } from 'next/cache' +import { Suspense } from 'react' + +export const instant = { level: 'experimental-error' } + +export default async function Page() { + return ( +
    +

    + This page uses sync IO after awaiting navigation(): + {/* + In partialPrefetching, navigation() is not allowed in shells, + so we need a Suspense. + Before partialPrefetching everything is static, so we could skip it, + but that's not relevant to this test. + */} + + + +

    +
    + ) +} + +async function SyncIOAfterNavigation() { + await navigation() + return Date.now() +} diff --git a/test/e2e/app-dir/instant-validation/head-and-reporting.util.ts b/test/e2e/app-dir/instant-validation/head-and-reporting.util.ts index af27c774208d..43680a51f962 100644 --- a/test/e2e/app-dir/instant-validation/head-and-reporting.util.ts +++ b/test/e2e/app-dir/instant-validation/head-and-reporting.util.ts @@ -785,8 +785,6 @@ export function registerHeadAndReportingTests( }) it('invalid - unguarded static params in metadata', async () => { - // TODO(app-shells): static params currently aren't excluded from the shell. - // This should be failing validation. if (isNextDev) { const browser = await navigateTo( '/shells/invalid-static-with-gsp-metadata/123' @@ -896,6 +894,82 @@ export function registerHeadAndReportingTests( } }) + it('invalid - unguarded navigation() in a shell', async () => { + // TODO(cache-stages): navigation() should not be reported as uncached data. + if (isNextDev) { + const browser = await navigateTo( + '/shells/invalid-navigation-without-suspense' + ) + await expect(browser).toDisplayCollapsedRedbox(` + { + "cause": [ + { + "label": "Caused by: Instant Validation", + "source": "app/shells/(default)/invalid-navigation-without-suspense/page.tsx (4:33) @ instant + > 4 | export const instant: Instant = { + | ^", + "stack": [ + "instant app/shells/(default)/invalid-navigation-without-suspense/page.tsx (4:33)", + "Set.forEach ", + ], + }, + ], + "code": "E1437", + "description": "Next.js encountered uncached data during a navigation.", + "environmentLabel": "Server", + "label": "Instant", + "source": "app/shells/(default)/invalid-navigation-without-suspense/page.tsx (23:19) @ NavigationContent + > 23 | await navigation() + | ^", + "stack": [ + "NavigationContent app/shells/(default)/invalid-navigation-without-suspense/page.tsx (23:19)", + "Page app/shells/(default)/invalid-navigation-without-suspense/page.tsx (17:7)", + ], + } + `) + } else { + const result = await prerender( + '/shells/(default)/invalid-navigation-without-suspense' + ) + expect(extractBuildValidationError(result.cliOutput)) + .toMatchInlineSnapshot(` + "Error: Route "/shells/invalid-navigation-without-suspense": Next.js encountered uncached data during prerendering or a navigation. + + \`fetch(...)\` or \`connection()\` accessed outside of \`\` prevents the route from being prerendered or the navigation from being instant, leading to a slower user experience. + + Ways to fix this: + - [stream] Provide a placeholder with \`\` around the data access + - [cache] Cache the data access with \`"use cache"\` (does not apply to \`connection()\`) + - [block] Set \`export const instant = false\` to allow a blocking route + + Learn more: https://nextjs.org/docs/messages/blocking-prerender-dynamic + at main () + at body () + at html () + Build-time instant validation failed for route "/shells/invalid-navigation-without-suspense". + To get a more detailed stack trace and pinpoint the issue, try one of the following: + - Start the app in development mode by running \`next dev\`, then open "/shells/invalid-navigation-without-suspense" in your browser to investigate the error. + - Rerun the production build with \`next build --debug-prerender\` to generate better stack traces. + Stopping prerender due to instant validation errors." + `) + expect(result.exitCode).toBe(1) + } + }) + + it('valid - navigation() with suspense in a shell', async () => { + if (isNextDev) { + const browser = await navigateTo( + '/shells/valid-navigation-with-suspense' + ) + await expectNoDevValidationErrors(browser, await browser.url()) + } else { + const result = await prerender( + '/shells/(default)/valid-navigation-with-suspense' + ) + expectNoBuildValidationErrors(result) + } + }) + it('valid - unguarded root param', async () => { if (isNextDev) { const browser = await navigateTo( @@ -939,6 +1013,19 @@ export function registerHeadAndReportingTests( expectNoBuildValidationErrors(result) } }) + it('valid - unguarded navigation', async () => { + if (isNextDev) { + const browser = await navigateTo( + '/suspense-in-root/non-app-shell/valid-unguarded-navigation' + ) + await expectNoDevValidationErrors(browser, await browser.url()) + } else { + const result = await prerender( + '/suspense-in-root/non-app-shell/valid-unguarded-navigation' + ) + expectNoBuildValidationErrors(result) + } + }) }) } diff --git a/test/e2e/app-dir/instant-validation/sync-io-and-blocking.util.ts b/test/e2e/app-dir/instant-validation/sync-io-and-blocking.util.ts index ba1c798c9f84..bf14af5a0514 100644 --- a/test/e2e/app-dir/instant-validation/sync-io-and-blocking.util.ts +++ b/test/e2e/app-dir/instant-validation/sync-io-and-blocking.util.ts @@ -2,7 +2,7 @@ import { expectNoBuildValidationErrors, extractBuildValidationError, } from 'e2e-utils/instant-validation' -import { getDeterministicOutput } from '../cache-components-errors/utils' +import { getPrerenderOutput } from '../cache-components-errors/utils' import { type InstantValidationCaseContext } from './harness.util' const partialPrefetching = !!process.env.__NEXT_PARTIAL_PREFETCHING @@ -75,6 +75,65 @@ export function registerSyncIoAndBlockingTests( } }) + it('sync IO after navigation()', async () => { + if (isNextDev) { + const browser = await navigateTo( + '/suspense-in-root/sync-io/sync-io-after-navigation' + ) + await expect(browser).toDisplayCollapsedRedbox(` + { + "code": "E1432", + "description": "Next.js encountered the unstable value Date.now() while prerendering.", + "environmentLabel": "Server", + "label": "Blocking Route", + "source": "app/suspense-in-root/sync-io/sync-io-after-navigation/page.tsx (27:15) @ SyncIOAfterNavigation + > 27 | return Date.now() + | ^", + "stack": [ + "SyncIOAfterNavigation app/suspense-in-root/sync-io/sync-io-after-navigation/page.tsx (27:15)", + "Page app/suspense-in-root/sync-io/sync-io-after-navigation/page.tsx (18:11)", + ], + } + `) + } else { + const result = await prerender( + '/suspense-in-root/sync-io/sync-io-after-navigation' + ) + // `await navigation()` resolves during a static prerender, so + // we hit the sync IO there and error before reaching instant validation. + expect( + getPrerenderOutput(result.cliOutput, { + isMinified: true, + }) + ).toMatchInlineSnapshot(` + "Error: Route "/suspense-in-root/sync-io/sync-io-after-navigation": Next.js encountered the unstable value \`Date.now()\` while prerendering. + + This value can change between renders, so it must be either prerendered or computed later. + + Ways to fix this: + - [dynamic] Render at request time by adding a dynamic data access (e.g. \`await connection()\`) before this call + - [cache] Prerender and cache the value with \`"use cache"\` + - [client] Render the value on the client with \`"use client"\` + - [measure] If the value is for telemetry, use a timing API such as \`performance.now()\` + + Learn more: https://nextjs.org/docs/messages/blocking-prerender-current-time + at a (app/suspense-in-root/sync-io/sync-io-after-navigation/page.tsx:27:15) + 25 | async function SyncIOAfterNavigation() { + 26 | await navigation() + > 27 | return Date.now() + | ^ + 28 | } + 29 | + To get a more detailed stack trace and pinpoint the issue, try one of the following: + - Start the app in development mode by running \`next dev\`, then open "/suspense-in-root/sync-io/sync-io-after-navigation" in your browser to investigate the error. + - Rerun the production build with \`next build --debug-prerender\` to generate better stack traces. + Error occurred prerendering page "/suspense-in-root/sync-io/sync-io-after-navigation". Read more: https://nextjs.org/docs/messages/prerender-error + Export encountered an error on /suspense-in-root/sync-io/sync-io-after-navigation/page: /suspense-in-root/sync-io/sync-io-after-navigation, exiting the build." + `) + expect(result.exitCode).toBe(1) + } + }) + it('sync IO after cache with session data input', async () => { if (isNextDev) { const browser = await navigateTo( @@ -113,9 +172,8 @@ export function registerSyncIoAndBlockingTests( // defer until its args serialize, so the cache function (and the // Date.now() that follows) lands in the runtime stage. expect( - getDeterministicOutput(result.cliOutput, { + getPrerenderOutput(result.cliOutput, { isMinified: true, - startingLineMatch: 'Collecting page data', }) ).toMatchInlineSnapshot(` "Error: Route "/suspense-in-root/sync-io/sync-io-after-cache-with-cookie-input": Next.js encountered the unstable value \`Date.now()\` while prerendering. diff --git a/test/e2e/app-dir/segment-cache/cached-navigations/cached-navigations-partial-prefetching.test.ts b/test/e2e/app-dir/segment-cache/cached-navigations/cached-navigations-partial-prefetching.test.ts index 6e854e12bd58..72df150846c3 100644 --- a/test/e2e/app-dir/segment-cache/cached-navigations/cached-navigations-partial-prefetching.test.ts +++ b/test/e2e/app-dir/segment-cache/cached-navigations/cached-navigations-partial-prefetching.test.ts @@ -72,6 +72,9 @@ describe('cached navigations - global partialPrefetching', () => { expect(await browser.elementById('headers-boundary').text()).toContain( 'Header:' ) + expect(await browser.elementById('navigation-boundary').text()).toContain( + 'Navigation content' + ) // Only connection() shows a Suspense fallback — it's truly dynamic. expect(await browser.elementById('connection-boundary').text()).toBe( diff --git a/test/e2e/app-dir/segment-cache/cached-navigations/partial-prefetching/app/runtime-prefetchable/page.tsx b/test/e2e/app-dir/segment-cache/cached-navigations/partial-prefetching/app/runtime-prefetchable/page.tsx index 5ce76c6ad2fd..c855984a78dc 100644 --- a/test/e2e/app-dir/segment-cache/cached-navigations/partial-prefetching/app/runtime-prefetchable/page.tsx +++ b/test/e2e/app-dir/segment-cache/cached-navigations/partial-prefetching/app/runtime-prefetchable/page.tsx @@ -1,5 +1,6 @@ import { cookies, headers } from 'next/headers' import { connection } from 'next/server' +import { unstable_navigation as navigation } from 'next/cache' import { Suspense } from 'react' // Note: intentionally no `export const prefetch` and no `instant` config. This @@ -34,6 +35,11 @@ export default async function Page({ + ) } @@ -68,3 +74,8 @@ async function ConnectionContent() { await connection() return

    Dynamic content

    } + +async function NavigationContent() { + await navigation() + return

    Navigation content

    +} diff --git a/test/e2e/app-dir/segment-cache/prefetch-app-shell/app/(default)/page.tsx b/test/e2e/app-dir/segment-cache/prefetch-app-shell/app/(default)/page.tsx index 53ebb13dab14..bc74650e418e 100644 --- a/test/e2e/app-dir/segment-cache/prefetch-app-shell/app/(default)/page.tsx +++ b/test/e2e/app-dir/segment-cache/prefetch-app-shell/app/(default)/page.tsx @@ -116,6 +116,38 @@ export default function Page() { + +

    Navigation posts

    +
      +
    • + + Static navigation post 1 + +
    • +
    • + + Static navigation post 2 (unprefetched) + +
    • +
    • + + Runtime navigation post 1 + +
    • +
    • + + Runtime navigation post 2 (unprefetched) + +
    • +
    • + + Runtime navigation post "speculative-1" (prefetch=true) + +
    • +
    ) } diff --git a/test/e2e/app-dir/segment-cache/prefetch-app-shell/app/(default)/runtime-navigation/[id]/page.tsx b/test/e2e/app-dir/segment-cache/prefetch-app-shell/app/(default)/runtime-navigation/[id]/page.tsx new file mode 100644 index 000000000000..0525849b5cdf --- /dev/null +++ b/test/e2e/app-dir/segment-cache/prefetch-app-shell/app/(default)/runtime-navigation/[id]/page.tsx @@ -0,0 +1,48 @@ +import { Suspense } from 'react' +import { unstable_navigation as navigation } from 'next/cache' +import { cookies } from 'next/headers' +import { connection } from 'next/server' + +type Params = { id: string } + +export const prefetch = 'partial' + +export default async function Page({ params }: { params: Promise }) { + return ( +
    + Loading navigation...

    }> + +
    + {/* The fallback is the App Shell — the part of the page that + doesn't depend on params. */} + App shell for navigation

    }> + +
    +
    + ) +} + +async function Navigation() { + await cookies() // Makes sure this page uses a runtime prefetch + await navigation() // Exclude the contents below from runtime prefetching and runtime app shells + return +} + +async function ParamsDependent({ params }: { params: Promise }) { + const { id } = await params + return ( + <> +

    {`Post ${id}`}

    + Loading dynamic content...

    } + > + +
    + + ) +} + +async function Dynamic({ id }: { id: string }) { + await connection() + return

    {`Post body for ${id}`}

    +} diff --git a/test/e2e/app-dir/segment-cache/prefetch-app-shell/app/(default)/static-navigation/[id]/page.tsx b/test/e2e/app-dir/segment-cache/prefetch-app-shell/app/(default)/static-navigation/[id]/page.tsx new file mode 100644 index 000000000000..6ea6d1c7076d --- /dev/null +++ b/test/e2e/app-dir/segment-cache/prefetch-app-shell/app/(default)/static-navigation/[id]/page.tsx @@ -0,0 +1,52 @@ +import { Suspense } from 'react' +import { unstable_navigation as navigation } from 'next/cache' +import { connection } from 'next/server' + +export async function generateStaticParams() { + return [{ id: '1' }, { id: '2' }] +} + +type Params = { id: string } + +export const prefetch = 'partial' + +export default async function Page({ params }: { params: Promise }) { + return ( +
    + App shell for navigation

    }> + +
    + Loading navigation...

    }> + +
    +
    + ) +} + +async function Navigation() { + await navigation() // Exclude the contents below from the shell + return +} + +async function ParamsDependent({ params }: { params: Promise }) { + // Make sure the static prefetch varies on params so that the client router + // has to extract a static shell from it when navigating to another param value. + // If the static prefetch doesn't vary on params, it'll be used instead of + // the app shell + const { id } = await params + return ( + <> +

    {`Post ${id}`}

    + Loading dynamic content...

    } + > + +
    + + ) +} + +async function Dynamic({ id }: { id: string }) { + await connection() + return

    {`Post body for ${id}`}

    +} diff --git a/test/e2e/app-dir/segment-cache/prefetch-app-shell/prefetch-app-shell.test.ts b/test/e2e/app-dir/segment-cache/prefetch-app-shell/prefetch-app-shell.test.ts index 45cd22698922..ac032c51d3ca 100644 --- a/test/e2e/app-dir/segment-cache/prefetch-app-shell/prefetch-app-shell.test.ts +++ b/test/e2e/app-dir/segment-cache/prefetch-app-shell/prefetch-app-shell.test.ts @@ -377,6 +377,220 @@ describe('App Shell prefetching', () => { ) }) + describe('navigation()', () => { + it('excludes navigation() from a static App Shell', async () => { + let page: Playwright.Page + const browser = await next.browser('/', { + beforePageLoad(p: Playwright.Page) { + page = p + }, + }) + const act = createRouterAct(page, { includeAppShellRequests: true }) + + // Reveal the LinkAccordion for /static-navigation/1. This caches the App Shell + // for the route. The page renders a component that uses navigation(), + // which should be excluded from the shell. + await act(async () => { + await browser + .elementByCss('input[data-link-accordion="/static-navigation/1"]') + .click() + }, [{ includes: 'App shell for navigation', kind: 'static' }]) + + await act(async () => { + // Click the link to /static-navigation/2. This link is rendered with + // prefetch={false}, so it was never prefetched. The cached App Shell + // should render immediately, before any navigation response arrives. + await browser.elementByCss('a[href="/static-navigation/2"]').click() + + // While the navigation response is blocked (we're still in the `act` + // block), the cached App Shell should already be visible. + expect(await browser.elementById('shell').text()).toEqual( + 'App shell for navigation' + ) + // The navigation-gated content is NOT part of the App Shell, only its fallback. + expect(await browser.locator('#navigation-content').count()).toBe(0) + expect(await browser.elementByCss('#navigation-loading').text()).toBe( + 'Loading navigation...' + ) + }) + + // After the outer act unblocks the navigation, the navigation-gated + // content streams in with the navigation response, along with the + // dynamic content. + expect(await browser.elementById('navigation-content').text()).toEqual( + 'Navigation content' + ) + expect(await browser.elementById('dynamic-content').text()).toEqual( + 'Post body for 2' + ) + }) + + it('excludes navigation() from a runtime App Shell', async () => { + let page: Playwright.Page + const browser = await next.browser('/', { + beforePageLoad(p: Playwright.Page) { + page = p + }, + }) + const act = createRouterAct(page, { includeAppShellRequests: true }) + + // Reveal the LinkAccordion for /runtime-navigation/1. This caches the App Shell + // for the route. The page renders a component that uses navigation(), + // which should be excluded from the runtime shell. + await act(async () => { + await browser + .elementByCss('input[data-link-accordion="/runtime-navigation/1"]') + .click() + }, [ + { includes: 'App shell for navigation', kind: 'runtime' }, + { includes: 'param-value', block: 'reject' }, // Only a shell, no URL data. + ]) + + await act(async () => { + // Click the link to /runtime-navigation/2. This link is rendered with + // prefetch={false}, so it was never prefetched. The cached App Shell + // should render immediately, before any navigation response arrives. + await browser.elementByCss('a[href="/runtime-navigation/2"]').click() + + // While the navigation response is blocked (we're still in the `act` + // block), the cached App Shell should already be visible. + expect(await browser.elementById('shell').text()).toEqual( + 'App shell for navigation' + ) + // The navigation-gated content is NOT part of the App Shell, only its fallback. + expect(await browser.locator('#navigation-content').count()).toBe(0) + expect(await browser.elementByCss('#navigation-loading').text()).toBe( + 'Loading navigation...' + ) + }) + + // After the outer act unblocks the navigation, the navigation-gated + // content streams in with the navigation response, along with the + // dynamic content. + expect(await browser.elementById('navigation-content').text()).toEqual( + 'Navigation content' + ) + expect(await browser.elementById('dynamic-content').text()).toEqual( + 'Post body for 2' + ) + }) + + it('includes navigation() in a static prefetch', async () => { + let page: Playwright.Page + const browser = await next.browser('/', { + beforePageLoad(p: Playwright.Page) { + page = p + }, + }) + const act = createRouterAct(page, { includeAppShellRequests: true }) + + // Reveal the LinkAccordion for /static-navigation/1, + // Triggering a static prefetch request. + await act(async () => { + await browser + .elementByCss('input[data-link-accordion="/static-navigation/1"]') + .click() + }, [{ includes: 'App shell for navigation', kind: 'static' }]) + + await act(async () => { + // Navigate to the prefetched route. + await browser.elementByCss('a[href="/static-navigation/1"]').click() + + // While the navigation response is blocked (we're still in the `act` + // block), the prefetched content should already be visible. + + // Param-dependent content is visible because the params are static. + expect(await browser.elementById('param-value').text()).toEqual( + 'Post 1' + ) + // The navigation-gated content is included. + expect(await browser.locator('#navigation-loading').count()).toBe(0) + expect(await browser.elementByCss('#navigation-content').text()).toBe( + 'Navigation content' + ) + // Dynamic content is not included. + expect(await browser.locator('#dynamic-content').count()).toBe(0) + expect(await browser.elementByCss('#dynamic-loading').text()).toBe( + 'Loading dynamic content...' + ) + }) + + expect(await browser.elementById('navigation-content').text()).toEqual( + 'Navigation content' + ) + // After the outer act unblocks the navigation, the dynamic content streams in. + expect(await browser.elementById('dynamic-content').text()).toEqual( + 'Post body for 1' + ) + }) + + it('excludes navigation() from a speculative runtime prefetch', async () => { + let page: Playwright.Page + const browser = await next.browser('/', { + beforePageLoad(p: Playwright.Page) { + page = p + }, + }) + const act = createRouterAct(page, { includeAppShellRequests: true }) + + // Reveal the LinkAccordion for /runtime-navigation/speculative-1, + // Triggering a shell request and then a speculative prefetch request. + // The page renders a component that uses navigation(), + // which should be excluded from both. + await act(async () => { + await browser + .elementByCss( + 'input[data-link-accordion="/runtime-navigation/speculative-1"]' + ) + .click() + }, [ + // Two runtime responses carry the shell text, in order: the Shell + // phase's runtime App Shell request, then the Speculative phase's + // batched per-link runtime prefetch. The route reads request data, + // so its static-attempt hint is unset and the prefetch deopts to + // runtime requests — the runtime-completeness contract of Partial + // Prefetching routes. + { includes: 'App shell for navigation', kind: 'runtime' }, // Shell + { includes: 'Post speculative-1', kind: 'runtime' }, // Speculative + ]) + + await act(async () => { + // Navigate to the prefetched route. + await browser + .elementByCss('a[href="/runtime-navigation/speculative-1"]') + .click() + + // While the navigation response is blocked (we're still in the `act` + // block), the prefetched content should already be visible. + + // Param-dependent content is visible because we used a speculative prefetch. + expect(await browser.elementById('param-value').text()).toEqual( + 'Post speculative-1' + ) + // The navigation-gated content is not included. + expect(await browser.locator('#navigation-content').count()).toBe(0) + expect(await browser.elementByCss('#navigation-loading').text()).toBe( + 'Loading navigation...' + ) + // Dynamic content is not included. + expect(await browser.locator('#dynamic-content').count()).toBe(0) + expect(await browser.elementByCss('#dynamic-loading').text()).toBe( + 'Loading dynamic content...' + ) + }) + + // After the outer act unblocks the navigation, the navigation-gated + // content streams in with the navigation response, along with the + // dynamic content. + expect(await browser.elementById('navigation-content').text()).toEqual( + 'Navigation content' + ) + expect(await browser.elementById('dynamic-content').text()).toEqual( + 'Post body for speculative-1' + ) + }) + }) + describe('root params', () => { it('includes root params in a runtime App Shell', async () => { let page: Playwright.Page diff --git a/test/e2e/app-dir/segment-cache/prefetch-static-shell/app/dynamic-param/[slug]/page.tsx b/test/e2e/app-dir/segment-cache/prefetch-static-shell/app/dynamic-param/[slug]/page.tsx index 5223fd9bffb4..23a79cd1de6c 100644 --- a/test/e2e/app-dir/segment-cache/prefetch-static-shell/app/dynamic-param/[slug]/page.tsx +++ b/test/e2e/app-dir/segment-cache/prefetch-static-shell/app/dynamic-param/[slug]/page.tsx @@ -1,4 +1,5 @@ import { Suspense } from 'react' +import { unstable_navigation as navigation } from 'next/cache' type Params = { slug: string } @@ -24,6 +25,11 @@ export default function Page({ params }: { params: Promise }) { Loading param content...

    }>
    + Loading navigation content...

    } + > + +
    ) } @@ -32,3 +38,8 @@ async function SlugContent({ params }: { params: Promise }) { const { slug } = await params return

    {`Dynamic param content: ${slug}`}

    } + +async function NavigationContent() { + await navigation() + return +} diff --git a/test/e2e/app-dir/segment-cache/prefetch-static-shell/app/page.tsx b/test/e2e/app-dir/segment-cache/prefetch-static-shell/app/page.tsx index 9564d2a3c113..a2c4899c824d 100644 --- a/test/e2e/app-dir/segment-cache/prefetch-static-shell/app/page.tsx +++ b/test/e2e/app-dir/segment-cache/prefetch-static-shell/app/page.tsx @@ -25,6 +25,16 @@ export default function Page() {
  • Uses connection
  • +
  • + + Uses runtime APIs after navigation() + +
  • +
  • + + Uses navigation() on a static page + +
  • Dynamic param one diff --git a/test/e2e/app-dir/segment-cache/prefetch-static-shell/app/uses-navigation-static/page.tsx b/test/e2e/app-dir/segment-cache/prefetch-static-shell/app/uses-navigation-static/page.tsx new file mode 100644 index 000000000000..9a7e88abdd01 --- /dev/null +++ b/test/e2e/app-dir/segment-cache/prefetch-static-shell/app/uses-navigation-static/page.tsx @@ -0,0 +1,17 @@ +import { Suspense } from 'react' +import { unstable_navigation as navigation } from 'next/cache' + +export default function Page() { + return ( +
    + Loading navigation...

    }> + +
    +
    + ) +} + +async function NavigationContent() { + await navigation() + return

    Fully static page content (with navigation())

    +} diff --git a/test/e2e/app-dir/segment-cache/prefetch-static-shell/app/uses-runtime-after-navigation/page.tsx b/test/e2e/app-dir/segment-cache/prefetch-static-shell/app/uses-runtime-after-navigation/page.tsx new file mode 100644 index 000000000000..7a4044244d5d --- /dev/null +++ b/test/e2e/app-dir/segment-cache/prefetch-static-shell/app/uses-runtime-after-navigation/page.tsx @@ -0,0 +1,52 @@ +// A page that calls cookies and headers, but only after awaiting `navigation()` +// which means it can still be prefetched statically. +// +// Note the Shell phase is always permitted to issue a runtime shell request, +// so the absence of one in the test is attributable to the static shell +// attempt succeeding, not to configuration forbidding runtime requests. + +import { cacheLife } from 'next/dist/server/use-cache/cache-life' +import { cookies, headers } from 'next/headers' +import { unstable_navigation as navigation } from 'next/cache' +import { Suspense } from 'react' + +export default async function Page() { + return ( +
    +

    Runtime APIs called after navigation()

    + Loading navigation content...

    } + > + +
    +
    + ) +} + +async function Navigation() { + // The runtime data tracking should end here, so the prerender + // shouldn't track the awaits of cookies/headers inside DynamicContent. + await navigation() + + return ( + <> + + Loading dynamic content...

    } + > + +
    + + ) +} + +async function shortStaleCache() { + 'use cache' + cacheLife({ stale: 300 - 1 }) // smaller than MIN_SHELL_STALE + return Date.now() +} + +async function DynamicContent() { + await Promise.all([cookies(), headers(), shortStaleCache()]) + return

    Dynamic content

    +} diff --git a/test/e2e/app-dir/segment-cache/prefetch-static-shell/prefetch-static-shell.test.ts b/test/e2e/app-dir/segment-cache/prefetch-static-shell/prefetch-static-shell.test.ts index b137964f87a8..df2c46b1f998 100644 --- a/test/e2e/app-dir/segment-cache/prefetch-static-shell/prefetch-static-shell.test.ts +++ b/test/e2e/app-dir/segment-cache/prefetch-static-shell/prefetch-static-shell.test.ts @@ -102,6 +102,48 @@ describe('static App Shell prefetch attempt', () => { }, 'no-requests') }) + it('prefetches a fully static route that uses navigation() with static requests only, then navigates instantly from cache', async () => { + let page: Playwright.Page + const browser = await next.browser('/', { + beforePageLoad(p: Playwright.Page) { + page = p + }, + }) + const act = createRouterAct(page, { includeAppShellRequests: true }) + + // Reveal the LinkAccordion for /uses-navigation-static. The route accesses no + // runtime data, so its tree carries the static-prefetch hint and the + // Shell phase attempts static per-segment prefetches. The static + // responses are complete, so no runtime shell request fires. + await act(async () => { + await browser + .elementByCss('input[data-link-accordion="/uses-navigation-static"]') + .click() + }, [ + // The shell content arrives in a static per-segment response... + { + includes: 'Fully static page content (with navigation())', + kind: 'static', + }, + // ...and must NOT arrive in a runtime prefetch response — the + // static attempt was sufficient, so no runtime request fires. + { + includes: 'Fully static page content (with navigation())', + kind: 'runtime', + block: 'reject', + }, + ]) + + // Navigate to the prefetched route. Everything was cached by the static + // prefetch, so the navigation completes without any requests. + await act(async () => { + await browser.elementByCss('a[href="/uses-navigation-static"]').click() + expect(await browser.elementById('page-content').text()).toBe( + 'Fully static page content (with navigation())' + ) + }, 'no-requests') + }) + it('goes straight to a runtime shell prefetch when the shell reads cookies (hint unset)', async () => { let page: Playwright.Page const browser = await next.browser('/', { @@ -232,6 +274,67 @@ describe('static App Shell prefetch attempt', () => { ) }) + it('does not fall back to a runtime shell prefetch for a partial segment that calls runtime APIs after navigation()', async () => { + let page: Playwright.Page + const browser = await next.browser('/', { + beforePageLoad(p: Playwright.Page) { + page = p + }, + }) + const act = createRouterAct(page, { includeAppShellRequests: true }) + + await act(async () => { + await browser + .elementByCss( + 'input[data-link-accordion="/uses-runtime-after-navigation"]' + ) + .click() + }, [ + // In a static prerender, navigation() is allowed to resolve, + // so content behind navigation() will be part of a static prefetch. + { includes: 'Navigation content', kind: 'static' }, + // No runtime request should fire. + { + includes: 'Runtime APIs called after navigation()', + kind: 'runtime', + block: 'reject', + }, + // Dynamic data should not be included. + { + includes: 'Dynamic content', + block: 'reject', + }, + ]) + + // Navigate. The prefetched shell renders instantly; the dynamic hole is + // filled by the navigation-time dynamic request, as always. + await act( + async () => { + await browser + .elementByCss('a[href="/uses-runtime-after-navigation"]') + .click() + + // While the navigation response is blocked (we're still inside the + // `act` scope), the prefetched shell is already visible, with the + // loading fallback in place of the dynamic content. + expect(await browser.elementById('page-content').text()).toBe( + 'Runtime APIs called after navigation()' + ) + expect(await browser.elementById('navigation-content').text()).toBe( + 'Navigation content' + ) + expect(await browser.elementById('dynamic-loading').text()).toBe( + 'Loading dynamic content...' + ) + }, + // The dynamic content streams in with the navigation response. + { includes: 'Dynamic content' } + ) + expect(await browser.elementById('dynamic-content').text()).toBe( + 'Dynamic content' + ) + }) + it('reuses the static App Shell across different param values of a dynamic route', async () => { let page: Playwright.Page const browser = await next.browser('/', { @@ -291,13 +394,17 @@ describe('static App Shell prefetch attempt', () => { // While the navigation response is blocked (we're still inside the // `act` scope), the reused shell is already visible, with the - // loading fallback in place of the param content. + // loading fallback in place of the param content and content + // behind navigation() expect(await browser.elementById('page-content').text()).toBe( 'Dynamic-param page shell text' ) expect(await browser.elementById('slug-loading').text()).toBe( 'Loading param content...' ) + expect(await browser.elementById('navigation-loading').text()).toBe( + 'Loading navigation content...' + ) }, // The param content arrives with the navigation response. { includes: 'Dynamic param content: two' } From e3a78fd3c1865dc3323a7033fc23a2d27c329596 Mon Sep 17 00:00:00 2001 From: Janka Uryga Date: Thu, 20 Aug 2026 15:27:12 +0200 Subject: [PATCH 4/6] refactor: move useDynamic{Route,Search}Params to reduce snapshot churn (#97360) Relocates `useDynamicRouteParams` and `useDynamicSearchParams` to avoid having to update `client-hook-abort-reasons.test.ts` every time there's changes in `dynamic-rendering.ts`. Webpack leaked the source location of the `React.use` calls inside, so any code change that moved the source of the hook would require a snapshot update. For reasons i don't quite understand, moving the hooks to a different file improved the ignore-listing, i.e. we no longer point to the internals of the hooks. This is surprising but not unwelcome. --- .../navigation-dynamic-rendering.ts | 2 +- .../app-render/dynamic-rendering-client.ts | 126 ++++++++++++++++++ .../server/app-render/dynamic-rendering.ts | 121 +---------------- .../client-hook-abort-reasons.test.ts | 105 +++++++-------- 4 files changed, 179 insertions(+), 175 deletions(-) create mode 100644 packages/next/src/server/app-render/dynamic-rendering-client.ts diff --git a/packages/next/src/client/components/navigation-dynamic-rendering.ts b/packages/next/src/client/components/navigation-dynamic-rendering.ts index ff61b01b647f..8b15954329ad 100644 --- a/packages/next/src/client/components/navigation-dynamic-rendering.ts +++ b/packages/next/src/client/components/navigation-dynamic-rendering.ts @@ -8,4 +8,4 @@ export { useDynamicRouteParams, useDynamicSearchParams, -} from '../../server/app-render/dynamic-rendering' +} from '../../server/app-render/dynamic-rendering-client' diff --git a/packages/next/src/server/app-render/dynamic-rendering-client.ts b/packages/next/src/server/app-render/dynamic-rendering-client.ts new file mode 100644 index 000000000000..0f9d7a25cf5d --- /dev/null +++ b/packages/next/src/server/app-render/dynamic-rendering-client.ts @@ -0,0 +1,126 @@ +import React from 'react' +import { + throwForMissingRequestStore, + workUnitAsyncStorage, +} from './work-unit-async-storage.external' +import { workAsyncStorage } from '../app-render/work-async-storage.external' +import { + ClientHookDynamicError, + makeClientHookHangingPromise, +} from '../dynamic-rendering-utils' +import { InvariantError } from '../../shared/lib/invariant-error' +import { BailoutToCSRError } from '../../shared/lib/lazy-dynamic/bailout-to-csr' + +// TODO(veil): This module is separated from `dynamic-rendering.ts` as a workaround. +// When these hooks were part of `dynamic-rendering.ts, the source location of these +// `React.use()` calls would show up in Webpack snapshots in `client-hook-abort-reasons.test.ts`, +// which makes changes to the surrounding file needlessly churn the snapshots. +// Until the ignore-listing is fixed, we can make this less annoying by keeping these hooks in a separate file. + +export function useDynamicRouteParams(expression: string) { + const workStore = workAsyncStorage.getStore() + const workUnitStore = workUnitAsyncStorage.getStore() + if (workStore && workUnitStore) { + switch (workUnitStore.type) { + case 'prerender-client': { + const fallbackParams = workUnitStore.fallbackRouteParams + + if (fallbackParams && fallbackParams.size > 0) { + // We are in a prerender with cacheComponents semantics. We are going to + // hang here and never resolve. This will cause the currently + // rendering component to effectively be a dynamic hole. + React.use( + makeClientHookHangingPromise( + workUnitStore.renderSignal, + new ClientHookDynamicError(workStore.route, expression) + ) + ) + } + break + } + case 'prerender': + throw new InvariantError( + `\`${expression}\` was called from a Server Component. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.` + ) + case 'validation-client': { + // Don't check fallbackRouteParams here. We handle params that weren't + // provided in the samples using a proxy that throws when accessed. + break + } + case 'prerender-runtime': + throw new InvariantError( + `\`${expression}\` was called during a runtime prerender. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.` + ) + case 'cache': + case 'private-cache': + throw new InvariantError( + `\`${expression}\` was called inside a cache scope. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.` + ) + case 'generate-static-params': + throw new InvariantError( + `\`${expression}\` was called in \`generateStaticParams\`. Next.js should be preventing ${expression} from being included in server component files statically, but did not in this case.` + ) + case 'prerender-legacy': + case 'request': + case 'unstable-cache': + break + default: + workUnitStore satisfies never + } + } +} + +export function useDynamicSearchParams(expression: string) { + const workStore = workAsyncStorage.getStore() + const workUnitStore = workUnitAsyncStorage.getStore() + + if (!workStore) { + // We assume pages router context and just return + return + } + + if (!workUnitStore) { + throwForMissingRequestStore(expression) + } + + switch (workUnitStore.type) { + case 'validation-client': + // During instant validation we try to behave as close to client as possible, + // so this shouldn't hang during SSR. + return + case 'prerender-client': { + React.use( + makeClientHookHangingPromise( + workUnitStore.renderSignal, + new ClientHookDynamicError(workStore.route, expression) + ) + ) + break + } + case 'prerender-legacy': { + if (workStore.forceStatic) { + return + } + throw new BailoutToCSRError(expression) + } + case 'prerender': + case 'prerender-runtime': + throw new InvariantError( + `\`${expression}\` was called from a Server Component. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.` + ) + case 'cache': + case 'unstable-cache': + case 'private-cache': + throw new InvariantError( + `\`${expression}\` was called inside a cache scope. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.` + ) + case 'generate-static-params': + throw new InvariantError( + `\`${expression}\` was called in \`generateStaticParams\`. Next.js should be preventing ${expression} from being included in server component files statically, but did not in this case.` + ) + case 'request': + return + default: + workUnitStore satisfies never + } +} diff --git a/packages/next/src/server/app-render/dynamic-rendering.ts b/packages/next/src/server/app-render/dynamic-rendering.ts index 4c9d8c7fafe2..d108561aa849 100644 --- a/packages/next/src/server/app-render/dynamic-rendering.ts +++ b/packages/next/src/server/app-render/dynamic-rendering.ts @@ -20,30 +20,23 @@ * read that data outside the cache and pass it in as an argument to the cached function. */ -import type { WorkStore } from '../app-render/work-async-storage.external' +import type { WorkStore } from './work-async-storage.external' import type { WorkUnitStore, PrerenderStoreLegacy, PrerenderStoreModern, ValidationStoreClient, PrerenderStoreModernServer, -} from '../app-render/work-unit-async-storage.external' +} from './work-unit-async-storage.external' // Once postpone is in stable we should switch to importing the postpone export directly import React from 'react' import { DynamicServerError } from '../../client/components/hooks-server-context' import { StaticGenBailoutError } from '../../client/components/static-generation-bailout' +import { getStagedRenderingController } from './work-unit-async-storage.external' import { - getStagedRenderingController, - throwForMissingRequestStore, - workUnitAsyncStorage, -} from './work-unit-async-storage.external' -import { workAsyncStorage } from '../app-render/work-async-storage.external' -import { - ClientHookDynamicError, isClientHookDynamicError, - makeClientHookHangingPromise, trackRuntimeDataAccessed, } from '../dynamic-rendering-utils' import { @@ -549,114 +542,6 @@ export function annotateDynamicAccess( } } -export function useDynamicRouteParams(expression: string) { - const workStore = workAsyncStorage.getStore() - const workUnitStore = workUnitAsyncStorage.getStore() - if (workStore && workUnitStore) { - switch (workUnitStore.type) { - case 'prerender-client': { - const fallbackParams = workUnitStore.fallbackRouteParams - - if (fallbackParams && fallbackParams.size > 0) { - // We are in a prerender with cacheComponents semantics. We are going to - // hang here and never resolve. This will cause the currently - // rendering component to effectively be a dynamic hole. - React.use( - makeClientHookHangingPromise( - workUnitStore.renderSignal, - new ClientHookDynamicError(workStore.route, expression) - ) - ) - } - break - } - case 'prerender': - throw new InvariantError( - `\`${expression}\` was called from a Server Component. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.` - ) - case 'validation-client': { - // Don't check fallbackRouteParams here. We handle params that weren't - // provided in the samples using a proxy that throws when accessed. - break - } - case 'prerender-runtime': - throw new InvariantError( - `\`${expression}\` was called during a runtime prerender. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.` - ) - case 'cache': - case 'private-cache': - throw new InvariantError( - `\`${expression}\` was called inside a cache scope. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.` - ) - case 'generate-static-params': - throw new InvariantError( - `\`${expression}\` was called in \`generateStaticParams\`. Next.js should be preventing ${expression} from being included in server component files statically, but did not in this case.` - ) - case 'prerender-legacy': - case 'request': - case 'unstable-cache': - break - default: - workUnitStore satisfies never - } - } -} - -export function useDynamicSearchParams(expression: string) { - const workStore = workAsyncStorage.getStore() - const workUnitStore = workUnitAsyncStorage.getStore() - - if (!workStore) { - // We assume pages router context and just return - return - } - - if (!workUnitStore) { - throwForMissingRequestStore(expression) - } - - switch (workUnitStore.type) { - case 'validation-client': - // During instant validation we try to behave as close to client as possible, - // so this shouldn't hang during SSR. - return - case 'prerender-client': { - React.use( - makeClientHookHangingPromise( - workUnitStore.renderSignal, - new ClientHookDynamicError(workStore.route, expression) - ) - ) - break - } - case 'prerender-legacy': { - if (workStore.forceStatic) { - return - } - throw new BailoutToCSRError(expression) - } - case 'prerender': - case 'prerender-runtime': - throw new InvariantError( - `\`${expression}\` was called from a Server Component. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.` - ) - case 'cache': - case 'unstable-cache': - case 'private-cache': - throw new InvariantError( - `\`${expression}\` was called inside a cache scope. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.` - ) - case 'generate-static-params': - throw new InvariantError( - `\`${expression}\` was called in \`generateStaticParams\`. Next.js should be preventing ${expression} from being included in server component files statically, but did not in this case.` - ) - case 'request': - return - default: - workUnitStore satisfies never - } -} - const hasSuspenseRegex = /\n\s+at Suspense \(\)/ // Common implicit body tags that React will treat as body when placed directly in html diff --git a/test/e2e/app-dir/cache-components-errors/client-hook-abort-reasons.test.ts b/test/e2e/app-dir/cache-components-errors/client-hook-abort-reasons.test.ts index 5b0b0284bece..23cb3ef7f74e 100644 --- a/test/e2e/app-dir/cache-components-errors/client-hook-abort-reasons.test.ts +++ b/test/e2e/app-dir/cache-components-errors/client-hook-abort-reasons.test.ts @@ -314,17 +314,16 @@ describe('Cache Components Errors - Client Hook Abort Reasons', () => { - [block] Set \`export const instant = false\` to allow a blocking route Learn more: https://nextjs.org/docs/messages/blocking-prerender-client-hook - at Object.useDynamicSearchParams (webpack:///) at useSearchParams (webpack:///) at UseSearchParams (webpack:///app/client-hook-abort-reasons/client.tsx:27:18) at Page (webpack:///app/client-hook-abort-reasons/normal/use-search-params/[id]/page.tsx:8:7) - 622 | return - 623 | case 'prerender-client': { - > 624 | React.use( - | ^ - 625 | makeClientHookHangingPromise( - 626 | workUnitStore.renderSignal, - 627 | new ClientHookDynamicError(workStore.route, expression) { + 54 | // Client components API + 55 | export function useSearchParams(): ReadonlyURLSearchParams { + > 56 | useDynamicSearchParams?.('useSearchParams()') + | ^ + 57 | + 58 | const searchParams = useContext(SearchParamsContext) + 59 | { digest: 'CLIENT_HOOK_DYNAMIC' } To debug the issue, start the app in development mode by running \`next dev\`, then open "/client-hook-abort-reasons/normal/use-search-params/[id]" in your browser to investigate the error. @@ -604,17 +603,16 @@ describe('Cache Components Errors - Client Hook Abort Reasons', () => { - [block] Set \`export const instant = false\` to allow a blocking route Learn more: https://nextjs.org/docs/messages/blocking-prerender-client-hook - at Object.useDynamicRouteParams (webpack:///) at usePathname (webpack:///) at UsePathname (webpack:///app/client-hook-abort-reasons/client.tsx:22:14) at Page (webpack:///app/client-hook-abort-reasons/normal/use-pathname/[id]/page.tsx:7:7) - 562 | // hang here and never resolve. This will cause the currently - 563 | // rendering component to effectively be a dynamic hole. - > 564 | React.use( - | ^ - 565 | makeClientHookHangingPromise( - 566 | workUnitStore.renderSignal, - 567 | new ClientHookDynamicError(workStore.route, expression) { + 111 | // Client components API + 112 | export function usePathname(): string { + > 113 | useDynamicRouteParams?.('usePathname()') + | ^ + 114 | + 115 | // In the case where this is \`null\`, the compat types added in \`next-env.d.ts\` + 116 | // will add a new overload that changes the return type to include \`null\`. { digest: 'CLIENT_HOOK_DYNAMIC' } To debug the issue, start the app in development mode by running \`next dev\`, then open "/client-hook-abort-reasons/normal/use-pathname/[id]" in your browser to investigate the error. @@ -894,17 +892,16 @@ describe('Cache Components Errors - Client Hook Abort Reasons', () => { - [block] Set \`export const instant = false\` to allow a blocking route Learn more: https://nextjs.org/docs/messages/blocking-prerender-client-hook - at Object.useDynamicRouteParams (webpack:///) at useParams (webpack:///) at UseParams (webpack:///app/client-hook-abort-reasons/client.tsx:17:12) at Page (webpack:///app/client-hook-abort-reasons/normal/use-params/[id]/page.tsx:8:7) - 562 | // hang here and never resolve. This will cause the currently - 563 | // rendering component to effectively be a dynamic hole. - > 564 | React.use( - | ^ - 565 | makeClientHookHangingPromise( - 566 | workUnitStore.renderSignal, - 567 | new ClientHookDynamicError(workStore.route, expression) { + 214 | // Client components API + 215 | export function useParams(): T { + > 216 | useDynamicRouteParams?.('useParams()') + | ^ + 217 | + 218 | const params = useContext(PathParamsContext) as T + 219 | { digest: 'CLIENT_HOOK_DYNAMIC' } To debug the issue, start the app in development mode by running \`next dev\`, then open "/client-hook-abort-reasons/normal/use-params/[id]" in your browser to investigate the error. @@ -1184,17 +1181,16 @@ describe('Cache Components Errors - Client Hook Abort Reasons', () => { - [block] Set \`export const instant = false\` to allow a blocking route Learn more: https://nextjs.org/docs/messages/blocking-prerender-client-hook - at Object.useDynamicRouteParams (webpack:///) at useSelectedLayoutSegments (webpack:///) at UseSelectedLayoutSegments (webpack:///app/client-hook-abort-reasons/client.tsx:37:28) at Page (webpack:///app/client-hook-abort-reasons/normal/use-selected-layout-segments/[id]/page.tsx:7:7) - 562 | // hang here and never resolve. This will cause the currently - 563 | // rendering component to effectively be a dynamic hole. - > 564 | React.use( - | ^ - 565 | makeClientHookHangingPromise( - 566 | workUnitStore.renderSignal, - 567 | new ClientHookDynamicError(workStore.route, expression) { + 268 | parallelRouteKey: string = 'children' + 269 | ): string[] { + > 270 | useDynamicRouteParams?.('useSelectedLayoutSegments()') + | ^ + 271 | + 272 | const context = useContext(LayoutRouterContext) + 273 | // @ts-expect-error This only happens in \`pages\`. Type is overwritten in navigation.d.ts { digest: 'CLIENT_HOOK_DYNAMIC' } To debug the issue, start the app in development mode by running \`next dev\`, then open "/client-hook-abort-reasons/normal/use-selected-layout-segments/[id]" in your browser to investigate the error. @@ -1474,17 +1470,16 @@ describe('Cache Components Errors - Client Hook Abort Reasons', () => { - [block] Set \`export const instant = false\` to allow a blocking route Learn more: https://nextjs.org/docs/messages/blocking-prerender-client-hook - at Object.useDynamicRouteParams (webpack:///) at useSelectedLayoutSegment (webpack:///) at UseSelectedLayoutSegment (webpack:///app/client-hook-abort-reasons/client.tsx:32:27) at Page (webpack:///app/client-hook-abort-reasons/normal/use-selected-layout-segment/[id]/page.tsx:8:7) - 562 | // hang here and never resolve. This will cause the currently - 563 | // rendering component to effectively be a dynamic hole. - > 564 | React.use( - | ^ - 565 | makeClientHookHangingPromise( - 566 | workUnitStore.renderSignal, - 567 | new ClientHookDynamicError(workStore.route, expression) { + 323 | parallelRouteKey: string = 'children' + 324 | ): string | null { + > 325 | useDynamicRouteParams?.('useSelectedLayoutSegment()') + | ^ + 326 | const navigationPromises = useContext(NavigationPromisesContext) + 327 | const selectedLayoutSegments = useSelectedLayoutSegments(parallelRouteKey) + 328 | { digest: 'CLIENT_HOOK_DYNAMIC' } To debug the issue, start the app in development mode by running \`next dev\`, then open "/client-hook-abort-reasons/normal/use-selected-layout-segment/[id]" in your browser to investigate the error. @@ -2194,17 +2189,16 @@ describe('Cache Components Errors - Client Hook Abort Reasons', () => { - [block] Set \`export const instant = false\` to allow a blocking route Learn more: https://nextjs.org/docs/messages/blocking-prerender-client-hook - at Object.useDynamicRouteParams (webpack:///) at useParams (webpack:///) at UseParams (webpack:///app/client-hook-abort-reasons/client.tsx:17:12) at Page (webpack:///app/client-hook-abort-reasons/sync-io/use-params/[id]/page.tsx:7:7) - 562 | // hang here and never resolve. This will cause the currently - 563 | // rendering component to effectively be a dynamic hole. - > 564 | React.use( - | ^ - 565 | makeClientHookHangingPromise( - 566 | workUnitStore.renderSignal, - 567 | new ClientHookDynamicError(workStore.route, expression) { + 214 | // Client components API + 215 | export function useParams(): T { + > 216 | useDynamicRouteParams?.('useParams()') + | ^ + 217 | + 218 | const params = useContext(PathParamsContext) as T + 219 | { digest: 'CLIENT_HOOK_DYNAMIC' } To debug the issue, start the app in development mode by running \`next dev\`, then open "/client-hook-abort-reasons/sync-io/use-params/[id]" in your browser to investigate the error. @@ -2693,17 +2687,16 @@ describe('Cache Components Errors - Client Hook Abort Reasons', () => { - [block] Set \`export const instant = false\` to allow a blocking route Learn more: https://nextjs.org/docs/messages/blocking-prerender-client-hook - at Object.useDynamicRouteParams (webpack:///) at useSelectedLayoutSegment (webpack:///) at UseSelectedLayoutSegment (webpack:///app/client-hook-abort-reasons/client.tsx:32:27) at Page (webpack:///app/client-hook-abort-reasons/sync-io/use-selected-layout-segment/[id]/page.tsx:8:7) - 562 | // hang here and never resolve. This will cause the currently - 563 | // rendering component to effectively be a dynamic hole. - > 564 | React.use( - | ^ - 565 | makeClientHookHangingPromise( - 566 | workUnitStore.renderSignal, - 567 | new ClientHookDynamicError(workStore.route, expression) { + 323 | parallelRouteKey: string = 'children' + 324 | ): string | null { + > 325 | useDynamicRouteParams?.('useSelectedLayoutSegment()') + | ^ + 326 | const navigationPromises = useContext(NavigationPromisesContext) + 327 | const selectedLayoutSegments = useSelectedLayoutSegments(parallelRouteKey) + 328 | { digest: 'CLIENT_HOOK_DYNAMIC' } To debug the issue, start the app in development mode by running \`next dev\`, then open "/client-hook-abort-reasons/sync-io/use-selected-layout-segment/[id]" in your browser to investigate the error. From 605425e139855c2664732bb814d0447512c05d00 Mon Sep 17 00:00:00 2001 From: Niklas Mischkulnig <4586894+mischnic@users.noreply.github.com> Date: Thu, 20 Aug 2026 15:35:48 +0200 Subject: [PATCH 5/6] Turbopack: rename to use turbopack: no side effects (#94427) Consistent naming: - `"use turbopack no side effects"` - `"use turbopack: constants"` --- .../src/transforms/server_actions.rs | 4 ++-- .../client-graph/turbopack/1/output.js | 6 +++--- .../development/server-actions/1/output.js | 18 +++++++++--------- .../production/server-actions/1/output.js | 18 +++++++++--------- turbopack/crates/turbopack-core/src/module.rs | 2 +- .../js/src/shared/base64.ts | 2 +- .../src/bytes_source_transform.rs | 2 +- .../turbopack-ecmascript/src/directive.rs | 2 ++ .../src/json_source_transform.rs | 4 ++-- .../src/text_source_transform.rs | 2 +- .../node_modules/package-directive/dep.js | 2 +- .../directive/input/lib/bar.js | 2 +- .../directive/input/lib/foo.js | 2 +- .../directive/input/lib/index.js | 2 +- 14 files changed, 35 insertions(+), 33 deletions(-) diff --git a/crates/next-custom-transforms/src/transforms/server_actions.rs b/crates/next-custom-transforms/src/transforms/server_actions.rs index 44c0c6ddc67e..277532b658df 100644 --- a/crates/next-custom-transforms/src/transforms/server_actions.rs +++ b/crates/next-custom-transforms/src/transforms/server_actions.rs @@ -2743,7 +2743,7 @@ impl VisitMut for ServerActions { ServerActionsMode::Turbopack => { new.push(ModuleItem::Stmt(Stmt::Expr(ExprStmt { expr: Box::new(Expr::Lit(Lit::Str( - atom!("use turbopack no side effects").into(), + atom!("use turbopack: no side effects").into(), ))), span: DUMMY_SP, }))); @@ -2752,7 +2752,7 @@ impl VisitMut for ServerActions { let mut module_items = vec![ ModuleItem::Stmt(Stmt::Expr(ExprStmt { expr: Box::new(Expr::Lit(Lit::Str( - atom!("use turbopack no side effects").into(), + atom!("use turbopack: no side effects").into(), ))), span: DUMMY_SP, })), diff --git a/crates/next-custom-transforms/tests/fixture/server-actions/client-graph/turbopack/1/output.js b/crates/next-custom-transforms/tests/fixture/server-actions/client-graph/turbopack/1/output.js index 2400f34ccf12..65ad6caa4bc6 100644 --- a/crates/next-custom-transforms/tests/fixture/server-actions/client-graph/turbopack/1/output.js +++ b/crates/next-custom-transforms/tests/fixture/server-actions/client-graph/turbopack/1/output.js @@ -1,3 +1,3 @@ -"use turbopack no side effects"; -export { foo } from "data:text/javascript,%2F%2A%20__next_internal_action_entry_do_not_use__%20%5B%7B%2200ab21efdafbe611287bc25c0462b1e0510d13e48b%22%3A%7B%22name%22%3A%22foo%22%7D%7D%2C%22%2Fapp%2Fitem.js%22%2C%22%22%5D%20%2A%2F%22use%20turbopack%20no%20side%20effects%22%3Bimport%7BcreateServerReference%2CcallServer%2CfindSourceMapURL%7Dfrom%22private-next-rsc-action-client-wrapper%22%3Bconst%20%24%24RSC_SERVER_ACTION_0%3D%2F%2A%23__PURE__%2A%2FcreateServerReference%28%2200ab21efdafbe611287bc25c0462b1e0510d13e48b%22%2CcallServer%2Cvoid%200%2CfindSourceMapURL%2C%22foo%22%29%3Bexport%7B%24%24RSC_SERVER_ACTION_0%20as%20foo%7D%3B"; -export { bar } from "data:text/javascript,%2F%2A%20__next_internal_action_entry_do_not_use__%20%5B%7B%2200ac840dcaf5e8197cb02b7f3a43c119b7a770b272%22%3A%7B%22name%22%3A%22bar%22%7D%7D%2C%22%2Fapp%2Fitem.js%22%2C%22%22%5D%20%2A%2F%22use%20turbopack%20no%20side%20effects%22%3Bimport%7BcreateServerReference%2CcallServer%2CfindSourceMapURL%7Dfrom%22private-next-rsc-action-client-wrapper%22%3Bconst%20%24%24RSC_SERVER_ACTION_1%3D%2F%2A%23__PURE__%2A%2FcreateServerReference%28%2200ac840dcaf5e8197cb02b7f3a43c119b7a770b272%22%2CcallServer%2Cvoid%200%2CfindSourceMapURL%2C%22bar%22%29%3Bexport%7B%24%24RSC_SERVER_ACTION_1%20as%20bar%7D%3B"; +"use turbopack: no side effects"; +export { foo } from "data:text/javascript,%2F%2A%20__next_internal_action_entry_do_not_use__%20%5B%7B%2200ab21efdafbe611287bc25c0462b1e0510d13e48b%22%3A%7B%22name%22%3A%22foo%22%7D%7D%2C%22%2Fapp%2Fitem.js%22%2C%22%22%5D%20%2A%2F%22use%20turbopack%3A%20no%20side%20effects%22%3Bimport%7BcreateServerReference%2CcallServer%2CfindSourceMapURL%7Dfrom%22private-next-rsc-action-client-wrapper%22%3Bconst%20%24%24RSC_SERVER_ACTION_0%3D%2F%2A%23__PURE__%2A%2FcreateServerReference%28%2200ab21efdafbe611287bc25c0462b1e0510d13e48b%22%2CcallServer%2Cvoid%200%2CfindSourceMapURL%2C%22foo%22%29%3Bexport%7B%24%24RSC_SERVER_ACTION_0%20as%20foo%7D%3B"; +export { bar } from "data:text/javascript,%2F%2A%20__next_internal_action_entry_do_not_use__%20%5B%7B%2200ac840dcaf5e8197cb02b7f3a43c119b7a770b272%22%3A%7B%22name%22%3A%22bar%22%7D%7D%2C%22%2Fapp%2Fitem.js%22%2C%22%22%5D%20%2A%2F%22use%20turbopack%3A%20no%20side%20effects%22%3Bimport%7BcreateServerReference%2CcallServer%2CfindSourceMapURL%7Dfrom%22private-next-rsc-action-client-wrapper%22%3Bconst%20%24%24RSC_SERVER_ACTION_1%3D%2F%2A%23__PURE__%2A%2FcreateServerReference%28%2200ac840dcaf5e8197cb02b7f3a43c119b7a770b272%22%2CcallServer%2Cvoid%200%2CfindSourceMapURL%2C%22bar%22%29%3Bexport%7B%24%24RSC_SERVER_ACTION_1%20as%20bar%7D%3B"; diff --git a/crates/next-custom-transforms/tests/fixture/source-maps/turbopack/client-graph/development/server-actions/1/output.js b/crates/next-custom-transforms/tests/fixture/source-maps/turbopack/client-graph/development/server-actions/1/output.js index ff4deaf40091..587b77d9a018 100644 --- a/crates/next-custom-transforms/tests/fixture/source-maps/turbopack/client-graph/development/server-actions/1/output.js +++ b/crates/next-custom-transforms/tests/fixture/source-maps/turbopack/client-graph/development/server-actions/1/output.js @@ -1,9 +1,9 @@ -"use turbopack no side effects"; -export { getHeaders } from "data:text/javascript,%2F%2A%20__next_internal_action_entry_do_not_use__%20%5B%7B%22006c24672f968b0713dae406536f7dd6fe7d9a7fa0%22%3A%7B%22name%22%3A%22getHeaders%22%7D%7D%2C%22%2Fapp%2Fitem.js%22%2C%22%22%5D%20%2A%2F%22use%20turbopack%20no%20side%20effects%22%3Bimport%7BcreateServerReference%2CcallServer%2CfindSourceMapURL%7Dfrom%22private-next-rsc-action-client-wrapper%22%3Bconst%20%24%24RSC_SERVER_ACTION_1%3D%2F%2A%23__PURE__%2A%2FcreateServerReference%28%22006c24672f968b0713dae406536f7dd6fe7d9a7fa0%22%2CcallServer%2Cvoid%200%2CfindSourceMapURL%2C%22getHeaders%22%29%3Bexport%7B%24%24RSC_SERVER_ACTION_1%20as%20getHeaders%7D%3B%0A%2F%2F%23%20sourceMappingURL%3Ddata%3Aapplication%2Fjson%3Bbase64%2CeyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImlucHV0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc2VydmVyJ1xuXG5pbXBvcnQgJ3NlcnZlci1vbmx5J1xuXG5pbXBvcnQgeyByZWRpcmVjdCB9IGZyb20gJ25leHQvbmF2aWdhdGlvbidcbmltcG9ydCB7IGhlYWRlcnMsIGNvb2tpZXMgfSBmcm9tICduZXh0L2hlYWRlcnMnXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRIZWFkZXJzKCkge1xuICBjb25zb2xlLmxvZygnYWNjZXB0IGhlYWRlcjonLCAoYXdhaXQgaGVhZGVycygpKS5nZXQoJ2FjY2VwdCcpKVxuICA7KGF3YWl0IGNvb2tpZXMoKSkuc2V0KCd0ZXN0LWNvb2tpZScsIERhdGUubm93KCkpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbmModmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICsgMVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2xvd0luYyh2YWx1ZSkge1xuICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwMCkpXG4gIHJldHVybiB2YWx1ZSArIDFcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlYyh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgLSAxXG59XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uICh2YWx1ZSkge1xuICBjb25zb2xlLmxvZygndGhpc19pc19zZW5zaXRpdmVfaW5mbycpXG4gIHJldHVybiB2YWx1ZSAqIDJcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlZGlyZWN0QWN0aW9uKHBhdGgpIHtcbiAgcmVkaXJlY3QocGF0aClcbn1cblxuY29uc3Qgb3JpZ2luYWwgPSBhc3luYyAoKSA9PiB7XG4gIGNvbnNvbGUubG9nKCdhY3Rpb24nKVxufVxuZXhwb3J0IHsgb3JpZ2luYWwgYXMgcmVuYW1lZCB9XG5cbmV4cG9ydCB7IGZvbyBhcyAn8J%2BTmScgfVxuYXN5bmMgZnVuY3Rpb24gZm9vKCkge31cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoib1JBT3NCLHVMQUFBIn0%3D"; -export { inc } from "data:text/javascript,%2F%2A%20__next_internal_action_entry_do_not_use__%20%5B%7B%2240e44b877cc9d02556f56639c94229621ab0af0f5f%22%3A%7B%22name%22%3A%22inc%22%7D%7D%2C%22%2Fapp%2Fitem.js%22%2C%22%22%5D%20%2A%2F%22use%20turbopack%20no%20side%20effects%22%3Bimport%7BcreateServerReference%2CcallServer%2CfindSourceMapURL%7Dfrom%22private-next-rsc-action-client-wrapper%22%3Bconst%20%24%24RSC_SERVER_ACTION_2%3D%2F%2A%23__PURE__%2A%2FcreateServerReference%28%2240e44b877cc9d02556f56639c94229621ab0af0f5f%22%2CcallServer%2Cvoid%200%2CfindSourceMapURL%2C%22inc%22%29%3Bexport%7B%24%24RSC_SERVER_ACTION_2%20as%20inc%7D%3B%0A%2F%2F%23%20sourceMappingURL%3Ddata%3Aapplication%2Fjson%3Bbase64%2CeyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImlucHV0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc2VydmVyJ1xuXG5pbXBvcnQgJ3NlcnZlci1vbmx5J1xuXG5pbXBvcnQgeyByZWRpcmVjdCB9IGZyb20gJ25leHQvbmF2aWdhdGlvbidcbmltcG9ydCB7IGhlYWRlcnMsIGNvb2tpZXMgfSBmcm9tICduZXh0L2hlYWRlcnMnXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRIZWFkZXJzKCkge1xuICBjb25zb2xlLmxvZygnYWNjZXB0IGhlYWRlcjonLCAoYXdhaXQgaGVhZGVycygpKS5nZXQoJ2FjY2VwdCcpKVxuICA7KGF3YWl0IGNvb2tpZXMoKSkuc2V0KCd0ZXN0LWNvb2tpZScsIERhdGUubm93KCkpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbmModmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICsgMVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2xvd0luYyh2YWx1ZSkge1xuICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwMCkpXG4gIHJldHVybiB2YWx1ZSArIDFcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlYyh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgLSAxXG59XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uICh2YWx1ZSkge1xuICBjb25zb2xlLmxvZygndGhpc19pc19zZW5zaXRpdmVfaW5mbycpXG4gIHJldHVybiB2YWx1ZSAqIDJcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlZGlyZWN0QWN0aW9uKHBhdGgpIHtcbiAgcmVkaXJlY3QocGF0aClcbn1cblxuY29uc3Qgb3JpZ2luYWwgPSBhc3luYyAoKSA9PiB7XG4gIGNvbnNvbGUubG9nKCdhY3Rpb24nKVxufVxuZXhwb3J0IHsgb3JpZ2luYWwgYXMgcmVuYW1lZCB9XG5cbmV4cG9ydCB7IGZvbyBhcyAn8J%2BTmScgfVxuYXN5bmMgZnVuY3Rpb24gZm9vKCkge31cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiNlFBWXNCLGdMQUFBIn0%3D"; -export { slowInc } from "data:text/javascript,%2F%2A%20__next_internal_action_entry_do_not_use__%20%5B%7B%2240f4ad91903d1bf66bfd4e0788888852badc924261%22%3A%7B%22name%22%3A%22slowInc%22%7D%7D%2C%22%2Fapp%2Fitem.js%22%2C%22%22%5D%20%2A%2F%22use%20turbopack%20no%20side%20effects%22%3Bimport%7BcreateServerReference%2CcallServer%2CfindSourceMapURL%7Dfrom%22private-next-rsc-action-client-wrapper%22%3Bconst%20%24%24RSC_SERVER_ACTION_3%3D%2F%2A%23__PURE__%2A%2FcreateServerReference%28%2240f4ad91903d1bf66bfd4e0788888852badc924261%22%2CcallServer%2Cvoid%200%2CfindSourceMapURL%2C%22slowInc%22%29%3Bexport%7B%24%24RSC_SERVER_ACTION_3%20as%20slowInc%7D%3B%0A%2F%2F%23%20sourceMappingURL%3Ddata%3Aapplication%2Fjson%3Bbase64%2CeyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImlucHV0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc2VydmVyJ1xuXG5pbXBvcnQgJ3NlcnZlci1vbmx5J1xuXG5pbXBvcnQgeyByZWRpcmVjdCB9IGZyb20gJ25leHQvbmF2aWdhdGlvbidcbmltcG9ydCB7IGhlYWRlcnMsIGNvb2tpZXMgfSBmcm9tICduZXh0L2hlYWRlcnMnXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRIZWFkZXJzKCkge1xuICBjb25zb2xlLmxvZygnYWNjZXB0IGhlYWRlcjonLCAoYXdhaXQgaGVhZGVycygpKS5nZXQoJ2FjY2VwdCcpKVxuICA7KGF3YWl0IGNvb2tpZXMoKSkuc2V0KCd0ZXN0LWNvb2tpZScsIERhdGUubm93KCkpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbmModmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICsgMVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2xvd0luYyh2YWx1ZSkge1xuICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwMCkpXG4gIHJldHVybiB2YWx1ZSArIDFcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlYyh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgLSAxXG59XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uICh2YWx1ZSkge1xuICBjb25zb2xlLmxvZygndGhpc19pc19zZW5zaXRpdmVfaW5mbycpXG4gIHJldHVybiB2YWx1ZSAqIDJcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlZGlyZWN0QWN0aW9uKHBhdGgpIHtcbiAgcmVkaXJlY3QocGF0aClcbn1cblxuY29uc3Qgb3JpZ2luYWwgPSBhc3luYyAoKSA9PiB7XG4gIGNvbnNvbGUubG9nKCdhY3Rpb24nKVxufVxuZXhwb3J0IHsgb3JpZ2luYWwgYXMgcmVuYW1lZCB9XG5cbmV4cG9ydCB7IGZvbyBhcyAn8J%2BTmScgfVxuYXN5bmMgZnVuY3Rpb24gZm9vKCkge31cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiaVJBZ0JzQixvTEFBQSJ9"; -export { dec } from "data:text/javascript,%2F%2A%20__next_internal_action_entry_do_not_use__%20%5B%7B%224028baf972d345b86b747ad0df73d75a0088a42214%22%3A%7B%22name%22%3A%22dec%22%7D%7D%2C%22%2Fapp%2Fitem.js%22%2C%22%22%5D%20%2A%2F%22use%20turbopack%20no%20side%20effects%22%3Bimport%7BcreateServerReference%2CcallServer%2CfindSourceMapURL%7Dfrom%22private-next-rsc-action-client-wrapper%22%3Bconst%20%24%24RSC_SERVER_ACTION_4%3D%2F%2A%23__PURE__%2A%2FcreateServerReference%28%224028baf972d345b86b747ad0df73d75a0088a42214%22%2CcallServer%2Cvoid%200%2CfindSourceMapURL%2C%22dec%22%29%3Bexport%7B%24%24RSC_SERVER_ACTION_4%20as%20dec%7D%3B%0A%2F%2F%23%20sourceMappingURL%3Ddata%3Aapplication%2Fjson%3Bbase64%2CeyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImlucHV0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc2VydmVyJ1xuXG5pbXBvcnQgJ3NlcnZlci1vbmx5J1xuXG5pbXBvcnQgeyByZWRpcmVjdCB9IGZyb20gJ25leHQvbmF2aWdhdGlvbidcbmltcG9ydCB7IGhlYWRlcnMsIGNvb2tpZXMgfSBmcm9tICduZXh0L2hlYWRlcnMnXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRIZWFkZXJzKCkge1xuICBjb25zb2xlLmxvZygnYWNjZXB0IGhlYWRlcjonLCAoYXdhaXQgaGVhZGVycygpKS5nZXQoJ2FjY2VwdCcpKVxuICA7KGF3YWl0IGNvb2tpZXMoKSkuc2V0KCd0ZXN0LWNvb2tpZScsIERhdGUubm93KCkpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbmModmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICsgMVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2xvd0luYyh2YWx1ZSkge1xuICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwMCkpXG4gIHJldHVybiB2YWx1ZSArIDFcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlYyh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgLSAxXG59XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uICh2YWx1ZSkge1xuICBjb25zb2xlLmxvZygndGhpc19pc19zZW5zaXRpdmVfaW5mbycpXG4gIHJldHVybiB2YWx1ZSAqIDJcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlZGlyZWN0QWN0aW9uKHBhdGgpIHtcbiAgcmVkaXJlY3QocGF0aClcbn1cblxuY29uc3Qgb3JpZ2luYWwgPSBhc3luYyAoKSA9PiB7XG4gIGNvbnNvbGUubG9nKCdhY3Rpb24nKVxufVxuZXhwb3J0IHsgb3JpZ2luYWwgYXMgcmVuYW1lZCB9XG5cbmV4cG9ydCB7IGZvbyBhcyAn8J%2BTmScgfVxuYXN5bmMgZnVuY3Rpb24gZm9vKCkge31cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiNlFBcUJzQixnTEFBQSJ9"; -export { default } from "data:text/javascript,%2F%2A%20__next_internal_action_entry_do_not_use__%20%5B%7B%2240c18c215a6b7cdc64bf709f3a714ffdef1bf9651d%22%3A%7B%22name%22%3A%22default%22%7D%7D%2C%22%2Fapp%2Fitem.js%22%2C%22%22%5D%20%2A%2F%22use%20turbopack%20no%20side%20effects%22%3Bimport%7BcreateServerReference%2CcallServer%2CfindSourceMapURL%7Dfrom%22private-next-rsc-action-client-wrapper%22%3Bexport%20default%20createServerReference%28%2240c18c215a6b7cdc64bf709f3a714ffdef1bf9651d%22%2CcallServer%2Cvoid%200%2CfindSourceMapURL%2C%22default%22%29%3B%0A%2F%2F%23%20sourceMappingURL%3Ddata%3Aapplication%2Fjson%3Bbase64%2CeyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImlucHV0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc2VydmVyJ1xuXG5pbXBvcnQgJ3NlcnZlci1vbmx5J1xuXG5pbXBvcnQgeyByZWRpcmVjdCB9IGZyb20gJ25leHQvbmF2aWdhdGlvbidcbmltcG9ydCB7IGhlYWRlcnMsIGNvb2tpZXMgfSBmcm9tICduZXh0L2hlYWRlcnMnXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRIZWFkZXJzKCkge1xuICBjb25zb2xlLmxvZygnYWNjZXB0IGhlYWRlcjonLCAoYXdhaXQgaGVhZGVycygpKS5nZXQoJ2FjY2VwdCcpKVxuICA7KGF3YWl0IGNvb2tpZXMoKSkuc2V0KCd0ZXN0LWNvb2tpZScsIERhdGUubm93KCkpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbmModmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICsgMVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2xvd0luYyh2YWx1ZSkge1xuICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwMCkpXG4gIHJldHVybiB2YWx1ZSArIDFcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlYyh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgLSAxXG59XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uICh2YWx1ZSkge1xuICBjb25zb2xlLmxvZygndGhpc19pc19zZW5zaXRpdmVfaW5mbycpXG4gIHJldHVybiB2YWx1ZSAqIDJcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlZGlyZWN0QWN0aW9uKHBhdGgpIHtcbiAgcmVkaXJlY3QocGF0aClcbn1cblxuY29uc3Qgb3JpZ2luYWwgPSBhc3luYyAoKSA9PiB7XG4gIGNvbnNvbGUubG9nKCdhY3Rpb24nKVxufVxuZXhwb3J0IHsgb3JpZ2luYWwgYXMgcmVuYW1lZCB9XG5cbmV4cG9ydCB7IGZvbyBhcyAn8J%2BTmScgfVxuYXN5bmMgZnVuY3Rpb24gZm9vKCkge31cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiMFJBeUJlIn0%3D"; -export { redirectAction } from "data:text/javascript,%2F%2A%20__next_internal_action_entry_do_not_use__%20%5B%7B%22403724e93433a7e950ef2f8479f31225e4b0dd0cc5%22%3A%7B%22name%22%3A%22redirectAction%22%7D%7D%2C%22%2Fapp%2Fitem.js%22%2C%22%22%5D%20%2A%2F%22use%20turbopack%20no%20side%20effects%22%3Bimport%7BcreateServerReference%2CcallServer%2CfindSourceMapURL%7Dfrom%22private-next-rsc-action-client-wrapper%22%3Bconst%20%24%24RSC_SERVER_ACTION_5%3D%2F%2A%23__PURE__%2A%2FcreateServerReference%28%22403724e93433a7e950ef2f8479f31225e4b0dd0cc5%22%2CcallServer%2Cvoid%200%2CfindSourceMapURL%2C%22redirectAction%22%29%3Bexport%7B%24%24RSC_SERVER_ACTION_5%20as%20redirectAction%7D%3B%0A%2F%2F%23%20sourceMappingURL%3Ddata%3Aapplication%2Fjson%3Bbase64%2CeyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImlucHV0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc2VydmVyJ1xuXG5pbXBvcnQgJ3NlcnZlci1vbmx5J1xuXG5pbXBvcnQgeyByZWRpcmVjdCB9IGZyb20gJ25leHQvbmF2aWdhdGlvbidcbmltcG9ydCB7IGhlYWRlcnMsIGNvb2tpZXMgfSBmcm9tICduZXh0L2hlYWRlcnMnXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRIZWFkZXJzKCkge1xuICBjb25zb2xlLmxvZygnYWNjZXB0IGhlYWRlcjonLCAoYXdhaXQgaGVhZGVycygpKS5nZXQoJ2FjY2VwdCcpKVxuICA7KGF3YWl0IGNvb2tpZXMoKSkuc2V0KCd0ZXN0LWNvb2tpZScsIERhdGUubm93KCkpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbmModmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICsgMVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2xvd0luYyh2YWx1ZSkge1xuICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwMCkpXG4gIHJldHVybiB2YWx1ZSArIDFcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlYyh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgLSAxXG59XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uICh2YWx1ZSkge1xuICBjb25zb2xlLmxvZygndGhpc19pc19zZW5zaXRpdmVfaW5mbycpXG4gIHJldHVybiB2YWx1ZSAqIDJcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlZGlyZWN0QWN0aW9uKHBhdGgpIHtcbiAgcmVkaXJlY3QocGF0aClcbn1cblxuY29uc3Qgb3JpZ2luYWwgPSBhc3luYyAoKSA9PiB7XG4gIGNvbnNvbGUubG9nKCdhY3Rpb24nKVxufVxuZXhwb3J0IHsgb3JpZ2luYWwgYXMgcmVuYW1lZCB9XG5cbmV4cG9ydCB7IGZvbyBhcyAn8J%2BTmScgfVxuYXN5bmMgZnVuY3Rpb24gZm9vKCkge31cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoid1JBOEJzQiwyTEFBQSJ9"; -export { renamed } from "data:text/javascript,%2F%2A%20__next_internal_action_entry_do_not_use__%20%5B%7B%22001e1a741f85a589443b50c4863618893572cfb178%22%3A%7B%22name%22%3A%22renamed%22%7D%7D%2C%22%2Fapp%2Fitem.js%22%2C%22%22%5D%20%2A%2F%22use%20turbopack%20no%20side%20effects%22%3Bimport%7BcreateServerReference%2CcallServer%2CfindSourceMapURL%7Dfrom%22private-next-rsc-action-client-wrapper%22%3Bconst%20%24%24RSC_SERVER_ACTION_6%3D%2F%2A%23__PURE__%2A%2FcreateServerReference%28%22001e1a741f85a589443b50c4863618893572cfb178%22%2CcallServer%2Cvoid%200%2CfindSourceMapURL%2C%22renamed%22%29%3Bexport%7B%24%24RSC_SERVER_ACTION_6%20as%20renamed%7D%3B%0A%2F%2F%23%20sourceMappingURL%3Ddata%3Aapplication%2Fjson%3Bbase64%2CeyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImlucHV0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc2VydmVyJ1xuXG5pbXBvcnQgJ3NlcnZlci1vbmx5J1xuXG5pbXBvcnQgeyByZWRpcmVjdCB9IGZyb20gJ25leHQvbmF2aWdhdGlvbidcbmltcG9ydCB7IGhlYWRlcnMsIGNvb2tpZXMgfSBmcm9tICduZXh0L2hlYWRlcnMnXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRIZWFkZXJzKCkge1xuICBjb25zb2xlLmxvZygnYWNjZXB0IGhlYWRlcjonLCAoYXdhaXQgaGVhZGVycygpKS5nZXQoJ2FjY2VwdCcpKVxuICA7KGF3YWl0IGNvb2tpZXMoKSkuc2V0KCd0ZXN0LWNvb2tpZScsIERhdGUubm93KCkpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbmModmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICsgMVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2xvd0luYyh2YWx1ZSkge1xuICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwMCkpXG4gIHJldHVybiB2YWx1ZSArIDFcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlYyh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgLSAxXG59XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uICh2YWx1ZSkge1xuICBjb25zb2xlLmxvZygndGhpc19pc19zZW5zaXRpdmVfaW5mbycpXG4gIHJldHVybiB2YWx1ZSAqIDJcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlZGlyZWN0QWN0aW9uKHBhdGgpIHtcbiAgcmVkaXJlY3QocGF0aClcbn1cblxuY29uc3Qgb3JpZ2luYWwgPSBhc3luYyAoKSA9PiB7XG4gIGNvbnNvbGUubG9nKCdhY3Rpb24nKVxufVxuZXhwb3J0IHsgb3JpZ2luYWwgYXMgcmVuYW1lZCB9XG5cbmV4cG9ydCB7IGZvbyBhcyAn8J%2BTmScgfVxuYXN5bmMgZnVuY3Rpb24gZm9vKCkge31cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiaVJBa0NNLG9MQUdlIn0%3D"; -export { "📙" } from "data:text/javascript,%2F%2A%20__next_internal_action_entry_do_not_use__%20%5B%7B%220073f2cbccffb158eb2704761fc88fdbd0aaa102d0%22%3A%7B%22name%22%3A%22%F0%9F%93%99%22%7D%7D%2C%22%2Fapp%2Fitem.js%22%2C%22%22%5D%20%2A%2F%22use%20turbopack%20no%20side%20effects%22%3Bimport%7BcreateServerReference%2CcallServer%2CfindSourceMapURL%7Dfrom%22private-next-rsc-action-client-wrapper%22%3Bconst%20%24%24RSC_SERVER_ACTION_7%3D%2F%2A%23__PURE__%2A%2FcreateServerReference%28%220073f2cbccffb158eb2704761fc88fdbd0aaa102d0%22%2CcallServer%2Cvoid%200%2CfindSourceMapURL%2C%22%F0%9F%93%99%22%29%3Bexport%7B%24%24RSC_SERVER_ACTION_7%20as%20%22%F0%9F%93%99%22%7D%3B%0A%2F%2F%23%20sourceMappingURL%3Ddata%3Aapplication%2Fjson%3Bbase64%2CeyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImlucHV0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc2VydmVyJ1xuXG5pbXBvcnQgJ3NlcnZlci1vbmx5J1xuXG5pbXBvcnQgeyByZWRpcmVjdCB9IGZyb20gJ25leHQvbmF2aWdhdGlvbidcbmltcG9ydCB7IGhlYWRlcnMsIGNvb2tpZXMgfSBmcm9tICduZXh0L2hlYWRlcnMnXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRIZWFkZXJzKCkge1xuICBjb25zb2xlLmxvZygnYWNjZXB0IGhlYWRlcjonLCAoYXdhaXQgaGVhZGVycygpKS5nZXQoJ2FjY2VwdCcpKVxuICA7KGF3YWl0IGNvb2tpZXMoKSkuc2V0KCd0ZXN0LWNvb2tpZScsIERhdGUubm93KCkpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbmModmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICsgMVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2xvd0luYyh2YWx1ZSkge1xuICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwMCkpXG4gIHJldHVybiB2YWx1ZSArIDFcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlYyh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgLSAxXG59XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uICh2YWx1ZSkge1xuICBjb25zb2xlLmxvZygndGhpc19pc19zZW5zaXRpdmVfaW5mbycpXG4gIHJldHVybiB2YWx1ZSAqIDJcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlZGlyZWN0QWN0aW9uKHBhdGgpIHtcbiAgcmVkaXJlY3QocGF0aClcbn1cblxuY29uc3Qgb3JpZ2luYWwgPSBhc3luYyAoKSA9PiB7XG4gIGNvbnNvbGUubG9nKCdhY3Rpb24nKVxufVxuZXhwb3J0IHsgb3JpZ2luYWwgYXMgcmVuYW1lZCB9XG5cbmV4cG9ydCB7IGZvbyBhcyAn8J%2BTmScgfVxuYXN5bmMgZnVuY3Rpb24gZm9vKCkge31cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiNFFBd0NlLCtLQURDIn0%3D"; +"use turbopack: no side effects"; +export { getHeaders } from "data:text/javascript,%2F%2A%20__next_internal_action_entry_do_not_use__%20%5B%7B%22006c24672f968b0713dae406536f7dd6fe7d9a7fa0%22%3A%7B%22name%22%3A%22getHeaders%22%7D%7D%2C%22%2Fapp%2Fitem.js%22%2C%22%22%5D%20%2A%2F%22use%20turbopack%3A%20no%20side%20effects%22%3Bimport%7BcreateServerReference%2CcallServer%2CfindSourceMapURL%7Dfrom%22private-next-rsc-action-client-wrapper%22%3Bconst%20%24%24RSC_SERVER_ACTION_1%3D%2F%2A%23__PURE__%2A%2FcreateServerReference%28%22006c24672f968b0713dae406536f7dd6fe7d9a7fa0%22%2CcallServer%2Cvoid%200%2CfindSourceMapURL%2C%22getHeaders%22%29%3Bexport%7B%24%24RSC_SERVER_ACTION_1%20as%20getHeaders%7D%3B%0A%2F%2F%23%20sourceMappingURL%3Ddata%3Aapplication%2Fjson%3Bbase64%2CeyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImlucHV0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc2VydmVyJ1xuXG5pbXBvcnQgJ3NlcnZlci1vbmx5J1xuXG5pbXBvcnQgeyByZWRpcmVjdCB9IGZyb20gJ25leHQvbmF2aWdhdGlvbidcbmltcG9ydCB7IGhlYWRlcnMsIGNvb2tpZXMgfSBmcm9tICduZXh0L2hlYWRlcnMnXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRIZWFkZXJzKCkge1xuICBjb25zb2xlLmxvZygnYWNjZXB0IGhlYWRlcjonLCAoYXdhaXQgaGVhZGVycygpKS5nZXQoJ2FjY2VwdCcpKVxuICA7KGF3YWl0IGNvb2tpZXMoKSkuc2V0KCd0ZXN0LWNvb2tpZScsIERhdGUubm93KCkpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbmModmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICsgMVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2xvd0luYyh2YWx1ZSkge1xuICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwMCkpXG4gIHJldHVybiB2YWx1ZSArIDFcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlYyh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgLSAxXG59XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uICh2YWx1ZSkge1xuICBjb25zb2xlLmxvZygndGhpc19pc19zZW5zaXRpdmVfaW5mbycpXG4gIHJldHVybiB2YWx1ZSAqIDJcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlZGlyZWN0QWN0aW9uKHBhdGgpIHtcbiAgcmVkaXJlY3QocGF0aClcbn1cblxuY29uc3Qgb3JpZ2luYWwgPSBhc3luYyAoKSA9PiB7XG4gIGNvbnNvbGUubG9nKCdhY3Rpb24nKVxufVxuZXhwb3J0IHsgb3JpZ2luYWwgYXMgcmVuYW1lZCB9XG5cbmV4cG9ydCB7IGZvbyBhcyAn8J%2BTmScgfVxuYXN5bmMgZnVuY3Rpb24gZm9vKCkge31cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoicVJBT3NCLHVMQUFBIn0%3D"; +export { inc } from "data:text/javascript,%2F%2A%20__next_internal_action_entry_do_not_use__%20%5B%7B%2240e44b877cc9d02556f56639c94229621ab0af0f5f%22%3A%7B%22name%22%3A%22inc%22%7D%7D%2C%22%2Fapp%2Fitem.js%22%2C%22%22%5D%20%2A%2F%22use%20turbopack%3A%20no%20side%20effects%22%3Bimport%7BcreateServerReference%2CcallServer%2CfindSourceMapURL%7Dfrom%22private-next-rsc-action-client-wrapper%22%3Bconst%20%24%24RSC_SERVER_ACTION_2%3D%2F%2A%23__PURE__%2A%2FcreateServerReference%28%2240e44b877cc9d02556f56639c94229621ab0af0f5f%22%2CcallServer%2Cvoid%200%2CfindSourceMapURL%2C%22inc%22%29%3Bexport%7B%24%24RSC_SERVER_ACTION_2%20as%20inc%7D%3B%0A%2F%2F%23%20sourceMappingURL%3Ddata%3Aapplication%2Fjson%3Bbase64%2CeyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImlucHV0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc2VydmVyJ1xuXG5pbXBvcnQgJ3NlcnZlci1vbmx5J1xuXG5pbXBvcnQgeyByZWRpcmVjdCB9IGZyb20gJ25leHQvbmF2aWdhdGlvbidcbmltcG9ydCB7IGhlYWRlcnMsIGNvb2tpZXMgfSBmcm9tICduZXh0L2hlYWRlcnMnXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRIZWFkZXJzKCkge1xuICBjb25zb2xlLmxvZygnYWNjZXB0IGhlYWRlcjonLCAoYXdhaXQgaGVhZGVycygpKS5nZXQoJ2FjY2VwdCcpKVxuICA7KGF3YWl0IGNvb2tpZXMoKSkuc2V0KCd0ZXN0LWNvb2tpZScsIERhdGUubm93KCkpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbmModmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICsgMVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2xvd0luYyh2YWx1ZSkge1xuICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwMCkpXG4gIHJldHVybiB2YWx1ZSArIDFcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlYyh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgLSAxXG59XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uICh2YWx1ZSkge1xuICBjb25zb2xlLmxvZygndGhpc19pc19zZW5zaXRpdmVfaW5mbycpXG4gIHJldHVybiB2YWx1ZSAqIDJcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlZGlyZWN0QWN0aW9uKHBhdGgpIHtcbiAgcmVkaXJlY3QocGF0aClcbn1cblxuY29uc3Qgb3JpZ2luYWwgPSBhc3luYyAoKSA9PiB7XG4gIGNvbnNvbGUubG9nKCdhY3Rpb24nKVxufVxuZXhwb3J0IHsgb3JpZ2luYWwgYXMgcmVuYW1lZCB9XG5cbmV4cG9ydCB7IGZvbyBhcyAn8J%2BTmScgfVxuYXN5bmMgZnVuY3Rpb24gZm9vKCkge31cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOFFBWXNCLGdMQUFBIn0%3D"; +export { slowInc } from "data:text/javascript,%2F%2A%20__next_internal_action_entry_do_not_use__%20%5B%7B%2240f4ad91903d1bf66bfd4e0788888852badc924261%22%3A%7B%22name%22%3A%22slowInc%22%7D%7D%2C%22%2Fapp%2Fitem.js%22%2C%22%22%5D%20%2A%2F%22use%20turbopack%3A%20no%20side%20effects%22%3Bimport%7BcreateServerReference%2CcallServer%2CfindSourceMapURL%7Dfrom%22private-next-rsc-action-client-wrapper%22%3Bconst%20%24%24RSC_SERVER_ACTION_3%3D%2F%2A%23__PURE__%2A%2FcreateServerReference%28%2240f4ad91903d1bf66bfd4e0788888852badc924261%22%2CcallServer%2Cvoid%200%2CfindSourceMapURL%2C%22slowInc%22%29%3Bexport%7B%24%24RSC_SERVER_ACTION_3%20as%20slowInc%7D%3B%0A%2F%2F%23%20sourceMappingURL%3Ddata%3Aapplication%2Fjson%3Bbase64%2CeyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImlucHV0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc2VydmVyJ1xuXG5pbXBvcnQgJ3NlcnZlci1vbmx5J1xuXG5pbXBvcnQgeyByZWRpcmVjdCB9IGZyb20gJ25leHQvbmF2aWdhdGlvbidcbmltcG9ydCB7IGhlYWRlcnMsIGNvb2tpZXMgfSBmcm9tICduZXh0L2hlYWRlcnMnXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRIZWFkZXJzKCkge1xuICBjb25zb2xlLmxvZygnYWNjZXB0IGhlYWRlcjonLCAoYXdhaXQgaGVhZGVycygpKS5nZXQoJ2FjY2VwdCcpKVxuICA7KGF3YWl0IGNvb2tpZXMoKSkuc2V0KCd0ZXN0LWNvb2tpZScsIERhdGUubm93KCkpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbmModmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICsgMVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2xvd0luYyh2YWx1ZSkge1xuICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwMCkpXG4gIHJldHVybiB2YWx1ZSArIDFcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlYyh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgLSAxXG59XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uICh2YWx1ZSkge1xuICBjb25zb2xlLmxvZygndGhpc19pc19zZW5zaXRpdmVfaW5mbycpXG4gIHJldHVybiB2YWx1ZSAqIDJcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlZGlyZWN0QWN0aW9uKHBhdGgpIHtcbiAgcmVkaXJlY3QocGF0aClcbn1cblxuY29uc3Qgb3JpZ2luYWwgPSBhc3luYyAoKSA9PiB7XG4gIGNvbnNvbGUubG9nKCdhY3Rpb24nKVxufVxuZXhwb3J0IHsgb3JpZ2luYWwgYXMgcmVuYW1lZCB9XG5cbmV4cG9ydCB7IGZvbyBhcyAn8J%2BTmScgfVxuYXN5bmMgZnVuY3Rpb24gZm9vKCkge31cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoia1JBZ0JzQixvTEFBQSJ9"; +export { dec } from "data:text/javascript,%2F%2A%20__next_internal_action_entry_do_not_use__%20%5B%7B%224028baf972d345b86b747ad0df73d75a0088a42214%22%3A%7B%22name%22%3A%22dec%22%7D%7D%2C%22%2Fapp%2Fitem.js%22%2C%22%22%5D%20%2A%2F%22use%20turbopack%3A%20no%20side%20effects%22%3Bimport%7BcreateServerReference%2CcallServer%2CfindSourceMapURL%7Dfrom%22private-next-rsc-action-client-wrapper%22%3Bconst%20%24%24RSC_SERVER_ACTION_4%3D%2F%2A%23__PURE__%2A%2FcreateServerReference%28%224028baf972d345b86b747ad0df73d75a0088a42214%22%2CcallServer%2Cvoid%200%2CfindSourceMapURL%2C%22dec%22%29%3Bexport%7B%24%24RSC_SERVER_ACTION_4%20as%20dec%7D%3B%0A%2F%2F%23%20sourceMappingURL%3Ddata%3Aapplication%2Fjson%3Bbase64%2CeyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImlucHV0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc2VydmVyJ1xuXG5pbXBvcnQgJ3NlcnZlci1vbmx5J1xuXG5pbXBvcnQgeyByZWRpcmVjdCB9IGZyb20gJ25leHQvbmF2aWdhdGlvbidcbmltcG9ydCB7IGhlYWRlcnMsIGNvb2tpZXMgfSBmcm9tICduZXh0L2hlYWRlcnMnXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRIZWFkZXJzKCkge1xuICBjb25zb2xlLmxvZygnYWNjZXB0IGhlYWRlcjonLCAoYXdhaXQgaGVhZGVycygpKS5nZXQoJ2FjY2VwdCcpKVxuICA7KGF3YWl0IGNvb2tpZXMoKSkuc2V0KCd0ZXN0LWNvb2tpZScsIERhdGUubm93KCkpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbmModmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICsgMVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2xvd0luYyh2YWx1ZSkge1xuICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwMCkpXG4gIHJldHVybiB2YWx1ZSArIDFcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlYyh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgLSAxXG59XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uICh2YWx1ZSkge1xuICBjb25zb2xlLmxvZygndGhpc19pc19zZW5zaXRpdmVfaW5mbycpXG4gIHJldHVybiB2YWx1ZSAqIDJcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlZGlyZWN0QWN0aW9uKHBhdGgpIHtcbiAgcmVkaXJlY3QocGF0aClcbn1cblxuY29uc3Qgb3JpZ2luYWwgPSBhc3luYyAoKSA9PiB7XG4gIGNvbnNvbGUubG9nKCdhY3Rpb24nKVxufVxuZXhwb3J0IHsgb3JpZ2luYWwgYXMgcmVuYW1lZCB9XG5cbmV4cG9ydCB7IGZvbyBhcyAn8J%2BTmScgfVxuYXN5bmMgZnVuY3Rpb24gZm9vKCkge31cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOFFBcUJzQixnTEFBQSJ9"; +export { default } from "data:text/javascript,%2F%2A%20__next_internal_action_entry_do_not_use__%20%5B%7B%2240c18c215a6b7cdc64bf709f3a714ffdef1bf9651d%22%3A%7B%22name%22%3A%22default%22%7D%7D%2C%22%2Fapp%2Fitem.js%22%2C%22%22%5D%20%2A%2F%22use%20turbopack%3A%20no%20side%20effects%22%3Bimport%7BcreateServerReference%2CcallServer%2CfindSourceMapURL%7Dfrom%22private-next-rsc-action-client-wrapper%22%3Bexport%20default%20createServerReference%28%2240c18c215a6b7cdc64bf709f3a714ffdef1bf9651d%22%2CcallServer%2Cvoid%200%2CfindSourceMapURL%2C%22default%22%29%3B%0A%2F%2F%23%20sourceMappingURL%3Ddata%3Aapplication%2Fjson%3Bbase64%2CeyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImlucHV0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc2VydmVyJ1xuXG5pbXBvcnQgJ3NlcnZlci1vbmx5J1xuXG5pbXBvcnQgeyByZWRpcmVjdCB9IGZyb20gJ25leHQvbmF2aWdhdGlvbidcbmltcG9ydCB7IGhlYWRlcnMsIGNvb2tpZXMgfSBmcm9tICduZXh0L2hlYWRlcnMnXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRIZWFkZXJzKCkge1xuICBjb25zb2xlLmxvZygnYWNjZXB0IGhlYWRlcjonLCAoYXdhaXQgaGVhZGVycygpKS5nZXQoJ2FjY2VwdCcpKVxuICA7KGF3YWl0IGNvb2tpZXMoKSkuc2V0KCd0ZXN0LWNvb2tpZScsIERhdGUubm93KCkpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbmModmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICsgMVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2xvd0luYyh2YWx1ZSkge1xuICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwMCkpXG4gIHJldHVybiB2YWx1ZSArIDFcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlYyh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgLSAxXG59XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uICh2YWx1ZSkge1xuICBjb25zb2xlLmxvZygndGhpc19pc19zZW5zaXRpdmVfaW5mbycpXG4gIHJldHVybiB2YWx1ZSAqIDJcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlZGlyZWN0QWN0aW9uKHBhdGgpIHtcbiAgcmVkaXJlY3QocGF0aClcbn1cblxuY29uc3Qgb3JpZ2luYWwgPSBhc3luYyAoKSA9PiB7XG4gIGNvbnNvbGUubG9nKCdhY3Rpb24nKVxufVxuZXhwb3J0IHsgb3JpZ2luYWwgYXMgcmVuYW1lZCB9XG5cbmV4cG9ydCB7IGZvbyBhcyAn8J%2BTmScgfVxuYXN5bmMgZnVuY3Rpb24gZm9vKCkge31cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiMlJBeUJlIn0%3D"; +export { redirectAction } from "data:text/javascript,%2F%2A%20__next_internal_action_entry_do_not_use__%20%5B%7B%22403724e93433a7e950ef2f8479f31225e4b0dd0cc5%22%3A%7B%22name%22%3A%22redirectAction%22%7D%7D%2C%22%2Fapp%2Fitem.js%22%2C%22%22%5D%20%2A%2F%22use%20turbopack%3A%20no%20side%20effects%22%3Bimport%7BcreateServerReference%2CcallServer%2CfindSourceMapURL%7Dfrom%22private-next-rsc-action-client-wrapper%22%3Bconst%20%24%24RSC_SERVER_ACTION_5%3D%2F%2A%23__PURE__%2A%2FcreateServerReference%28%22403724e93433a7e950ef2f8479f31225e4b0dd0cc5%22%2CcallServer%2Cvoid%200%2CfindSourceMapURL%2C%22redirectAction%22%29%3Bexport%7B%24%24RSC_SERVER_ACTION_5%20as%20redirectAction%7D%3B%0A%2F%2F%23%20sourceMappingURL%3Ddata%3Aapplication%2Fjson%3Bbase64%2CeyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImlucHV0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc2VydmVyJ1xuXG5pbXBvcnQgJ3NlcnZlci1vbmx5J1xuXG5pbXBvcnQgeyByZWRpcmVjdCB9IGZyb20gJ25leHQvbmF2aWdhdGlvbidcbmltcG9ydCB7IGhlYWRlcnMsIGNvb2tpZXMgfSBmcm9tICduZXh0L2hlYWRlcnMnXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRIZWFkZXJzKCkge1xuICBjb25zb2xlLmxvZygnYWNjZXB0IGhlYWRlcjonLCAoYXdhaXQgaGVhZGVycygpKS5nZXQoJ2FjY2VwdCcpKVxuICA7KGF3YWl0IGNvb2tpZXMoKSkuc2V0KCd0ZXN0LWNvb2tpZScsIERhdGUubm93KCkpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbmModmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICsgMVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2xvd0luYyh2YWx1ZSkge1xuICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwMCkpXG4gIHJldHVybiB2YWx1ZSArIDFcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlYyh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgLSAxXG59XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uICh2YWx1ZSkge1xuICBjb25zb2xlLmxvZygndGhpc19pc19zZW5zaXRpdmVfaW5mbycpXG4gIHJldHVybiB2YWx1ZSAqIDJcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlZGlyZWN0QWN0aW9uKHBhdGgpIHtcbiAgcmVkaXJlY3QocGF0aClcbn1cblxuY29uc3Qgb3JpZ2luYWwgPSBhc3luYyAoKSA9PiB7XG4gIGNvbnNvbGUubG9nKCdhY3Rpb24nKVxufVxuZXhwb3J0IHsgb3JpZ2luYWwgYXMgcmVuYW1lZCB9XG5cbmV4cG9ydCB7IGZvbyBhcyAn8J%2BTmScgfVxuYXN5bmMgZnVuY3Rpb24gZm9vKCkge31cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoieVJBOEJzQiwyTEFBQSJ9"; +export { renamed } from "data:text/javascript,%2F%2A%20__next_internal_action_entry_do_not_use__%20%5B%7B%22001e1a741f85a589443b50c4863618893572cfb178%22%3A%7B%22name%22%3A%22renamed%22%7D%7D%2C%22%2Fapp%2Fitem.js%22%2C%22%22%5D%20%2A%2F%22use%20turbopack%3A%20no%20side%20effects%22%3Bimport%7BcreateServerReference%2CcallServer%2CfindSourceMapURL%7Dfrom%22private-next-rsc-action-client-wrapper%22%3Bconst%20%24%24RSC_SERVER_ACTION_6%3D%2F%2A%23__PURE__%2A%2FcreateServerReference%28%22001e1a741f85a589443b50c4863618893572cfb178%22%2CcallServer%2Cvoid%200%2CfindSourceMapURL%2C%22renamed%22%29%3Bexport%7B%24%24RSC_SERVER_ACTION_6%20as%20renamed%7D%3B%0A%2F%2F%23%20sourceMappingURL%3Ddata%3Aapplication%2Fjson%3Bbase64%2CeyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImlucHV0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc2VydmVyJ1xuXG5pbXBvcnQgJ3NlcnZlci1vbmx5J1xuXG5pbXBvcnQgeyByZWRpcmVjdCB9IGZyb20gJ25leHQvbmF2aWdhdGlvbidcbmltcG9ydCB7IGhlYWRlcnMsIGNvb2tpZXMgfSBmcm9tICduZXh0L2hlYWRlcnMnXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRIZWFkZXJzKCkge1xuICBjb25zb2xlLmxvZygnYWNjZXB0IGhlYWRlcjonLCAoYXdhaXQgaGVhZGVycygpKS5nZXQoJ2FjY2VwdCcpKVxuICA7KGF3YWl0IGNvb2tpZXMoKSkuc2V0KCd0ZXN0LWNvb2tpZScsIERhdGUubm93KCkpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbmModmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICsgMVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2xvd0luYyh2YWx1ZSkge1xuICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwMCkpXG4gIHJldHVybiB2YWx1ZSArIDFcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlYyh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgLSAxXG59XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uICh2YWx1ZSkge1xuICBjb25zb2xlLmxvZygndGhpc19pc19zZW5zaXRpdmVfaW5mbycpXG4gIHJldHVybiB2YWx1ZSAqIDJcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlZGlyZWN0QWN0aW9uKHBhdGgpIHtcbiAgcmVkaXJlY3QocGF0aClcbn1cblxuY29uc3Qgb3JpZ2luYWwgPSBhc3luYyAoKSA9PiB7XG4gIGNvbnNvbGUubG9nKCdhY3Rpb24nKVxufVxuZXhwb3J0IHsgb3JpZ2luYWwgYXMgcmVuYW1lZCB9XG5cbmV4cG9ydCB7IGZvbyBhcyAn8J%2BTmScgfVxuYXN5bmMgZnVuY3Rpb24gZm9vKCkge31cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoia1JBa0NNLG9MQUdlIn0%3D"; +export { "📙" } from "data:text/javascript,%2F%2A%20__next_internal_action_entry_do_not_use__%20%5B%7B%220073f2cbccffb158eb2704761fc88fdbd0aaa102d0%22%3A%7B%22name%22%3A%22%F0%9F%93%99%22%7D%7D%2C%22%2Fapp%2Fitem.js%22%2C%22%22%5D%20%2A%2F%22use%20turbopack%3A%20no%20side%20effects%22%3Bimport%7BcreateServerReference%2CcallServer%2CfindSourceMapURL%7Dfrom%22private-next-rsc-action-client-wrapper%22%3Bconst%20%24%24RSC_SERVER_ACTION_7%3D%2F%2A%23__PURE__%2A%2FcreateServerReference%28%220073f2cbccffb158eb2704761fc88fdbd0aaa102d0%22%2CcallServer%2Cvoid%200%2CfindSourceMapURL%2C%22%F0%9F%93%99%22%29%3Bexport%7B%24%24RSC_SERVER_ACTION_7%20as%20%22%F0%9F%93%99%22%7D%3B%0A%2F%2F%23%20sourceMappingURL%3Ddata%3Aapplication%2Fjson%3Bbase64%2CeyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImlucHV0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc2VydmVyJ1xuXG5pbXBvcnQgJ3NlcnZlci1vbmx5J1xuXG5pbXBvcnQgeyByZWRpcmVjdCB9IGZyb20gJ25leHQvbmF2aWdhdGlvbidcbmltcG9ydCB7IGhlYWRlcnMsIGNvb2tpZXMgfSBmcm9tICduZXh0L2hlYWRlcnMnXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRIZWFkZXJzKCkge1xuICBjb25zb2xlLmxvZygnYWNjZXB0IGhlYWRlcjonLCAoYXdhaXQgaGVhZGVycygpKS5nZXQoJ2FjY2VwdCcpKVxuICA7KGF3YWl0IGNvb2tpZXMoKSkuc2V0KCd0ZXN0LWNvb2tpZScsIERhdGUubm93KCkpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbmModmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICsgMVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2xvd0luYyh2YWx1ZSkge1xuICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwMCkpXG4gIHJldHVybiB2YWx1ZSArIDFcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlYyh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgLSAxXG59XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uICh2YWx1ZSkge1xuICBjb25zb2xlLmxvZygndGhpc19pc19zZW5zaXRpdmVfaW5mbycpXG4gIHJldHVybiB2YWx1ZSAqIDJcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlZGlyZWN0QWN0aW9uKHBhdGgpIHtcbiAgcmVkaXJlY3QocGF0aClcbn1cblxuY29uc3Qgb3JpZ2luYWwgPSBhc3luYyAoKSA9PiB7XG4gIGNvbnNvbGUubG9nKCdhY3Rpb24nKVxufVxuZXhwb3J0IHsgb3JpZ2luYWwgYXMgcmVuYW1lZCB9XG5cbmV4cG9ydCB7IGZvbyBhcyAn8J%2BTmScgfVxuYXN5bmMgZnVuY3Rpb24gZm9vKCkge31cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiNlFBd0NlLCtLQURDIn0%3D"; diff --git a/crates/next-custom-transforms/tests/fixture/source-maps/turbopack/client-graph/production/server-actions/1/output.js b/crates/next-custom-transforms/tests/fixture/source-maps/turbopack/client-graph/production/server-actions/1/output.js index 4976779eb229..06f2205efe2e 100644 --- a/crates/next-custom-transforms/tests/fixture/source-maps/turbopack/client-graph/production/server-actions/1/output.js +++ b/crates/next-custom-transforms/tests/fixture/source-maps/turbopack/client-graph/production/server-actions/1/output.js @@ -1,9 +1,9 @@ -"use turbopack no side effects"; -export { getHeaders } from "data:text/javascript,%2F%2A%20__next_internal_action_entry_do_not_use__%20%5B%7B%22006c24672f968b0713dae406536f7dd6fe7d9a7fa0%22%3A%7B%22name%22%3A%22getHeaders%22%7D%7D%2C%22%2Fapp%2Fitem.js%22%2C%22%22%5D%20%2A%2F%22use%20turbopack%20no%20side%20effects%22%3Bimport%7BcreateServerReference%2CcallServer%2CfindSourceMapURL%7Dfrom%22private-next-rsc-action-client-wrapper%22%3Bconst%20%24%24RSC_SERVER_ACTION_1%3D%2F%2A%23__PURE__%2A%2FcreateServerReference%28%22006c24672f968b0713dae406536f7dd6fe7d9a7fa0%22%2CcallServer%2Cvoid%200%2CfindSourceMapURL%2C%22getHeaders%22%29%3Bexport%7B%24%24RSC_SERVER_ACTION_1%20as%20getHeaders%7D%3B"; -export { inc } from "data:text/javascript,%2F%2A%20__next_internal_action_entry_do_not_use__%20%5B%7B%2240e44b877cc9d02556f56639c94229621ab0af0f5f%22%3A%7B%22name%22%3A%22inc%22%7D%7D%2C%22%2Fapp%2Fitem.js%22%2C%22%22%5D%20%2A%2F%22use%20turbopack%20no%20side%20effects%22%3Bimport%7BcreateServerReference%2CcallServer%2CfindSourceMapURL%7Dfrom%22private-next-rsc-action-client-wrapper%22%3Bconst%20%24%24RSC_SERVER_ACTION_2%3D%2F%2A%23__PURE__%2A%2FcreateServerReference%28%2240e44b877cc9d02556f56639c94229621ab0af0f5f%22%2CcallServer%2Cvoid%200%2CfindSourceMapURL%2C%22inc%22%29%3Bexport%7B%24%24RSC_SERVER_ACTION_2%20as%20inc%7D%3B"; -export { slowInc } from "data:text/javascript,%2F%2A%20__next_internal_action_entry_do_not_use__%20%5B%7B%2240f4ad91903d1bf66bfd4e0788888852badc924261%22%3A%7B%22name%22%3A%22slowInc%22%7D%7D%2C%22%2Fapp%2Fitem.js%22%2C%22%22%5D%20%2A%2F%22use%20turbopack%20no%20side%20effects%22%3Bimport%7BcreateServerReference%2CcallServer%2CfindSourceMapURL%7Dfrom%22private-next-rsc-action-client-wrapper%22%3Bconst%20%24%24RSC_SERVER_ACTION_3%3D%2F%2A%23__PURE__%2A%2FcreateServerReference%28%2240f4ad91903d1bf66bfd4e0788888852badc924261%22%2CcallServer%2Cvoid%200%2CfindSourceMapURL%2C%22slowInc%22%29%3Bexport%7B%24%24RSC_SERVER_ACTION_3%20as%20slowInc%7D%3B"; -export { dec } from "data:text/javascript,%2F%2A%20__next_internal_action_entry_do_not_use__%20%5B%7B%224028baf972d345b86b747ad0df73d75a0088a42214%22%3A%7B%22name%22%3A%22dec%22%7D%7D%2C%22%2Fapp%2Fitem.js%22%2C%22%22%5D%20%2A%2F%22use%20turbopack%20no%20side%20effects%22%3Bimport%7BcreateServerReference%2CcallServer%2CfindSourceMapURL%7Dfrom%22private-next-rsc-action-client-wrapper%22%3Bconst%20%24%24RSC_SERVER_ACTION_4%3D%2F%2A%23__PURE__%2A%2FcreateServerReference%28%224028baf972d345b86b747ad0df73d75a0088a42214%22%2CcallServer%2Cvoid%200%2CfindSourceMapURL%2C%22dec%22%29%3Bexport%7B%24%24RSC_SERVER_ACTION_4%20as%20dec%7D%3B"; -export { default } from "data:text/javascript,%2F%2A%20__next_internal_action_entry_do_not_use__%20%5B%7B%2240c18c215a6b7cdc64bf709f3a714ffdef1bf9651d%22%3A%7B%22name%22%3A%22default%22%7D%7D%2C%22%2Fapp%2Fitem.js%22%2C%22%22%5D%20%2A%2F%22use%20turbopack%20no%20side%20effects%22%3Bimport%7BcreateServerReference%2CcallServer%2CfindSourceMapURL%7Dfrom%22private-next-rsc-action-client-wrapper%22%3Bexport%20default%20%2F%2A%23__PURE__%2A%2FcreateServerReference%28%2240c18c215a6b7cdc64bf709f3a714ffdef1bf9651d%22%2CcallServer%2Cvoid%200%2CfindSourceMapURL%2C%22default%22%29%3B"; -export { redirectAction } from "data:text/javascript,%2F%2A%20__next_internal_action_entry_do_not_use__%20%5B%7B%22403724e93433a7e950ef2f8479f31225e4b0dd0cc5%22%3A%7B%22name%22%3A%22redirectAction%22%7D%7D%2C%22%2Fapp%2Fitem.js%22%2C%22%22%5D%20%2A%2F%22use%20turbopack%20no%20side%20effects%22%3Bimport%7BcreateServerReference%2CcallServer%2CfindSourceMapURL%7Dfrom%22private-next-rsc-action-client-wrapper%22%3Bconst%20%24%24RSC_SERVER_ACTION_5%3D%2F%2A%23__PURE__%2A%2FcreateServerReference%28%22403724e93433a7e950ef2f8479f31225e4b0dd0cc5%22%2CcallServer%2Cvoid%200%2CfindSourceMapURL%2C%22redirectAction%22%29%3Bexport%7B%24%24RSC_SERVER_ACTION_5%20as%20redirectAction%7D%3B"; -export { renamed } from "data:text/javascript,%2F%2A%20__next_internal_action_entry_do_not_use__%20%5B%7B%22001e1a741f85a589443b50c4863618893572cfb178%22%3A%7B%22name%22%3A%22renamed%22%7D%7D%2C%22%2Fapp%2Fitem.js%22%2C%22%22%5D%20%2A%2F%22use%20turbopack%20no%20side%20effects%22%3Bimport%7BcreateServerReference%2CcallServer%2CfindSourceMapURL%7Dfrom%22private-next-rsc-action-client-wrapper%22%3Bconst%20%24%24RSC_SERVER_ACTION_6%3D%2F%2A%23__PURE__%2A%2FcreateServerReference%28%22001e1a741f85a589443b50c4863618893572cfb178%22%2CcallServer%2Cvoid%200%2CfindSourceMapURL%2C%22renamed%22%29%3Bexport%7B%24%24RSC_SERVER_ACTION_6%20as%20renamed%7D%3B"; -export { "📙" } from "data:text/javascript,%2F%2A%20__next_internal_action_entry_do_not_use__%20%5B%7B%220073f2cbccffb158eb2704761fc88fdbd0aaa102d0%22%3A%7B%22name%22%3A%22%F0%9F%93%99%22%7D%7D%2C%22%2Fapp%2Fitem.js%22%2C%22%22%5D%20%2A%2F%22use%20turbopack%20no%20side%20effects%22%3Bimport%7BcreateServerReference%2CcallServer%2CfindSourceMapURL%7Dfrom%22private-next-rsc-action-client-wrapper%22%3Bconst%20%24%24RSC_SERVER_ACTION_7%3D%2F%2A%23__PURE__%2A%2FcreateServerReference%28%220073f2cbccffb158eb2704761fc88fdbd0aaa102d0%22%2CcallServer%2Cvoid%200%2CfindSourceMapURL%2C%22%F0%9F%93%99%22%29%3Bexport%7B%24%24RSC_SERVER_ACTION_7%20as%20%22%F0%9F%93%99%22%7D%3B"; +"use turbopack: no side effects"; +export { getHeaders } from "data:text/javascript,%2F%2A%20__next_internal_action_entry_do_not_use__%20%5B%7B%22006c24672f968b0713dae406536f7dd6fe7d9a7fa0%22%3A%7B%22name%22%3A%22getHeaders%22%7D%7D%2C%22%2Fapp%2Fitem.js%22%2C%22%22%5D%20%2A%2F%22use%20turbopack%3A%20no%20side%20effects%22%3Bimport%7BcreateServerReference%2CcallServer%2CfindSourceMapURL%7Dfrom%22private-next-rsc-action-client-wrapper%22%3Bconst%20%24%24RSC_SERVER_ACTION_1%3D%2F%2A%23__PURE__%2A%2FcreateServerReference%28%22006c24672f968b0713dae406536f7dd6fe7d9a7fa0%22%2CcallServer%2Cvoid%200%2CfindSourceMapURL%2C%22getHeaders%22%29%3Bexport%7B%24%24RSC_SERVER_ACTION_1%20as%20getHeaders%7D%3B"; +export { inc } from "data:text/javascript,%2F%2A%20__next_internal_action_entry_do_not_use__%20%5B%7B%2240e44b877cc9d02556f56639c94229621ab0af0f5f%22%3A%7B%22name%22%3A%22inc%22%7D%7D%2C%22%2Fapp%2Fitem.js%22%2C%22%22%5D%20%2A%2F%22use%20turbopack%3A%20no%20side%20effects%22%3Bimport%7BcreateServerReference%2CcallServer%2CfindSourceMapURL%7Dfrom%22private-next-rsc-action-client-wrapper%22%3Bconst%20%24%24RSC_SERVER_ACTION_2%3D%2F%2A%23__PURE__%2A%2FcreateServerReference%28%2240e44b877cc9d02556f56639c94229621ab0af0f5f%22%2CcallServer%2Cvoid%200%2CfindSourceMapURL%2C%22inc%22%29%3Bexport%7B%24%24RSC_SERVER_ACTION_2%20as%20inc%7D%3B"; +export { slowInc } from "data:text/javascript,%2F%2A%20__next_internal_action_entry_do_not_use__%20%5B%7B%2240f4ad91903d1bf66bfd4e0788888852badc924261%22%3A%7B%22name%22%3A%22slowInc%22%7D%7D%2C%22%2Fapp%2Fitem.js%22%2C%22%22%5D%20%2A%2F%22use%20turbopack%3A%20no%20side%20effects%22%3Bimport%7BcreateServerReference%2CcallServer%2CfindSourceMapURL%7Dfrom%22private-next-rsc-action-client-wrapper%22%3Bconst%20%24%24RSC_SERVER_ACTION_3%3D%2F%2A%23__PURE__%2A%2FcreateServerReference%28%2240f4ad91903d1bf66bfd4e0788888852badc924261%22%2CcallServer%2Cvoid%200%2CfindSourceMapURL%2C%22slowInc%22%29%3Bexport%7B%24%24RSC_SERVER_ACTION_3%20as%20slowInc%7D%3B"; +export { dec } from "data:text/javascript,%2F%2A%20__next_internal_action_entry_do_not_use__%20%5B%7B%224028baf972d345b86b747ad0df73d75a0088a42214%22%3A%7B%22name%22%3A%22dec%22%7D%7D%2C%22%2Fapp%2Fitem.js%22%2C%22%22%5D%20%2A%2F%22use%20turbopack%3A%20no%20side%20effects%22%3Bimport%7BcreateServerReference%2CcallServer%2CfindSourceMapURL%7Dfrom%22private-next-rsc-action-client-wrapper%22%3Bconst%20%24%24RSC_SERVER_ACTION_4%3D%2F%2A%23__PURE__%2A%2FcreateServerReference%28%224028baf972d345b86b747ad0df73d75a0088a42214%22%2CcallServer%2Cvoid%200%2CfindSourceMapURL%2C%22dec%22%29%3Bexport%7B%24%24RSC_SERVER_ACTION_4%20as%20dec%7D%3B"; +export { default } from "data:text/javascript,%2F%2A%20__next_internal_action_entry_do_not_use__%20%5B%7B%2240c18c215a6b7cdc64bf709f3a714ffdef1bf9651d%22%3A%7B%22name%22%3A%22default%22%7D%7D%2C%22%2Fapp%2Fitem.js%22%2C%22%22%5D%20%2A%2F%22use%20turbopack%3A%20no%20side%20effects%22%3Bimport%7BcreateServerReference%2CcallServer%2CfindSourceMapURL%7Dfrom%22private-next-rsc-action-client-wrapper%22%3Bexport%20default%20%2F%2A%23__PURE__%2A%2FcreateServerReference%28%2240c18c215a6b7cdc64bf709f3a714ffdef1bf9651d%22%2CcallServer%2Cvoid%200%2CfindSourceMapURL%2C%22default%22%29%3B"; +export { redirectAction } from "data:text/javascript,%2F%2A%20__next_internal_action_entry_do_not_use__%20%5B%7B%22403724e93433a7e950ef2f8479f31225e4b0dd0cc5%22%3A%7B%22name%22%3A%22redirectAction%22%7D%7D%2C%22%2Fapp%2Fitem.js%22%2C%22%22%5D%20%2A%2F%22use%20turbopack%3A%20no%20side%20effects%22%3Bimport%7BcreateServerReference%2CcallServer%2CfindSourceMapURL%7Dfrom%22private-next-rsc-action-client-wrapper%22%3Bconst%20%24%24RSC_SERVER_ACTION_5%3D%2F%2A%23__PURE__%2A%2FcreateServerReference%28%22403724e93433a7e950ef2f8479f31225e4b0dd0cc5%22%2CcallServer%2Cvoid%200%2CfindSourceMapURL%2C%22redirectAction%22%29%3Bexport%7B%24%24RSC_SERVER_ACTION_5%20as%20redirectAction%7D%3B"; +export { renamed } from "data:text/javascript,%2F%2A%20__next_internal_action_entry_do_not_use__%20%5B%7B%22001e1a741f85a589443b50c4863618893572cfb178%22%3A%7B%22name%22%3A%22renamed%22%7D%7D%2C%22%2Fapp%2Fitem.js%22%2C%22%22%5D%20%2A%2F%22use%20turbopack%3A%20no%20side%20effects%22%3Bimport%7BcreateServerReference%2CcallServer%2CfindSourceMapURL%7Dfrom%22private-next-rsc-action-client-wrapper%22%3Bconst%20%24%24RSC_SERVER_ACTION_6%3D%2F%2A%23__PURE__%2A%2FcreateServerReference%28%22001e1a741f85a589443b50c4863618893572cfb178%22%2CcallServer%2Cvoid%200%2CfindSourceMapURL%2C%22renamed%22%29%3Bexport%7B%24%24RSC_SERVER_ACTION_6%20as%20renamed%7D%3B"; +export { "📙" } from "data:text/javascript,%2F%2A%20__next_internal_action_entry_do_not_use__%20%5B%7B%220073f2cbccffb158eb2704761fc88fdbd0aaa102d0%22%3A%7B%22name%22%3A%22%F0%9F%93%99%22%7D%7D%2C%22%2Fapp%2Fitem.js%22%2C%22%22%5D%20%2A%2F%22use%20turbopack%3A%20no%20side%20effects%22%3Bimport%7BcreateServerReference%2CcallServer%2CfindSourceMapURL%7Dfrom%22private-next-rsc-action-client-wrapper%22%3Bconst%20%24%24RSC_SERVER_ACTION_7%3D%2F%2A%23__PURE__%2A%2FcreateServerReference%28%220073f2cbccffb158eb2704761fc88fdbd0aaa102d0%22%2CcallServer%2Cvoid%200%2CfindSourceMapURL%2C%22%F0%9F%93%99%22%29%3Bexport%7B%24%24RSC_SERVER_ACTION_7%20as%20%22%F0%9F%93%99%22%7D%3B"; diff --git a/turbopack/crates/turbopack-core/src/module.rs b/turbopack/crates/turbopack-core/src/module.rs index f33ced1c3e1c..e7838daffd99 100644 --- a/turbopack/crates/turbopack-core/src/module.rs +++ b/turbopack/crates/turbopack-core/src/module.rs @@ -23,7 +23,7 @@ pub enum ModuleSideEffects { /// configuration. /// /// ```js - /// "use turbopack no side effects" + /// "use turbopack: no side effects" /// ``` /// /// This module might not even be parsed (and thus chunked) if no other module depends on any of diff --git a/turbopack/crates/turbopack-ecmascript-runtime/js/src/shared/base64.ts b/turbopack/crates/turbopack-ecmascript-runtime/js/src/shared/base64.ts index 4026714fc3a2..144eebc0f135 100644 --- a/turbopack/crates/turbopack-ecmascript-runtime/js/src/shared/base64.ts +++ b/turbopack/crates/turbopack-ecmascript-runtime/js/src/shared/base64.ts @@ -1,4 +1,4 @@ -'use turbopack no side effects' +'use turbopack: no side effects' // Evaluate the ES2024 feature check once at module load time. const _fromBase64: ((s: string) => Uint8Array) | null = diff --git a/turbopack/crates/turbopack-ecmascript/src/bytes_source_transform.rs b/turbopack/crates/turbopack-ecmascript/src/bytes_source_transform.rs index 916bfa7cf2fb..ad263801a32c 100644 --- a/turbopack/crates/turbopack-ecmascript/src/bytes_source_transform.rs +++ b/turbopack/crates/turbopack-ecmascript/src/bytes_source_transform.rs @@ -51,7 +51,7 @@ impl SourceTransform for BytesSourceTransform { // Generate ES module that decodes base64 to Uint8Array with inline source map. let code = format!( - r#""use turbopack no side effects"; + r#""use turbopack: no side effects"; import {{ base64Decode }} from '@turbopack/base64'; export default base64Decode({}); {}"#, diff --git a/turbopack/crates/turbopack-ecmascript/src/directive.rs b/turbopack/crates/turbopack-ecmascript/src/directive.rs index 58c21eb0a750..8f255891d8c3 100644 --- a/turbopack/crates/turbopack-ecmascript/src/directive.rs +++ b/turbopack/crates/turbopack-ecmascript/src/directive.rs @@ -37,6 +37,8 @@ pub fn parse_module_turbopack_directives(program: &Program) -> TurbopackDirectiv && let Expr::Lit(Lit::Str(Str { value, .. })) = &*expr.expr { match &*value.to_string_lossy() { + "use turbopack: no side effects" => result.no_side_effects = true, + // Keep for backwards compatibility "use turbopack no side effects" => result.no_side_effects = true, "use turbopack: constants" => result.constants_module = true, v if v.starts_with("use turbopack ") => { diff --git a/turbopack/crates/turbopack-ecmascript/src/json_source_transform.rs b/turbopack/crates/turbopack-ecmascript/src/json_source_transform.rs index b5f94b6feec5..9a9577ed2a00 100644 --- a/turbopack/crates/turbopack-ecmascript/src/json_source_transform.rs +++ b/turbopack/crates/turbopack-ecmascript/src/json_source_transform.rs @@ -67,13 +67,13 @@ impl SourceTransform for JsonSourceTransform { FileJsonContent::Content(data) => { let data_str = data.to_string(); - // The "use turbopack no side effects" directive marks this module as + // The "use turbopack: no side effects" directive marks this module as // side-effect free for tree shaking let mut code = String::with_capacity( data_str.len() + 100, /* estimate to account for our `use` comment, export * overhead and sourcemap comment */ ); - code.push_str("\"use turbopack no side effects\";\n"); + code.push_str("\"use turbopack: no side effects\";\n"); let rename_pattern = if this.use_esm { // Spec-compliant ESM: only default export diff --git a/turbopack/crates/turbopack-ecmascript/src/text_source_transform.rs b/turbopack/crates/turbopack-ecmascript/src/text_source_transform.rs index b62497521b7b..d1ad989f163a 100644 --- a/turbopack/crates/turbopack-ecmascript/src/text_source_transform.rs +++ b/turbopack/crates/turbopack-ecmascript/src/text_source_transform.rs @@ -46,7 +46,7 @@ impl SourceTransform for TextSourceTransform { // Generate ES module with inline source map pointing back to the original file. let code = format!( - "\"use turbopack no side effects\";\nexport default {};\n{}", + "\"use turbopack: no side effects\";\nexport default {};\n{}", StringifyJs(&text), inline_source_map_comment(&ident.path.path, &text) ); diff --git a/turbopack/crates/turbopack-tests/tests/execution/turbopack/side-effects-optimization/comptime/input/node_modules/package-directive/dep.js b/turbopack/crates/turbopack-tests/tests/execution/turbopack/side-effects-optimization/comptime/input/node_modules/package-directive/dep.js index 1c0930c90ea3..a9061a915783 100644 --- a/turbopack/crates/turbopack-tests/tests/execution/turbopack/side-effects-optimization/comptime/input/node_modules/package-directive/dep.js +++ b/turbopack/crates/turbopack-tests/tests/execution/turbopack/side-effects-optimization/comptime/input/node_modules/package-directive/dep.js @@ -1,3 +1,3 @@ -'use turbopack no side effects' +'use turbopack: no side effects' module.exports = 123 diff --git a/turbopack/crates/turbopack-tests/tests/execution/turbopack/side-effects-optimization/directive/input/lib/bar.js b/turbopack/crates/turbopack-tests/tests/execution/turbopack/side-effects-optimization/directive/input/lib/bar.js index 36f46cdf394b..3ec3a1d57ea0 100644 --- a/turbopack/crates/turbopack-tests/tests/execution/turbopack/side-effects-optimization/directive/input/lib/bar.js +++ b/turbopack/crates/turbopack-tests/tests/execution/turbopack/side-effects-optimization/directive/input/lib/bar.js @@ -1,3 +1,3 @@ -'use turbopack no side effects' +'use turbopack: no side effects' export const bar = 123 diff --git a/turbopack/crates/turbopack-tests/tests/execution/turbopack/side-effects-optimization/directive/input/lib/foo.js b/turbopack/crates/turbopack-tests/tests/execution/turbopack/side-effects-optimization/directive/input/lib/foo.js index 226ba93dc4c1..e46508cdde41 100644 --- a/turbopack/crates/turbopack-tests/tests/execution/turbopack/side-effects-optimization/directive/input/lib/foo.js +++ b/turbopack/crates/turbopack-tests/tests/execution/turbopack/side-effects-optimization/directive/input/lib/foo.js @@ -1,3 +1,3 @@ -'use turbopack no side effects' +'use turbopack: no side effects' export const foo = 789 diff --git a/turbopack/crates/turbopack-tests/tests/execution/turbopack/side-effects-optimization/directive/input/lib/index.js b/turbopack/crates/turbopack-tests/tests/execution/turbopack/side-effects-optimization/directive/input/lib/index.js index 7573d1e59a21..036c8955bec1 100644 --- a/turbopack/crates/turbopack-tests/tests/execution/turbopack/side-effects-optimization/directive/input/lib/index.js +++ b/turbopack/crates/turbopack-tests/tests/execution/turbopack/side-effects-optimization/directive/input/lib/index.js @@ -1,4 +1,4 @@ -'use turbopack no side effects' +'use turbopack: no side effects' export { foo } from './foo' export { bar } from './bar' From 508e563cca06f68c512a55fcf8f8a20e1fa44306 Mon Sep 17 00:00:00 2001 From: "next-js-bot[bot]" <279046576+next-js-bot[bot]@users.noreply.github.com> Date: Thu, 20 Aug 2026 17:07:16 +0000 Subject: [PATCH 6/6] Upgrade React from `eb8feb71-20260814` to `eafeac09-20260819` (#97636) Co-authored-by: next-js-bot[bot] <279046576+next-js-bot[bot]@users.noreply.github.com> --- package.json | 30 +- .../cjs/react-dom-client.development.js | 20 +- .../cjs/react-dom-client.production.js | 20 +- .../cjs/react-dom-profiling.development.js | 20 +- .../cjs/react-dom-profiling.profiling.js | 20 +- ...t-dom-server-legacy.browser.development.js | 2 +- ...ct-dom-server-legacy.browser.production.js | 2 +- ...eact-dom-server-legacy.node.development.js | 2 +- ...react-dom-server-legacy.node.production.js | 2 +- .../react-dom-server.browser.development.js | 6 +- .../react-dom-server.browser.production.js | 6 +- .../cjs/react-dom-server.bun.production.js | 6 +- .../cjs/react-dom-server.edge.development.js | 6 +- .../cjs/react-dom-server.edge.production.js | 6 +- .../cjs/react-dom-server.node.development.js | 6 +- .../cjs/react-dom-server.node.production.js | 6 +- .../react-dom-unstable_testing.development.js | 20 +- .../react-dom-unstable_testing.production.js | 20 +- .../cjs/react-dom.development.js | 2 +- .../cjs/react-dom.production.js | 2 +- .../cjs/react-dom.react-server.development.js | 2 +- .../cjs/react-dom.react-server.production.js | 2 +- .../react-dom-experimental/package.json | 4 +- .../cjs/react-dom-client.development.js | 20 +- .../cjs/react-dom-client.production.js | 20 +- .../cjs/react-dom-profiling.development.js | 20 +- .../cjs/react-dom-profiling.profiling.js | 20 +- ...t-dom-server-legacy.browser.development.js | 2 +- ...ct-dom-server-legacy.browser.production.js | 2 +- ...eact-dom-server-legacy.node.development.js | 2 +- ...react-dom-server-legacy.node.production.js | 2 +- .../react-dom-server.browser.development.js | 6 +- .../react-dom-server.browser.production.js | 6 +- .../cjs/react-dom-server.bun.production.js | 6 +- .../cjs/react-dom-server.edge.development.js | 6 +- .../cjs/react-dom-server.edge.production.js | 6 +- .../cjs/react-dom-server.node.development.js | 6 +- .../cjs/react-dom-server.node.production.js | 6 +- .../react-dom/cjs/react-dom.development.js | 2 +- .../react-dom/cjs/react-dom.production.js | 2 +- .../cjs/react-dom.react-server.development.js | 2 +- .../cjs/react-dom.react-server.production.js | 2 +- .../next/src/compiled/react-dom/package.json | 4 +- .../cjs/react.development.js | 2 +- .../cjs/react.production.js | 2 +- .../cjs/react.react-server.development.js | 2 +- .../cjs/react.react-server.production.js | 2 +- .../next/src/compiled/react-is/package.json | 2 +- ...om-turbopack-client.browser.development.js | 4 +- .../package.json | 4 +- ...om-turbopack-client.browser.development.js | 4 +- .../react-server-dom-turbopack/package.json | 4 +- ...-dom-webpack-client.browser.development.js | 4 +- .../package.json | 4 +- ...-dom-webpack-client.browser.development.js | 4 +- .../react-server-dom-webpack/package.json | 4 +- .../compiled/react/cjs/react.development.js | 2 +- .../compiled/react/cjs/react.production.js | 2 +- .../cjs/react.react-server.development.js | 2 +- .../cjs/react.react-server.production.js | 2 +- .../next/src/compiled/unistore/unistore.js | 2 +- pnpm-lock.yaml | 1186 ++++++++--------- 62 files changed, 816 insertions(+), 776 deletions(-) diff --git a/package.json b/package.json index e9dbdd7adb96..45a01c3aec21 100644 --- a/package.json +++ b/package.json @@ -262,24 +262,24 @@ "pretty-ms": "7.0.0", "random-seed": "0.3.0", "react": "19.0.0", - "react-builtin": "npm:react@19.3.0-canary-eb8feb71-20260814", + "react-builtin": "npm:react@19.3.0-canary-eafeac09-20260819", "react-dom": "19.0.0", - "react-dom-builtin": "npm:react-dom@19.3.0-canary-eb8feb71-20260814", - "react-dom-experimental-builtin": "npm:react-dom@0.0.0-experimental-eb8feb71-20260814", - "react-experimental-builtin": "npm:react@0.0.0-experimental-eb8feb71-20260814", - "react-is-builtin": "npm:react-is@19.3.0-canary-eb8feb71-20260814", - "react-server-dom-turbopack": "npm:react-server-dom-turbopack@19.3.0-canary-eb8feb71-20260814", - "react-server-dom-turbopack-experimental": "npm:react-server-dom-turbopack@0.0.0-experimental-eb8feb71-20260814", - "react-server-dom-webpack": "npm:react-server-dom-webpack@19.3.0-canary-eb8feb71-20260814", - "react-server-dom-webpack-experimental": "npm:react-server-dom-webpack@0.0.0-experimental-eb8feb71-20260814", + "react-dom-builtin": "npm:react-dom@19.3.0-canary-eafeac09-20260819", + "react-dom-experimental-builtin": "npm:react-dom@0.0.0-experimental-eafeac09-20260819", + "react-experimental-builtin": "npm:react@0.0.0-experimental-eafeac09-20260819", + "react-is-builtin": "npm:react-is@19.3.0-canary-eafeac09-20260819", + "react-server-dom-turbopack": "npm:react-server-dom-turbopack@19.3.0-canary-eafeac09-20260819", + "react-server-dom-turbopack-experimental": "npm:react-server-dom-turbopack@0.0.0-experimental-eafeac09-20260819", + "react-server-dom-webpack": "npm:react-server-dom-webpack@19.3.0-canary-eafeac09-20260819", + "react-server-dom-webpack-experimental": "npm:react-server-dom-webpack@0.0.0-experimental-eafeac09-20260819", "react-ssr-prepass": "1.0.8", "react-virtualized": "9.22.3", "request-promise-core": "1.1.2", "resolve-from": "5.0.0", "sass": "1.54.0", "satori": "0.29.0", - "scheduler-builtin": "npm:scheduler@0.28.0-canary-eb8feb71-20260814", - "scheduler-experimental-builtin": "npm:scheduler@0.0.0-experimental-eb8feb71-20260814", + "scheduler-builtin": "npm:scheduler@0.28.0-canary-eafeac09-20260819", + "scheduler-experimental-builtin": "npm:scheduler@0.0.0-experimental-eafeac09-20260819", "seedrandom": "3.0.5", "semver": "7.3.7", "serve-handler": "6.1.6", @@ -324,10 +324,10 @@ "@types/react-dom": "19.2.4", "@types/retry": "0.12.0", "jest-snapshot": "30.0.0-alpha.6", - "react": "npm:react@19.3.0-canary-eb8feb71-20260814", - "react-dom": "npm:react-dom@19.3.0-canary-eb8feb71-20260814", - "react-is": "npm:react-is@19.3.0-canary-eb8feb71-20260814", - "scheduler": "npm:scheduler@0.28.0-canary-eb8feb71-20260814" + "react": "npm:react@19.3.0-canary-eafeac09-20260819", + "react-dom": "npm:react-dom@19.3.0-canary-eafeac09-20260819", + "react-is": "npm:react-is@19.3.0-canary-eafeac09-20260819", + "scheduler": "npm:scheduler@0.28.0-canary-eafeac09-20260819" }, "packageExtensions": { "eslint-plugin-react-hooks@0.0.0-experimental-6de32a5a-20250822": { diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-client.development.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-client.development.js index 98aa643fae67..e2ebed9b5452 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-client.development.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-client.development.js @@ -16827,9 +16827,13 @@ case 21: break; case 7: - current && - null !== current.stateNode && - (current.stateNode._fragmentFiber = finishedWork); + flags & 512 && + (offscreenSubtreeWasHidden || + null === current || + safelyDetachRef(current, current.return)), + current && + null !== current.stateNode && + (current.stateNode._fragmentFiber = finishedWork); default: recursivelyTraverseMutationEffects(root, finishedWork, lanes), commitReconciliationEffects(finishedWork); @@ -33365,11 +33369,11 @@ }; (function () { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-experimental-eb8feb71-20260814" !== isomorphicReactPackageVersion) + if ("19.3.0-experimental-eafeac09-20260819" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.3.0-experimental-eb8feb71-20260814\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-experimental-eafeac09-20260819\nLearn more: https://react.dev/warnings/version-mismatch") ); })(); ("function" === typeof Map && @@ -33406,10 +33410,10 @@ !(function () { var internals = { bundleType: 1, - version: "19.3.0-experimental-eb8feb71-20260814", + version: "19.3.0-experimental-eafeac09-20260819", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.3.0-experimental-eb8feb71-20260814" + reconcilerVersion: "19.3.0-experimental-eafeac09-20260819" }; internals.overrideHookState = overrideHookState; internals.overrideHookStateDeletePath = overrideHookStateDeletePath; @@ -33557,7 +33561,7 @@ listenToAllSupportedEvents(container); return new ReactDOMHydrationRoot(initialChildren); }; - exports.version = "19.3.0-experimental-eb8feb71-20260814"; + exports.version = "19.3.0-experimental-eafeac09-20260819"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-client.production.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-client.production.js index d36741601c8e..88855d2a1ed4 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-client.production.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-client.production.js @@ -11452,9 +11452,13 @@ function commitMutationEffectsOnFiber(finishedWork, root, lanes) { case 21: break; case 7: - current && - null !== current.stateNode && - (current.stateNode._fragmentFiber = finishedWork); + flags & 512 && + (offscreenSubtreeWasHidden || + null === current || + safelyDetachRef(current, current.return)), + current && + null !== current.stateNode && + (current.stateNode._fragmentFiber = finishedWork); default: recursivelyTraverseMutationEffects(root, finishedWork, lanes), commitReconciliationEffects(finishedWork); @@ -20358,14 +20362,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) { }; var isomorphicReactPackageVersion$jscomp$inline_2233 = React.version; if ( - "19.3.0-experimental-eb8feb71-20260814" !== + "19.3.0-experimental-eafeac09-20260819" !== isomorphicReactPackageVersion$jscomp$inline_2233 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_2233, - "19.3.0-experimental-eb8feb71-20260814" + "19.3.0-experimental-eafeac09-20260819" ) ); ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { @@ -20387,10 +20391,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { }; var internals$jscomp$inline_2889 = { bundleType: 0, - version: "19.3.0-experimental-eb8feb71-20260814", + version: "19.3.0-experimental-eafeac09-20260819", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.3.0-experimental-eb8feb71-20260814" + reconcilerVersion: "19.3.0-experimental-eafeac09-20260819" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_2890 = __REACT_DEVTOOLS_GLOBAL_HOOK__; @@ -20497,4 +20501,4 @@ exports.hydrateRoot = function (container, initialChildren, options) { listenToAllSupportedEvents(container); return new ReactDOMHydrationRoot(initialChildren); }; -exports.version = "19.3.0-experimental-eb8feb71-20260814"; +exports.version = "19.3.0-experimental-eafeac09-20260819"; diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-profiling.development.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-profiling.development.js index fe7c140ac9f6..fa84c198aa73 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-profiling.development.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-profiling.development.js @@ -16835,9 +16835,13 @@ case 21: break; case 7: - current && - null !== current.stateNode && - (current.stateNode._fragmentFiber = finishedWork); + flags & 512 && + (offscreenSubtreeWasHidden || + null === current || + safelyDetachRef(current, current.return)), + current && + null !== current.stateNode && + (current.stateNode._fragmentFiber = finishedWork); default: recursivelyTraverseMutationEffects(root, finishedWork, lanes), commitReconciliationEffects(finishedWork); @@ -33422,11 +33426,11 @@ }; (function () { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-experimental-eb8feb71-20260814" !== isomorphicReactPackageVersion) + if ("19.3.0-experimental-eafeac09-20260819" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.3.0-experimental-eb8feb71-20260814\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-experimental-eafeac09-20260819\nLearn more: https://react.dev/warnings/version-mismatch") ); })(); ("function" === typeof Map && @@ -33463,10 +33467,10 @@ !(function () { var internals = { bundleType: 1, - version: "19.3.0-experimental-eb8feb71-20260814", + version: "19.3.0-experimental-eafeac09-20260819", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.3.0-experimental-eb8feb71-20260814" + reconcilerVersion: "19.3.0-experimental-eafeac09-20260819" }; internals.overrideHookState = overrideHookState; internals.overrideHookStateDeletePath = overrideHookStateDeletePath; @@ -33956,7 +33960,7 @@ exports.useFormStatus = function () { return resolveDispatcher().useHostTransitionStatus(); }; - exports.version = "19.3.0-experimental-eb8feb71-20260814"; + exports.version = "19.3.0-experimental-eafeac09-20260819"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-profiling.profiling.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-profiling.profiling.js index 91010d7473fa..f7cc6850c689 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-profiling.profiling.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-profiling.profiling.js @@ -12361,9 +12361,13 @@ function commitMutationEffectsOnFiber(finishedWork, root, lanes) { case 21: break; case 7: - current && - null !== current.stateNode && - (current.stateNode._fragmentFiber = finishedWork); + flags & 512 && + (offscreenSubtreeWasHidden || + null === current || + safelyDetachRef(current, current.return)), + current && + null !== current.stateNode && + (current.stateNode._fragmentFiber = finishedWork); default: recursivelyTraverseMutationEffects(root, finishedWork, lanes), commitReconciliationEffects(finishedWork); @@ -22445,14 +22449,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) { }; var isomorphicReactPackageVersion$jscomp$inline_2537 = React.version; if ( - "19.3.0-experimental-eb8feb71-20260814" !== + "19.3.0-experimental-eafeac09-20260819" !== isomorphicReactPackageVersion$jscomp$inline_2537 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_2537, - "19.3.0-experimental-eb8feb71-20260814" + "19.3.0-experimental-eafeac09-20260819" ) ); ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { @@ -22474,10 +22478,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { }; var internals$jscomp$inline_3210 = { bundleType: 0, - version: "19.3.0-experimental-eb8feb71-20260814", + version: "19.3.0-experimental-eafeac09-20260819", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.3.0-experimental-eb8feb71-20260814" + reconcilerVersion: "19.3.0-experimental-eafeac09-20260819" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_3211 = __REACT_DEVTOOLS_GLOBAL_HOOK__; @@ -22757,7 +22761,7 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactSharedInternals.H.useHostTransitionStatus(); }; -exports.version = "19.3.0-experimental-eb8feb71-20260814"; +exports.version = "19.3.0-experimental-eafeac09-20260819"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.browser.development.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.browser.development.js index f7ccc150191b..e658d44edba8 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.browser.development.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.browser.development.js @@ -10816,5 +10816,5 @@ 'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToReadableStream" which supports Suspense on the server' ); }; - exports.version = "19.3.0-experimental-eb8feb71-20260814"; + exports.version = "19.3.0-experimental-eafeac09-20260819"; })(); diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.browser.production.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.browser.production.js index 036fc904cd36..88e68a0844fe 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.browser.production.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.browser.production.js @@ -7245,4 +7245,4 @@ exports.renderToString = function (children, options) { 'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToReadableStream" which supports Suspense on the server' ); }; -exports.version = "19.3.0-experimental-eb8feb71-20260814"; +exports.version = "19.3.0-experimental-eafeac09-20260819"; diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.node.development.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.node.development.js index eab4633b3729..490369ddf16e 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.node.development.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.node.development.js @@ -10816,5 +10816,5 @@ 'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToPipeableStream" which supports Suspense on the server' ); }; - exports.version = "19.3.0-experimental-eb8feb71-20260814"; + exports.version = "19.3.0-experimental-eafeac09-20260819"; })(); diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.node.production.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.node.production.js index ee202cd68c0b..bfe7cf87b680 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.node.production.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.node.production.js @@ -7350,4 +7350,4 @@ exports.renderToString = function (children, options) { 'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToPipeableStream" which supports Suspense on the server' ); }; -exports.version = "19.3.0-experimental-eb8feb71-20260814"; +exports.version = "19.3.0-experimental-eafeac09-20260819"; diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.browser.development.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.browser.development.js index f0de96ffc516..189cf84ef13f 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.browser.development.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.browser.development.js @@ -9827,11 +9827,11 @@ } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-experimental-eb8feb71-20260814" !== isomorphicReactPackageVersion) + if ("19.3.0-experimental-eafeac09-20260819" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.3.0-experimental-eb8feb71-20260814\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-experimental-eafeac09-20260819\nLearn more: https://react.dev/warnings/version-mismatch") ); } var React = require("next/dist/compiled/react-experimental"), @@ -11667,5 +11667,5 @@ startWork(request); }); }; - exports.version = "19.3.0-experimental-eb8feb71-20260814"; + exports.version = "19.3.0-experimental-eafeac09-20260819"; })(); diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.browser.production.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.browser.production.js index 6efd5603c324..d39f57545a9f 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.browser.production.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.browser.production.js @@ -7950,12 +7950,12 @@ function getPostponedState(request) { } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-experimental-eb8feb71-20260814" !== isomorphicReactPackageVersion) + if ("19.3.0-experimental-eafeac09-20260819" !== isomorphicReactPackageVersion) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion, - "19.3.0-experimental-eb8feb71-20260814" + "19.3.0-experimental-eafeac09-20260819" ) ); } @@ -8210,4 +8210,4 @@ exports.resumeAndPrerender = function (children, postponedState, options) { startWork(request); }); }; -exports.version = "19.3.0-experimental-eb8feb71-20260814"; +exports.version = "19.3.0-experimental-eafeac09-20260819"; diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.bun.production.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.bun.production.js index 45dea04cb0df..ea3b930d612f 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.bun.production.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.bun.production.js @@ -7646,11 +7646,11 @@ function getPostponedState(request) { } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-experimental-eb8feb71-20260814" !== isomorphicReactPackageVersion) + if ("19.3.0-experimental-eafeac09-20260819" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.3.0-experimental-eb8feb71-20260814\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-experimental-eafeac09-20260819\nLearn more: https://react.dev/warnings/version-mismatch") ); } ensureCorrectIsomorphicReactVersion(); @@ -8203,4 +8203,4 @@ exports.resumeToPipeableStream = function (children, postponedState, options) { } }; }; -exports.version = "19.3.0-experimental-eb8feb71-20260814"; +exports.version = "19.3.0-experimental-eafeac09-20260819"; diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.edge.development.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.edge.development.js index 9238a9f47343..789f5380c9bb 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.edge.development.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.edge.development.js @@ -9856,11 +9856,11 @@ } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-experimental-eb8feb71-20260814" !== isomorphicReactPackageVersion) + if ("19.3.0-experimental-eafeac09-20260819" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.3.0-experimental-eb8feb71-20260814\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-experimental-eafeac09-20260819\nLearn more: https://react.dev/warnings/version-mismatch") ); } var React = require("next/dist/compiled/react-experimental"), @@ -11692,5 +11692,5 @@ startWork(request); }); }; - exports.version = "19.3.0-experimental-eb8feb71-20260814"; + exports.version = "19.3.0-experimental-eafeac09-20260819"; })(); diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.edge.production.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.edge.production.js index b65af483d27c..948c4e0c98f0 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.edge.production.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.edge.production.js @@ -8070,11 +8070,11 @@ function getPostponedState(request) { } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-experimental-eb8feb71-20260814" !== isomorphicReactPackageVersion) + if ("19.3.0-experimental-eafeac09-20260819" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.3.0-experimental-eb8feb71-20260814\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-experimental-eafeac09-20260819\nLearn more: https://react.dev/warnings/version-mismatch") ); } ensureCorrectIsomorphicReactVersion(); @@ -8328,4 +8328,4 @@ exports.resumeAndPrerender = function (children, postponedState, options) { startWork(request); }); }; -exports.version = "19.3.0-experimental-eb8feb71-20260814"; +exports.version = "19.3.0-experimental-eafeac09-20260819"; diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.node.development.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.node.development.js index 08a79665358c..10ba0faf5e2c 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.node.development.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.node.development.js @@ -9717,11 +9717,11 @@ } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-experimental-eb8feb71-20260814" !== isomorphicReactPackageVersion) + if ("19.3.0-experimental-eafeac09-20260819" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.3.0-experimental-eb8feb71-20260814\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-experimental-eafeac09-20260819\nLearn more: https://react.dev/warnings/version-mismatch") ); } function createDrainHandler(destination, request) { @@ -11863,5 +11863,5 @@ } }; }; - exports.version = "19.3.0-experimental-eb8feb71-20260814"; + exports.version = "19.3.0-experimental-eafeac09-20260819"; })(); diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.node.production.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.node.production.js index a56e621068ba..bc2fc9d3598a 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.node.production.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.node.production.js @@ -7949,11 +7949,11 @@ function getPostponedState(request) { } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-experimental-eb8feb71-20260814" !== isomorphicReactPackageVersion) + if ("19.3.0-experimental-eafeac09-20260819" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.3.0-experimental-eb8feb71-20260814\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-experimental-eafeac09-20260819\nLearn more: https://react.dev/warnings/version-mismatch") ); } ensureCorrectIsomorphicReactVersion(); @@ -8511,4 +8511,4 @@ exports.resumeToPipeableStream = function (children, postponedState, options) { } }; }; -exports.version = "19.3.0-experimental-eb8feb71-20260814"; +exports.version = "19.3.0-experimental-eafeac09-20260819"; diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-unstable_testing.development.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-unstable_testing.development.js index 672100638aaa..eec8da622c21 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-unstable_testing.development.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-unstable_testing.development.js @@ -16868,9 +16868,13 @@ case 21: break; case 7: - current && - null !== current.stateNode && - (current.stateNode._fragmentFiber = finishedWork); + flags & 512 && + (offscreenSubtreeWasHidden || + null === current || + safelyDetachRef(current, current.return)), + current && + null !== current.stateNode && + (current.stateNode._fragmentFiber = finishedWork); default: recursivelyTraverseMutationEffects(root, finishedWork, lanes), commitReconciliationEffects(finishedWork); @@ -33686,11 +33690,11 @@ }; (function () { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-experimental-eb8feb71-20260814" !== isomorphicReactPackageVersion) + if ("19.3.0-experimental-eafeac09-20260819" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.3.0-experimental-eb8feb71-20260814\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-experimental-eafeac09-20260819\nLearn more: https://react.dev/warnings/version-mismatch") ); })(); ("function" === typeof Map && @@ -33727,10 +33731,10 @@ !(function () { var internals = { bundleType: 1, - version: "19.3.0-experimental-eb8feb71-20260814", + version: "19.3.0-experimental-eafeac09-20260819", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.3.0-experimental-eb8feb71-20260814" + reconcilerVersion: "19.3.0-experimental-eafeac09-20260819" }; internals.overrideHookState = overrideHookState; internals.overrideHookStateDeletePath = overrideHookStateDeletePath; @@ -34044,5 +34048,5 @@ } }; }; - exports.version = "19.3.0-experimental-eb8feb71-20260814"; + exports.version = "19.3.0-experimental-eafeac09-20260819"; })(); diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-unstable_testing.production.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-unstable_testing.production.js index cc5e1ad16c64..0e981051e7f6 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-unstable_testing.production.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-unstable_testing.production.js @@ -11538,9 +11538,13 @@ function commitMutationEffectsOnFiber(finishedWork, root, lanes) { case 21: break; case 7: - current && - null !== current.stateNode && - (current.stateNode._fragmentFiber = finishedWork); + flags & 512 && + (offscreenSubtreeWasHidden || + null === current || + safelyDetachRef(current, current.return)), + current && + null !== current.stateNode && + (current.stateNode._fragmentFiber = finishedWork); default: recursivelyTraverseMutationEffects(root, finishedWork, lanes), commitReconciliationEffects(finishedWork); @@ -20674,14 +20678,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) { }; var isomorphicReactPackageVersion$jscomp$inline_2262 = React.version; if ( - "19.3.0-experimental-eb8feb71-20260814" !== + "19.3.0-experimental-eafeac09-20260819" !== isomorphicReactPackageVersion$jscomp$inline_2262 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_2262, - "19.3.0-experimental-eb8feb71-20260814" + "19.3.0-experimental-eafeac09-20260819" ) ); ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { @@ -20703,10 +20707,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { }; var internals$jscomp$inline_2923 = { bundleType: 0, - version: "19.3.0-experimental-eb8feb71-20260814", + version: "19.3.0-experimental-eafeac09-20260819", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.3.0-experimental-eb8feb71-20260814" + reconcilerVersion: "19.3.0-experimental-eafeac09-20260819" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_2924 = __REACT_DEVTOOLS_GLOBAL_HOOK__; @@ -20964,4 +20968,4 @@ exports.observeVisibleRects = function ( } }; }; -exports.version = "19.3.0-experimental-eb8feb71-20260814"; +exports.version = "19.3.0-experimental-eafeac09-20260819"; diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.development.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.development.js index ee153f75dc54..9bb8e1c76bc1 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.development.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.development.js @@ -435,7 +435,7 @@ exports.useFormStatus = function () { return resolveDispatcher().useHostTransitionStatus(); }; - exports.version = "19.3.0-experimental-eb8feb71-20260814"; + exports.version = "19.3.0-experimental-eafeac09-20260819"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.production.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.production.js index 5fdac1ae5c7f..650ba5bd3e22 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.production.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.production.js @@ -226,4 +226,4 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactSharedInternals.H.useHostTransitionStatus(); }; -exports.version = "19.3.0-experimental-eb8feb71-20260814"; +exports.version = "19.3.0-experimental-eafeac09-20260819"; diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.react-server.development.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.react-server.development.js index 9390acee20d1..5f7af2f4b2a4 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.react-server.development.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.react-server.development.js @@ -345,5 +345,5 @@ })) : Internals.d.m(href)); }; - exports.version = "19.3.0-experimental-eb8feb71-20260814"; + exports.version = "19.3.0-experimental-eafeac09-20260819"; })(); diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.react-server.production.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.react-server.production.js index 38ee6f20540c..b3b76ed3e133 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.react-server.production.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.react-server.production.js @@ -158,4 +158,4 @@ exports.preloadModule = function (href, options) { }); } else Internals.d.m(href); }; -exports.version = "19.3.0-experimental-eb8feb71-20260814"; +exports.version = "19.3.0-experimental-eafeac09-20260819"; diff --git a/packages/next/src/compiled/react-dom-experimental/package.json b/packages/next/src/compiled/react-dom-experimental/package.json index d7fb5466c84e..e70e95afb757 100644 --- a/packages/next/src/compiled/react-dom-experimental/package.json +++ b/packages/next/src/compiled/react-dom-experimental/package.json @@ -72,10 +72,10 @@ "./package.json": "./package.json" }, "dependencies": { - "scheduler": "0.0.0-experimental-eb8feb71-20260814" + "scheduler": "0.0.0-experimental-eafeac09-20260819" }, "peerDependencies": { - "react": "0.0.0-experimental-eb8feb71-20260814" + "react": "0.0.0-experimental-eafeac09-20260819" }, "browser": { "./server.js": "./server.browser.js", diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-client.development.js b/packages/next/src/compiled/react-dom/cjs/react-dom-client.development.js index 8f639ee080c5..a977663dc66f 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-client.development.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-client.development.js @@ -16275,9 +16275,13 @@ case 21: break; case 7: - current && - null !== current.stateNode && - (current.stateNode._fragmentFiber = finishedWork); + flags & 512 && + (offscreenSubtreeWasHidden || + null === current || + safelyDetachRef(current, current.return)), + current && + null !== current.stateNode && + (current.stateNode._fragmentFiber = finishedWork); default: recursivelyTraverseMutationEffects(root, finishedWork, lanes), commitReconciliationEffects(finishedWork); @@ -30934,11 +30938,11 @@ }; (function () { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-canary-eb8feb71-20260814" !== isomorphicReactPackageVersion) + if ("19.3.0-canary-eafeac09-20260819" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.3.0-canary-eb8feb71-20260814\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-canary-eafeac09-20260819\nLearn more: https://react.dev/warnings/version-mismatch") ); })(); ("function" === typeof Map && @@ -30975,10 +30979,10 @@ !(function () { var internals = { bundleType: 1, - version: "19.3.0-canary-eb8feb71-20260814", + version: "19.3.0-canary-eafeac09-20260819", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.3.0-canary-eb8feb71-20260814" + reconcilerVersion: "19.3.0-canary-eafeac09-20260819" }; internals.overrideHookState = overrideHookState; internals.overrideHookStateDeletePath = overrideHookStateDeletePath; @@ -31116,7 +31120,7 @@ listenToAllSupportedEvents(container); return new ReactDOMHydrationRoot(initialChildren); }; - exports.version = "19.3.0-canary-eb8feb71-20260814"; + exports.version = "19.3.0-canary-eafeac09-20260819"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-client.production.js b/packages/next/src/compiled/react-dom/cjs/react-dom-client.production.js index 4cc7accf3732..d4793078dc21 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-client.production.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-client.production.js @@ -10908,9 +10908,13 @@ function commitMutationEffectsOnFiber(finishedWork, root, lanes) { case 21: break; case 7: - current && - null !== current.stateNode && - (current.stateNode._fragmentFiber = finishedWork); + flags & 512 && + (offscreenSubtreeWasHidden || + null === current || + safelyDetachRef(current, current.return)), + current && + null !== current.stateNode && + (current.stateNode._fragmentFiber = finishedWork); default: recursivelyTraverseMutationEffects(root, finishedWork, lanes), commitReconciliationEffects(finishedWork); @@ -18427,14 +18431,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) { }; var isomorphicReactPackageVersion$jscomp$inline_2040 = React.version; if ( - "19.3.0-canary-eb8feb71-20260814" !== + "19.3.0-canary-eafeac09-20260819" !== isomorphicReactPackageVersion$jscomp$inline_2040 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_2040, - "19.3.0-canary-eb8feb71-20260814" + "19.3.0-canary-eafeac09-20260819" ) ); ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { @@ -18456,10 +18460,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { }; var internals$jscomp$inline_2583 = { bundleType: 0, - version: "19.3.0-canary-eb8feb71-20260814", + version: "19.3.0-canary-eafeac09-20260819", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.3.0-canary-eb8feb71-20260814" + reconcilerVersion: "19.3.0-canary-eafeac09-20260819" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_2584 = __REACT_DEVTOOLS_GLOBAL_HOOK__; @@ -18557,4 +18561,4 @@ exports.hydrateRoot = function (container, initialChildren, options) { listenToAllSupportedEvents(container); return new ReactDOMHydrationRoot(initialChildren); }; -exports.version = "19.3.0-canary-eb8feb71-20260814"; +exports.version = "19.3.0-canary-eafeac09-20260819"; diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-profiling.development.js b/packages/next/src/compiled/react-dom/cjs/react-dom-profiling.development.js index a62ae15fa1b2..78341417a095 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-profiling.development.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-profiling.development.js @@ -16283,9 +16283,13 @@ case 21: break; case 7: - current && - null !== current.stateNode && - (current.stateNode._fragmentFiber = finishedWork); + flags & 512 && + (offscreenSubtreeWasHidden || + null === current || + safelyDetachRef(current, current.return)), + current && + null !== current.stateNode && + (current.stateNode._fragmentFiber = finishedWork); default: recursivelyTraverseMutationEffects(root, finishedWork, lanes), commitReconciliationEffects(finishedWork); @@ -30992,11 +30996,11 @@ }; (function () { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-canary-eb8feb71-20260814" !== isomorphicReactPackageVersion) + if ("19.3.0-canary-eafeac09-20260819" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.3.0-canary-eb8feb71-20260814\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-canary-eafeac09-20260819\nLearn more: https://react.dev/warnings/version-mismatch") ); })(); ("function" === typeof Map && @@ -31033,10 +31037,10 @@ !(function () { var internals = { bundleType: 1, - version: "19.3.0-canary-eb8feb71-20260814", + version: "19.3.0-canary-eafeac09-20260819", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.3.0-canary-eb8feb71-20260814" + reconcilerVersion: "19.3.0-canary-eafeac09-20260819" }; internals.overrideHookState = overrideHookState; internals.overrideHookStateDeletePath = overrideHookStateDeletePath; @@ -31516,7 +31520,7 @@ exports.useFormStatus = function () { return resolveDispatcher().useHostTransitionStatus(); }; - exports.version = "19.3.0-canary-eb8feb71-20260814"; + exports.version = "19.3.0-canary-eafeac09-20260819"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-profiling.profiling.js b/packages/next/src/compiled/react-dom/cjs/react-dom-profiling.profiling.js index e5dbf485bf54..35a63b48cda4 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-profiling.profiling.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-profiling.profiling.js @@ -11785,9 +11785,13 @@ function commitMutationEffectsOnFiber(finishedWork, root, lanes) { case 21: break; case 7: - current && - null !== current.stateNode && - (current.stateNode._fragmentFiber = finishedWork); + flags & 512 && + (offscreenSubtreeWasHidden || + null === current || + safelyDetachRef(current, current.return)), + current && + null !== current.stateNode && + (current.stateNode._fragmentFiber = finishedWork); default: recursivelyTraverseMutationEffects(root, finishedWork, lanes), commitReconciliationEffects(finishedWork); @@ -20361,14 +20365,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) { }; var isomorphicReactPackageVersion$jscomp$inline_2344 = React.version; if ( - "19.3.0-canary-eb8feb71-20260814" !== + "19.3.0-canary-eafeac09-20260819" !== isomorphicReactPackageVersion$jscomp$inline_2344 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_2344, - "19.3.0-canary-eb8feb71-20260814" + "19.3.0-canary-eafeac09-20260819" ) ); ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { @@ -20390,10 +20394,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { }; var internals$jscomp$inline_2900 = { bundleType: 0, - version: "19.3.0-canary-eb8feb71-20260814", + version: "19.3.0-canary-eafeac09-20260819", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.3.0-canary-eb8feb71-20260814" + reconcilerVersion: "19.3.0-canary-eafeac09-20260819" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_2901 = __REACT_DEVTOOLS_GLOBAL_HOOK__; @@ -20664,7 +20668,7 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactSharedInternals.H.useHostTransitionStatus(); }; -exports.version = "19.3.0-canary-eb8feb71-20260814"; +exports.version = "19.3.0-canary-eafeac09-20260819"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.browser.development.js b/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.browser.development.js index ec35d345dffb..57e9e7f8f960 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.browser.development.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.browser.development.js @@ -10429,5 +10429,5 @@ 'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToReadableStream" which supports Suspense on the server' ); }; - exports.version = "19.3.0-canary-eb8feb71-20260814"; + exports.version = "19.3.0-canary-eafeac09-20260819"; })(); diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.browser.production.js b/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.browser.production.js index 3c9483b1f24a..ee6a7ec5a1a8 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.browser.production.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.browser.production.js @@ -6967,4 +6967,4 @@ exports.renderToString = function (children, options) { 'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToReadableStream" which supports Suspense on the server' ); }; -exports.version = "19.3.0-canary-eb8feb71-20260814"; +exports.version = "19.3.0-canary-eafeac09-20260819"; diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js b/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js index 24ffb2ba2db6..05b32e63f818 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js @@ -10429,5 +10429,5 @@ 'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToPipeableStream" which supports Suspense on the server' ); }; - exports.version = "19.3.0-canary-eb8feb71-20260814"; + exports.version = "19.3.0-canary-eafeac09-20260819"; })(); diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.node.production.js b/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.node.production.js index 02824a14617b..e080b5ecb1c7 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.node.production.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.node.production.js @@ -7061,4 +7061,4 @@ exports.renderToString = function (children, options) { 'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToPipeableStream" which supports Suspense on the server' ); }; -exports.version = "19.3.0-canary-eb8feb71-20260814"; +exports.version = "19.3.0-canary-eafeac09-20260819"; diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-server.browser.development.js b/packages/next/src/compiled/react-dom/cjs/react-dom-server.browser.development.js index a08e4d10c3ac..71c3463b7767 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-server.browser.development.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-server.browser.development.js @@ -9395,11 +9395,11 @@ } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-canary-eb8feb71-20260814" !== isomorphicReactPackageVersion) + if ("19.3.0-canary-eafeac09-20260819" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.3.0-canary-eb8feb71-20260814\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-canary-eafeac09-20260819\nLearn more: https://react.dev/warnings/version-mismatch") ); } var React = require("next/dist/compiled/react"), @@ -11218,5 +11218,5 @@ startWork(request); }); }; - exports.version = "19.3.0-canary-eb8feb71-20260814"; + exports.version = "19.3.0-canary-eafeac09-20260819"; })(); diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-server.browser.production.js b/packages/next/src/compiled/react-dom/cjs/react-dom-server.browser.production.js index 4920e612c9c2..f65efa43fab7 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-server.browser.production.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-server.browser.production.js @@ -7589,12 +7589,12 @@ function getPostponedState(request) { } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-canary-eb8feb71-20260814" !== isomorphicReactPackageVersion) + if ("19.3.0-canary-eafeac09-20260819" !== isomorphicReactPackageVersion) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion, - "19.3.0-canary-eb8feb71-20260814" + "19.3.0-canary-eafeac09-20260819" ) ); } @@ -7849,4 +7849,4 @@ exports.resumeAndPrerender = function (children, postponedState, options) { startWork(request); }); }; -exports.version = "19.3.0-canary-eb8feb71-20260814"; +exports.version = "19.3.0-canary-eafeac09-20260819"; diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-server.bun.production.js b/packages/next/src/compiled/react-dom/cjs/react-dom-server.bun.production.js index 58546a4b810a..1a22cd0834f6 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-server.bun.production.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-server.bun.production.js @@ -7300,11 +7300,11 @@ function getPostponedState(request) { } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-canary-eb8feb71-20260814" !== isomorphicReactPackageVersion) + if ("19.3.0-canary-eafeac09-20260819" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.3.0-canary-eb8feb71-20260814\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-canary-eafeac09-20260819\nLearn more: https://react.dev/warnings/version-mismatch") ); } ensureCorrectIsomorphicReactVersion(); @@ -7857,4 +7857,4 @@ exports.resumeToPipeableStream = function (children, postponedState, options) { } }; }; -exports.version = "19.3.0-canary-eb8feb71-20260814"; +exports.version = "19.3.0-canary-eafeac09-20260819"; diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-server.edge.development.js b/packages/next/src/compiled/react-dom/cjs/react-dom-server.edge.development.js index d098cb12705e..de7d4625c5e2 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-server.edge.development.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-server.edge.development.js @@ -9418,11 +9418,11 @@ } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-canary-eb8feb71-20260814" !== isomorphicReactPackageVersion) + if ("19.3.0-canary-eafeac09-20260819" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.3.0-canary-eb8feb71-20260814\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-canary-eafeac09-20260819\nLearn more: https://react.dev/warnings/version-mismatch") ); } var React = require("next/dist/compiled/react"), @@ -11237,5 +11237,5 @@ startWork(request); }); }; - exports.version = "19.3.0-canary-eb8feb71-20260814"; + exports.version = "19.3.0-canary-eafeac09-20260819"; })(); diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-server.edge.production.js b/packages/next/src/compiled/react-dom/cjs/react-dom-server.edge.production.js index 3fad9670af29..47c13b04ab06 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-server.edge.production.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-server.edge.production.js @@ -7698,11 +7698,11 @@ function getPostponedState(request) { } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-canary-eb8feb71-20260814" !== isomorphicReactPackageVersion) + if ("19.3.0-canary-eafeac09-20260819" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.3.0-canary-eb8feb71-20260814\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-canary-eafeac09-20260819\nLearn more: https://react.dev/warnings/version-mismatch") ); } ensureCorrectIsomorphicReactVersion(); @@ -7956,4 +7956,4 @@ exports.resumeAndPrerender = function (children, postponedState, options) { startWork(request); }); }; -exports.version = "19.3.0-canary-eb8feb71-20260814"; +exports.version = "19.3.0-canary-eafeac09-20260819"; diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-server.node.development.js b/packages/next/src/compiled/react-dom/cjs/react-dom-server.node.development.js index a148bab4207c..ee1e4485af8d 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-server.node.development.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-server.node.development.js @@ -9293,11 +9293,11 @@ } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-canary-eb8feb71-20260814" !== isomorphicReactPackageVersion) + if ("19.3.0-canary-eafeac09-20260819" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.3.0-canary-eb8feb71-20260814\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-canary-eafeac09-20260819\nLearn more: https://react.dev/warnings/version-mismatch") ); } function createDrainHandler(destination, request) { @@ -11422,5 +11422,5 @@ } }; }; - exports.version = "19.3.0-canary-eb8feb71-20260814"; + exports.version = "19.3.0-canary-eafeac09-20260819"; })(); diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-server.node.production.js b/packages/next/src/compiled/react-dom/cjs/react-dom-server.node.production.js index e9638b110039..9d16e4bb0a78 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-server.node.production.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-server.node.production.js @@ -7591,11 +7591,11 @@ function getPostponedState(request) { } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-canary-eb8feb71-20260814" !== isomorphicReactPackageVersion) + if ("19.3.0-canary-eafeac09-20260819" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.3.0-canary-eb8feb71-20260814\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-canary-eafeac09-20260819\nLearn more: https://react.dev/warnings/version-mismatch") ); } ensureCorrectIsomorphicReactVersion(); @@ -8153,4 +8153,4 @@ exports.resumeToPipeableStream = function (children, postponedState, options) { } }; }; -exports.version = "19.3.0-canary-eb8feb71-20260814"; +exports.version = "19.3.0-canary-eafeac09-20260819"; diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom.development.js b/packages/next/src/compiled/react-dom/cjs/react-dom.development.js index dca9b31b3713..c1a0e7a6c803 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom.development.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom.development.js @@ -435,7 +435,7 @@ exports.useFormStatus = function () { return resolveDispatcher().useHostTransitionStatus(); }; - exports.version = "19.3.0-canary-eb8feb71-20260814"; + exports.version = "19.3.0-canary-eafeac09-20260819"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom.production.js b/packages/next/src/compiled/react-dom/cjs/react-dom.production.js index db290bcd8b7e..3ca29b897fb0 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom.production.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom.production.js @@ -226,4 +226,4 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactSharedInternals.H.useHostTransitionStatus(); }; -exports.version = "19.3.0-canary-eb8feb71-20260814"; +exports.version = "19.3.0-canary-eafeac09-20260819"; diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom.react-server.development.js b/packages/next/src/compiled/react-dom/cjs/react-dom.react-server.development.js index 1dbbf553b234..0021a7734934 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom.react-server.development.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom.react-server.development.js @@ -345,5 +345,5 @@ })) : Internals.d.m(href)); }; - exports.version = "19.3.0-canary-eb8feb71-20260814"; + exports.version = "19.3.0-canary-eafeac09-20260819"; })(); diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom.react-server.production.js b/packages/next/src/compiled/react-dom/cjs/react-dom.react-server.production.js index 8909b39edd81..c6e9492ca797 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom.react-server.production.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom.react-server.production.js @@ -158,4 +158,4 @@ exports.preloadModule = function (href, options) { }); } else Internals.d.m(href); }; -exports.version = "19.3.0-canary-eb8feb71-20260814"; +exports.version = "19.3.0-canary-eafeac09-20260819"; diff --git a/packages/next/src/compiled/react-dom/package.json b/packages/next/src/compiled/react-dom/package.json index eb117a75e8b8..1a61a817e6bb 100644 --- a/packages/next/src/compiled/react-dom/package.json +++ b/packages/next/src/compiled/react-dom/package.json @@ -67,10 +67,10 @@ "./package.json": "./package.json" }, "dependencies": { - "scheduler": "0.28.0-canary-eb8feb71-20260814" + "scheduler": "0.28.0-canary-eafeac09-20260819" }, "peerDependencies": { - "react": "19.3.0-canary-eb8feb71-20260814" + "react": "19.3.0-canary-eafeac09-20260819" }, "browser": { "./server.js": "./server.browser.js", diff --git a/packages/next/src/compiled/react-experimental/cjs/react.development.js b/packages/next/src/compiled/react-experimental/cjs/react.development.js index b8d17232b3ab..1708cdb58a18 100644 --- a/packages/next/src/compiled/react-experimental/cjs/react.development.js +++ b/packages/next/src/compiled/react-experimental/cjs/react.development.js @@ -1391,7 +1391,7 @@ exports.useTransition = function () { return resolveDispatcher().useTransition(); }; - exports.version = "19.3.0-experimental-eb8feb71-20260814"; + exports.version = "19.3.0-experimental-eafeac09-20260819"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/packages/next/src/compiled/react-experimental/cjs/react.production.js b/packages/next/src/compiled/react-experimental/cjs/react.production.js index 3887bfb84825..690f0112c2b1 100644 --- a/packages/next/src/compiled/react-experimental/cjs/react.production.js +++ b/packages/next/src/compiled/react-experimental/cjs/react.production.js @@ -613,4 +613,4 @@ exports.useSyncExternalStore = function ( exports.useTransition = function () { return ReactSharedInternals.H.useTransition(); }; -exports.version = "19.3.0-experimental-eb8feb71-20260814"; +exports.version = "19.3.0-experimental-eafeac09-20260819"; diff --git a/packages/next/src/compiled/react-experimental/cjs/react.react-server.development.js b/packages/next/src/compiled/react-experimental/cjs/react.react-server.development.js index 1b0d1ddf4544..9bd9c26edd5d 100644 --- a/packages/next/src/compiled/react-experimental/cjs/react.react-server.development.js +++ b/packages/next/src/compiled/react-experimental/cjs/react.react-server.development.js @@ -1061,5 +1061,5 @@ exports.useMemo = function (create, deps) { return resolveDispatcher().useMemo(create, deps); }; - exports.version = "19.3.0-experimental-eb8feb71-20260814"; + exports.version = "19.3.0-experimental-eafeac09-20260819"; })(); diff --git a/packages/next/src/compiled/react-experimental/cjs/react.react-server.production.js b/packages/next/src/compiled/react-experimental/cjs/react.react-server.production.js index 103d9de1a1f1..b0cb3ad030e3 100644 --- a/packages/next/src/compiled/react-experimental/cjs/react.react-server.production.js +++ b/packages/next/src/compiled/react-experimental/cjs/react.react-server.production.js @@ -579,4 +579,4 @@ exports.useId = function () { exports.useMemo = function (create, deps) { return ReactSharedInternals.H.useMemo(create, deps); }; -exports.version = "19.3.0-experimental-eb8feb71-20260814"; +exports.version = "19.3.0-experimental-eafeac09-20260819"; diff --git a/packages/next/src/compiled/react-is/package.json b/packages/next/src/compiled/react-is/package.json index 2c980a3256f3..318ef7ebd123 100644 --- a/packages/next/src/compiled/react-is/package.json +++ b/packages/next/src/compiled/react-is/package.json @@ -1,6 +1,6 @@ { "name": "react-is", - "version": "19.3.0-canary-eb8feb71-20260814", + "version": "19.3.0-canary-eafeac09-20260819", "description": "Brand checking of React Elements.", "main": "index.js", "sideEffects": false, diff --git a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.browser.development.js b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.browser.development.js index fad0678b5999..a28115349388 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.browser.development.js +++ b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.browser.development.js @@ -5251,10 +5251,10 @@ return hook.checkDCE ? !0 : !1; })({ bundleType: 1, - version: "19.3.0-experimental-eb8feb71-20260814", + version: "19.3.0-experimental-eafeac09-20260819", rendererPackageName: "react-server-dom-turbopack", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.3.0-experimental-eb8feb71-20260814", + reconcilerVersion: "19.3.0-experimental-eafeac09-20260819", getCurrentComponentInfo: function () { return currentOwnerInDEV; } diff --git a/packages/next/src/compiled/react-server-dom-turbopack-experimental/package.json b/packages/next/src/compiled/react-server-dom-turbopack-experimental/package.json index a69c69c85752..160a5faf9c05 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack-experimental/package.json +++ b/packages/next/src/compiled/react-server-dom-turbopack-experimental/package.json @@ -48,7 +48,7 @@ "neo-async": "^2.6.1" }, "peerDependencies": { - "react": "0.0.0-experimental-eb8feb71-20260814", - "react-dom": "0.0.0-experimental-eb8feb71-20260814" + "react": "0.0.0-experimental-eafeac09-20260819", + "react-dom": "0.0.0-experimental-eafeac09-20260819" } } \ No newline at end of file diff --git a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.development.js b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.development.js index 0ae15bbff817..17fabf9837cd 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.development.js +++ b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.development.js @@ -5232,10 +5232,10 @@ return hook.checkDCE ? !0 : !1; })({ bundleType: 1, - version: "19.3.0-canary-eb8feb71-20260814", + version: "19.3.0-canary-eafeac09-20260819", rendererPackageName: "react-server-dom-turbopack", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.3.0-canary-eb8feb71-20260814", + reconcilerVersion: "19.3.0-canary-eafeac09-20260819", getCurrentComponentInfo: function () { return currentOwnerInDEV; } diff --git a/packages/next/src/compiled/react-server-dom-turbopack/package.json b/packages/next/src/compiled/react-server-dom-turbopack/package.json index 58853315f48b..33222f960ef7 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack/package.json +++ b/packages/next/src/compiled/react-server-dom-turbopack/package.json @@ -48,7 +48,7 @@ "neo-async": "^2.6.1" }, "peerDependencies": { - "react": "19.3.0-canary-eb8feb71-20260814", - "react-dom": "19.3.0-canary-eb8feb71-20260814" + "react": "19.3.0-canary-eafeac09-20260819", + "react-dom": "19.3.0-canary-eafeac09-20260819" } } \ No newline at end of file diff --git a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.browser.development.js b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.browser.development.js index 0a78f4041d6c..03843413a45b 100644 --- a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.browser.development.js +++ b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.browser.development.js @@ -5263,10 +5263,10 @@ return hook.checkDCE ? !0 : !1; })({ bundleType: 1, - version: "19.3.0-experimental-eb8feb71-20260814", + version: "19.3.0-experimental-eafeac09-20260819", rendererPackageName: "react-server-dom-webpack", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.3.0-experimental-eb8feb71-20260814", + reconcilerVersion: "19.3.0-experimental-eafeac09-20260819", getCurrentComponentInfo: function () { return currentOwnerInDEV; } diff --git a/packages/next/src/compiled/react-server-dom-webpack-experimental/package.json b/packages/next/src/compiled/react-server-dom-webpack-experimental/package.json index 4c6e773c182b..841e26f85e5b 100644 --- a/packages/next/src/compiled/react-server-dom-webpack-experimental/package.json +++ b/packages/next/src/compiled/react-server-dom-webpack-experimental/package.json @@ -52,8 +52,8 @@ "webpack-sources": "^3.2.0" }, "peerDependencies": { - "react": "0.0.0-experimental-eb8feb71-20260814", - "react-dom": "0.0.0-experimental-eb8feb71-20260814", + "react": "0.0.0-experimental-eafeac09-20260819", + "react-dom": "0.0.0-experimental-eafeac09-20260819", "webpack": "^5.59.0" } } \ No newline at end of file diff --git a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.development.js b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.development.js index 3f4d363acde0..0e19b533a3e9 100644 --- a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.development.js +++ b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.development.js @@ -5244,10 +5244,10 @@ return hook.checkDCE ? !0 : !1; })({ bundleType: 1, - version: "19.3.0-canary-eb8feb71-20260814", + version: "19.3.0-canary-eafeac09-20260819", rendererPackageName: "react-server-dom-webpack", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.3.0-canary-eb8feb71-20260814", + reconcilerVersion: "19.3.0-canary-eafeac09-20260819", getCurrentComponentInfo: function () { return currentOwnerInDEV; } diff --git a/packages/next/src/compiled/react-server-dom-webpack/package.json b/packages/next/src/compiled/react-server-dom-webpack/package.json index faf4094bbbef..a284cc7f4f8f 100644 --- a/packages/next/src/compiled/react-server-dom-webpack/package.json +++ b/packages/next/src/compiled/react-server-dom-webpack/package.json @@ -52,8 +52,8 @@ "webpack-sources": "^3.2.0" }, "peerDependencies": { - "react": "19.3.0-canary-eb8feb71-20260814", - "react-dom": "19.3.0-canary-eb8feb71-20260814", + "react": "19.3.0-canary-eafeac09-20260819", + "react-dom": "19.3.0-canary-eafeac09-20260819", "webpack": "^5.59.0" } } \ No newline at end of file diff --git a/packages/next/src/compiled/react/cjs/react.development.js b/packages/next/src/compiled/react/cjs/react.development.js index 9b5759d2da7a..47c4285349bf 100644 --- a/packages/next/src/compiled/react/cjs/react.development.js +++ b/packages/next/src/compiled/react/cjs/react.development.js @@ -1322,7 +1322,7 @@ exports.useTransition = function () { return resolveDispatcher().useTransition(); }; - exports.version = "19.3.0-canary-eb8feb71-20260814"; + exports.version = "19.3.0-canary-eafeac09-20260819"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/packages/next/src/compiled/react/cjs/react.production.js b/packages/next/src/compiled/react/cjs/react.production.js index e9f55c8eff84..b77faad93b54 100644 --- a/packages/next/src/compiled/react/cjs/react.production.js +++ b/packages/next/src/compiled/react/cjs/react.production.js @@ -562,4 +562,4 @@ exports.useSyncExternalStore = function ( exports.useTransition = function () { return ReactSharedInternals.H.useTransition(); }; -exports.version = "19.3.0-canary-eb8feb71-20260814"; +exports.version = "19.3.0-canary-eafeac09-20260819"; diff --git a/packages/next/src/compiled/react/cjs/react.react-server.development.js b/packages/next/src/compiled/react/cjs/react.react-server.development.js index 7cb5409812a1..b834b53aa48e 100644 --- a/packages/next/src/compiled/react/cjs/react.react-server.development.js +++ b/packages/next/src/compiled/react/cjs/react.react-server.development.js @@ -874,5 +874,5 @@ exports.useMemo = function (create, deps) { return resolveDispatcher().useMemo(create, deps); }; - exports.version = "19.3.0-canary-eb8feb71-20260814"; + exports.version = "19.3.0-canary-eafeac09-20260819"; })(); diff --git a/packages/next/src/compiled/react/cjs/react.react-server.production.js b/packages/next/src/compiled/react/cjs/react.react-server.production.js index 00afe39c845a..364e75940bb0 100644 --- a/packages/next/src/compiled/react/cjs/react.react-server.production.js +++ b/packages/next/src/compiled/react/cjs/react.react-server.production.js @@ -433,4 +433,4 @@ exports.useId = function () { exports.useMemo = function (create, deps) { return ReactSharedInternals.H.useMemo(create, deps); }; -exports.version = "19.3.0-canary-eb8feb71-20260814"; +exports.version = "19.3.0-canary-eafeac09-20260819"; diff --git a/packages/next/src/compiled/unistore/unistore.js b/packages/next/src/compiled/unistore/unistore.js index 802e8617ad7a..8b9eb97ee3cc 100644 --- a/packages/next/src/compiled/unistore/unistore.js +++ b/packages/next/src/compiled/unistore/unistore.js @@ -1 +1 @@ -(()=>{var t={366:t=>{function n(t,i){for(var _ in i)t[_]=i[_];return t}t.exports=function(t){var i=[];function u(t){for(var _=[],a=0;a{var t={767:t=>{function n(t,i){for(var _ in i)t[_]=i[_];return t}t.exports=function(t){var i=[];function u(t){for(var _=[],a=0;a=0.15.0' - version: 2.2.1(react@19.3.0-canary-eb8feb71-20260814) + version: 2.2.1(react@19.3.0-canary-eafeac09-20260819) source-map: specifier: ^0.7.0 version: 0.7.3 @@ -1976,8 +1976,8 @@ importers: packages/third-parties: dependencies: react: - specifier: npm:react@19.3.0-canary-eb8feb71-20260814 - version: 19.3.0-canary-eb8feb71-20260814 + specifier: npm:react@19.3.0-canary-eafeac09-20260819 + version: 19.3.0-canary-eafeac09-20260819 third-party-capital: specifier: 1.0.20 version: 1.0.20 @@ -2040,14 +2040,14 @@ importers: specifier: 29.5.0 version: 29.5.0 react: - specifier: npm:react@19.3.0-canary-eb8feb71-20260814 - version: 19.3.0-canary-eb8feb71-20260814 + specifier: npm:react@19.3.0-canary-eafeac09-20260819 + version: 19.3.0-canary-eafeac09-20260819 react-test-renderer: specifier: 18.2.0 - version: 18.2.0(react@19.3.0-canary-eb8feb71-20260814) + version: 18.2.0(react@19.3.0-canary-eafeac09-20260819) styled-jsx: specifier: ^5.1.2 - version: 5.1.6(@babel/core@7.26.10)(babel-plugin-macros@3.1.0)(react@19.3.0-canary-eb8feb71-20260814) + version: 5.1.6(@babel/core@7.26.10)(babel-plugin-macros@3.1.0)(react@19.3.0-canary-eafeac09-20260819) packages: @@ -16028,18 +16028,18 @@ packages: resolution: {integrity: sha512-APPU8HB2uZnpl6Vt/+0AFoVYgSRtfiP6FLrZgPPTDmqSb2R4qZRbgd0A3VzIFxDt5e+Fozjx79WjLWnF69DK8g==} engines: {node: '>=16.14.0'} - react-dom@0.0.0-experimental-eb8feb71-20260814: - resolution: {integrity: sha512-59ohN2PZNLwkMbOaxL1cFHtb6nMf3QU3doyKImEqdnjMJVqaMSu2XCSvgB4YlfR1QSfvL8hnBS+jANR6VSwMdA==} + react-dom@0.0.0-experimental-eafeac09-20260819: + resolution: {integrity: sha512-C8NGowvx5rFag6YAMhEd/YSlrBH8/0LaqQUVKtQYlWFOqcGOzJ965lFhNB2M0EzxGIGOhqh8kRMzPmdj0Ty88Q==} peerDependencies: - react: 0.0.0-experimental-eb8feb71-20260814 + react: 0.0.0-experimental-eafeac09-20260819 - react-dom@19.3.0-canary-eb8feb71-20260814: - resolution: {integrity: sha512-sURKF6v4XliFLgl9+lT3S9zM9EEqJFDzYwE7+BtHdUesovByKQbM9dm4WqGr/b3kiTq6jw7ASIYG10j/t2pbbQ==} + react-dom@19.3.0-canary-eafeac09-20260819: + resolution: {integrity: sha512-h07GHRf19d98gYA9kxu48Navz3VGmR1gByMW/snJzEdmPMlfMHbV92V181dkJvWENh2YrvfjDSd55v0+0uz7wg==} peerDependencies: - react: 19.3.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 - react-is@19.3.0-canary-eb8feb71-20260814: - resolution: {integrity: sha512-eszZnMCSYwAhyTa4+iOx8a0V33qU3yLwkyxzzc0GwavNydwpULAKfCXszMFFEKMfLnaWIu+cXzzvOOhw6x2Pxw==} + react-is@19.3.0-canary-eafeac09-20260819: + resolution: {integrity: sha512-znjK+OFY8AuYd2Fa5zODGDDlxiqJ4nOejImNdx3odpzK5aiH+xYpVjtjxZNz/Ea6loYsht0uGAUmnOtK9Q2TTw==} react-lifecycles-compat@3.0.4: resolution: {integrity: sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==} @@ -16094,34 +16094,34 @@ packages: '@types/react': optional: true - react-server-dom-turbopack@0.0.0-experimental-eb8feb71-20260814: - resolution: {integrity: sha512-Sb8f7syIh329G5CgqcuPbyfuKceQHXMwF9PEJyuo8bkIbf4jGGaqbdUzCKPCC5QsYYLCxnlarMvYSJzdrY0evQ==} + react-server-dom-turbopack@0.0.0-experimental-eafeac09-20260819: + resolution: {integrity: sha512-YQXhDi0R+jJQEtwXrUnAO9a4pypWYKANiLM/9o+dh8uL6VT+GPPYNITpsXNySaRT1+gGEEPAAlN/Qfz24meG7w==} engines: {node: '>=0.10.0'} peerDependencies: - react: 0.0.0-experimental-eb8feb71-20260814 - react-dom: 0.0.0-experimental-eb8feb71-20260814 + react: 0.0.0-experimental-eafeac09-20260819 + react-dom: 0.0.0-experimental-eafeac09-20260819 - react-server-dom-turbopack@19.3.0-canary-eb8feb71-20260814: - resolution: {integrity: sha512-bLVvTFgH6SpnUwteuJjKqDuWHd9XzhkzIOzU4s9ZNKhAwAo6b3sPPgD9tJ+HVo3v63Nfe3+UOOhj0lTaT7NkcQ==} + react-server-dom-turbopack@19.3.0-canary-eafeac09-20260819: + resolution: {integrity: sha512-slObtCdpOc6UhRgJ6w3H8MPvh0g91iBgF6Z3K8XbIamLXVN14YQylKxEzUkCPeARP8rhODx/NQuBZwKOCVDOMw==} engines: {node: '>=0.10.0'} peerDependencies: - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819 - react-server-dom-webpack@0.0.0-experimental-eb8feb71-20260814: - resolution: {integrity: sha512-l/k94iVLXLwB1Jgf+cHTfitScrkDWKsUNUN+8CrKYPWBscLtvwlJe14reb0DRAg+nCiUB0ZF4wOPYlu19Y05Sw==} + react-server-dom-webpack@0.0.0-experimental-eafeac09-20260819: + resolution: {integrity: sha512-GVXV6sfBb5KelBOPE2g6c599N/2Ppl6hIfelgFkhdxRKbo/clpgpd/L6GDKzLgfhH7zZD3znxwrncH71ic8zdg==} engines: {node: '>=0.10.0'} peerDependencies: - react: 0.0.0-experimental-eb8feb71-20260814 - react-dom: 0.0.0-experimental-eb8feb71-20260814 + react: 0.0.0-experimental-eafeac09-20260819 + react-dom: 0.0.0-experimental-eafeac09-20260819 webpack: 5.98.0 - react-server-dom-webpack@19.3.0-canary-eb8feb71-20260814: - resolution: {integrity: sha512-wlnHhETFLxOIXlvDKBCYYTDCwiST4k6e1O2akzhGZxJ40gIUdZTxx1PlP8g5bohkOoSHllAxDYqzyH362jVd4g==} + react-server-dom-webpack@19.3.0-canary-eafeac09-20260819: + resolution: {integrity: sha512-OKxEuHXumbiz92FvvCKm125NmDiFKpIwEGz+U1FuKuMYEar+O5oKOuNcVuHdRqGdBk7X/URYQdb/WyAEpwi8FQ==} engines: {node: '>=0.10.0'} peerDependencies: - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819 webpack: 5.98.0 react-shallow-renderer@16.15.0: @@ -16172,12 +16172,12 @@ packages: react: ^15.3.0 || ^16.0.0-alpha react-dom: ^15.3.0 || ^16.0.0-alpha - react@0.0.0-experimental-eb8feb71-20260814: - resolution: {integrity: sha512-fRDpj0nf0430Ffy7AKppvoAGEz3YZtpNKOdSJPNcP3R7J1rIdoqi3ngH3c+kucDXLs72tw1BJu10Z51rca9UPw==} + react@0.0.0-experimental-eafeac09-20260819: + resolution: {integrity: sha512-fh83MFt2xLG/L2WSeaVZKOv/2u6lheTWu0DMvNjUoWF4SigXSpN45ErPuuI3r4eFe6vZyGQ3JTVe4SwAQkA0cA==} engines: {node: '>=0.10.0'} - react@19.3.0-canary-eb8feb71-20260814: - resolution: {integrity: sha512-4CF6VVbInQ54749LzFJ6POm1SREXQmNZ6yFjTq67yCL3NrYlK+aO6nzO3i1Fe7szu/fXUr3NRzitdHj+l/O5EQ==} + react@19.3.0-canary-eafeac09-20260819: + resolution: {integrity: sha512-4T4Gg6Y5333LUY0LBdN9R8cWflMJ1qT0cK1l8n/hRzRnqCu7remzqyI/dL362vrIGmTxqz+E2nwagxXHJogl+A==} engines: {node: '>=0.10.0'} read-all-stream@3.1.0: @@ -16709,11 +16709,11 @@ packages: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} - scheduler@0.0.0-experimental-eb8feb71-20260814: - resolution: {integrity: sha512-2ihozD41LYSm8xYie7wBnEANa7Q1/VqfzCr4yjG4e7Bbarb5gATSj5yWP0xKj2jQiDczNAY8wdrgb7fhNlvCaQ==} + scheduler@0.0.0-experimental-eafeac09-20260819: + resolution: {integrity: sha512-25cikZj5TP2qrIgeTkGJWDEH4ZR7OpTNzcsv3a9oSwwKCgaeekyWDukw0vXA0TXtG3ZxD1LhIJ9zVGBoBcDlFQ==} - scheduler@0.28.0-canary-eb8feb71-20260814: - resolution: {integrity: sha512-TjXQVWDPcNnqesHvbi5WB587WPFr8to90JVhOIO0szb0GFgg0fF0PPJCWoxi0poyxJ98OThXb22akDHfZyXG6A==} + scheduler@0.28.0-canary-eafeac09-20260819: + resolution: {integrity: sha512-9HxFX1vAH2ZNTOPAa22WwwmViFJPz8BN2cRT8iNbX1xwfyqz6VOhuHB2EuqHCIdvzR9tDHy3eE2pyEgsEKQugg==} schema-utils@2.7.1: resolution: {integrity: sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==} @@ -20034,28 +20034,28 @@ snapshots: '@balena/dockerignore@1.0.2': {} - '@base-ui-components/react@1.0.0-beta.2(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)': + '@base-ui-components/react@1.0.0-beta.2(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)': dependencies: '@babel/runtime': 7.27.6 - '@base-ui-components/utils': 0.1.0(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@floating-ui/react-dom': 2.1.5(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) + '@base-ui-components/utils': 0.1.0(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@floating-ui/react-dom': 2.1.5(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) '@floating-ui/utils': 0.2.10 - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) reselect: 5.1.1 tabbable: 6.2.0 - use-sync-external-store: 1.5.0(react@19.3.0-canary-eb8feb71-20260814) + use-sync-external-store: 1.5.0(react@19.3.0-canary-eafeac09-20260819) optionalDependencies: '@types/react': 19.2.18 - '@base-ui-components/utils@0.1.0(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)': + '@base-ui-components/utils@0.1.0(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)': dependencies: '@babel/runtime': 7.27.6 '@floating-ui/utils': 0.2.10 - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) reselect: 5.1.1 - use-sync-external-store: 1.5.0(react@19.3.0-canary-eb8feb71-20260814) + use-sync-external-store: 1.5.0(react@19.3.0-canary-eafeac09-20260819) optionalDependencies: '@types/react': 19.2.18 @@ -20250,17 +20250,17 @@ snapshots: '@emotion/memoize@0.8.1': {} - '@emotion/react@11.11.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814)': + '@emotion/react@11.11.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819)': dependencies: '@babel/runtime': 7.27.0 '@emotion/babel-plugin': 11.11.0 '@emotion/cache': 11.11.0 '@emotion/serialize': 1.1.2 - '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@19.3.0-canary-eb8feb71-20260814) + '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@19.3.0-canary-eafeac09-20260819) '@emotion/utils': 1.2.1 '@emotion/weak-memoize': 0.3.1 hoist-non-react-statics: 3.3.2 - react: 19.3.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 optionalDependencies: '@types/react': 19.2.18 transitivePeerDependencies: @@ -20278,9 +20278,9 @@ snapshots: '@emotion/unitless@0.8.1': {} - '@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@19.3.0-canary-eb8feb71-20260814)': + '@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@19.3.0-canary-eafeac09-20260819)': dependencies: - react: 19.3.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 '@emotion/utils@1.2.1': {} @@ -20702,24 +20702,24 @@ snapshots: '@floating-ui/core': 1.7.3 '@floating-ui/utils': 0.2.10 - '@floating-ui/react-dom@2.1.0(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)': + '@floating-ui/react-dom@2.1.0(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)': dependencies: '@floating-ui/dom': 1.7.3 - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) - '@floating-ui/react-dom@2.1.5(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)': + '@floating-ui/react-dom@2.1.5(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)': dependencies: '@floating-ui/dom': 1.7.3 - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) - '@floating-ui/react@0.26.16(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)': + '@floating-ui/react@0.26.16(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)': dependencies: - '@floating-ui/react-dom': 2.1.0(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) + '@floating-ui/react-dom': 2.1.0(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) '@floating-ui/utils': 0.2.2 - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) tabbable: 6.2.0 '@floating-ui/utils@0.2.10': {} @@ -21730,23 +21730,23 @@ snapshots: dependencies: call-bind: 1.0.8 - '@mantine/core@7.10.1(@mantine/hooks@7.10.1(react@19.3.0-canary-eb8feb71-20260814))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)': + '@mantine/core@7.10.1(@mantine/hooks@7.10.1(react@19.3.0-canary-eafeac09-20260819))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)': dependencies: - '@floating-ui/react': 0.26.16(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@mantine/hooks': 7.10.1(react@19.3.0-canary-eb8feb71-20260814) + '@floating-ui/react': 0.26.16(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@mantine/hooks': 7.10.1(react@19.3.0-canary-eafeac09-20260819) clsx: 2.1.1 - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) - react-number-format: 5.4.0(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - react-remove-scroll: 2.5.10(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - react-textarea-autosize: 8.5.3(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) + react-number-format: 5.4.0(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + react-remove-scroll: 2.5.10(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + react-textarea-autosize: 8.5.3(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) type-fest: 4.18.3 transitivePeerDependencies: - '@types/react' - '@mantine/hooks@7.10.1(react@19.3.0-canary-eb8feb71-20260814)': + '@mantine/hooks@7.10.1(react@19.3.0-canary-eafeac09-20260819)': dependencies: - react: 19.3.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 '@mapbox/node-pre-gyp@2.0.3(encoding@0.1.13)': dependencies: @@ -21791,17 +21791,17 @@ snapshots: transitivePeerDependencies: - supports-color - '@mdx-js/react@2.2.1(react@19.3.0-canary-eb8feb71-20260814)': + '@mdx-js/react@2.2.1(react@19.3.0-canary-eafeac09-20260819)': dependencies: '@types/mdx': 2.0.13 '@types/react': 19.2.18 - react: 19.3.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 - '@mdx-js/react@3.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814)': + '@mdx-js/react@3.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819)': dependencies: '@types/mdx': 2.0.13 '@types/react': 19.2.18 - react: 19.3.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 '@modelcontextprotocol/sdk@1.18.1(patch_hash=680fe4edb7abd1de29d08cdf217a22506e815a8cc1c2282201d5d47aa3e5da12)': dependencies: @@ -22866,589 +22866,589 @@ snapshots: '@radix-ui/primitive@1.1.3': {} - '@radix-ui/react-arrow@1.1.0(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-arrow@1.1.0(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)': dependencies: - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) optionalDependencies: '@types/react': 19.2.18 '@types/react-dom': 19.2.4(@types/react@19.2.18) - '@radix-ui/react-arrow@1.1.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-arrow@1.1.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)': dependencies: - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) optionalDependencies: '@types/react': 19.2.18 '@types/react-dom': 19.2.4(@types/react@19.2.18) - '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) optionalDependencies: '@types/react': 19.2.18 '@types/react-dom': 19.2.4(@types/react@19.2.18) - '@radix-ui/react-collection@1.1.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-collection@1.1.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)': dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-context': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-slot': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-context': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-slot': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) optionalDependencies: '@types/react': 19.2.18 '@types/react-dom': 19.2.4(@types/react@19.2.18) - '@radix-ui/react-collection@1.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-collection@1.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) optionalDependencies: '@types/react': 19.2.18 '@types/react-dom': 19.2.4(@types/react@19.2.18) - '@radix-ui/react-compose-refs@1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-compose-refs@1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819)': dependencies: - react: 19.3.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 optionalDependencies: '@types/react': 19.2.18 - '@radix-ui/react-compose-refs@1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-compose-refs@1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819)': dependencies: - react: 19.3.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 optionalDependencies: '@types/react': 19.2.18 - '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819)': dependencies: - react: 19.3.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 optionalDependencies: '@types/react': 19.2.18 - '@radix-ui/react-context@1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-context@1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819)': dependencies: - react: 19.3.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 optionalDependencies: '@types/react': 19.2.18 - '@radix-ui/react-context@1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-context@1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819)': dependencies: - react: 19.3.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 optionalDependencies: '@types/react': 19.2.18 - '@radix-ui/react-context@1.1.2(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-context@1.1.2(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819)': dependencies: - react: 19.3.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 optionalDependencies: '@types/react': 19.2.18 - '@radix-ui/react-dialog@1.1.4(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-dialog@1.1.4(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-context': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-dismissable-layer': 1.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-focus-guards': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-focus-scope': 1.1.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-id': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-portal': 1.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-slot': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-context': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-dismissable-layer': 1.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-focus-guards': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-focus-scope': 1.1.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-id': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-portal': 1.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-slot': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) aria-hidden: 1.2.6 - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) - react-remove-scroll: 2.7.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) + react-remove-scroll: 2.7.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) optionalDependencies: '@types/react': 19.2.18 '@types/react-dom': 19.2.4(@types/react@19.2.18) - '@radix-ui/react-direction@1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-direction@1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819)': dependencies: - react: 19.3.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 optionalDependencies: '@types/react': 19.2.18 - '@radix-ui/react-direction@1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-direction@1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819)': dependencies: - react: 19.3.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 optionalDependencies: '@types/react': 19.2.18 - '@radix-ui/react-dismissable-layer@1.1.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-dismissable-layer@1.1.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)': dependencies: '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-compose-refs': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) optionalDependencies: '@types/react': 19.2.18 '@types/react-dom': 19.2.4(@types/react@19.2.18) - '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) optionalDependencies: '@types/react': 19.2.18 '@types/react-dom': 19.2.4(@types/react@19.2.18) - '@radix-ui/react-dismissable-layer@1.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-dismissable-layer@1.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) optionalDependencies: '@types/react': 19.2.18 '@types/react-dom': 19.2.4(@types/react@19.2.18) - '@radix-ui/react-focus-guards@1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-focus-guards@1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819)': dependencies: - react: 19.3.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 optionalDependencies: '@types/react': 19.2.18 - '@radix-ui/react-focus-guards@1.1.3(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-focus-guards@1.1.3(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819)': dependencies: - react: 19.3.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 optionalDependencies: '@types/react': 19.2.18 - '@radix-ui/react-focus-scope@1.1.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-focus-scope@1.1.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)': dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) optionalDependencies: '@types/react': 19.2.18 '@types/react-dom': 19.2.4(@types/react@19.2.18) - '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) optionalDependencies: '@types/react': 19.2.18 '@types/react-dom': 19.2.4(@types/react@19.2.18) - '@radix-ui/react-id@1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-id@1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - react: 19.3.0-canary-eb8feb71-20260814 + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + react: 19.3.0-canary-eafeac09-20260819 optionalDependencies: '@types/react': 19.2.18 - '@radix-ui/react-id@1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-id@1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - react: 19.3.0-canary-eb8feb71-20260814 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + react: 19.3.0-canary-eafeac09-20260819 optionalDependencies: '@types/react': 19.2.18 - '@radix-ui/react-popover@1.1.4(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-popover@1.1.4(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-context': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-dismissable-layer': 1.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-focus-guards': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-focus-scope': 1.1.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-id': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-popper': 1.2.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-portal': 1.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-slot': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-context': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-dismissable-layer': 1.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-focus-guards': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-focus-scope': 1.1.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-id': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-popper': 1.2.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-portal': 1.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-slot': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) aria-hidden: 1.2.6 - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) - react-remove-scroll: 2.7.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) + react-remove-scroll: 2.7.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) optionalDependencies: '@types/react': 19.2.18 '@types/react-dom': 19.2.4(@types/react@19.2.18) - '@radix-ui/react-popper@1.2.0(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)': - dependencies: - '@floating-ui/react-dom': 2.1.5(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-arrow': 1.1.0(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-compose-refs': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-context': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-use-rect': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-use-size': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) + '@radix-ui/react-popper@1.2.0(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)': + dependencies: + '@floating-ui/react-dom': 2.1.5(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-arrow': 1.1.0(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-context': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-use-rect': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-use-size': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) '@radix-ui/rect': 1.1.0 - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) optionalDependencies: '@types/react': 19.2.18 '@types/react-dom': 19.2.4(@types/react@19.2.18) - '@radix-ui/react-popper@1.2.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)': - dependencies: - '@floating-ui/react-dom': 2.1.5(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-arrow': 1.1.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-context': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-use-rect': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-use-size': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) + '@radix-ui/react-popper@1.2.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)': + dependencies: + '@floating-ui/react-dom': 2.1.5(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-arrow': 1.1.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-context': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-use-rect': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-use-size': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) '@radix-ui/rect': 1.1.0 - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) optionalDependencies: '@types/react': 19.2.18 '@types/react-dom': 19.2.4(@types/react@19.2.18) - '@radix-ui/react-popper@1.2.8(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)': - dependencies: - '@floating-ui/react-dom': 2.1.5(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-use-rect': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) + '@radix-ui/react-popper@1.2.8(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)': + dependencies: + '@floating-ui/react-dom': 2.1.5(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-use-rect': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) '@radix-ui/rect': 1.1.1 - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) optionalDependencies: '@types/react': 19.2.18 '@types/react-dom': 19.2.4(@types/react@19.2.18) - '@radix-ui/react-portal@1.1.2(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-portal@1.1.2(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)': dependencies: - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) optionalDependencies: '@types/react': 19.2.18 '@types/react-dom': 19.2.4(@types/react@19.2.18) - '@radix-ui/react-portal@1.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-portal@1.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)': dependencies: - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) optionalDependencies: '@types/react': 19.2.18 '@types/react-dom': 19.2.4(@types/react@19.2.18) - '@radix-ui/react-portal@1.1.9(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-portal@1.1.9(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) optionalDependencies: '@types/react': 19.2.18 '@types/react-dom': 19.2.4(@types/react@19.2.18) - '@radix-ui/react-presence@1.1.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-presence@1.1.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)': dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) optionalDependencies: '@types/react': 19.2.18 '@types/react-dom': 19.2.4(@types/react@19.2.18) - '@radix-ui/react-presence@1.1.2(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-presence@1.1.2(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)': dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) optionalDependencies: '@types/react': 19.2.18 '@types/react-dom': 19.2.4(@types/react@19.2.18) - '@radix-ui/react-primitive@2.0.0(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-primitive@2.0.0(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)': dependencies: - '@radix-ui/react-slot': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + '@radix-ui/react-slot': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) optionalDependencies: '@types/react': 19.2.18 '@types/react-dom': 19.2.4(@types/react@19.2.18) - '@radix-ui/react-primitive@2.0.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-primitive@2.0.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)': dependencies: - '@radix-ui/react-slot': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + '@radix-ui/react-slot': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) optionalDependencies: '@types/react': 19.2.18 '@types/react-dom': 19.2.4(@types/react@19.2.18) - '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)': dependencies: - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) optionalDependencies: '@types/react': 19.2.18 '@types/react-dom': 19.2.4(@types/react@19.2.18) - '@radix-ui/react-roving-focus@1.1.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-roving-focus@1.1.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-collection': 1.1.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-context': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-direction': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-id': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + '@radix-ui/react-collection': 1.1.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-context': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-direction': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-id': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) optionalDependencies: '@types/react': 19.2.18 '@types/react-dom': 19.2.4(@types/react@19.2.18) - '@radix-ui/react-select@2.2.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-select@2.2.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)': dependencies: '@radix-ui/number': 1.1.1 '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) aria-hidden: 1.2.6 - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) - react-remove-scroll: 2.7.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) + react-remove-scroll: 2.7.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) optionalDependencies: '@types/react': 19.2.18 '@types/react-dom': 19.2.4(@types/react@19.2.18) - '@radix-ui/react-slot@1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-slot@1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819)': dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - react: 19.3.0-canary-eb8feb71-20260814 + '@radix-ui/react-compose-refs': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + react: 19.3.0-canary-eafeac09-20260819 optionalDependencies: '@types/react': 19.2.18 - '@radix-ui/react-slot@1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-slot@1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819)': dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - react: 19.3.0-canary-eb8feb71-20260814 + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + react: 19.3.0-canary-eafeac09-20260819 optionalDependencies: '@types/react': 19.2.18 - '@radix-ui/react-slot@1.2.3(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-slot@1.2.3(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - react: 19.3.0-canary-eb8feb71-20260814 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + react: 19.3.0-canary-eafeac09-20260819 optionalDependencies: '@types/react': 19.2.18 - '@radix-ui/react-toggle-group@1.1.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-toggle-group@1.1.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-context': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-direction': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-toggle': 1.1.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + '@radix-ui/react-context': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-direction': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-toggle': 1.1.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) optionalDependencies: '@types/react': 19.2.18 '@types/react-dom': 19.2.4(@types/react@19.2.18) - '@radix-ui/react-toggle@1.1.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-toggle@1.1.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) optionalDependencies: '@types/react': 19.2.18 '@types/react-dom': 19.2.4(@types/react@19.2.18) - '@radix-ui/react-tooltip@1.1.4(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-tooltip@1.1.4(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)': dependencies: '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-compose-refs': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-context': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-id': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-popper': 1.2.0(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-portal': 1.1.2(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-presence': 1.1.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-slot': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-visually-hidden': 1.1.0(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-context': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-id': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-popper': 1.2.0(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-portal': 1.1.2(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-presence': 1.1.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-slot': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-visually-hidden': 1.1.0(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) optionalDependencies: '@types/react': 19.2.18 '@types/react-dom': 19.2.4(@types/react@19.2.18) - '@radix-ui/react-use-callback-ref@1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-use-callback-ref@1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819)': dependencies: - react: 19.3.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 optionalDependencies: '@types/react': 19.2.18 - '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819)': dependencies: - react: 19.3.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 optionalDependencies: '@types/react': 19.2.18 - '@radix-ui/react-use-controllable-state@1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-use-controllable-state@1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - react: 19.3.0-canary-eb8feb71-20260814 + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + react: 19.3.0-canary-eafeac09-20260819 optionalDependencies: '@types/react': 19.2.18 - '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819)': dependencies: - '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - react: 19.3.0-canary-eb8feb71-20260814 + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + react: 19.3.0-canary-eafeac09-20260819 optionalDependencies: '@types/react': 19.2.18 - '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - react: 19.3.0-canary-eb8feb71-20260814 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + react: 19.3.0-canary-eafeac09-20260819 optionalDependencies: '@types/react': 19.2.18 - '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - react: 19.3.0-canary-eb8feb71-20260814 + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + react: 19.3.0-canary-eafeac09-20260819 optionalDependencies: '@types/react': 19.2.18 - '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - react: 19.3.0-canary-eb8feb71-20260814 + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + react: 19.3.0-canary-eafeac09-20260819 optionalDependencies: '@types/react': 19.2.18 - '@radix-ui/react-use-layout-effect@1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-use-layout-effect@1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819)': dependencies: - react: 19.3.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 optionalDependencies: '@types/react': 19.2.18 - '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819)': dependencies: - react: 19.3.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 optionalDependencies: '@types/react': 19.2.18 - '@radix-ui/react-use-previous@1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-use-previous@1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819)': dependencies: - react: 19.3.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 optionalDependencies: '@types/react': 19.2.18 - '@radix-ui/react-use-rect@1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-use-rect@1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819)': dependencies: '@radix-ui/rect': 1.1.0 - react: 19.3.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 optionalDependencies: '@types/react': 19.2.18 - '@radix-ui/react-use-rect@1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-use-rect@1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819)': dependencies: '@radix-ui/rect': 1.1.1 - react: 19.3.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 optionalDependencies: '@types/react': 19.2.18 - '@radix-ui/react-use-size@1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-use-size@1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - react: 19.3.0-canary-eb8feb71-20260814 + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + react: 19.3.0-canary-eafeac09-20260819 optionalDependencies: '@types/react': 19.2.18 - '@radix-ui/react-use-size@1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-use-size@1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - react: 19.3.0-canary-eb8feb71-20260814 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + react: 19.3.0-canary-eafeac09-20260819 optionalDependencies: '@types/react': 19.2.18 - '@radix-ui/react-visually-hidden@1.1.0(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-visually-hidden@1.1.0(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)': dependencies: - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) optionalDependencies: '@types/react': 19.2.18 '@types/react-dom': 19.2.4(@types/react@19.2.18) - '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)': + '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) optionalDependencies: '@types/react': 19.2.18 '@types/react-dom': 19.2.4(@types/react@19.2.18) @@ -23755,12 +23755,12 @@ snapshots: '@storybook/addon-docs@8.6.0(@types/react@19.2.18)(storybook@8.6.0(prettier@3.6.2))': dependencies: - '@mdx-js/react': 3.1.0(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@storybook/blocks': 8.6.0(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)(storybook@8.6.0(prettier@3.6.2)) + '@mdx-js/react': 3.1.0(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@storybook/blocks': 8.6.0(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)(storybook@8.6.0(prettier@3.6.2)) '@storybook/csf-plugin': 8.6.0(storybook@8.6.0(prettier@3.6.2)) - '@storybook/react-dom-shim': 8.6.0(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)(storybook@8.6.0(prettier@3.6.2)) - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + '@storybook/react-dom-shim': 8.6.0(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)(storybook@8.6.0(prettier@3.6.2)) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) storybook: 8.6.0(prettier@3.6.2) ts-dedent: 2.2.0 transitivePeerDependencies: @@ -23825,14 +23825,14 @@ snapshots: - '@swc/helpers' - webpack - '@storybook/blocks@8.6.0(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)(storybook@8.6.0(prettier@3.6.2))': + '@storybook/blocks@8.6.0(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)(storybook@8.6.0(prettier@3.6.2))': dependencies: - '@storybook/icons': 1.3.0(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) + '@storybook/icons': 1.3.0(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) storybook: 8.6.0(prettier@3.6.2) ts-dedent: 2.2.0 optionalDependencies: - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) '@storybook/builder-webpack5@8.6.0(@rspack/core@1.6.7(patch_hash=4cf28ea116b0e27c7c80b09035905f9d16a7b18d1f2b7d312fc80d42cd57068d)(@swc/helpers@0.5.23))(@swc/core@1.11.24(@swc/helpers@0.5.23))(esbuild@0.25.9)(storybook@8.6.0(prettier@3.6.2))(typescript@6.0.2)': dependencies: @@ -23911,10 +23911,10 @@ snapshots: '@storybook/global@5.0.0': {} - '@storybook/icons@1.3.0(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)': + '@storybook/icons@1.3.0(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)': dependencies: - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) '@storybook/instrumenter@8.6.0(storybook@8.6.0(prettier@3.6.2))': dependencies: @@ -23926,17 +23926,17 @@ snapshots: dependencies: storybook: 8.6.0(prettier@3.6.2) - '@storybook/preset-react-webpack@8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.6.2)))(@swc/core@1.11.24(@swc/helpers@0.5.23))(esbuild@0.25.9)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)(storybook@8.6.0(prettier@3.6.2))(typescript@6.0.2)': + '@storybook/preset-react-webpack@8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.6.2)))(@swc/core@1.11.24(@swc/helpers@0.5.23))(esbuild@0.25.9)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)(storybook@8.6.0(prettier@3.6.2))(typescript@6.0.2)': dependencies: '@storybook/core-webpack': 8.6.0(storybook@8.6.0(prettier@3.6.2)) - '@storybook/react': 8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.6.2)))(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)(storybook@8.6.0(prettier@3.6.2))(typescript@6.0.2) + '@storybook/react': 8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.6.2)))(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)(storybook@8.6.0(prettier@3.6.2))(typescript@6.0.2) '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@6.0.2)(webpack@5.98.0(@swc/core@1.11.24(@swc/helpers@0.5.23))(esbuild@0.25.9)) '@types/semver': 7.5.6 find-up: 5.0.0 magic-string: 0.30.19 - react: 19.3.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 react-docgen: 7.1.0 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) resolve: 1.22.10 semver: 7.6.3 storybook: 8.6.0(prettier@3.6.2) @@ -23970,19 +23970,19 @@ snapshots: transitivePeerDependencies: - supports-color - '@storybook/react-dom-shim@8.6.0(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)(storybook@8.6.0(prettier@3.6.2))': + '@storybook/react-dom-shim@8.6.0(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)(storybook@8.6.0(prettier@3.6.2))': dependencies: - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) storybook: 8.6.0(prettier@3.6.2) - '@storybook/react-webpack5@8.6.0(@rspack/core@1.6.7(patch_hash=4cf28ea116b0e27c7c80b09035905f9d16a7b18d1f2b7d312fc80d42cd57068d)(@swc/helpers@0.5.23))(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.6.2)))(@swc/core@1.11.24(@swc/helpers@0.5.23))(esbuild@0.25.9)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)(storybook@8.6.0(prettier@3.6.2))(typescript@6.0.2)': + '@storybook/react-webpack5@8.6.0(@rspack/core@1.6.7(patch_hash=4cf28ea116b0e27c7c80b09035905f9d16a7b18d1f2b7d312fc80d42cd57068d)(@swc/helpers@0.5.23))(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.6.2)))(@swc/core@1.11.24(@swc/helpers@0.5.23))(esbuild@0.25.9)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)(storybook@8.6.0(prettier@3.6.2))(typescript@6.0.2)': dependencies: '@storybook/builder-webpack5': 8.6.0(@rspack/core@1.6.7(patch_hash=4cf28ea116b0e27c7c80b09035905f9d16a7b18d1f2b7d312fc80d42cd57068d)(@swc/helpers@0.5.23))(@swc/core@1.11.24(@swc/helpers@0.5.23))(esbuild@0.25.9)(storybook@8.6.0(prettier@3.6.2))(typescript@6.0.2) - '@storybook/preset-react-webpack': 8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.6.2)))(@swc/core@1.11.24(@swc/helpers@0.5.23))(esbuild@0.25.9)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)(storybook@8.6.0(prettier@3.6.2))(typescript@6.0.2) - '@storybook/react': 8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.6.2)))(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)(storybook@8.6.0(prettier@3.6.2))(typescript@6.0.2) - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + '@storybook/preset-react-webpack': 8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.6.2)))(@swc/core@1.11.24(@swc/helpers@0.5.23))(esbuild@0.25.9)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)(storybook@8.6.0(prettier@3.6.2))(typescript@6.0.2) + '@storybook/react': 8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.6.2)))(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)(storybook@8.6.0(prettier@3.6.2))(typescript@6.0.2) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) storybook: 8.6.0(prettier@3.6.2) optionalDependencies: typescript: 6.0.2 @@ -23995,16 +23995,16 @@ snapshots: - uglify-js - webpack-cli - '@storybook/react@8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.6.2)))(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)(storybook@8.6.0(prettier@3.6.2))(typescript@6.0.2)': + '@storybook/react@8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.6.2)))(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)(storybook@8.6.0(prettier@3.6.2))(typescript@6.0.2)': dependencies: '@storybook/components': 8.6.0(storybook@8.6.0(prettier@3.6.2)) '@storybook/global': 5.0.0 '@storybook/manager-api': 8.6.0(storybook@8.6.0(prettier@3.6.2)) '@storybook/preview-api': 8.6.0(storybook@8.6.0(prettier@3.6.2)) - '@storybook/react-dom-shim': 8.6.0(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)(storybook@8.6.0(prettier@3.6.2)) + '@storybook/react-dom-shim': 8.6.0(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)(storybook@8.6.0(prettier@3.6.2)) '@storybook/theming': 8.6.0(storybook@8.6.0(prettier@3.6.2)) - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) storybook: 8.6.0(prettier@3.6.2) optionalDependencies: '@storybook/test': 8.6.0(storybook@8.6.0(prettier@3.6.2)) @@ -24286,13 +24286,13 @@ snapshots: lodash: 4.18.1 redent: 3.0.0 - '@testing-library/react@15.0.7(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)': + '@testing-library/react@15.0.7(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)': dependencies: '@babel/runtime': 7.27.0 '@testing-library/dom': 10.1.0 '@types/react-dom': 19.2.4(@types/react@19.2.18) - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) optionalDependencies: '@types/react': 19.2.18 @@ -26583,14 +26583,14 @@ snapshots: cmd-shim@7.0.0: {} - cmdk@1.0.4(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814): + cmdk@1.0.4(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819): dependencies: - '@radix-ui/react-dialog': 1.1.4(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814) - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) - use-sync-external-store: 1.5.0(react@19.3.0-canary-eb8feb71-20260814) + '@radix-ui/react-dialog': 1.1.4(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) + use-sync-external-store: 1.5.0(react@19.3.0-canary-eafeac09-20260819) transitivePeerDependencies: - '@types/react' - '@types/react-dom' @@ -30027,7 +30027,7 @@ snapshots: hoist-non-react-statics@3.3.2: dependencies: - react-is: 19.3.0-canary-eb8feb71-20260814 + react-is: 19.3.0-canary-eafeac09-20260819 homedir-polyfill@1.0.3: dependencies: @@ -32245,13 +32245,13 @@ snapshots: lru-cache@7.18.3: {} - lucide-react@0.383.0(react@19.3.0-canary-eb8feb71-20260814): + lucide-react@0.383.0(react@19.3.0-canary-eafeac09-20260819): dependencies: - react: 19.3.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 - lucide-react@0.554.0(react@19.3.0-canary-eb8feb71-20260814): + lucide-react@0.554.0(react@19.3.0-canary-eafeac09-20260819): dependencies: - react: 19.3.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 lz-string@1.5.0: {} @@ -33461,23 +33461,23 @@ snapshots: dependencies: inherits: 2.0.4 - next-themes@0.4.6(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814): + next-themes@0.4.6(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819): dependencies: - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) next-tick@1.0.0: {} - next@16.2.3(@babel/core@7.26.10)(@opentelemetry/api@1.9.0)(@playwright/test@1.61.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@0.0.0-experimental-1371fcb-20260227)(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)(sass@1.77.8): + next@16.2.3(@babel/core@7.26.10)(@opentelemetry/api@1.9.0)(@playwright/test@1.61.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@0.0.0-experimental-1371fcb-20260227)(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)(sass@1.77.8): dependencies: '@next/env': 16.2.3 '@swc/helpers': 0.5.15 baseline-browser-mapping: 2.9.19 caniuse-lite: 1.0.30001746 postcss: 8.5.23 - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) - styled-jsx: 5.1.6(@babel/core@7.26.10)(babel-plugin-macros@3.1.0)(react@19.3.0-canary-eb8feb71-20260814) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) + styled-jsx: 5.1.6(@babel/core@7.26.10)(babel-plugin-macros@3.1.0)(react@19.3.0-canary-eafeac09-20260819) optionalDependencies: '@next/swc-darwin-arm64': 16.2.3 '@next/swc-darwin-x64': 16.2.3 @@ -35180,31 +35180,31 @@ snapshots: dependencies: ansi-regex: 5.0.1 ansi-styles: 5.2.0 - react-is: 19.3.0-canary-eb8feb71-20260814 + react-is: 19.3.0-canary-eafeac09-20260819 pretty-format@29.5.0: dependencies: '@jest/schemas': 29.4.3 ansi-styles: 5.2.0 - react-is: 19.3.0-canary-eb8feb71-20260814 + react-is: 19.3.0-canary-eafeac09-20260819 pretty-format@29.7.0: dependencies: '@jest/schemas': 29.6.3 ansi-styles: 5.2.0 - react-is: 19.3.0-canary-eb8feb71-20260814 + react-is: 19.3.0-canary-eafeac09-20260819 pretty-format@30.0.0-alpha.6: dependencies: '@jest/schemas': 30.0.0-alpha.6 ansi-styles: 5.2.0 - react-is: 19.3.0-canary-eb8feb71-20260814 + react-is: 19.3.0-canary-eafeac09-20260819 pretty-format@30.2.0: dependencies: '@jest/schemas': 30.0.5 ansi-styles: 5.2.0 - react-is: 19.3.0-canary-eb8feb71-20260814 + react-is: 19.3.0-canary-eafeac09-20260819 pretty-ms@7.0.0: dependencies: @@ -35266,7 +35266,7 @@ snapshots: dependencies: loose-envify: 1.4.0 object-assign: 4.1.1 - react-is: 19.3.0-canary-eb8feb71-20260814 + react-is: 19.3.0-canary-eafeac09-20260819 property-information@5.6.0: dependencies: @@ -35489,157 +35489,157 @@ snapshots: transitivePeerDependencies: - supports-color - react-dom@0.0.0-experimental-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814): + react-dom@0.0.0-experimental-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819): dependencies: - react: 19.3.0-canary-eb8feb71-20260814 - scheduler: 0.28.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 + scheduler: 0.28.0-canary-eafeac09-20260819 - react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814): + react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819): dependencies: - react: 19.3.0-canary-eb8feb71-20260814 - scheduler: 0.28.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 + scheduler: 0.28.0-canary-eafeac09-20260819 - react-is@19.3.0-canary-eb8feb71-20260814: {} + react-is@19.3.0-canary-eafeac09-20260819: {} react-lifecycles-compat@3.0.4: {} - react-number-format@5.4.0(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814): + react-number-format@5.4.0(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819): dependencies: prop-types: 15.8.1 - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) react-refresh@0.12.0: {} - react-remove-scroll-bar@2.3.6(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814): + react-remove-scroll-bar@2.3.6(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819): dependencies: - react: 19.3.0-canary-eb8feb71-20260814 - react-style-singleton: 2.2.3(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) + react: 19.3.0-canary-eafeac09-20260819 + react-style-singleton: 2.2.3(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) tslib: 2.8.1 optionalDependencies: '@types/react': 19.2.18 - react-remove-scroll-bar@2.3.8(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814): + react-remove-scroll-bar@2.3.8(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819): dependencies: - react: 19.3.0-canary-eb8feb71-20260814 - react-style-singleton: 2.2.3(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) + react: 19.3.0-canary-eafeac09-20260819 + react-style-singleton: 2.2.3(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) tslib: 2.8.1 optionalDependencies: '@types/react': 19.2.18 - react-remove-scroll@2.5.10(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814): + react-remove-scroll@2.5.10(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819): dependencies: - react: 19.3.0-canary-eb8feb71-20260814 - react-remove-scroll-bar: 2.3.6(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - react-style-singleton: 2.2.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) + react: 19.3.0-canary-eafeac09-20260819 + react-remove-scroll-bar: 2.3.6(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + react-style-singleton: 2.2.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) tslib: 2.8.1 - use-callback-ref: 1.3.2(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - use-sidecar: 1.1.2(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) + use-callback-ref: 1.3.2(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + use-sidecar: 1.1.2(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) optionalDependencies: '@types/react': 19.2.18 - react-remove-scroll@2.7.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814): + react-remove-scroll@2.7.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819): dependencies: - react: 19.3.0-canary-eb8feb71-20260814 - react-remove-scroll-bar: 2.3.8(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - react-style-singleton: 2.2.3(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) + react: 19.3.0-canary-eafeac09-20260819 + react-remove-scroll-bar: 2.3.8(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + react-style-singleton: 2.2.3(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) - use-sidecar: 1.1.3(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) + use-callback-ref: 1.3.3(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) + use-sidecar: 1.1.3(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) optionalDependencies: '@types/react': 19.2.18 - react-server-dom-turbopack@0.0.0-experimental-eb8feb71-20260814(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814): + react-server-dom-turbopack@0.0.0-experimental-eafeac09-20260819(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819): dependencies: acorn-loose: 8.3.0 neo-async: 2.6.1 - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) - react-server-dom-turbopack@19.3.0-canary-eb8feb71-20260814(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814): + react-server-dom-turbopack@19.3.0-canary-eafeac09-20260819(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819): dependencies: acorn-loose: 8.3.0 neo-async: 2.6.1 - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) - react-server-dom-webpack@0.0.0-experimental-eb8feb71-20260814(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)(webpack@5.98.0(@swc/core@1.11.24(@swc/helpers@0.5.23))): + react-server-dom-webpack@0.0.0-experimental-eafeac09-20260819(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)(webpack@5.98.0(@swc/core@1.11.24(@swc/helpers@0.5.23))): dependencies: acorn-loose: 8.3.0 neo-async: 2.6.1 - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) webpack: 5.98.0(@swc/core@1.11.24(@swc/helpers@0.5.23)) webpack-sources: 3.2.3(patch_hash=26afc15966a3fc37a3d1d366312a95ce66723513f6a3a720e4166a37147da8bd) - react-server-dom-webpack@19.3.0-canary-eb8feb71-20260814(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814)(webpack@5.98.0(@swc/core@1.11.24(@swc/helpers@0.5.23))): + react-server-dom-webpack@19.3.0-canary-eafeac09-20260819(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819)(webpack@5.98.0(@swc/core@1.11.24(@swc/helpers@0.5.23))): dependencies: acorn-loose: 8.3.0 neo-async: 2.6.1 - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) webpack: 5.98.0(@swc/core@1.11.24(@swc/helpers@0.5.23)) webpack-sources: 3.2.3(patch_hash=26afc15966a3fc37a3d1d366312a95ce66723513f6a3a720e4166a37147da8bd) - react-shallow-renderer@16.15.0(react@19.3.0-canary-eb8feb71-20260814): + react-shallow-renderer@16.15.0(react@19.3.0-canary-eafeac09-20260819): dependencies: object-assign: 4.1.1 - react: 19.3.0-canary-eb8feb71-20260814 - react-is: 19.3.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 + react-is: 19.3.0-canary-eafeac09-20260819 - react-ssr-prepass@1.0.8(react-is@19.3.0-canary-eb8feb71-20260814)(react@19.3.0-canary-eb8feb71-20260814): + react-ssr-prepass@1.0.8(react-is@19.3.0-canary-eafeac09-20260819)(react@19.3.0-canary-eafeac09-20260819): dependencies: object-is: 1.0.2 - react: 19.3.0-canary-eb8feb71-20260814 - react-is: 19.3.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 + react-is: 19.3.0-canary-eafeac09-20260819 - react-style-singleton@2.2.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814): + react-style-singleton@2.2.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819): dependencies: get-nonce: 1.0.1 invariant: 2.2.4 - react: 19.3.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 tslib: 2.8.1 optionalDependencies: '@types/react': 19.2.18 - react-style-singleton@2.2.3(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814): + react-style-singleton@2.2.3(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819): dependencies: get-nonce: 1.0.1 - react: 19.3.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 tslib: 2.8.1 optionalDependencies: '@types/react': 19.2.18 - react-test-renderer@18.2.0(react@19.3.0-canary-eb8feb71-20260814): + react-test-renderer@18.2.0(react@19.3.0-canary-eafeac09-20260819): dependencies: - react: 19.3.0-canary-eb8feb71-20260814 - react-is: 19.3.0-canary-eb8feb71-20260814 - react-shallow-renderer: 16.15.0(react@19.3.0-canary-eb8feb71-20260814) - scheduler: 0.28.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 + react-is: 19.3.0-canary-eafeac09-20260819 + react-shallow-renderer: 16.15.0(react@19.3.0-canary-eafeac09-20260819) + scheduler: 0.28.0-canary-eafeac09-20260819 - react-textarea-autosize@8.5.3(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814): + react-textarea-autosize@8.5.3(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819): dependencies: '@babel/runtime': 7.27.0 - react: 19.3.0-canary-eb8feb71-20260814 - use-composed-ref: 1.3.0(react@19.3.0-canary-eb8feb71-20260814) - use-latest: 1.2.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) + react: 19.3.0-canary-eafeac09-20260819 + use-composed-ref: 1.3.0(react@19.3.0-canary-eafeac09-20260819) + use-latest: 1.2.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) transitivePeerDependencies: - '@types/react' - react-virtualized@9.22.3(react-dom@19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814))(react@19.3.0-canary-eb8feb71-20260814): + react-virtualized@9.22.3(react-dom@19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819))(react@19.3.0-canary-eafeac09-20260819): dependencies: '@babel/runtime': 7.27.0 clsx: 1.1.1 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 - react: 19.3.0-canary-eb8feb71-20260814 - react-dom: 19.3.0-canary-eb8feb71-20260814(react@19.3.0-canary-eb8feb71-20260814) + react: 19.3.0-canary-eafeac09-20260819 + react-dom: 19.3.0-canary-eafeac09-20260819(react@19.3.0-canary-eafeac09-20260819) react-lifecycles-compat: 3.0.4 - react@0.0.0-experimental-eb8feb71-20260814: {} + react@0.0.0-experimental-eafeac09-20260819: {} - react@19.3.0-canary-eb8feb71-20260814: {} + react@19.3.0-canary-eafeac09-20260819: {} read-all-stream@3.1.0: dependencies: @@ -36330,9 +36330,9 @@ snapshots: dependencies: xmlchars: 2.2.0 - scheduler@0.0.0-experimental-eb8feb71-20260814: {} + scheduler@0.0.0-experimental-eafeac09-20260819: {} - scheduler@0.28.0-canary-eb8feb71-20260814: {} + scheduler@0.28.0-canary-eafeac09-20260819: {} schema-utils@2.7.1: dependencies: @@ -37212,10 +37212,10 @@ snapshots: postcss: 8.5.23 postcss-load-plugins: 2.3.0 - styled-jsx@5.1.6(@babel/core@7.26.10)(babel-plugin-macros@3.1.0)(react@19.3.0-canary-eb8feb71-20260814): + styled-jsx@5.1.6(@babel/core@7.26.10)(babel-plugin-macros@3.1.0)(react@19.3.0-canary-eafeac09-20260819): dependencies: client-only: 0.0.1 - react: 19.3.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 optionalDependencies: '@babel/core': 7.26.10 babel-plugin-macros: 3.1.0 @@ -37315,11 +37315,11 @@ snapshots: '@swc/counter': 0.1.3 webpack: 5.98.0(@swc/core@1.11.24(@swc/helpers@0.5.23))(esbuild@0.25.9) - swr@2.2.4(react@19.3.0-canary-eb8feb71-20260814): + swr@2.2.4(react@19.3.0-canary-eafeac09-20260819): dependencies: client-only: 0.0.1 - react: 19.3.0-canary-eb8feb71-20260814 - use-sync-external-store: 1.5.0(react@19.3.0-canary-eb8feb71-20260814) + react: 19.3.0-canary-eafeac09-20260819 + use-sync-external-store: 1.5.0(react@19.3.0-canary-eafeac09-20260819) symbol-tree@3.2.4: {} @@ -38152,9 +38152,9 @@ snapshots: unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 - unistore@3.4.1(react@19.3.0-canary-eb8feb71-20260814): + unistore@3.4.1(react@19.3.0-canary-eafeac09-20260819): optionalDependencies: - react: 19.3.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 universal-github-app-jwt@1.1.1: dependencies: @@ -38271,56 +38271,56 @@ snapshots: punycode: 1.4.1 qs: 6.14.0 - use-callback-ref@1.3.2(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814): + use-callback-ref@1.3.2(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819): dependencies: - react: 19.3.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 tslib: 2.8.1 optionalDependencies: '@types/react': 19.2.18 - use-callback-ref@1.3.3(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814): + use-callback-ref@1.3.3(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819): dependencies: - react: 19.3.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 tslib: 2.8.1 optionalDependencies: '@types/react': 19.2.18 - use-composed-ref@1.3.0(react@19.3.0-canary-eb8feb71-20260814): + use-composed-ref@1.3.0(react@19.3.0-canary-eafeac09-20260819): dependencies: - react: 19.3.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 - use-isomorphic-layout-effect@1.1.2(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814): + use-isomorphic-layout-effect@1.1.2(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819): dependencies: - react: 19.3.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 optionalDependencies: '@types/react': 19.2.18 - use-latest@1.2.1(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814): + use-latest@1.2.1(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819): dependencies: - react: 19.3.0-canary-eb8feb71-20260814 - use-isomorphic-layout-effect: 1.1.2(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814) + react: 19.3.0-canary-eafeac09-20260819 + use-isomorphic-layout-effect: 1.1.2(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819) optionalDependencies: '@types/react': 19.2.18 - use-sidecar@1.1.2(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814): + use-sidecar@1.1.2(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819): dependencies: detect-node-es: 1.1.0 - react: 19.3.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 tslib: 2.8.1 optionalDependencies: '@types/react': 19.2.18 - use-sidecar@1.1.3(@types/react@19.2.18)(react@19.3.0-canary-eb8feb71-20260814): + use-sidecar@1.1.3(@types/react@19.2.18)(react@19.3.0-canary-eafeac09-20260819): dependencies: detect-node-es: 1.1.0 - react: 19.3.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 tslib: 2.8.1 optionalDependencies: '@types/react': 19.2.18 - use-sync-external-store@1.5.0(react@19.3.0-canary-eb8feb71-20260814): + use-sync-external-store@1.5.0(react@19.3.0-canary-eafeac09-20260819): dependencies: - react: 19.3.0-canary-eb8feb71-20260814 + react: 19.3.0-canary-eafeac09-20260819 util-deprecate@1.0.2: {}