From 82bea64b13ef65dc2c62f7b83bbbbeb875c34d2e Mon Sep 17 00:00:00 2001 From: Alexander Bjerkan Date: Tue, 7 Jan 2025 22:27:45 +0100 Subject: [PATCH 1/3] docs: presentation mode --- .gitignore | 4 +- apps/docs/.env.example | 2 + apps/docs/.gitignore | 3 + apps/docs/app/routes/_docs.tsx | 71 +++ .../app/routes/_docs/komponenter/$slug.tsx | 53 +++ .../app/routes/api/preview-mode/disable.ts | 14 + .../app/routes/api/preview-mode/enable.ts | 37 ++ apps/docs/dktp/main.yml | 3 + apps/docs/package.json | 3 + apps/docs/sanity.config.ts | 17 + apps/docs/src/lib/preview-middleware.ts | 12 + apps/docs/src/lib/sanity.server.ts | 22 + apps/docs/src/lib/sanity.ts | 5 +- apps/docs/src/lib/visual-editing.ts | 41 ++ pnpm-lock.yaml | 425 ++++++++++++++++++ 15 files changed, 709 insertions(+), 3 deletions(-) create mode 100644 apps/docs/.env.example create mode 100644 apps/docs/app/routes/_docs.tsx create mode 100644 apps/docs/app/routes/_docs/komponenter/$slug.tsx create mode 100644 apps/docs/app/routes/api/preview-mode/disable.ts create mode 100644 apps/docs/app/routes/api/preview-mode/enable.ts create mode 100644 apps/docs/src/lib/preview-middleware.ts create mode 100644 apps/docs/src/lib/sanity.server.ts create mode 100644 apps/docs/src/lib/visual-editing.ts diff --git a/.gitignore b/.gitignore index b8753d48c..1e84cb7b3 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ dist/ storybook-static/ next-env.d.ts +packages/icons-react/icons.tsx # editors .idea/ @@ -17,5 +18,4 @@ next-env.d.ts # Secrets .FIGMA_TOKEN -.vercel -packages/icons-react/icons.tsx \ No newline at end of file +.env.local diff --git a/apps/docs/.env.example b/apps/docs/.env.example new file mode 100644 index 000000000..0581ae91a --- /dev/null +++ b/apps/docs/.env.example @@ -0,0 +1,2 @@ +# Creata a viewer token at sanity.io/manage +SANITY_VIEWER_TOKEN= diff --git a/apps/docs/.gitignore b/apps/docs/.gitignore index 841efc183..ec44b59aa 100644 --- a/apps/docs/.gitignore +++ b/apps/docs/.gitignore @@ -4,3 +4,6 @@ public/resources/icons/ public/storybook component-props.ts +docgen.ts + +.env diff --git a/apps/docs/app/routes/_docs.tsx b/apps/docs/app/routes/_docs.tsx new file mode 100644 index 000000000..fe14d4079 --- /dev/null +++ b/apps/docs/app/routes/_docs.tsx @@ -0,0 +1,71 @@ +import { sanityFetch } from '@/lib/sanity'; +import { VisualEditing } from '@/lib/visual-editing'; +import appCss from '@/styles/app.css?url'; +import { Footer } from '@/ui/footer'; +import { MainNav } from '@/ui/main-nav'; +import { GrunnmurenProvider } from '@obosbbl/grunnmuren-react'; +import { + type NavigateOptions, + Outlet, + ScrollRestoration, + type ToOptions, + createFileRoute, + useRouter, +} from '@tanstack/react-router'; +import { defineQuery } from 'groq'; + +const COMPONENTS_NAVIGATION_QUERY = defineQuery( + // make sure the slug is always a string so we don't have add fallback value in code just to make TypeScript happy + `*[_type == "component"]{ _id, name, 'slug': coalesce(slug.current, '')} | order(name asc)`, +); + +// This is the shared layout for all the Grunnmuren docs pages that are "public", ie not the Sanity studio +export const Route = createFileRoute('/_docs')({ + component: RootLayout, + head: () => ({ + links: [{ rel: 'stylesheet', href: appCss }], + meta: [ + { + title: "Grunnmuren - OBOS' Design System", + }, + ], + }), + loader: () => sanityFetch({ query: COMPONENTS_NAVIGATION_QUERY }), +}); + +function RootLayout() { + const router = useRouter(); + + return ( + <> + router.navigate({ to, ...options })} + useHref={(to) => router.buildLocation({ to }).href} + > +
+
+
+ +
+
+
+ +
+
+ + + + ); +} + +// See comments on GrunnmurenProvider in +declare module 'react-aria-components' { + interface RouterConfig { + href: ToOptions['to']; + routerOptions: Omit; + } +} diff --git a/apps/docs/app/routes/_docs/komponenter/$slug.tsx b/apps/docs/app/routes/_docs/komponenter/$slug.tsx new file mode 100644 index 000000000..35b7a7e69 --- /dev/null +++ b/apps/docs/app/routes/_docs/komponenter/$slug.tsx @@ -0,0 +1,53 @@ +import * as badgeExamples from '@/examples/badge'; +import * as buttonExamples from '@/examples/button'; +import { sanityFetch } from '@/lib/sanity.server'; +import { Content } from '@/ui/content'; +import { PropsTable } from '@/ui/props-table'; +import { createFileRoute, notFound } from '@tanstack/react-router'; +import * as props from 'docgen'; +import { defineQuery } from 'groq'; + +const COMPONENT_QUERY = defineQuery( + `*[_type == "component" && slug.current == $slug][0]{ content, "name": coalesce(name, '') }`, +); + +export const Route = createFileRoute('/_docs/komponenter/$slug')({ + component: Page, + loader: async ({ params }) => { + const res = await sanityFetch({ + data: { + query: COMPONENT_QUERY, + params: { slug: params.slug }, + }, + }); + + if (res.data == null) { + throw notFound(); + } + + const componentName = res.data.name; + const componentProps = props[componentName].props; + + return { data: res.data, componentProps }; + }, +}); + +function Page() { + const { data, componentProps } = Route.useLoaderData(); + + // @ts-expect-error this works for now until we figure how to make the examples work better with Sanity + const { scope, examples } = { + Button: buttonExamples, + Badge: badgeExamples, + }[data.name]; + + return ( + <> +

{data.name}

+ + + + + + ); +} diff --git a/apps/docs/app/routes/api/preview-mode/disable.ts b/apps/docs/app/routes/api/preview-mode/disable.ts new file mode 100644 index 000000000..3e393cd70 --- /dev/null +++ b/apps/docs/app/routes/api/preview-mode/disable.ts @@ -0,0 +1,14 @@ +import { createAPIFileRoute } from '@tanstack/start/api'; +import { deleteCookie, sendRedirect } from 'vinxi/http'; + +export const APIRoute = createAPIFileRoute('/api/preview-mode/disable')({ + GET: () => { + deleteCookie('__sanity_preview', { + path: '/', + secure: import.meta.env.PROD, + httpOnly: true, + sameSite: 'strict', + }); + sendRedirect('/'); + }, +}); diff --git a/apps/docs/app/routes/api/preview-mode/enable.ts b/apps/docs/app/routes/api/preview-mode/enable.ts new file mode 100644 index 000000000..d1e719a66 --- /dev/null +++ b/apps/docs/app/routes/api/preview-mode/enable.ts @@ -0,0 +1,37 @@ +import { randomBytes } from 'node:crypto'; +import { client } from '@/lib/sanity'; +import { validatePreviewUrl } from '@sanity/preview-url-secret'; +import { createAPIFileRoute } from '@tanstack/start/api'; +import { SanityClient } from 'sanity'; +import { sendRedirect, setCookie } from 'vinxi/http'; + +export const APIRoute = createAPIFileRoute('/api/preview-mode/enable')({ + GET: async ({ request }) => { + if (!process.env.SANITY_VIEWER_TOKEN) { + throw new Response('Preview mode missing token', { status: 401 }); + } + + const clientWithToken = client.withConfig({ + token: process.env.SANITY_VIEWER_TOKEN, + }); + + const { isValid, redirectTo = '/' } = await validatePreviewUrl( + clientWithToken, + request.url, + ); + + if (!isValid) { + throw new Response('Invalid secret', { status: 401 }); + } + + // we can use sameSite: 'strict' because we're running an embedded studio + // setCookie('__sanity_preview', randomBytes(16).toString('hex'), { + setCookie('__sanity_preview', 'true', { + path: '/', + secure: import.meta.env.PROD, + httpOnly: true, + sameSite: 'strict', + }); + sendRedirect(redirectTo); + }, +}); diff --git a/apps/docs/dktp/main.yml b/apps/docs/dktp/main.yml index f873e4973..c9fe44e54 100644 --- a/apps/docs/dktp/main.yml +++ b/apps/docs/dktp/main.yml @@ -16,6 +16,9 @@ properties: containers: - image: dktprodacr.azurecr.io/grunnmuren/docs:${IMAGE_TAG} name: docs + env: + - name: SANITY_VIEWER_TOKEN + secretRef: ${todo} resources: cpu: 0.25 memory: 0.5Gi diff --git a/apps/docs/package.json b/apps/docs/package.json index 7ea096060..d12b64599 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -29,8 +29,11 @@ "@sanity/client": "7.12.1", "@sanity/code-input": "6.0.3", "@sanity/image-url": "^1.2.0", + "@sanity/presentation": "1.21.1", + "@sanity/preview-url-secret": "2.1.0", "@sanity/table": "2.0.0", "@sanity/vision": "4.14.2", + "@sanity/visual-editing": "2.12.0", "@tanstack/nitro-v2-vite-plugin": "1.133.19", "@tanstack/react-router": "1.135.0", "@tanstack/react-start": "1.135.0", diff --git a/apps/docs/sanity.config.ts b/apps/docs/sanity.config.ts index 34f6c295b..505d12e63 100644 --- a/apps/docs/sanity.config.ts +++ b/apps/docs/sanity.config.ts @@ -3,6 +3,7 @@ import { codeInput } from '@sanity/code-input'; import { table } from '@sanity/table'; import { visionTool } from '@sanity/vision'; import { defineConfig } from 'sanity'; +import { defineDocuments, presentationTool } from 'sanity/presentation'; import { structureTool } from 'sanity/structure'; import { schemaTypes } from './studio/schema-types'; @@ -70,6 +71,22 @@ export default defineConfig({ visionTool(), codeInput(), table(), + presentationTool({ + previewUrl: { + previewMode: { + enable: '/api/preview-mode/enable', + disable: '/api/preview-mode/disable', + }, + }, + resolve: { + mainDocuments: defineDocuments([ + { + route: '/komponenter/:slug', + filter: `_type == "component" && slug.current == $slug`, + }, + ]), + }, + }), ], schema: { types: schemaTypes, diff --git a/apps/docs/src/lib/preview-middleware.ts b/apps/docs/src/lib/preview-middleware.ts new file mode 100644 index 000000000..7497b9444 --- /dev/null +++ b/apps/docs/src/lib/preview-middleware.ts @@ -0,0 +1,12 @@ +import { createMiddleware } from '@tanstack/start'; +import { getCookie } from 'vinxi/http'; + +export const previewMiddleware = createMiddleware().server(async ({ next }) => { + const isPreview = getCookie('__sanity_preview') === 'true'; + console.log({ isPreview }); + return next({ + context: { + previewMode: isPreview, + }, + }); +}); diff --git a/apps/docs/src/lib/sanity.server.ts b/apps/docs/src/lib/sanity.server.ts new file mode 100644 index 000000000..e9df71aec --- /dev/null +++ b/apps/docs/src/lib/sanity.server.ts @@ -0,0 +1,22 @@ +import type { QueryParams } from '@sanity/client'; +import { createServerFn } from '@tanstack/start'; +import { previewMiddleware } from './preview-middleware'; +import { sanityFetch as _sanityFetch, client } from './sanity'; + +export const sanityFetch = createServerFn({ method: 'GET' }) + .middleware([previewMiddleware]) + .validator((data: { query: string; params: QueryParams }) => data) + .handler(async ({ data, context }) => { + const { query, params } = data; + + if (context.previewMode) { + const previewClient = client.withConfig({ + perspective: 'previewDrafts', + token: process.env.SANITY_VIEWER_TOKEN, // Needed for accessing previewDrafts perspective + useCdn: false, // the previewDrafts perspective requires this to be `false + }); + return _sanityFetch({ query, params, client: previewClient }); + } + + return _sanityFetch({ query, params }); + }); diff --git a/apps/docs/src/lib/sanity.ts b/apps/docs/src/lib/sanity.ts index 62117192a..405c0a6d3 100644 --- a/apps/docs/src/lib/sanity.ts +++ b/apps/docs/src/lib/sanity.ts @@ -5,17 +5,20 @@ export const client = createClient({ dataset: 'grunnmuren', apiVersion: '2024-09-18', useCdn: true, + perspective: 'published', }); export async function sanityFetch({ query, params = {}, + client: _client = client, }: { query: QueryString; params?: QueryParams; + client?: typeof client; }) { // Not sure what's happening here, but I need to set filterReponse to false to get the data as an array? - const { result } = await client.fetch(query, params, { + const { result } = await _client.fetch(query, params, { filterResponse: false, }); diff --git a/apps/docs/src/lib/visual-editing.ts b/apps/docs/src/lib/visual-editing.ts new file mode 100644 index 000000000..3ec4ad795 --- /dev/null +++ b/apps/docs/src/lib/visual-editing.ts @@ -0,0 +1,41 @@ +import { enableVisualEditing } from '@sanity/visual-editing' +import { useNavigate, useRouter } from '@tanstack/react-router'; +import { useEffect } from 'react' + +export function VisualEditing() { + const router = useRouter(); + + + useEffect(() => { + const disable = enableVisualEditing({ + history: { + // subscribe: (_navigate) => { + // router.history.subscribe + // }, + // subscribe: (_navigate) => { + // }, + // subscribe: (_navigate) => { + // setNavigate(() => _navigate) + // return () => setNavigate(undefined) + // }, + update: (update) => { + console.log(update); + switch (update.type) { + case 'push': + router.history.push(update.url); + break; + case 'replace': + router.history.replace(update.url); + break; + case 'pop': + router.history.back(); + break; + } + }, + } + }) + + }, [router]); + + return null; +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9b75f8df9..fb6e08b6a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -107,12 +107,21 @@ importers: '@sanity/image-url': specifier: ^1.2.0 version: 1.2.0 + '@sanity/presentation': + specifier: 1.21.1 + version: 1.21.1(@emotion/is-prop-valid@1.2.2)(react-dom@19.2.0(react@19.2.0))(react-is@19.2.0)(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0)) + '@sanity/preview-url-secret': + specifier: 2.1.0 + version: 2.1.0(@sanity/client@7.12.1) '@sanity/table': specifier: 2.0.0 version: 2.0.0(@emotion/is-prop-valid@1.2.2)(react-dom@19.2.0(react@19.2.0))(react-is@19.2.0)(react@19.2.0)(sanity@4.14.2(@emotion/is-prop-valid@1.2.2)(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3)))(@types/node@24.10.0)(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(immer@10.2.0)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.37.0)(tsx@4.19.2)(typescript@5.9.3)(yaml@2.7.0))(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0)) '@sanity/vision': specifier: 4.14.2 version: 4.14.2(@babel/runtime@7.28.4)(@codemirror/lint@6.8.4)(@codemirror/theme-one-dark@6.1.2)(@emotion/is-prop-valid@1.2.2)(codemirror@6.0.1)(react-dom@19.2.0(react@19.2.0))(react-is@19.2.0)(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0)) + '@sanity/visual-editing': + specifier: 2.12.0 + version: 2.12.0(@sanity/client@7.12.1)(next@16.0.1(@babel/core@7.28.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@tanstack/nitro-v2-vite-plugin': specifier: 1.133.19 version: 1.133.19(vite@7.2.2(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) @@ -3536,6 +3545,10 @@ packages: resolution: {integrity: sha512-6Rbg71hkeoGInk/9hBsCUBCZ33IHSs2fZynAR85ANkXDM+WYiwRDlker7OngBkfbK8TF9+G797VjNMQQgJINiQ==} engines: {node: '>=18'} + '@sanity/comlink@3.0.0': + resolution: {integrity: sha512-R6oUq5GrLIldCCHFpVZbZt4Zuw9QWUeA1A1YhRJxifarTj+RDETIfDGenioKGvUAZeeVhADMooG33xzyQor45w==} + engines: {node: '>=18'} + '@sanity/comlink@3.1.1': resolution: {integrity: sha512-UyBJG4oWNs+VGVo5Yr5aKir5bgMzF/dnaNYjqxP2+5+iXnvhVOcI6dAtEXDj7kMmn5/ysHNKbLDlW6aVeBm7xg==} engines: {node: '>=18'} @@ -3548,6 +3561,10 @@ packages: resolution: {integrity: sha512-pTqpyLhH3z4NDhjKHyfL+quVN0ixA8NikcdqxRmL2iqPZuJavi81eKm631PaUqJGbY1kh1+vHnO1/GgWIcjgxw==} engines: {node: '>=18.0.0'} + '@sanity/diff-match-patch@3.1.2': + resolution: {integrity: sha512-jW2zqnnV3cLXy7exOKbqaWJPb15rFSQGseAhlPljzbg5CP0hrujk0TwYpsNMz2xwTELOk1JkBUINQYbPE4TmaA==} + engines: {node: '>=18.18'} + '@sanity/diff-match-patch@3.2.0': resolution: {integrity: sha512-4hPADs0qUThFZkBK/crnfKKHg71qkRowfktBljH2UIxGHHTxIzt8g8fBiXItyCjxkuNy+zpYOdRMifQNv8+Yww==} engines: {node: '>=18.18'} @@ -3639,6 +3656,15 @@ packages: resolution: {integrity: sha512-ThMeZDWvib5N5OxcJuEh8qGZInPaTR4zizSG5FaLDB6yfrhRh3eOOFCVj0CBklTv1hrrQ5lDwZMn3fb0yZKLvA==} engines: {node: '>=20.19 <22 || >=22.12'} + '@sanity/mutate@0.11.0-canary.4': + resolution: {integrity: sha512-82jU3PvxQepY+jVJU1WaXQOf2Q9Q/fOCE2ksJZ4cnH3/WFOsg7RceYoOWb1XKthchTCD9zSBS9DRmb7FQ0Jlsg==} + engines: {node: '>=18'} + peerDependencies: + xstate: ^5.19.0 + peerDependenciesMeta: + xstate: + optional: true + '@sanity/mutate@0.12.4': resolution: {integrity: sha512-CBPOOTCTyHFyhBL+seWpkGKJIE6lpaFd9yIeTIDt6miluBz6W8OKTNbaU6gPzOztqrr8KbrTaROiQAaMQDndQA==} engines: {node: '>=18'} @@ -3657,6 +3683,16 @@ packages: resolution: {integrity: sha512-NN079HWOT+RGn2xMwohUF+xz6Oq1V82Eb5r3TfmIHZjtO9xOi6T2WoISdcMkDkd96Lg5puvv/SCczb75SAawZA==} engines: {node: '>=20.19 <22 || >=22.12'} + '@sanity/presentation@1.21.1': + resolution: {integrity: sha512-SDjWRJG+5EaVrlVI4boXpc070fwb9wkTBLHpcifQyL21Strkvlx65unMnadU3wDJyULwj+TLLGzDgcD5eP8y5g==} + engines: {node: '>=16.14'} + + '@sanity/preview-url-secret@2.1.0': + resolution: {integrity: sha512-tnRnbPAhEgUp0mESCRJmScbvEC8r+UwJXDN0mwAv1das6FBUMP5VvvvPa+E/OhEDs8QLTFs0q+G9JpbgvK3DSw==} + engines: {node: '>=18'} + peerDependencies: + '@sanity/client': ^6.24.1 + '@sanity/preview-url-secret@2.1.15': resolution: {integrity: sha512-pHDZ6G1XeCco7wmlGNFeA5nOdtXK05imtEtUFHEIE/isZEFXL4V2AL2OGc/ktV9hWr7D9+w1kAI6PfE/SwXNVg==} engines: {node: '>=18'} @@ -3710,6 +3746,15 @@ packages: peerDependencies: '@types/react': 18 || 19 + '@sanity/ui@2.16.22': + resolution: {integrity: sha512-Zw217nqjLhROHrjFYPCwV61xEYHwUbBOohHO2DZ4LdQKqNfTKsqcjLVx9Heb4oDzB06L+1CamIrvPaexVijfeg==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: ^18 || >=19.0.0-0 + react-dom: ^18 || >=19.0.0-0 + react-is: ^18 || >=19.0.0-0 + styled-components: ^5.2 || ^6 + '@sanity/ui@3.1.11': resolution: {integrity: sha512-UooG4hq0ytUivCe0d5O+QWnG+B6fpuu5npNZNpV9SJNwZNH4hDNbLjnDS8sqEkaYVNhgIS+C26nnkVK134Di4w==} engines: {node: '>=20.19 <22 || >=22.12'} @@ -3742,6 +3787,32 @@ packages: '@sanity/types': optional: true + '@sanity/visual-editing@2.12.0': + resolution: {integrity: sha512-cfboVokNtU9ANFOiPJHlbJ6SR/JzS3zXgasFHt5M+F8/w8NKsFVD/NbbAkj4fVZAqbmeMbK1/haFn2dyRhTeOQ==} + engines: {node: '>=18'} + peerDependencies: + '@remix-run/react': '>= 2' + '@sanity/client': ^6.24.1 + '@sveltejs/kit': '>= 2' + next: '>= 13 || >=14.3.0-canary.0 <14.3.0 || >=15.0.0-rc' + react: ^18.3 || >=19.0.0-rc + react-dom: ^18.3 || >=19.0.0-rc + react-router: '>= 7' + svelte: '>= 4' + peerDependenciesMeta: + '@remix-run/react': + optional: true + '@sanity/client': + optional: true + '@sveltejs/kit': + optional: true + next: + optional: true + react-router: + optional: true + svelte: + optional: true + '@sentry-internal/browser-utils@8.55.0': resolution: {integrity: sha512-ROgqtQfpH/82AQIpESPqPQe0UyWywKJsmVIqi3c5Fh+zkds5LUxnssTj3yNd1x+kxaPDVB023jAP+3ibNgeNDw==} engines: {node: '>=14.18'} @@ -4340,6 +4411,9 @@ packages: '@types/follow-redirects@1.14.4': resolution: {integrity: sha512-GWXfsD0Jc1RWiFmMuMFCpXMzi9L7oPDVwxUnZdg89kDNnqsRfUKXEtUYtA98A6lig1WXH/CYY/fvPW9HuN5fTA==} + '@types/hast@2.3.10': + resolution: {integrity: sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==} + '@types/hast@3.0.4': resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} @@ -4564,6 +4638,9 @@ packages: engines: {node: '>=18'} hasBin: true + '@vercel/stega@0.1.2': + resolution: {integrity: sha512-P7mafQXjkrsoyTRppnt0N21udKS9wUmLXHRyP9saLXLHw32j/FgUJ3FscSWgvSqRs4cj7wKZtwqJEvWJ2jbGmA==} + '@vitejs/plugin-react@4.7.0': resolution: {integrity: sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==} engines: {node: ^14.18.0 || >=16.0.0} @@ -5004,12 +5081,21 @@ packages: resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} engines: {node: '>=10'} + character-entities-legacy@1.1.4: + resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} + character-entities-legacy@3.0.0: resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + character-entities@1.2.4: + resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} + character-entities@2.0.2: resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + character-reference-invalid@1.1.4: + resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} + character-reference-invalid@2.0.1: resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} @@ -5155,6 +5241,9 @@ packages: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} + comma-separated-tokens@1.0.8: + resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==} + comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} @@ -5558,6 +5647,9 @@ packages: dom-serializer@2.0.0: resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + dom-walk@0.1.2: + resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==} + domelementtype@1.3.1: resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==} @@ -5970,6 +6062,20 @@ packages: resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==} engines: {node: '>= 6'} + framer-motion@11.17.0: + resolution: {integrity: sha512-uTNLH9JPMD3ad14WBt3KYRTR+If4tGPLgKTKTIIPaEBMkvazs6EkWNcmCh65qA/tyinOqIbQiuCorXX0qQsNoQ==} + peerDependencies: + '@emotion/is-prop-valid': '*' + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@emotion/is-prop-valid': + optional: true + react: + optional: true + react-dom: + optional: true + framer-motion@12.23.24: resolution: {integrity: sha512-HMi5HRoRCTou+3fb3h9oTLyJGBxHfW+HnNE25tAXOvVx/IvwMHK0cx7IR4a2ZU6sh3IX1Z+4ts32PcYBOqka8w==} peerDependencies: @@ -6073,6 +6179,13 @@ packages: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} + get-random-values-esm@1.0.2: + resolution: {integrity: sha512-HMSDTgj1HPFAuZG0FqxzHbYt5JeEGDUeT9r1RLXhS6RZQS8rLRjokgjZ0Pd28CN0lhXlRwfH6eviZqZEJ2kIoA==} + + get-random-values@1.2.2: + resolution: {integrity: sha512-lMyPjQyl0cNNdDf2oR+IQ/fM3itDvpoHy45Ymo2r0L1EjazeSl13SfbKZs7KtZ/3MDCeueiaJiuOEfKqRTsSgA==} + engines: {node: 10 || 12 || >=14} + get-stream@5.2.0: resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} engines: {node: '>=8'} @@ -6125,6 +6238,9 @@ packages: resolution: {integrity: sha512-gOPiyxcD9dJGCEArAhF4Hd0BAqvAe/JzERP7tYumE4yIkmIedPUVXcJFWbV3/p/ovIIvKjkrTk+f1UVkq7vvbw==} engines: {node: '>=0.10.0'} + global@4.4.0: + resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==} + globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} @@ -6215,9 +6331,15 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} + hast-util-parse-selector@2.2.5: + resolution: {integrity: sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==} + hast-util-parse-selector@4.0.0: resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} + hastscript@6.0.0: + resolution: {integrity: sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==} + hastscript@9.0.1: resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==} @@ -6389,9 +6511,15 @@ packages: iron-webcrypto@1.2.1: resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} + is-alphabetical@1.0.4: + resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} + is-alphabetical@2.0.1: resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} + is-alphanumerical@1.0.4: + resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} + is-alphanumerical@2.0.1: resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} @@ -6406,6 +6534,9 @@ packages: resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} engines: {node: '>= 0.4'} + is-decimal@1.0.4: + resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} + is-decimal@2.0.1: resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} @@ -6442,6 +6573,9 @@ packages: resolution: {integrity: sha512-rcfALRIb1YewtnksfRIHGcIY93QnK8BIQ/2c9yDYcG/Y6+vRoJuTWBmmSEbyLLYtXm7q35pHOHbZFQBaLrhlWQ==} engines: {node: '>=0.10.0'} + is-hexadecimal@1.0.4: + resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} + is-hexadecimal@2.0.1: resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} @@ -7185,6 +7319,9 @@ packages: resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} engines: {node: '>=10'} + min-document@2.19.2: + resolution: {integrity: sha512-8S5I8db/uZN8r9HSLFVWPdJCvYOejMcEC82VIzNUc6Zkklf/d1gg2psfE79/vyhWOj4+J8MtwmoOz3TmvaGu5A==} + min-indent@1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} @@ -7243,12 +7380,21 @@ packages: mlly@1.8.0: resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==} + mnemonist@0.39.8: + resolution: {integrity: sha512-vyWo2K3fjrUw8YeeZ1zF0fy6Mu59RHokURlld8ymdUPjMlD9EC9ov1/YPqTgqRvUN9nTr3Gqfz29LYAmu0PHPQ==} + module-alias@2.2.3: resolution: {integrity: sha512-23g5BFj4zdQL/b6tor7Ji+QY4pEfNH784BMslY9Qb0UnJWRAt+lQGLYmRaM0KDBwIG23ffEBELhZDP2rhi9f/Q==} + motion-dom@11.16.4: + resolution: {integrity: sha512-2wuCie206pCiP2K23uvwJeci4pMFfyQKpWI0Vy6HrCTDzDCer4TsYtT7IVnuGbDeoIV37UuZiUr6SZMHEc1Vww==} + motion-dom@12.23.23: resolution: {integrity: sha512-n5yolOs0TQQBRUFImrRfs/+6X4p3Q4n1dUEqt/H58Vx7OW6RF+foWEgmTVDhIWJIMXOuNNL0apKH2S16en9eiA==} + motion-utils@11.18.1: + resolution: {integrity: sha512-49Kt+HKjtbJKLtgO/LKj9Ld+6vw9BjH5d9sc40R/kVyH8GLAXgT42M2NnuPcJNuA3s9ZfZBUcwIgpmZWGEE+hA==} + motion-utils@12.23.6: resolution: {integrity: sha512-eAWoPgr4eFEOFfg2WjIsMoqJTW6Z8MTUCgn/GZ3VRpClWBdnbjryiA3ZSNLyxCTmCQx4RmYX6jX1iWHbenUPNQ==} @@ -7446,6 +7592,9 @@ packages: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} + obliterator@2.0.5: + resolution: {integrity: sha512-42CPE9AhahZRsMNslczq0ctAEtqk8Eka26QofnqC346BZdHDySk3LWka23LI7ULIw11NmltpiLagIq8gBozxTw==} + observable-callback@1.0.3: resolution: {integrity: sha512-VlS275UyPnwdMtzxDgr/lCiOUyq9uXNll3vdwzDcJ6PB/LuO7gLmxAQopcCA3JoFwwujBwyA7/tP5TXZwWSXew==} engines: {node: '>=16'} @@ -7588,6 +7737,9 @@ packages: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} + parse-entities@2.0.0: + resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} + parse-entities@4.0.2: resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} @@ -7811,6 +7963,10 @@ packages: peerDependencies: react: '>=16.0.0' + prismjs@1.27.0: + resolution: {integrity: sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==} + engines: {node: '>=6'} + process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} @@ -7829,6 +7985,9 @@ packages: prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + property-information@5.6.0: + resolution: {integrity: sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==} + property-information@7.1.0: resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} @@ -7910,6 +8069,11 @@ packages: peerDependencies: react: ^17.0.0 || ^18.0.0 || ^19.0.0 || ^0.0.0-experimental + react-compiler-runtime@19.0.0-beta-55955c9-20241229: + resolution: {integrity: sha512-I8niUyydqnPVMjqsOEfFwiRlWbndSjgwGhbm5GZuKev3b0HAcUAqAoHNIpp0XSHInlwfn4Zvtbva5TLupEOw+Q==} + peerDependencies: + react: ^17.0.0 || ^18.0.0 || ^19.0.0 || ^0.0.0-experimental + react-compiler-runtime@19.1.0-rc.3: resolution: {integrity: sha512-Cssogys2XZu6SqxRdX2xd8cQAf57BBvFbLEBlIa77161lninbKUn/EqbecCe7W3eqDQfg3rIoOwzExzgCh7h/g==} peerDependencies: @@ -7983,6 +8147,11 @@ packages: react: '>=18.0.0' react-dom: '>=18.0.0' + react-refractor@2.2.0: + resolution: {integrity: sha512-UvWkBVqH/2b9nkkkt4UNFtU3aY1orQfd4plPjx5rxbefy6vGajNHU9n+tv8CbykFyVirr3vEBfN2JTxyK0d36g==} + peerDependencies: + react: '>=15.0.0' + react-refractor@4.0.0: resolution: {integrity: sha512-2VMRH3HA/Nu+tMFzyQwdBK0my0BIZy1pkWHhjuSrplMyf8ZLx/Gw7tUXV0t2JbEsbSNHbEc9TbHhq3sUx2seVA==} engines: {node: '>=20.0.0'} @@ -8072,6 +8241,9 @@ packages: resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==} engines: {node: '>=4'} + refractor@3.6.0: + resolution: {integrity: sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==} + refractor@5.0.0: resolution: {integrity: sha512-QXOrHQF5jOpjjLfiNk5GFnWhRXvxjUVnlFxkeDmewR5sXkr3iM46Zo+CnRR8B+MDVqkULW4EcLVcRBNOPXHosw==} @@ -8452,6 +8624,9 @@ packages: resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} engines: {node: '>= 12'} + space-separated-tokens@1.1.5: + resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} + space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} @@ -8652,6 +8827,11 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} + suspend-react@0.1.3: + resolution: {integrity: sha512-aqldKgX9aZqpoDp3e8/BZ8Dm7x1pJl+qI3ZKxDN0i/IQTWUwBx/ManmlVJ3wowqbno6c2bmiIfs+Um6LbsjJyQ==} + peerDependencies: + react: '>=17.0' + svg-parser@2.0.4: resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==} @@ -8973,12 +9153,21 @@ packages: resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} engines: {node: '>=8'} + unist-util-filter@2.0.3: + resolution: {integrity: sha512-8k6Jl/KLFqIRTHydJlHh6+uFgqYHq66pV75pZgr1JwfyFSjbWb12yfb0yitW/0TbHXjr9U4G9BQpOvMANB+ExA==} + unist-util-filter@5.0.1: resolution: {integrity: sha512-pHx7D4Zt6+TsfwylH9+lYhBhzyhEnCXs/lbq/Hstxno5z4gVdyc2WEW0asfjGKPyG4pEKrnBv5hdkO6+aRnQJw==} + unist-util-is@4.1.0: + resolution: {integrity: sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==} + unist-util-is@6.0.1: resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} + unist-util-visit-parents@3.1.1: + resolution: {integrity: sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==} + unist-util-visit-parents@6.0.2: resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==} @@ -9128,6 +9317,11 @@ packages: peerDependencies: react: '>= 16.8.0' + use-effect-event@1.0.2: + resolution: {integrity: sha512-9c8AAmtQja4LwJXI0EQPhQCip6dmrcSe0FMcTUZBeGh/XTCOLgw3Qbt0JdUT8Rcrm/ZH+Web7MIcMdqgQKdXJg==} + peerDependencies: + react: ^18.3 || ^19.0.0-0 + use-effect-event@2.0.3: resolution: {integrity: sha512-fz1en+z3fYXCXx3nMB8hXDMuygBltifNKZq29zDx+xNJ+1vEs6oJlYd9sK31vxJ0YI534VUsHEBY0k2BATsmBQ==} peerDependencies: @@ -9181,6 +9375,9 @@ packages: resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} engines: {node: '>=10.12.0'} + valibot@0.31.1: + resolution: {integrity: sha512-2YYIhPrnVSz/gfT2/iXVTrSj92HwchCt9Cga/6hX4B26iCz9zkIsGTS0HjDYTZfTi1Un0X6aRvhBi1cfqs/i0Q==} + validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} @@ -14524,6 +14721,12 @@ snapshots: uuid: 11.1.0 xstate: 5.24.0 + '@sanity/comlink@3.0.0': + dependencies: + rxjs: 7.8.2 + uuid: 11.1.0 + xstate: 5.24.0 + '@sanity/comlink@3.1.1': dependencies: rxjs: 7.8.2 @@ -14540,6 +14743,8 @@ snapshots: dependencies: sha256-uint8array: 0.10.7 + '@sanity/diff-match-patch@3.1.2': {} + '@sanity/diff-match-patch@3.2.0': {} '@sanity/diff-patch@5.0.0': @@ -14676,6 +14881,20 @@ snapshots: - '@types/react' - supports-color + '@sanity/mutate@0.11.0-canary.4(xstate@5.24.0)': + dependencies: + '@sanity/client': 6.28.4(debug@4.4.3) + '@sanity/diff-match-patch': 3.1.2 + hotscript: 1.0.13 + lodash: 4.17.21 + lodash-es: 4.17.21 + mendoza: 3.0.8 + rxjs: 7.8.2 + optionalDependencies: + xstate: 5.24.0 + transitivePeerDependencies: + - debug + '@sanity/mutate@0.12.4(debug@4.4.3)': dependencies: '@sanity/client': 6.28.4(debug@4.4.3) @@ -14732,6 +14951,43 @@ snapshots: - '@sanity/client' - '@sanity/types' + '@sanity/presentation@1.21.1(@emotion/is-prop-valid@1.2.2)(react-dom@19.2.0(react@19.2.0))(react-is@19.2.0)(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))': + dependencies: + '@sanity/client': 6.28.4(debug@4.4.3) + '@sanity/comlink': 3.0.0 + '@sanity/icons': 3.7.4(react@19.2.0) + '@sanity/logos': 2.2.2(react@19.2.0) + '@sanity/preview-url-secret': 2.1.0(@sanity/client@6.28.4) + '@sanity/ui': 2.16.22(@emotion/is-prop-valid@1.2.2)(react-dom@19.2.0(react@19.2.0))(react-is@19.2.0)(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0)) + '@sanity/uuid': 3.0.2 + fast-deep-equal: 3.1.3 + framer-motion: 11.17.0(@emotion/is-prop-valid@1.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + lodash: 4.17.21 + mendoza: 3.0.8 + mnemonist: 0.39.8 + path-to-regexp: 6.3.0 + react-compiler-runtime: 19.0.0-beta-55955c9-20241229(react@19.2.0) + rxjs: 7.8.2 + suspend-react: 0.1.3(react@19.2.0) + use-effect-event: 1.0.2(react@19.2.0) + transitivePeerDependencies: + - '@emotion/is-prop-valid' + - debug + - react + - react-dom + - react-is + - styled-components + + '@sanity/preview-url-secret@2.1.0(@sanity/client@6.28.4)': + dependencies: + '@sanity/client': 6.28.4(debug@4.4.3) + '@sanity/uuid': 3.0.2 + + '@sanity/preview-url-secret@2.1.0(@sanity/client@7.12.1)': + dependencies: + '@sanity/client': 7.12.1(debug@4.4.3) + '@sanity/uuid': 3.0.2 + '@sanity/preview-url-secret@2.1.15(@sanity/client@7.12.1)(@sanity/icons@3.7.4(react@19.2.0))(sanity@4.14.2(@emotion/is-prop-valid@1.2.2)(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3)))(@types/node@24.10.0)(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(immer@10.2.0)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.37.0)(tsx@4.19.2)(typescript@5.9.3)(yaml@2.7.0))': dependencies: '@sanity/client': 7.12.1(debug@4.4.3) @@ -14863,6 +15119,24 @@ snapshots: transitivePeerDependencies: - debug + '@sanity/ui@2.16.22(@emotion/is-prop-valid@1.2.2)(react-dom@19.2.0(react@19.2.0))(react-is@19.2.0)(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))': + dependencies: + '@floating-ui/react-dom': 2.1.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@juggle/resize-observer': 3.4.0 + '@sanity/color': 3.0.6 + '@sanity/icons': 3.7.4(react@19.2.0) + csstype: 3.1.3 + motion: 12.23.24(@emotion/is-prop-valid@1.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-compiler-runtime: 1.0.0(react@19.2.0) + react-dom: 19.2.0(react@19.2.0) + react-is: 19.2.0 + react-refractor: 2.2.0(react@19.2.0) + styled-components: 6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + use-effect-event: 2.0.3(react@19.2.0) + transitivePeerDependencies: + - '@emotion/is-prop-valid' + '@sanity/ui@3.1.11(@emotion/is-prop-valid@1.2.2)(react-dom@19.2.0(react@19.2.0))(react-is@19.2.0)(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))': dependencies: '@floating-ui/react-dom': 2.1.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0) @@ -14943,6 +15217,26 @@ snapshots: optionalDependencies: '@sanity/types': 4.14.2(@types/react@19.2.2)(debug@4.4.3) + '@sanity/visual-editing@2.12.0(@sanity/client@7.12.1)(next@16.0.1(@babel/core@7.28.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + dependencies: + '@sanity/comlink': 3.0.0 + '@sanity/mutate': 0.11.0-canary.4(xstate@5.24.0) + '@sanity/preview-url-secret': 2.1.0(@sanity/client@7.12.1) + '@vercel/stega': 0.1.2 + get-random-values-esm: 1.0.2 + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) + rxjs: 7.8.2 + scroll-into-view-if-needed: 3.1.0 + use-effect-event: 1.0.2(react@19.2.0) + valibot: 0.31.1 + xstate: 5.24.0 + optionalDependencies: + '@sanity/client': 7.12.1(debug@4.4.3) + next: 16.0.1(@babel/core@7.28.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + transitivePeerDependencies: + - debug + '@sentry-internal/browser-utils@8.55.0': dependencies: '@sentry/core': 8.55.0 @@ -15720,6 +16014,10 @@ snapshots: dependencies: '@types/node': 24.10.0 + '@types/hast@2.3.10': + dependencies: + '@types/unist': 2.0.11 + '@types/hast@3.0.4': dependencies: '@types/unist': 3.0.3 @@ -15914,6 +16212,8 @@ snapshots: - rollup - supports-color + '@vercel/stega@0.1.2': {} + '@vitejs/plugin-react@4.7.0(vite@7.2.2(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))': dependencies: '@babel/core': 7.28.4 @@ -16432,10 +16732,16 @@ snapshots: char-regex@1.0.2: {} + character-entities-legacy@1.1.4: {} + character-entities-legacy@3.0.0: {} + character-entities@1.2.4: {} + character-entities@2.0.2: {} + character-reference-invalid@1.1.4: {} + character-reference-invalid@2.0.1: {} chardet@2.1.0: {} @@ -16587,6 +16893,8 @@ snapshots: dependencies: delayed-stream: 1.0.0 + comma-separated-tokens@1.0.8: {} + comma-separated-tokens@2.0.3: {} commander@11.1.0: {} @@ -16904,6 +17212,8 @@ snapshots: domhandler: 5.0.3 entities: 4.5.0 + dom-walk@0.1.2: {} + domelementtype@1.3.1: {} domelementtype@2.3.0: {} @@ -17398,6 +17708,16 @@ snapshots: hasown: 2.0.2 mime-types: 2.1.35 + framer-motion@11.17.0(@emotion/is-prop-valid@1.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0): + dependencies: + motion-dom: 11.16.4 + motion-utils: 11.18.1 + tslib: 2.8.1 + optionalDependencies: + '@emotion/is-prop-valid': 1.2.2 + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) + framer-motion@12.23.24(@emotion/is-prop-valid@1.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: motion-dom: 12.23.23 @@ -17501,6 +17821,14 @@ snapshots: dunder-proto: 1.0.1 es-object-atoms: 1.1.1 + get-random-values-esm@1.0.2: + dependencies: + get-random-values: 1.2.2 + + get-random-values@1.2.2: + dependencies: + global: 4.4.0 + get-stream@5.2.0: dependencies: pump: 3.0.2 @@ -17584,6 +17912,11 @@ snapshots: is-windows: 0.2.0 which: 1.3.1 + global@4.4.0: + dependencies: + min-document: 2.19.2 + process: 0.11.10 + globals@11.12.0: {} globby@11.1.0: @@ -17681,10 +18014,20 @@ snapshots: dependencies: function-bind: 1.1.2 + hast-util-parse-selector@2.2.5: {} + hast-util-parse-selector@4.0.0: dependencies: '@types/hast': 3.0.4 + hastscript@6.0.0: + dependencies: + '@types/hast': 2.3.10 + comma-separated-tokens: 1.0.8 + hast-util-parse-selector: 2.2.5 + property-information: 5.6.0 + space-separated-tokens: 1.1.5 + hastscript@9.0.1: dependencies: '@types/hast': 3.0.4 @@ -17893,8 +18236,15 @@ snapshots: iron-webcrypto@1.2.1: {} + is-alphabetical@1.0.4: {} + is-alphabetical@2.0.1: {} + is-alphanumerical@1.0.4: + dependencies: + is-alphabetical: 1.0.4 + is-decimal: 1.0.4 + is-alphanumerical@2.0.1: dependencies: is-alphabetical: 2.0.1 @@ -17910,6 +18260,8 @@ snapshots: dependencies: hasown: 2.0.2 + is-decimal@1.0.4: {} + is-decimal@2.0.1: {} is-deflate@1.0.0: {} @@ -17930,6 +18282,8 @@ snapshots: is-gzip@1.0.0: {} + is-hexadecimal@1.0.4: {} + is-hexadecimal@2.0.1: {} is-hotkey-esm@1.0.0: {} @@ -18878,6 +19232,10 @@ snapshots: mimic-response@3.1.0: {} + min-document@2.19.2: + dependencies: + dom-walk: 0.1.2 + min-indent@1.0.1: {} minimatch@10.0.3: @@ -18941,12 +19299,22 @@ snapshots: pkg-types: 1.3.1 ufo: 1.6.1 + mnemonist@0.39.8: + dependencies: + obliterator: 2.0.5 + module-alias@2.2.3: {} + motion-dom@11.16.4: + dependencies: + motion-utils: 11.18.1 + motion-dom@12.23.23: dependencies: motion-utils: 12.23.6 + motion-utils@11.18.1: {} + motion-utils@12.23.6: {} motion@12.23.24(@emotion/is-prop-valid@1.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0): @@ -19231,6 +19599,8 @@ snapshots: object-keys@1.1.1: {} + obliterator@2.0.5: {} + observable-callback@1.0.3(rxjs@7.8.2): dependencies: rxjs: 7.8.2 @@ -19377,6 +19747,15 @@ snapshots: dependencies: callsites: 3.1.0 + parse-entities@2.0.0: + dependencies: + character-entities: 1.2.4 + character-entities-legacy: 1.1.4 + character-reference-invalid: 1.1.4 + is-alphanumerical: 1.0.4 + is-decimal: 1.0.4 + is-hexadecimal: 1.0.4 + parse-entities@4.0.2: dependencies: '@types/unist': 2.0.11 @@ -19606,6 +19985,8 @@ snapshots: clsx: 2.1.1 react: 19.2.0 + prismjs@1.27.0: {} + process-nextick-args@2.0.1: {} process-on-spawn@1.1.0: @@ -19625,6 +20006,10 @@ snapshots: object-assign: 4.1.1 react-is: 16.13.1 + property-information@5.6.0: + dependencies: + xtend: 4.0.2 + property-information@7.1.0: {} proxy-from-env@1.1.0: {} @@ -19851,6 +20236,10 @@ snapshots: dependencies: react: 19.2.0 + react-compiler-runtime@19.0.0-beta-55955c9-20241229(react@19.2.0): + dependencies: + react: 19.2.0 + react-compiler-runtime@19.1.0-rc.3(react@19.2.0): dependencies: react: 19.2.0 @@ -19932,6 +20321,13 @@ snapshots: sucrase: 3.35.0 use-editable: 2.3.3(react@19.2.0) + react-refractor@2.2.0(react@19.2.0): + dependencies: + react: 19.2.0 + refractor: 3.6.0 + unist-util-filter: 2.0.3 + unist-util-visit-parents: 3.1.1 + react-refractor@4.0.0(react@19.2.0): dependencies: react: 19.2.0 @@ -20099,6 +20495,12 @@ snapshots: dependencies: redis-errors: 1.2.0 + refractor@3.6.0: + dependencies: + hastscript: 6.0.0 + parse-entities: 2.0.0 + prismjs: 1.27.0 + refractor@5.0.0: dependencies: '@types/hast': 3.0.4 @@ -20691,6 +21093,8 @@ snapshots: source-map@0.7.6: {} + space-separated-tokens@1.1.5: {} + space-separated-tokens@2.0.2: {} spawn-wrap@2.0.0: @@ -20908,6 +21312,10 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} + suspend-react@0.1.3(react@19.2.0): + dependencies: + react: 19.2.0 + svg-parser@2.0.4: {} svgo@3.3.2: @@ -21222,16 +21630,27 @@ snapshots: dependencies: crypto-random-string: 2.0.0 + unist-util-filter@2.0.3: + dependencies: + unist-util-is: 4.1.0 + unist-util-filter@5.0.1: dependencies: '@types/unist': 3.0.3 unist-util-is: 6.0.1 unist-util-visit-parents: 6.0.2 + unist-util-is@4.1.0: {} + unist-util-is@6.0.1: dependencies: '@types/unist': 3.0.3 + unist-util-visit-parents@3.1.1: + dependencies: + '@types/unist': 2.0.11 + unist-util-is: 4.1.0 + unist-util-visit-parents@6.0.2: dependencies: '@types/unist': 3.0.3 @@ -21362,6 +21781,10 @@ snapshots: dependencies: react: 19.2.0 + use-effect-event@1.0.2(react@19.2.0): + dependencies: + react: 19.2.0 + use-effect-event@2.0.3(react@19.2.0): dependencies: react: 19.2.0 @@ -21406,6 +21829,8 @@ snapshots: '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 + valibot@0.31.1: {} + validate-npm-package-license@3.0.4: dependencies: spdx-correct: 3.2.0 From db8e9540cec5388062e497e63a5df0e854528a75 Mon Sep 17 00:00:00 2001 From: Alexander Bjerkan Date: Sun, 12 Jan 2025 08:11:34 +0100 Subject: [PATCH 2/3] partially working --- apps/docs/app/routes/_docs.tsx | 30 +++++++++- .../app/routes/_docs/komponenter/$slug.tsx | 3 +- apps/docs/src/lib/preview-middleware.ts | 4 +- apps/docs/src/lib/visual-editing.tsx | 57 +++++++++++++++++++ apps/docs/src/ui/disable-preview-mode.tsx | 10 ++++ 5 files changed, 99 insertions(+), 5 deletions(-) create mode 100644 apps/docs/src/lib/visual-editing.tsx create mode 100644 apps/docs/src/ui/disable-preview-mode.tsx diff --git a/apps/docs/app/routes/_docs.tsx b/apps/docs/app/routes/_docs.tsx index fe14d4079..975b29f5a 100644 --- a/apps/docs/app/routes/_docs.tsx +++ b/apps/docs/app/routes/_docs.tsx @@ -1,6 +1,8 @@ +import { previewMiddleware } from '@/lib/preview-middleware'; import { sanityFetch } from '@/lib/sanity'; import { VisualEditing } from '@/lib/visual-editing'; import appCss from '@/styles/app.css?url'; +import { DisablePreviewMode } from '@/ui/disable-preview-mode'; import { Footer } from '@/ui/footer'; import { MainNav } from '@/ui/main-nav'; import { GrunnmurenProvider } from '@obosbbl/grunnmuren-react'; @@ -12,6 +14,7 @@ import { createFileRoute, useRouter, } from '@tanstack/react-router'; +import { createServerFn } from '@tanstack/start'; import { defineQuery } from 'groq'; const COMPONENTS_NAVIGATION_QUERY = defineQuery( @@ -19,6 +22,12 @@ const COMPONENTS_NAVIGATION_QUERY = defineQuery( `*[_type == "component"]{ _id, name, 'slug': coalesce(slug.current, '')} | order(name asc)`, ); +const checkIsPreview = createServerFn({ method: 'GET' }) + .middleware([previewMiddleware]) + .handler(({ context }) => { + return context.previewMode; + }); + // This is the shared layout for all the Grunnmuren docs pages that are "public", ie not the Sanity studio export const Route = createFileRoute('/_docs')({ component: RootLayout, @@ -30,11 +39,23 @@ export const Route = createFileRoute('/_docs')({ }, ], }), - loader: () => sanityFetch({ query: COMPONENTS_NAVIGATION_QUERY }), + beforeLoad: async () => { + const isPreview = await checkIsPreview(); + return { isPreview }; + }, + loader: async ({ context }) => { + return { + componentsNavItems: ( + await sanityFetch({ query: COMPONENTS_NAVIGATION_QUERY }) + ).data, + isPreview: context.isPreview, + }; + }, }); function RootLayout() { const router = useRouter(); + const { isPreview } = Route.useLoaderData(); return ( <> @@ -46,6 +67,12 @@ function RootLayout() { navigate={(to, options) => router.navigate({ to, ...options })} useHref={(to) => router.buildLocation({ to }).href} > + {isPreview && ( + <> + + + + )}
@@ -57,7 +84,6 @@ function RootLayout() {
- ); } diff --git a/apps/docs/app/routes/_docs/komponenter/$slug.tsx b/apps/docs/app/routes/_docs/komponenter/$slug.tsx index 35b7a7e69..b04ff96bf 100644 --- a/apps/docs/app/routes/_docs/komponenter/$slug.tsx +++ b/apps/docs/app/routes/_docs/komponenter/$slug.tsx @@ -13,7 +13,8 @@ const COMPONENT_QUERY = defineQuery( export const Route = createFileRoute('/_docs/komponenter/$slug')({ component: Page, - loader: async ({ params }) => { + loader: async ({ params, context }) => { + console.log('context in component route', context); const res = await sanityFetch({ data: { query: COMPONENT_QUERY, diff --git a/apps/docs/src/lib/preview-middleware.ts b/apps/docs/src/lib/preview-middleware.ts index 7497b9444..0870bda75 100644 --- a/apps/docs/src/lib/preview-middleware.ts +++ b/apps/docs/src/lib/preview-middleware.ts @@ -1,9 +1,9 @@ import { createMiddleware } from '@tanstack/start'; import { getCookie } from 'vinxi/http'; -export const previewMiddleware = createMiddleware().server(async ({ next }) => { +export const previewMiddleware = createMiddleware().server(({ next }) => { const isPreview = getCookie('__sanity_preview') === 'true'; - console.log({ isPreview }); + console.log('middleware', { isPreview }); return next({ context: { previewMode: isPreview, diff --git a/apps/docs/src/lib/visual-editing.tsx b/apps/docs/src/lib/visual-editing.tsx new file mode 100644 index 000000000..de178fc64 --- /dev/null +++ b/apps/docs/src/lib/visual-editing.tsx @@ -0,0 +1,57 @@ +import { + type HistoryAdapterNavigate, + enableVisualEditing, +} from '@sanity/visual-editing'; +import { useNavigate, useRouter } from '@tanstack/react-router'; +import { useEffect, useState } from 'react'; + +export function VisualEditing() { + const router = useRouter(); + const [navigate, setNavigate] = useState< + HistoryAdapterNavigate | undefined + >(); + + useEffect(() => { + const disable = enableVisualEditing({ + history: { + subscribe: (_navigate) => { + console.log('subscribe'); + setNavigate(() => { + _navigate({ type: 'replace', url: router.state.location.href }); + return _navigate; + }); + return () => setNavigate(undefined); + }, + update: (update) => { + console.log('update', update); + switch (update.type) { + case 'push': + router.history.push(update.url); + break; + case 'replace': + router.history.replace(update.url); + break; + case 'pop': + router.history.back(); + break; + } + }, + }, + }); + + return disable; + }, [router]); + + useEffect(() => { + if (navigate) { + const unsubscribe = router.subscribe('onResolved', (evt) => { + console.log(evt); + navigate({ type: 'push', url: evt.toLocation.href }); + }); + + return unsubscribe; + } + }, [router, navigate]); + + return null; +} diff --git a/apps/docs/src/ui/disable-preview-mode.tsx b/apps/docs/src/ui/disable-preview-mode.tsx new file mode 100644 index 000000000..2deecfc59 --- /dev/null +++ b/apps/docs/src/ui/disable-preview-mode.tsx @@ -0,0 +1,10 @@ +export function DisablePreviewMode() { + return ( + + Disable preview mode + + ); +} From af09916f5cc38c457ee2304af86317ccf554717d Mon Sep 17 00:00:00 2001 From: Aulon Mujaj <4094284+aulonm@users.noreply.github.com> Date: Tue, 11 Nov 2025 13:00:20 +0100 Subject: [PATCH 3/3] update packages --- apps/docs/package.json | 5 +- packages/react/package.json | 20 +- pnpm-lock.yaml | 482 ++++++++---------------------------- 3 files changed, 118 insertions(+), 389 deletions(-) diff --git a/apps/docs/package.json b/apps/docs/package.json index d12b64599..4caeced5c 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -29,11 +29,10 @@ "@sanity/client": "7.12.1", "@sanity/code-input": "6.0.3", "@sanity/image-url": "^1.2.0", - "@sanity/presentation": "1.21.1", - "@sanity/preview-url-secret": "2.1.0", + "@sanity/preview-url-secret": "2.1.15", "@sanity/table": "2.0.0", "@sanity/vision": "4.14.2", - "@sanity/visual-editing": "2.12.0", + "@sanity/visual-editing": "4.0.0", "@tanstack/nitro-v2-vite-plugin": "1.133.19", "@tanstack/react-router": "1.135.0", "@tanstack/react-start": "1.135.0", diff --git a/packages/react/package.json b/packages/react/package.json index 72510b84c..5d48e4f70 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -22,22 +22,22 @@ }, "dependencies": { "@obosbbl/grunnmuren-icons-react": "workspace:^2.1.0", - "@react-aria/form": "^3.0.18", - "@react-aria/interactions": "^3.25.3", - "@react-aria/utils": "^3.29.1", - "@react-stately/form": "^3.1.5", - "@react-stately/utils": "^3.10.7", + "@react-aria/form": "^3.1.2", + "@react-aria/interactions": "^3.25.6", + "@react-aria/utils": "^3.31.0", + "@react-stately/form": "^3.2.2", + "@react-stately/utils": "^3.10.8", "cva": "^1.0.0-0", - "react-aria": "^3.41.1", - "react-aria-components": "^1.10.1", - "react-stately": "^3.39.0", - "use-debounce": "^10.0.4" + "react-aria": "^3.44.0", + "react-aria-components": "^1.13.0", + "react-stately": "^3.42.0", + "use-debounce": "^10.0.6" }, "peerDependencies": { "react": "^19" }, "devDependencies": { - "@types/node": "^24.0.0", + "@types/node": "^24.10.0", "tailwindcss": "4.1.17" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fb6e08b6a..56a3f7b42 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -79,7 +79,7 @@ importers: dependencies: '@code-obos/sanity-auth': specifier: 1.4.3 - version: 1.4.3(sanity@4.14.2(@emotion/is-prop-valid@1.2.2)(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3)))(@types/node@24.10.0)(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(immer@10.2.0)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.37.0)(tsx@4.19.2)(typescript@5.9.3)(yaml@2.7.0))(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0)) + version: 1.4.3(sanity@4.14.2(@emotion/is-prop-valid@1.2.2)(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)))(@types/node@24.10.0)(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(immer@10.2.0)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.37.0)(tsx@4.19.2)(typescript@5.9.3)(yaml@2.7.0))(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0)) '@obosbbl/grunnmuren-icons-react': specifier: workspace:* version: link:../../packages/icons-react @@ -103,25 +103,22 @@ importers: version: 7.12.1(debug@4.4.3) '@sanity/code-input': specifier: 6.0.3 - version: 6.0.3(@babel/runtime@7.28.4)(@codemirror/lint@6.8.4)(@codemirror/theme-one-dark@6.1.2)(@emotion/is-prop-valid@1.2.2)(codemirror@6.0.1)(react-dom@19.2.0(react@19.2.0))(react-is@19.2.0)(react@19.2.0)(sanity@4.14.2(@emotion/is-prop-valid@1.2.2)(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3)))(@types/node@24.10.0)(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(immer@10.2.0)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.37.0)(tsx@4.19.2)(typescript@5.9.3)(yaml@2.7.0))(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0)) + version: 6.0.3(@babel/runtime@7.28.4)(@codemirror/lint@6.8.4)(@codemirror/theme-one-dark@6.1.2)(@emotion/is-prop-valid@1.2.2)(codemirror@6.0.1)(react-dom@19.2.0(react@19.2.0))(react-is@19.2.0)(react@19.2.0)(sanity@4.14.2(@emotion/is-prop-valid@1.2.2)(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)))(@types/node@24.10.0)(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(immer@10.2.0)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.37.0)(tsx@4.19.2)(typescript@5.9.3)(yaml@2.7.0))(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0)) '@sanity/image-url': specifier: ^1.2.0 version: 1.2.0 - '@sanity/presentation': - specifier: 1.21.1 - version: 1.21.1(@emotion/is-prop-valid@1.2.2)(react-dom@19.2.0(react@19.2.0))(react-is@19.2.0)(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0)) '@sanity/preview-url-secret': - specifier: 2.1.0 - version: 2.1.0(@sanity/client@7.12.1) + specifier: 2.1.15 + version: 2.1.15(@sanity/client@7.12.1)(@sanity/icons@3.7.4(react@19.2.0))(sanity@4.14.2(@emotion/is-prop-valid@1.2.2)(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)))(@types/node@24.10.0)(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(immer@10.2.0)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.37.0)(tsx@4.19.2)(typescript@5.9.3)(yaml@2.7.0)) '@sanity/table': specifier: 2.0.0 - version: 2.0.0(@emotion/is-prop-valid@1.2.2)(react-dom@19.2.0(react@19.2.0))(react-is@19.2.0)(react@19.2.0)(sanity@4.14.2(@emotion/is-prop-valid@1.2.2)(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3)))(@types/node@24.10.0)(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(immer@10.2.0)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.37.0)(tsx@4.19.2)(typescript@5.9.3)(yaml@2.7.0))(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0)) + version: 2.0.0(@emotion/is-prop-valid@1.2.2)(react-dom@19.2.0(react@19.2.0))(react-is@19.2.0)(react@19.2.0)(sanity@4.14.2(@emotion/is-prop-valid@1.2.2)(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)))(@types/node@24.10.0)(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(immer@10.2.0)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.37.0)(tsx@4.19.2)(typescript@5.9.3)(yaml@2.7.0))(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0)) '@sanity/vision': specifier: 4.14.2 version: 4.14.2(@babel/runtime@7.28.4)(@codemirror/lint@6.8.4)(@codemirror/theme-one-dark@6.1.2)(@emotion/is-prop-valid@1.2.2)(codemirror@6.0.1)(react-dom@19.2.0(react@19.2.0))(react-is@19.2.0)(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0)) '@sanity/visual-editing': - specifier: 2.12.0 - version: 2.12.0(@sanity/client@7.12.1)(next@16.0.1(@babel/core@7.28.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + specifier: 4.0.0 + version: 4.0.0(@emotion/is-prop-valid@1.2.2)(@sanity/client@7.12.1)(@sanity/types@4.14.2(@types/react@19.2.2))(next@16.0.1(@babel/core@7.28.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react-dom@19.2.0(react@19.2.0))(react-is@19.2.0)(react@19.2.0)(sanity@4.14.2(@emotion/is-prop-valid@1.2.2)(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)))(@types/node@24.10.0)(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(immer@10.2.0)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.37.0)(tsx@4.19.2)(typescript@5.9.3)(yaml@2.7.0))(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(typescript@5.9.3) '@tanstack/nitro-v2-vite-plugin': specifier: 1.133.19 version: 1.133.19(vite@7.2.2(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) @@ -160,7 +157,7 @@ importers: version: 4.1.8(react-dom@19.2.0(react@19.2.0))(react@19.2.0) sanity: specifier: 4.14.2 - version: 4.14.2(@emotion/is-prop-valid@1.2.2)(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3)))(@types/node@24.10.0)(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(immer@10.2.0)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.37.0)(tsx@4.19.2)(typescript@5.9.3)(yaml@2.7.0) + version: 4.14.2(@emotion/is-prop-valid@1.2.2)(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)))(@types/node@24.10.0)(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(immer@10.2.0)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.37.0)(tsx@4.19.2)(typescript@5.9.3)(yaml@2.7.0) use-debounce: specifier: 10.0.6 version: 10.0.6(react@19.2.0) @@ -258,19 +255,19 @@ importers: specifier: workspace:^2.1.0 version: link:../icons-react '@react-aria/form': - specifier: ^3.0.18 + specifier: ^3.1.2 version: 3.1.2(react-dom@19.2.0(react@19.0.0))(react@19.0.0) '@react-aria/interactions': - specifier: ^3.25.3 + specifier: ^3.25.6 version: 3.25.6(react-dom@19.2.0(react@19.0.0))(react@19.0.0) '@react-aria/utils': - specifier: ^3.29.1 + specifier: ^3.31.0 version: 3.31.0(react-dom@19.2.0(react@19.0.0))(react@19.0.0) '@react-stately/form': - specifier: ^3.1.5 + specifier: ^3.2.2 version: 3.2.2(react@19.0.0) '@react-stately/utils': - specifier: ^3.10.7 + specifier: ^3.10.8 version: 3.10.8(react@19.0.0) cva: specifier: ^1.0.0-0 @@ -279,20 +276,20 @@ importers: specifier: ^19 version: 19.0.0 react-aria: - specifier: ^3.41.1 + specifier: ^3.44.0 version: 3.44.0(react-dom@19.2.0(react@19.0.0))(react@19.0.0) react-aria-components: - specifier: ^1.10.1 + specifier: ^1.13.0 version: 1.13.0(react-dom@19.2.0(react@19.0.0))(react@19.0.0) react-stately: - specifier: ^3.39.0 + specifier: ^3.42.0 version: 3.42.0(react@19.0.0) use-debounce: - specifier: ^10.0.4 + specifier: ^10.0.6 version: 10.0.6(react@19.0.0) devDependencies: '@types/node': - specifier: ^24.0.0 + specifier: ^24.10.0 version: 24.10.0 tailwindcss: specifier: 4.1.17 @@ -3545,10 +3542,6 @@ packages: resolution: {integrity: sha512-6Rbg71hkeoGInk/9hBsCUBCZ33IHSs2fZynAR85ANkXDM+WYiwRDlker7OngBkfbK8TF9+G797VjNMQQgJINiQ==} engines: {node: '>=18'} - '@sanity/comlink@3.0.0': - resolution: {integrity: sha512-R6oUq5GrLIldCCHFpVZbZt4Zuw9QWUeA1A1YhRJxifarTj+RDETIfDGenioKGvUAZeeVhADMooG33xzyQor45w==} - engines: {node: '>=18'} - '@sanity/comlink@3.1.1': resolution: {integrity: sha512-UyBJG4oWNs+VGVo5Yr5aKir5bgMzF/dnaNYjqxP2+5+iXnvhVOcI6dAtEXDj7kMmn5/ysHNKbLDlW6aVeBm7xg==} engines: {node: '>=18'} @@ -3561,10 +3554,6 @@ packages: resolution: {integrity: sha512-pTqpyLhH3z4NDhjKHyfL+quVN0ixA8NikcdqxRmL2iqPZuJavi81eKm631PaUqJGbY1kh1+vHnO1/GgWIcjgxw==} engines: {node: '>=18.0.0'} - '@sanity/diff-match-patch@3.1.2': - resolution: {integrity: sha512-jW2zqnnV3cLXy7exOKbqaWJPb15rFSQGseAhlPljzbg5CP0hrujk0TwYpsNMz2xwTELOk1JkBUINQYbPE4TmaA==} - engines: {node: '>=18.18'} - '@sanity/diff-match-patch@3.2.0': resolution: {integrity: sha512-4hPADs0qUThFZkBK/crnfKKHg71qkRowfktBljH2UIxGHHTxIzt8g8fBiXItyCjxkuNy+zpYOdRMifQNv8+Yww==} engines: {node: '>=18.18'} @@ -3683,16 +3672,6 @@ packages: resolution: {integrity: sha512-NN079HWOT+RGn2xMwohUF+xz6Oq1V82Eb5r3TfmIHZjtO9xOi6T2WoISdcMkDkd96Lg5puvv/SCczb75SAawZA==} engines: {node: '>=20.19 <22 || >=22.12'} - '@sanity/presentation@1.21.1': - resolution: {integrity: sha512-SDjWRJG+5EaVrlVI4boXpc070fwb9wkTBLHpcifQyL21Strkvlx65unMnadU3wDJyULwj+TLLGzDgcD5eP8y5g==} - engines: {node: '>=16.14'} - - '@sanity/preview-url-secret@2.1.0': - resolution: {integrity: sha512-tnRnbPAhEgUp0mESCRJmScbvEC8r+UwJXDN0mwAv1das6FBUMP5VvvvPa+E/OhEDs8QLTFs0q+G9JpbgvK3DSw==} - engines: {node: '>=18'} - peerDependencies: - '@sanity/client': ^6.24.1 - '@sanity/preview-url-secret@2.1.15': resolution: {integrity: sha512-pHDZ6G1XeCco7wmlGNFeA5nOdtXK05imtEtUFHEIE/isZEFXL4V2AL2OGc/ktV9hWr7D9+w1kAI6PfE/SwXNVg==} engines: {node: '>=18'} @@ -3746,15 +3725,6 @@ packages: peerDependencies: '@types/react': 18 || 19 - '@sanity/ui@2.16.22': - resolution: {integrity: sha512-Zw217nqjLhROHrjFYPCwV61xEYHwUbBOohHO2DZ4LdQKqNfTKsqcjLVx9Heb4oDzB06L+1CamIrvPaexVijfeg==} - engines: {node: '>=14.0.0'} - peerDependencies: - react: ^18 || >=19.0.0-0 - react-dom: ^18 || >=19.0.0-0 - react-is: ^18 || >=19.0.0-0 - styled-components: ^5.2 || ^6 - '@sanity/ui@3.1.11': resolution: {integrity: sha512-UooG4hq0ytUivCe0d5O+QWnG+B6fpuu5npNZNpV9SJNwZNH4hDNbLjnDS8sqEkaYVNhgIS+C26nnkVK134Di4w==} engines: {node: '>=20.19 <22 || >=22.12'} @@ -3777,6 +3747,12 @@ packages: react: ^18 || ^19.0.0 styled-components: ^6.1.15 + '@sanity/visual-editing-csm@2.0.26': + resolution: {integrity: sha512-u4Rgy526YIJ6kDjM76UdnBGDEW+b+4vtHBVmXgiqYo5PGpgmWn1Tly+5uhqZLbYJ63dqyh1iFLlM0+S7ljrzPQ==} + engines: {node: '>=18'} + peerDependencies: + '@sanity/client': ^7.11.2 + '@sanity/visual-editing-types@1.1.8': resolution: {integrity: sha512-4Hu3J8qDLanymnSapRzKwHlQl6SCsBbkL1o5fSMVbWVHvTk/j2uGLLNTsjASICTqUwSm3fwWlyahzCy2uS/LvQ==} engines: {node: '>=18'} @@ -3787,17 +3763,19 @@ packages: '@sanity/types': optional: true - '@sanity/visual-editing@2.12.0': - resolution: {integrity: sha512-cfboVokNtU9ANFOiPJHlbJ6SR/JzS3zXgasFHt5M+F8/w8NKsFVD/NbbAkj4fVZAqbmeMbK1/haFn2dyRhTeOQ==} - engines: {node: '>=18'} + '@sanity/visual-editing@4.0.0': + resolution: {integrity: sha512-GKhcOecukj9IW1y+uXjY1eT+PJHgUz+HNvf1RoMDMbDtUV4+e/mA3xLSkXkphN/iCNLHgNGhbdhAhVr7x9Iy9g==} + engines: {node: '>=20.19'} peerDependencies: '@remix-run/react': '>= 2' - '@sanity/client': ^6.24.1 + '@sanity/client': ^7.12.0 '@sveltejs/kit': '>= 2' - next: '>= 13 || >=14.3.0-canary.0 <14.3.0 || >=15.0.0-rc' - react: ^18.3 || >=19.0.0-rc - react-dom: ^18.3 || >=19.0.0-rc - react-router: '>= 7' + next: '>= 13 || >=14.3.0-canary.0 <14.3.0 || >=15.0.0-rc || >=16.0.0-0' + react: ^18.3 || ^19 + react-dom: ^18.3 || ^19 + react-is: ^18.3 || ^19 + react-router: '>= 6 || >= 7' + styled-components: ^6.1.19 svelte: '>= 4' peerDependenciesMeta: '@remix-run/react': @@ -4411,9 +4389,6 @@ packages: '@types/follow-redirects@1.14.4': resolution: {integrity: sha512-GWXfsD0Jc1RWiFmMuMFCpXMzi9L7oPDVwxUnZdg89kDNnqsRfUKXEtUYtA98A6lig1WXH/CYY/fvPW9HuN5fTA==} - '@types/hast@2.3.10': - resolution: {integrity: sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==} - '@types/hast@3.0.4': resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} @@ -5081,21 +5056,12 @@ packages: resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} engines: {node: '>=10'} - character-entities-legacy@1.1.4: - resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} - character-entities-legacy@3.0.0: resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} - character-entities@1.2.4: - resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} - character-entities@2.0.2: resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} - character-reference-invalid@1.1.4: - resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} - character-reference-invalid@2.0.1: resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} @@ -5241,9 +5207,6 @@ packages: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} - comma-separated-tokens@1.0.8: - resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==} - comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} @@ -6062,20 +6025,6 @@ packages: resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==} engines: {node: '>= 6'} - framer-motion@11.17.0: - resolution: {integrity: sha512-uTNLH9JPMD3ad14WBt3KYRTR+If4tGPLgKTKTIIPaEBMkvazs6EkWNcmCh65qA/tyinOqIbQiuCorXX0qQsNoQ==} - peerDependencies: - '@emotion/is-prop-valid': '*' - react: ^18.0.0 || ^19.0.0 - react-dom: ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@emotion/is-prop-valid': - optional: true - react: - optional: true - react-dom: - optional: true - framer-motion@12.23.24: resolution: {integrity: sha512-HMi5HRoRCTou+3fb3h9oTLyJGBxHfW+HnNE25tAXOvVx/IvwMHK0cx7IR4a2ZU6sh3IX1Z+4ts32PcYBOqka8w==} peerDependencies: @@ -6331,15 +6280,9 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} - hast-util-parse-selector@2.2.5: - resolution: {integrity: sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==} - hast-util-parse-selector@4.0.0: resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} - hastscript@6.0.0: - resolution: {integrity: sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==} - hastscript@9.0.1: resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==} @@ -6511,15 +6454,9 @@ packages: iron-webcrypto@1.2.1: resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} - is-alphabetical@1.0.4: - resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} - is-alphabetical@2.0.1: resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} - is-alphanumerical@1.0.4: - resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} - is-alphanumerical@2.0.1: resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} @@ -6534,9 +6471,6 @@ packages: resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} engines: {node: '>= 0.4'} - is-decimal@1.0.4: - resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} - is-decimal@2.0.1: resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} @@ -6573,9 +6507,6 @@ packages: resolution: {integrity: sha512-rcfALRIb1YewtnksfRIHGcIY93QnK8BIQ/2c9yDYcG/Y6+vRoJuTWBmmSEbyLLYtXm7q35pHOHbZFQBaLrhlWQ==} engines: {node: '>=0.10.0'} - is-hexadecimal@1.0.4: - resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} - is-hexadecimal@2.0.1: resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} @@ -7380,21 +7311,12 @@ packages: mlly@1.8.0: resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==} - mnemonist@0.39.8: - resolution: {integrity: sha512-vyWo2K3fjrUw8YeeZ1zF0fy6Mu59RHokURlld8ymdUPjMlD9EC9ov1/YPqTgqRvUN9nTr3Gqfz29LYAmu0PHPQ==} - module-alias@2.2.3: resolution: {integrity: sha512-23g5BFj4zdQL/b6tor7Ji+QY4pEfNH784BMslY9Qb0UnJWRAt+lQGLYmRaM0KDBwIG23ffEBELhZDP2rhi9f/Q==} - motion-dom@11.16.4: - resolution: {integrity: sha512-2wuCie206pCiP2K23uvwJeci4pMFfyQKpWI0Vy6HrCTDzDCer4TsYtT7IVnuGbDeoIV37UuZiUr6SZMHEc1Vww==} - motion-dom@12.23.23: resolution: {integrity: sha512-n5yolOs0TQQBRUFImrRfs/+6X4p3Q4n1dUEqt/H58Vx7OW6RF+foWEgmTVDhIWJIMXOuNNL0apKH2S16en9eiA==} - motion-utils@11.18.1: - resolution: {integrity: sha512-49Kt+HKjtbJKLtgO/LKj9Ld+6vw9BjH5d9sc40R/kVyH8GLAXgT42M2NnuPcJNuA3s9ZfZBUcwIgpmZWGEE+hA==} - motion-utils@12.23.6: resolution: {integrity: sha512-eAWoPgr4eFEOFfg2WjIsMoqJTW6Z8MTUCgn/GZ3VRpClWBdnbjryiA3ZSNLyxCTmCQx4RmYX6jX1iWHbenUPNQ==} @@ -7592,9 +7514,6 @@ packages: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} - obliterator@2.0.5: - resolution: {integrity: sha512-42CPE9AhahZRsMNslczq0ctAEtqk8Eka26QofnqC346BZdHDySk3LWka23LI7ULIw11NmltpiLagIq8gBozxTw==} - observable-callback@1.0.3: resolution: {integrity: sha512-VlS275UyPnwdMtzxDgr/lCiOUyq9uXNll3vdwzDcJ6PB/LuO7gLmxAQopcCA3JoFwwujBwyA7/tP5TXZwWSXew==} engines: {node: '>=16'} @@ -7737,9 +7656,6 @@ packages: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} - parse-entities@2.0.0: - resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} - parse-entities@4.0.2: resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} @@ -7963,10 +7879,6 @@ packages: peerDependencies: react: '>=16.0.0' - prismjs@1.27.0: - resolution: {integrity: sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==} - engines: {node: '>=6'} - process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} @@ -7985,9 +7897,6 @@ packages: prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - property-information@5.6.0: - resolution: {integrity: sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==} - property-information@7.1.0: resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} @@ -8069,11 +7978,6 @@ packages: peerDependencies: react: ^17.0.0 || ^18.0.0 || ^19.0.0 || ^0.0.0-experimental - react-compiler-runtime@19.0.0-beta-55955c9-20241229: - resolution: {integrity: sha512-I8niUyydqnPVMjqsOEfFwiRlWbndSjgwGhbm5GZuKev3b0HAcUAqAoHNIpp0XSHInlwfn4Zvtbva5TLupEOw+Q==} - peerDependencies: - react: ^17.0.0 || ^18.0.0 || ^19.0.0 || ^0.0.0-experimental - react-compiler-runtime@19.1.0-rc.3: resolution: {integrity: sha512-Cssogys2XZu6SqxRdX2xd8cQAf57BBvFbLEBlIa77161lninbKUn/EqbecCe7W3eqDQfg3rIoOwzExzgCh7h/g==} peerDependencies: @@ -8147,11 +8051,6 @@ packages: react: '>=18.0.0' react-dom: '>=18.0.0' - react-refractor@2.2.0: - resolution: {integrity: sha512-UvWkBVqH/2b9nkkkt4UNFtU3aY1orQfd4plPjx5rxbefy6vGajNHU9n+tv8CbykFyVirr3vEBfN2JTxyK0d36g==} - peerDependencies: - react: '>=15.0.0' - react-refractor@4.0.0: resolution: {integrity: sha512-2VMRH3HA/Nu+tMFzyQwdBK0my0BIZy1pkWHhjuSrplMyf8ZLx/Gw7tUXV0t2JbEsbSNHbEc9TbHhq3sUx2seVA==} engines: {node: '>=20.0.0'} @@ -8241,9 +8140,6 @@ packages: resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==} engines: {node: '>=4'} - refractor@3.6.0: - resolution: {integrity: sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==} - refractor@5.0.0: resolution: {integrity: sha512-QXOrHQF5jOpjjLfiNk5GFnWhRXvxjUVnlFxkeDmewR5sXkr3iM46Zo+CnRR8B+MDVqkULW4EcLVcRBNOPXHosw==} @@ -8624,9 +8520,6 @@ packages: resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} engines: {node: '>= 12'} - space-separated-tokens@1.1.5: - resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} - space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} @@ -8827,11 +8720,6 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - suspend-react@0.1.3: - resolution: {integrity: sha512-aqldKgX9aZqpoDp3e8/BZ8Dm7x1pJl+qI3ZKxDN0i/IQTWUwBx/ManmlVJ3wowqbno6c2bmiIfs+Um6LbsjJyQ==} - peerDependencies: - react: '>=17.0' - svg-parser@2.0.4: resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==} @@ -9153,21 +9041,12 @@ packages: resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} engines: {node: '>=8'} - unist-util-filter@2.0.3: - resolution: {integrity: sha512-8k6Jl/KLFqIRTHydJlHh6+uFgqYHq66pV75pZgr1JwfyFSjbWb12yfb0yitW/0TbHXjr9U4G9BQpOvMANB+ExA==} - unist-util-filter@5.0.1: resolution: {integrity: sha512-pHx7D4Zt6+TsfwylH9+lYhBhzyhEnCXs/lbq/Hstxno5z4gVdyc2WEW0asfjGKPyG4pEKrnBv5hdkO6+aRnQJw==} - unist-util-is@4.1.0: - resolution: {integrity: sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==} - unist-util-is@6.0.1: resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} - unist-util-visit-parents@3.1.1: - resolution: {integrity: sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==} - unist-util-visit-parents@6.0.2: resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==} @@ -9317,11 +9196,6 @@ packages: peerDependencies: react: '>= 16.8.0' - use-effect-event@1.0.2: - resolution: {integrity: sha512-9c8AAmtQja4LwJXI0EQPhQCip6dmrcSe0FMcTUZBeGh/XTCOLgw3Qbt0JdUT8Rcrm/ZH+Web7MIcMdqgQKdXJg==} - peerDependencies: - react: ^18.3 || ^19.0.0-0 - use-effect-event@2.0.3: resolution: {integrity: sha512-fz1en+z3fYXCXx3nMB8hXDMuygBltifNKZq29zDx+xNJ+1vEs6oJlYd9sK31vxJ0YI534VUsHEBY0k2BATsmBQ==} peerDependencies: @@ -9375,8 +9249,13 @@ packages: resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} engines: {node: '>=10.12.0'} - valibot@0.31.1: - resolution: {integrity: sha512-2YYIhPrnVSz/gfT2/iXVTrSj92HwchCt9Cga/6hX4B26iCz9zkIsGTS0HjDYTZfTi1Un0X6aRvhBi1cfqs/i0Q==} + valibot@1.1.0: + resolution: {integrity: sha512-Nk8lX30Qhu+9txPYTwM0cFlWLdPFsFr6LblzqIySfbZph9+BFsAHsNvHOymEviUepeIW6KFHzpX8TKhbptBXXw==} + peerDependencies: + typescript: '>=5' + peerDependenciesMeta: + typescript: + optional: true validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} @@ -10897,9 +10776,9 @@ snapshots: dependencies: mime: 3.0.0 - '@code-obos/sanity-auth@1.4.3(sanity@4.14.2(@emotion/is-prop-valid@1.2.2)(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3)))(@types/node@24.10.0)(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(immer@10.2.0)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.37.0)(tsx@4.19.2)(typescript@5.9.3)(yaml@2.7.0))(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))': + '@code-obos/sanity-auth@1.4.3(sanity@4.14.2(@emotion/is-prop-valid@1.2.2)(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)))(@types/node@24.10.0)(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(immer@10.2.0)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.37.0)(tsx@4.19.2)(typescript@5.9.3)(yaml@2.7.0))(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))': dependencies: - sanity: 4.14.2(@emotion/is-prop-valid@1.2.2)(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3)))(@types/node@24.10.0)(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(immer@10.2.0)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.37.0)(tsx@4.19.2)(typescript@5.9.3)(yaml@2.7.0) + sanity: 4.14.2(@emotion/is-prop-valid@1.2.2)(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)))(@types/node@24.10.0)(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(immer@10.2.0)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.37.0)(tsx@4.19.2)(typescript@5.9.3)(yaml@2.7.0) styled-components: 6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@codemirror/autocomplete@6.19.1': @@ -12260,21 +12139,21 @@ snapshots: '@poppinss/exception@1.2.2': {} - '@portabletext/block-tools@4.0.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3))': + '@portabletext/block-tools@4.0.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2))': dependencies: - '@portabletext/sanity-bridge': 1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3)) + '@portabletext/sanity-bridge': 1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)) '@portabletext/schema': 2.0.0 '@sanity/types': 4.14.2(@types/react@19.2.2)(debug@4.4.3) lodash: 4.17.21 transitivePeerDependencies: - '@sanity/schema' - '@portabletext/editor@2.21.0(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3)))(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rxjs@7.8.2)': + '@portabletext/editor@2.21.0(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)))(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rxjs@7.8.2)': dependencies: - '@portabletext/block-tools': 4.0.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3)) + '@portabletext/block-tools': 4.0.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)) '@portabletext/keyboard-shortcuts': 2.1.0 '@portabletext/patches': 2.0.0 - '@portabletext/sanity-bridge': 1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3)) + '@portabletext/sanity-bridge': 1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)) '@portabletext/schema': 2.0.0 '@portabletext/to-html': 4.0.1 '@sanity/schema': 4.14.2(@types/react@19.2.2)(debug@4.4.3) @@ -12303,9 +12182,9 @@ snapshots: '@sanity/diff-match-patch': 3.2.0 lodash: 4.17.21 - '@portabletext/plugin-character-pair-decorator@3.0.6(@portabletext/editor@2.21.0(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3)))(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rxjs@7.8.2))(@types/react@19.2.2)(react@19.2.0)': + '@portabletext/plugin-character-pair-decorator@3.0.6(@portabletext/editor@2.21.0(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)))(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rxjs@7.8.2))(@types/react@19.2.2)(react@19.2.0)': dependencies: - '@portabletext/editor': 2.21.0(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3)))(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rxjs@7.8.2) + '@portabletext/editor': 2.21.0(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)))(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rxjs@7.8.2) '@xstate/react': 6.0.0(@types/react@19.2.2)(react@19.2.0)(xstate@5.24.0) react: 19.2.0 react-compiler-runtime: 1.0.0(react@19.2.0) @@ -12314,9 +12193,9 @@ snapshots: transitivePeerDependencies: - '@types/react' - '@portabletext/plugin-input-rule@0.6.0(@portabletext/editor@2.21.0(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3)))(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rxjs@7.8.2))(@types/react@19.2.2)(react@19.2.0)': + '@portabletext/plugin-input-rule@0.6.0(@portabletext/editor@2.21.0(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)))(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rxjs@7.8.2))(@types/react@19.2.2)(react@19.2.0)': dependencies: - '@portabletext/editor': 2.21.0(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3)))(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rxjs@7.8.2) + '@portabletext/editor': 2.21.0(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)))(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rxjs@7.8.2) '@xstate/react': 6.0.0(@types/react@19.2.2)(react@19.2.0)(xstate@5.24.0) react: 19.2.0 react-compiler-runtime: 1.0.0(react@19.2.0) @@ -12324,19 +12203,19 @@ snapshots: transitivePeerDependencies: - '@types/react' - '@portabletext/plugin-markdown-shortcuts@3.0.7(@portabletext/editor@2.21.0(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3)))(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rxjs@7.8.2))(@types/react@19.2.2)(react@19.2.0)': + '@portabletext/plugin-markdown-shortcuts@3.0.7(@portabletext/editor@2.21.0(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)))(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rxjs@7.8.2))(@types/react@19.2.2)(react@19.2.0)': dependencies: - '@portabletext/editor': 2.21.0(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3)))(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rxjs@7.8.2) - '@portabletext/plugin-character-pair-decorator': 3.0.6(@portabletext/editor@2.21.0(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3)))(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rxjs@7.8.2))(@types/react@19.2.2)(react@19.2.0) - '@portabletext/plugin-input-rule': 0.6.0(@portabletext/editor@2.21.0(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3)))(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rxjs@7.8.2))(@types/react@19.2.2)(react@19.2.0) + '@portabletext/editor': 2.21.0(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)))(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rxjs@7.8.2) + '@portabletext/plugin-character-pair-decorator': 3.0.6(@portabletext/editor@2.21.0(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)))(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rxjs@7.8.2))(@types/react@19.2.2)(react@19.2.0) + '@portabletext/plugin-input-rule': 0.6.0(@portabletext/editor@2.21.0(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)))(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rxjs@7.8.2))(@types/react@19.2.2)(react@19.2.0) react: 19.2.0 react-compiler-runtime: 1.0.0(react@19.2.0) transitivePeerDependencies: - '@types/react' - '@portabletext/plugin-one-line@2.1.5(@portabletext/editor@2.21.0(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3)))(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rxjs@7.8.2))(react@19.2.0)': + '@portabletext/plugin-one-line@2.1.5(@portabletext/editor@2.21.0(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)))(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rxjs@7.8.2))(react@19.2.0)': dependencies: - '@portabletext/editor': 2.21.0(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3)))(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rxjs@7.8.2) + '@portabletext/editor': 2.21.0(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)))(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rxjs@7.8.2) react: 19.2.0 react-compiler-runtime: 1.0.0(react@19.2.0) @@ -12346,7 +12225,7 @@ snapshots: '@portabletext/types': 3.0.0 react: 19.2.0 - '@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3))': + '@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2))': dependencies: '@portabletext/schema': 2.0.0 '@sanity/schema': 4.14.2(@types/react@19.2.2)(debug@4.4.3) @@ -14658,7 +14537,7 @@ snapshots: transitivePeerDependencies: - debug - '@sanity/code-input@6.0.3(@babel/runtime@7.28.4)(@codemirror/lint@6.8.4)(@codemirror/theme-one-dark@6.1.2)(@emotion/is-prop-valid@1.2.2)(codemirror@6.0.1)(react-dom@19.2.0(react@19.2.0))(react-is@19.2.0)(react@19.2.0)(sanity@4.14.2(@emotion/is-prop-valid@1.2.2)(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3)))(@types/node@24.10.0)(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(immer@10.2.0)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.37.0)(tsx@4.19.2)(typescript@5.9.3)(yaml@2.7.0))(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))': + '@sanity/code-input@6.0.3(@babel/runtime@7.28.4)(@codemirror/lint@6.8.4)(@codemirror/theme-one-dark@6.1.2)(@emotion/is-prop-valid@1.2.2)(codemirror@6.0.1)(react-dom@19.2.0(react@19.2.0))(react-is@19.2.0)(react@19.2.0)(sanity@4.14.2(@emotion/is-prop-valid@1.2.2)(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)))(@types/node@24.10.0)(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(immer@10.2.0)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.37.0)(tsx@4.19.2)(typescript@5.9.3)(yaml@2.7.0))(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))': dependencies: '@codemirror/autocomplete': 6.19.1 '@codemirror/commands': 6.9.0 @@ -14683,7 +14562,7 @@ snapshots: '@uiw/react-codemirror': 4.25.2(@babel/runtime@7.28.4)(@codemirror/autocomplete@6.19.1)(@codemirror/language@6.11.3)(@codemirror/lint@6.8.4)(@codemirror/search@6.5.11)(@codemirror/state@6.5.2)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.38.6)(codemirror@6.0.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) react: 19.2.0 react-dom: 19.2.0(react@19.2.0) - sanity: 4.14.2(@emotion/is-prop-valid@1.2.2)(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3)))(@types/node@24.10.0)(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(immer@10.2.0)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.37.0)(tsx@4.19.2)(typescript@5.9.3)(yaml@2.7.0) + sanity: 4.14.2(@emotion/is-prop-valid@1.2.2)(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)))(@types/node@24.10.0)(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(immer@10.2.0)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.37.0)(tsx@4.19.2)(typescript@5.9.3)(yaml@2.7.0) styled-components: 6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0) transitivePeerDependencies: - '@babel/runtime' @@ -14721,12 +14600,6 @@ snapshots: uuid: 11.1.0 xstate: 5.24.0 - '@sanity/comlink@3.0.0': - dependencies: - rxjs: 7.8.2 - uuid: 11.1.0 - xstate: 5.24.0 - '@sanity/comlink@3.1.1': dependencies: rxjs: 7.8.2 @@ -14743,8 +14616,6 @@ snapshots: dependencies: sha256-uint8array: 0.10.7 - '@sanity/diff-match-patch@3.1.2': {} - '@sanity/diff-match-patch@3.2.0': {} '@sanity/diff-patch@5.0.0': @@ -14835,7 +14706,7 @@ snapshots: react: 19.2.0 react-dom: 19.2.0(react@19.2.0) - '@sanity/insert-menu@2.1.0(@emotion/is-prop-valid@1.2.2)(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3))(react-dom@19.2.0(react@19.2.0))(react-is@19.2.0)(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))': + '@sanity/insert-menu@2.1.0(@emotion/is-prop-valid@1.2.2)(@sanity/types@4.14.2(@types/react@19.2.2))(react-dom@19.2.0(react@19.2.0))(react-is@19.2.0)(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))': dependencies: '@sanity/icons': 3.7.4(react@19.2.0) '@sanity/types': 4.14.2(@types/react@19.2.2)(debug@4.4.3) @@ -14884,7 +14755,7 @@ snapshots: '@sanity/mutate@0.11.0-canary.4(xstate@5.24.0)': dependencies: '@sanity/client': 6.28.4(debug@4.4.3) - '@sanity/diff-match-patch': 3.1.2 + '@sanity/diff-match-patch': 3.2.0 hotscript: 1.0.13 lodash: 4.17.21 lodash-es: 4.17.21 @@ -14943,58 +14814,21 @@ snapshots: - '@types/react' - supports-color - '@sanity/presentation-comlink@2.0.0(@sanity/client@7.12.1)(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3))': + '@sanity/presentation-comlink@2.0.0(@sanity/client@7.12.1)(@sanity/types@4.14.2(@types/react@19.2.2))': dependencies: '@sanity/comlink': 4.0.0 - '@sanity/visual-editing-types': 1.1.8(@sanity/client@7.12.1)(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3)) + '@sanity/visual-editing-types': 1.1.8(@sanity/client@7.12.1)(@sanity/types@4.14.2(@types/react@19.2.2)) transitivePeerDependencies: - '@sanity/client' - '@sanity/types' - '@sanity/presentation@1.21.1(@emotion/is-prop-valid@1.2.2)(react-dom@19.2.0(react@19.2.0))(react-is@19.2.0)(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))': - dependencies: - '@sanity/client': 6.28.4(debug@4.4.3) - '@sanity/comlink': 3.0.0 - '@sanity/icons': 3.7.4(react@19.2.0) - '@sanity/logos': 2.2.2(react@19.2.0) - '@sanity/preview-url-secret': 2.1.0(@sanity/client@6.28.4) - '@sanity/ui': 2.16.22(@emotion/is-prop-valid@1.2.2)(react-dom@19.2.0(react@19.2.0))(react-is@19.2.0)(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0)) - '@sanity/uuid': 3.0.2 - fast-deep-equal: 3.1.3 - framer-motion: 11.17.0(@emotion/is-prop-valid@1.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - lodash: 4.17.21 - mendoza: 3.0.8 - mnemonist: 0.39.8 - path-to-regexp: 6.3.0 - react-compiler-runtime: 19.0.0-beta-55955c9-20241229(react@19.2.0) - rxjs: 7.8.2 - suspend-react: 0.1.3(react@19.2.0) - use-effect-event: 1.0.2(react@19.2.0) - transitivePeerDependencies: - - '@emotion/is-prop-valid' - - debug - - react - - react-dom - - react-is - - styled-components - - '@sanity/preview-url-secret@2.1.0(@sanity/client@6.28.4)': - dependencies: - '@sanity/client': 6.28.4(debug@4.4.3) - '@sanity/uuid': 3.0.2 - - '@sanity/preview-url-secret@2.1.0(@sanity/client@7.12.1)': - dependencies: - '@sanity/client': 7.12.1(debug@4.4.3) - '@sanity/uuid': 3.0.2 - - '@sanity/preview-url-secret@2.1.15(@sanity/client@7.12.1)(@sanity/icons@3.7.4(react@19.2.0))(sanity@4.14.2(@emotion/is-prop-valid@1.2.2)(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3)))(@types/node@24.10.0)(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(immer@10.2.0)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.37.0)(tsx@4.19.2)(typescript@5.9.3)(yaml@2.7.0))': + '@sanity/preview-url-secret@2.1.15(@sanity/client@7.12.1)(@sanity/icons@3.7.4(react@19.2.0))(sanity@4.14.2(@emotion/is-prop-valid@1.2.2)(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)))(@types/node@24.10.0)(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(immer@10.2.0)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.37.0)(tsx@4.19.2)(typescript@5.9.3)(yaml@2.7.0))': dependencies: '@sanity/client': 7.12.1(debug@4.4.3) '@sanity/uuid': 3.0.2 optionalDependencies: '@sanity/icons': 3.7.4(react@19.2.0) - sanity: 4.14.2(@emotion/is-prop-valid@1.2.2)(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3)))(@types/node@24.10.0)(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(immer@10.2.0)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.37.0)(tsx@4.19.2)(typescript@5.9.3)(yaml@2.7.0) + sanity: 4.14.2(@emotion/is-prop-valid@1.2.2)(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)))(@types/node@24.10.0)(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(immer@10.2.0)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.37.0)(tsx@4.19.2)(typescript@5.9.3)(yaml@2.7.0) '@sanity/runtime-cli@11.1.2(@types/node@24.10.0)(debug@4.4.3)(lightningcss@1.30.2)(terser@5.37.0)(tsx@4.19.2)(typescript@5.9.3)(yaml@2.7.0)': dependencies: @@ -15077,13 +14911,13 @@ snapshots: - react - use-sync-external-store - '@sanity/table@2.0.0(@emotion/is-prop-valid@1.2.2)(react-dom@19.2.0(react@19.2.0))(react-is@19.2.0)(react@19.2.0)(sanity@4.14.2(@emotion/is-prop-valid@1.2.2)(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3)))(@types/node@24.10.0)(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(immer@10.2.0)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.37.0)(tsx@4.19.2)(typescript@5.9.3)(yaml@2.7.0))(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))': + '@sanity/table@2.0.0(@emotion/is-prop-valid@1.2.2)(react-dom@19.2.0(react@19.2.0))(react-is@19.2.0)(react@19.2.0)(sanity@4.14.2(@emotion/is-prop-valid@1.2.2)(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)))(@types/node@24.10.0)(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(immer@10.2.0)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.37.0)(tsx@4.19.2)(typescript@5.9.3)(yaml@2.7.0))(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))': dependencies: '@sanity/icons': 3.7.0(react@19.2.0) '@sanity/incompatible-plugin': 1.0.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@sanity/ui': 3.1.11(@emotion/is-prop-valid@1.2.2)(react-dom@19.2.0(react@19.2.0))(react-is@19.2.0)(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0)) react: 19.2.0 - sanity: 4.14.2(@emotion/is-prop-valid@1.2.2)(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3)))(@types/node@24.10.0)(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(immer@10.2.0)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.37.0)(tsx@4.19.2)(typescript@5.9.3)(yaml@2.7.0) + sanity: 4.14.2(@emotion/is-prop-valid@1.2.2)(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)))(@types/node@24.10.0)(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(immer@10.2.0)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.37.0)(tsx@4.19.2)(typescript@5.9.3)(yaml@2.7.0) transitivePeerDependencies: - '@emotion/is-prop-valid' - react-dom @@ -15119,24 +14953,6 @@ snapshots: transitivePeerDependencies: - debug - '@sanity/ui@2.16.22(@emotion/is-prop-valid@1.2.2)(react-dom@19.2.0(react@19.2.0))(react-is@19.2.0)(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))': - dependencies: - '@floating-ui/react-dom': 2.1.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@juggle/resize-observer': 3.4.0 - '@sanity/color': 3.0.6 - '@sanity/icons': 3.7.4(react@19.2.0) - csstype: 3.1.3 - motion: 12.23.24(@emotion/is-prop-valid@1.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - react: 19.2.0 - react-compiler-runtime: 1.0.0(react@19.2.0) - react-dom: 19.2.0(react@19.2.0) - react-is: 19.2.0 - react-refractor: 2.2.0(react@19.2.0) - styled-components: 6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - use-effect-event: 2.0.3(react@19.2.0) - transitivePeerDependencies: - - '@emotion/is-prop-valid' - '@sanity/ui@3.1.11(@emotion/is-prop-valid@1.2.2)(react-dom@19.2.0(react@19.2.0))(react-is@19.2.0)(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))': dependencies: '@floating-ui/react-dom': 2.1.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0) @@ -15211,31 +15027,51 @@ snapshots: - react-dom - react-is - '@sanity/visual-editing-types@1.1.8(@sanity/client@7.12.1)(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3))': + '@sanity/visual-editing-csm@2.0.26(@sanity/client@7.12.1)(@sanity/types@4.14.2(@types/react@19.2.2))(typescript@5.9.3)': + dependencies: + '@sanity/client': 7.12.1(debug@4.4.3) + '@sanity/visual-editing-types': 1.1.8(@sanity/client@7.12.1)(@sanity/types@4.14.2(@types/react@19.2.2)) + valibot: 1.1.0(typescript@5.9.3) + transitivePeerDependencies: + - '@sanity/types' + - typescript + + '@sanity/visual-editing-types@1.1.8(@sanity/client@7.12.1)(@sanity/types@4.14.2(@types/react@19.2.2))': dependencies: '@sanity/client': 7.12.1(debug@4.4.3) optionalDependencies: '@sanity/types': 4.14.2(@types/react@19.2.2)(debug@4.4.3) - '@sanity/visual-editing@2.12.0(@sanity/client@7.12.1)(next@16.0.1(@babel/core@7.28.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@sanity/visual-editing@4.0.0(@emotion/is-prop-valid@1.2.2)(@sanity/client@7.12.1)(@sanity/types@4.14.2(@types/react@19.2.2))(next@16.0.1(@babel/core@7.28.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react-dom@19.2.0(react@19.2.0))(react-is@19.2.0)(react@19.2.0)(sanity@4.14.2(@emotion/is-prop-valid@1.2.2)(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)))(@types/node@24.10.0)(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(immer@10.2.0)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.37.0)(tsx@4.19.2)(typescript@5.9.3)(yaml@2.7.0))(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(typescript@5.9.3)': dependencies: - '@sanity/comlink': 3.0.0 + '@sanity/comlink': 4.0.0 + '@sanity/icons': 3.7.4(react@19.2.0) + '@sanity/insert-menu': 2.1.0(@emotion/is-prop-valid@1.2.2)(@sanity/types@4.14.2(@types/react@19.2.2))(react-dom@19.2.0(react@19.2.0))(react-is@19.2.0)(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0)) '@sanity/mutate': 0.11.0-canary.4(xstate@5.24.0) - '@sanity/preview-url-secret': 2.1.0(@sanity/client@7.12.1) + '@sanity/presentation-comlink': 2.0.0(@sanity/client@7.12.1)(@sanity/types@4.14.2(@types/react@19.2.2)) + '@sanity/preview-url-secret': 2.1.15(@sanity/client@7.12.1)(@sanity/icons@3.7.4(react@19.2.0))(sanity@4.14.2(@emotion/is-prop-valid@1.2.2)(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)))(@types/node@24.10.0)(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(immer@10.2.0)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.37.0)(tsx@4.19.2)(typescript@5.9.3)(yaml@2.7.0)) + '@sanity/ui': 3.1.11(@emotion/is-prop-valid@1.2.2)(react-dom@19.2.0(react@19.2.0))(react-is@19.2.0)(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0)) + '@sanity/visual-editing-csm': 2.0.26(@sanity/client@7.12.1)(@sanity/types@4.14.2(@types/react@19.2.2))(typescript@5.9.3) '@vercel/stega': 0.1.2 get-random-values-esm: 1.0.2 react: 19.2.0 + react-compiler-runtime: 1.0.0(react@19.2.0) react-dom: 19.2.0(react@19.2.0) + react-is: 19.2.0 rxjs: 7.8.2 scroll-into-view-if-needed: 3.1.0 - use-effect-event: 1.0.2(react@19.2.0) - valibot: 0.31.1 + styled-components: 6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + use-effect-event: 2.0.3(react@19.2.0) xstate: 5.24.0 optionalDependencies: '@sanity/client': 7.12.1(debug@4.4.3) next: 16.0.1(@babel/core@7.28.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) transitivePeerDependencies: + - '@emotion/is-prop-valid' + - '@sanity/types' - debug + - sanity + - typescript '@sentry-internal/browser-utils@8.55.0': dependencies: @@ -16014,10 +15850,6 @@ snapshots: dependencies: '@types/node': 24.10.0 - '@types/hast@2.3.10': - dependencies: - '@types/unist': 2.0.11 - '@types/hast@3.0.4': dependencies: '@types/unist': 3.0.3 @@ -16732,16 +16564,10 @@ snapshots: char-regex@1.0.2: {} - character-entities-legacy@1.1.4: {} - character-entities-legacy@3.0.0: {} - character-entities@1.2.4: {} - character-entities@2.0.2: {} - character-reference-invalid@1.1.4: {} - character-reference-invalid@2.0.1: {} chardet@2.1.0: {} @@ -16893,8 +16719,6 @@ snapshots: dependencies: delayed-stream: 1.0.0 - comma-separated-tokens@1.0.8: {} - comma-separated-tokens@2.0.3: {} commander@11.1.0: {} @@ -17708,16 +17532,6 @@ snapshots: hasown: 2.0.2 mime-types: 2.1.35 - framer-motion@11.17.0(@emotion/is-prop-valid@1.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0): - dependencies: - motion-dom: 11.16.4 - motion-utils: 11.18.1 - tslib: 2.8.1 - optionalDependencies: - '@emotion/is-prop-valid': 1.2.2 - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) - framer-motion@12.23.24(@emotion/is-prop-valid@1.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: motion-dom: 12.23.23 @@ -18014,20 +17828,10 @@ snapshots: dependencies: function-bind: 1.1.2 - hast-util-parse-selector@2.2.5: {} - hast-util-parse-selector@4.0.0: dependencies: '@types/hast': 3.0.4 - hastscript@6.0.0: - dependencies: - '@types/hast': 2.3.10 - comma-separated-tokens: 1.0.8 - hast-util-parse-selector: 2.2.5 - property-information: 5.6.0 - space-separated-tokens: 1.1.5 - hastscript@9.0.1: dependencies: '@types/hast': 3.0.4 @@ -18236,15 +18040,8 @@ snapshots: iron-webcrypto@1.2.1: {} - is-alphabetical@1.0.4: {} - is-alphabetical@2.0.1: {} - is-alphanumerical@1.0.4: - dependencies: - is-alphabetical: 1.0.4 - is-decimal: 1.0.4 - is-alphanumerical@2.0.1: dependencies: is-alphabetical: 2.0.1 @@ -18260,8 +18057,6 @@ snapshots: dependencies: hasown: 2.0.2 - is-decimal@1.0.4: {} - is-decimal@2.0.1: {} is-deflate@1.0.0: {} @@ -18282,8 +18077,6 @@ snapshots: is-gzip@1.0.0: {} - is-hexadecimal@1.0.4: {} - is-hexadecimal@2.0.1: {} is-hotkey-esm@1.0.0: {} @@ -19299,22 +19092,12 @@ snapshots: pkg-types: 1.3.1 ufo: 1.6.1 - mnemonist@0.39.8: - dependencies: - obliterator: 2.0.5 - module-alias@2.2.3: {} - motion-dom@11.16.4: - dependencies: - motion-utils: 11.18.1 - motion-dom@12.23.23: dependencies: motion-utils: 12.23.6 - motion-utils@11.18.1: {} - motion-utils@12.23.6: {} motion@12.23.24(@emotion/is-prop-valid@1.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0): @@ -19599,8 +19382,6 @@ snapshots: object-keys@1.1.1: {} - obliterator@2.0.5: {} - observable-callback@1.0.3(rxjs@7.8.2): dependencies: rxjs: 7.8.2 @@ -19747,15 +19528,6 @@ snapshots: dependencies: callsites: 3.1.0 - parse-entities@2.0.0: - dependencies: - character-entities: 1.2.4 - character-entities-legacy: 1.1.4 - character-reference-invalid: 1.1.4 - is-alphanumerical: 1.0.4 - is-decimal: 1.0.4 - is-hexadecimal: 1.0.4 - parse-entities@4.0.2: dependencies: '@types/unist': 2.0.11 @@ -19985,8 +19757,6 @@ snapshots: clsx: 2.1.1 react: 19.2.0 - prismjs@1.27.0: {} - process-nextick-args@2.0.1: {} process-on-spawn@1.1.0: @@ -20006,10 +19776,6 @@ snapshots: object-assign: 4.1.1 react-is: 16.13.1 - property-information@5.6.0: - dependencies: - xtend: 4.0.2 - property-information@7.1.0: {} proxy-from-env@1.1.0: {} @@ -20236,10 +20002,6 @@ snapshots: dependencies: react: 19.2.0 - react-compiler-runtime@19.0.0-beta-55955c9-20241229(react@19.2.0): - dependencies: - react: 19.2.0 - react-compiler-runtime@19.1.0-rc.3(react@19.2.0): dependencies: react: 19.2.0 @@ -20321,13 +20083,6 @@ snapshots: sucrase: 3.35.0 use-editable: 2.3.3(react@19.2.0) - react-refractor@2.2.0(react@19.2.0): - dependencies: - react: 19.2.0 - refractor: 3.6.0 - unist-util-filter: 2.0.3 - unist-util-visit-parents: 3.1.1 - react-refractor@4.0.0(react@19.2.0): dependencies: react: 19.2.0 @@ -20495,12 +20250,6 @@ snapshots: dependencies: redis-errors: 1.2.0 - refractor@3.6.0: - dependencies: - hastscript: 6.0.0 - parse-entities: 2.0.0 - prismjs: 1.27.0 - refractor@5.0.0: dependencies: '@types/hast': 3.0.4 @@ -20690,7 +20439,7 @@ snapshots: safer-buffer@2.1.2: {} - sanity@4.14.2(@emotion/is-prop-valid@1.2.2)(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3)))(@types/node@24.10.0)(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(immer@10.2.0)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.37.0)(tsx@4.19.2)(typescript@5.9.3)(yaml@2.7.0): + sanity@4.14.2(@emotion/is-prop-valid@1.2.2)(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)))(@types/node@24.10.0)(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(immer@10.2.0)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.37.0)(tsx@4.19.2)(typescript@5.9.3)(yaml@2.7.0): dependencies: '@dnd-kit/core': 6.3.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@dnd-kit/modifiers': 6.0.1(@dnd-kit/core@6.3.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react@19.2.0) @@ -20699,11 +20448,11 @@ snapshots: '@isaacs/ttlcache': 1.4.1 '@juggle/resize-observer': 3.4.0 '@mux/mux-player-react': 3.7.0(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@portabletext/block-tools': 4.0.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3)) - '@portabletext/editor': 2.21.0(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3)))(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rxjs@7.8.2) + '@portabletext/block-tools': 4.0.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)) + '@portabletext/editor': 2.21.0(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)))(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rxjs@7.8.2) '@portabletext/patches': 2.0.0 - '@portabletext/plugin-markdown-shortcuts': 3.0.7(@portabletext/editor@2.21.0(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3)))(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rxjs@7.8.2))(@types/react@19.2.2)(react@19.2.0) - '@portabletext/plugin-one-line': 2.1.5(@portabletext/editor@2.21.0(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3)))(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rxjs@7.8.2))(react@19.2.0) + '@portabletext/plugin-markdown-shortcuts': 3.0.7(@portabletext/editor@2.21.0(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)))(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rxjs@7.8.2))(@types/react@19.2.2)(react@19.2.0) + '@portabletext/plugin-one-line': 2.1.5(@portabletext/editor@2.21.0(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)))(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rxjs@7.8.2))(react@19.2.0) '@portabletext/react': 5.0.0(react@19.2.0) '@portabletext/toolkit': 4.0.0 '@rexxars/react-json-inspector': 9.0.1(react@19.2.0) @@ -20722,14 +20471,14 @@ snapshots: '@sanity/id-utils': 1.0.0 '@sanity/image-url': 1.2.0 '@sanity/import': 3.38.3(@types/react@19.2.2) - '@sanity/insert-menu': 2.1.0(@emotion/is-prop-valid@1.2.2)(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3))(react-dom@19.2.0(react@19.2.0))(react-is@19.2.0)(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0)) + '@sanity/insert-menu': 2.1.0(@emotion/is-prop-valid@1.2.2)(@sanity/types@4.14.2(@types/react@19.2.2))(react-dom@19.2.0(react@19.2.0))(react-is@19.2.0)(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0)) '@sanity/logos': 2.2.2(react@19.2.0) '@sanity/media-library-types': 1.0.1 '@sanity/message-protocol': 0.17.4 '@sanity/migrate': 4.14.2(@types/react@19.2.2) '@sanity/mutator': 4.14.2(@types/react@19.2.2) - '@sanity/presentation-comlink': 2.0.0(@sanity/client@7.12.1)(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3)) - '@sanity/preview-url-secret': 2.1.15(@sanity/client@7.12.1)(@sanity/icons@3.7.4(react@19.2.0))(sanity@4.14.2(@emotion/is-prop-valid@1.2.2)(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)(debug@4.4.3)))(@types/node@24.10.0)(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(immer@10.2.0)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.37.0)(tsx@4.19.2)(typescript@5.9.3)(yaml@2.7.0)) + '@sanity/presentation-comlink': 2.0.0(@sanity/client@7.12.1)(@sanity/types@4.14.2(@types/react@19.2.2)) + '@sanity/preview-url-secret': 2.1.15(@sanity/client@7.12.1)(@sanity/icons@3.7.4(react@19.2.0))(sanity@4.14.2(@emotion/is-prop-valid@1.2.2)(@portabletext/sanity-bridge@1.2.2(@sanity/schema@4.14.2(@types/react@19.2.2)(debug@4.4.3))(@sanity/types@4.14.2(@types/react@19.2.2)))(@types/node@24.10.0)(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(immer@10.2.0)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(styled-components@6.1.14(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.37.0)(tsx@4.19.2)(typescript@5.9.3)(yaml@2.7.0)) '@sanity/schema': 4.14.2(@types/react@19.2.2)(debug@4.4.3) '@sanity/sdk': 2.1.2(@types/react@19.2.2)(debug@4.4.3)(immer@10.2.0)(react@19.2.0)(use-sync-external-store@1.6.0(react@19.2.0)) '@sanity/telemetry': 0.8.1(react@19.2.0) @@ -21093,8 +20842,6 @@ snapshots: source-map@0.7.6: {} - space-separated-tokens@1.1.5: {} - space-separated-tokens@2.0.2: {} spawn-wrap@2.0.0: @@ -21312,10 +21059,6 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - suspend-react@0.1.3(react@19.2.0): - dependencies: - react: 19.2.0 - svg-parser@2.0.4: {} svgo@3.3.2: @@ -21630,27 +21373,16 @@ snapshots: dependencies: crypto-random-string: 2.0.0 - unist-util-filter@2.0.3: - dependencies: - unist-util-is: 4.1.0 - unist-util-filter@5.0.1: dependencies: '@types/unist': 3.0.3 unist-util-is: 6.0.1 unist-util-visit-parents: 6.0.2 - unist-util-is@4.1.0: {} - unist-util-is@6.0.1: dependencies: '@types/unist': 3.0.3 - unist-util-visit-parents@3.1.1: - dependencies: - '@types/unist': 2.0.11 - unist-util-is: 4.1.0 - unist-util-visit-parents@6.0.2: dependencies: '@types/unist': 3.0.3 @@ -21781,10 +21513,6 @@ snapshots: dependencies: react: 19.2.0 - use-effect-event@1.0.2(react@19.2.0): - dependencies: - react: 19.2.0 - use-effect-event@2.0.3(react@19.2.0): dependencies: react: 19.2.0 @@ -21829,7 +21557,9 @@ snapshots: '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 - valibot@0.31.1: {} + valibot@1.1.0(typescript@5.9.3): + optionalDependencies: + typescript: 5.9.3 validate-npm-package-license@3.0.4: dependencies: