diff --git a/.github/workflows/e2e-ct.yml b/.github/workflows/e2e-ct.yml index 1f78804a8d2..51fabd72efc 100644 --- a/.github/workflows/e2e-ct.yml +++ b/.github/workflows/e2e-ct.yml @@ -8,7 +8,7 @@ on: jobs: install: timeout-minutes: 30 - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 env: TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} TURBO_TEAM: ${{ vars.TURBO_TEAM }} @@ -70,7 +70,7 @@ jobs: playwright-ct-test: timeout-minutes: 30 needs: [install] - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 env: TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} TURBO_TEAM: ${{ vars.TURBO_TEAM }} @@ -162,7 +162,7 @@ jobs: merge-reports: if: always() needs: [playwright-ct-test] - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 @@ -245,7 +245,7 @@ jobs: actions: write # needed to delete the cache timeout-minutes: 30 name: Cleanup (${{ matrix.project }}) - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 needs: [playwright-ct-test] strategy: diff --git a/dev/design-studio/package.json b/dev/design-studio/package.json index 1bdb16ac2e7..a3795555a5e 100644 --- a/dev/design-studio/package.json +++ b/dev/design-studio/package.json @@ -32,7 +32,7 @@ }, "dependencies": { "@sanity/icons": "^3.5.7", - "@sanity/ui": "^2.11.1", + "@sanity/ui": "^2.11.2", "react": "^18.3.1", "react-dom": "^18.3.1", "sanity": "workspace:*", diff --git a/dev/embedded-studio/package.json b/dev/embedded-studio/package.json index b6b90883755..988d093d6e8 100644 --- a/dev/embedded-studio/package.json +++ b/dev/embedded-studio/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@sanity/ui": "^2.11.1", + "@sanity/ui": "^2.11.2", "react": "^18.3.1", "react-dom": "^18.3.1", "sanity": "workspace:*", diff --git a/dev/page-building-studio/package.json b/dev/page-building-studio/package.json index 6cf08824e5e..cd466f6d6a2 100644 --- a/dev/page-building-studio/package.json +++ b/dev/page-building-studio/package.json @@ -13,7 +13,7 @@ }, "dependencies": { "@sanity/vision": "workspace:*", - "babel-plugin-react-compiler": "19.0.0-beta-63e3235-20250105", + "babel-plugin-react-compiler": "19.0.0-beta-e552027-20250112", "react": "^18.2.0", "react-compiler-runtime": "19.0.0-beta-55955c9-20241229", "react-dom": "^18.2.0", diff --git a/dev/starter-studio/package.json b/dev/starter-studio/package.json index 8e984b7c1be..544b986e747 100644 --- a/dev/starter-studio/package.json +++ b/dev/starter-studio/package.json @@ -12,7 +12,7 @@ "start": "../.bin/sanity start --port 3337" }, "dependencies": { - "babel-plugin-react-compiler": "19.0.0-beta-63e3235-20250105", + "babel-plugin-react-compiler": "19.0.0-beta-e552027-20250112", "react": "^18.3.1", "react-compiler-runtime": "19.0.0-beta-55955c9-20241229", "react-dom": "^18.3.1", diff --git a/dev/studio-e2e-testing/package.json b/dev/studio-e2e-testing/package.json index 05fab2c2b1b..9960f781a70 100644 --- a/dev/studio-e2e-testing/package.json +++ b/dev/studio-e2e-testing/package.json @@ -18,9 +18,9 @@ "@sanity/color-input": "^4.0.1", "@sanity/google-maps-input": "^4.0.0", "@sanity/icons": "^3.5.7", - "@sanity/ui": "^2.11.1", + "@sanity/ui": "^2.11.2", "@sanity/vision": "3.69.0", - "babel-plugin-react-compiler": "19.0.0-beta-63e3235-20250105", + "babel-plugin-react-compiler": "19.0.0-beta-e552027-20250112", "react": "^19.0.0", "react-dom": "^19.0.0", "sanity": "workspace:*", diff --git a/dev/test-studio/package.json b/dev/test-studio/package.json index 139bedeeb11..7556906fa76 100644 --- a/dev/test-studio/package.json +++ b/dev/test-studio/package.json @@ -16,7 +16,7 @@ "workshop:dev": "node -r esbuild-register scripts/workshop/dev.ts" }, "dependencies": { - "@portabletext/editor": "^1.21.0", + "@portabletext/editor": "^1.21.1", "@portabletext/react": "^3.0.0", "@sanity/assist": "^3.0.2", "@sanity/block-tools": "3.69.0", @@ -37,7 +37,7 @@ "@sanity/react-loader": "^1.8.3", "@sanity/tsdoc": "1.0.169", "@sanity/types": "workspace:*", - "@sanity/ui": "^2.11.1", + "@sanity/ui": "^2.11.2", "@sanity/ui-workshop": "^1.0.0", "@sanity/util": "workspace:*", "@sanity/uuid": "^3.0.1", @@ -65,7 +65,7 @@ }, "devDependencies": { "@million/lint": "1.0.14", - "babel-plugin-react-compiler": "19.0.0-beta-63e3235-20250105", + "babel-plugin-react-compiler": "19.0.0-beta-e552027-20250112", "chokidar": "^3.6.0", "vite": "^5.4.11" } diff --git a/dev/test-studio/sanity.config.ts b/dev/test-studio/sanity.config.ts index 8b85fb5ead5..273b3b42da4 100644 --- a/dev/test-studio/sanity.config.ts +++ b/dev/test-studio/sanity.config.ts @@ -153,7 +153,7 @@ const sharedSettings = definePlugin({ ], }) -const defaultWorkspace = { +const defaultWorkspace = defineConfig({ name: 'default', title: 'Test Studio', projectId: 'ppsg7ml5', @@ -179,7 +179,7 @@ const defaultWorkspace = { tasks: { enabled: true, }, -} +}) export default defineConfig([ defaultWorkspace, diff --git a/examples/ecommerce-studio/package.json b/examples/ecommerce-studio/package.json index 1f5f8012038..0525e0f0a8f 100644 --- a/examples/ecommerce-studio/package.json +++ b/examples/ecommerce-studio/package.json @@ -30,7 +30,7 @@ }, "dependencies": { "@sanity/cli": "3.69.0", - "@sanity/ui": "^2.11.1", + "@sanity/ui": "^2.11.2", "react": "^18.3.1", "react-barcode": "^1.4.1", "react-dom": "^18.3.1", diff --git a/package.json b/package.json index edd2b990d1f..8308d2af639 100644 --- a/package.json +++ b/package.json @@ -117,7 +117,7 @@ "@sanity/prettier-config": "^1.0.3", "@sanity/test": "0.0.1-alpha.1", "@sanity/tsdoc": "1.0.169", - "@sanity/ui": "^2.11.1", + "@sanity/ui": "^2.11.2", "@sanity/uuid": "^3.0.2", "@types/glob": "^7.2.0", "@types/lodash": "^4.17.7", @@ -144,7 +144,7 @@ "eslint-plugin-import": "^2.30.0", "eslint-plugin-prettier": "^5.2.1", "eslint-plugin-react": "^7.36.1", - "eslint-plugin-react-compiler": "19.0.0-beta-63e3235-20250105", + "eslint-plugin-react-compiler": "19.0.0-beta-e552027-20250112", "eslint-plugin-react-hooks": "^4.6.2", "eslint-plugin-simple-import-sort": "^12.1.1", "eslint-plugin-tsdoc": "^0.3.0", diff --git a/packages/@sanity/cli/.eslintignore b/packages/@sanity/cli/.eslintignore index 0ecf9ccdd89..47de67274b3 100644 --- a/packages/@sanity/cli/.eslintignore +++ b/packages/@sanity/cli/.eslintignore @@ -1,3 +1,2 @@ # package specific /templates -/test/test-template diff --git a/packages/@sanity/cli/src/util/remoteTemplate.ts b/packages/@sanity/cli/src/util/remoteTemplate.ts index 8a2421c5a9d..648c42344b6 100644 --- a/packages/@sanity/cli/src/util/remoteTemplate.ts +++ b/packages/@sanity/cli/src/util/remoteTemplate.ts @@ -233,15 +233,17 @@ export async function applyEnvVariables( value: string, useQuotes: boolean, ) => { - const pattern = varRegex instanceof RegExp ? varRegex : new RegExp(`${varRegex}=.*$`, 'gm') - const match = content.match(pattern) - if (!match) return content - - const varName = match[0].split('=')[0] - return content.replace( - new RegExp(`${varName}=.*$`, 'gm'), - `${varName}=${useQuotes ? `"${value}"` : value}`, - ) + const varPattern = typeof varRegex === 'string' ? varRegex : varRegex.source + const pattern = new RegExp(`.*${varPattern}=.*$`, 'gm') + const matches = content.matchAll(pattern) + return Array.from(matches).reduce((updatedContent, match) => { + if (!match[0]) return updatedContent + const varName = match[0].split('=')[0].trim() + return updatedContent.replace( + new RegExp(`${varName}=.*$`, 'gm'), + `${varName}=${useQuotes ? `"${value}"` : value}`, + ) + }, content) } let envContent = templateContent diff --git a/packages/@sanity/cli/test/__fixtures__/remote-template/.env.local.example b/packages/@sanity/cli/test/__fixtures__/remote-template/.env.local.example new file mode 100644 index 00000000000..51c5ccb7e99 --- /dev/null +++ b/packages/@sanity/cli/test/__fixtures__/remote-template/.env.local.example @@ -0,0 +1,5 @@ +NEXT_PUBLIC_SANITY_PROJECT_ID= +SANITY_STUDIO_PROJECT_ID= + +NEXT_PUBLIC_SANITY_DATASET= +SANITY_STUDIO_DATASET= diff --git a/packages/@sanity/cli/test/__fixtures__/remote-template/README.md b/packages/@sanity/cli/test/__fixtures__/remote-template/README.md new file mode 100644 index 00000000000..0475b41d48a --- /dev/null +++ b/packages/@sanity/cli/test/__fixtures__/remote-template/README.md @@ -0,0 +1 @@ +This is a test template solely for the purpose of testing the `init --template` command when using remote templates. diff --git a/packages/@sanity/cli/test/__fixtures__/remote-template/next.config.ts b/packages/@sanity/cli/test/__fixtures__/remote-template/next.config.ts new file mode 100644 index 00000000000..b0df3743d0c --- /dev/null +++ b/packages/@sanity/cli/test/__fixtures__/remote-template/next.config.ts @@ -0,0 +1,7 @@ +import {type NextConfig} from 'next' + +const nextConfig: NextConfig = { + /* config options here */ +} + +export default nextConfig diff --git a/packages/@sanity/cli/test/__fixtures__/remote-template/package.json b/packages/@sanity/cli/test/__fixtures__/remote-template/package.json new file mode 100644 index 00000000000..0ff42d6f64f --- /dev/null +++ b/packages/@sanity/cli/test/__fixtures__/remote-template/package.json @@ -0,0 +1,13 @@ +{ + "name": "test-template", + "version": "1.0.0", + "main": "package.json", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "dependencies": { + "next": "^15", + "next-sanity": "^9", + "sanity": "^3" + } +} diff --git a/packages/@sanity/cli/test/__fixtures__/remote-template/sanity.cli.ts b/packages/@sanity/cli/test/__fixtures__/remote-template/sanity.cli.ts new file mode 100644 index 00000000000..824b4032abc --- /dev/null +++ b/packages/@sanity/cli/test/__fixtures__/remote-template/sanity.cli.ts @@ -0,0 +1,8 @@ +import {defineCliConfig} from 'sanity/cli' + +export default defineCliConfig({ + api: { + projectId: process.env.SANITY_STUDIO_PROJECT_ID, + dataset: process.env.SANITY_STUDIO_DATASET, + }, +}) diff --git a/packages/@sanity/cli/test/__fixtures__/remote-template/sanity.config.ts b/packages/@sanity/cli/test/__fixtures__/remote-template/sanity.config.ts new file mode 100644 index 00000000000..ddbc5e56399 --- /dev/null +++ b/packages/@sanity/cli/test/__fixtures__/remote-template/sanity.config.ts @@ -0,0 +1,13 @@ +import {defineConfig} from 'sanity' +import {structureTool} from 'sanity/structure' + +export default defineConfig({ + name: 'sanity-template-astro-clean', + title: 'Sanity Astro Starter', + projectId: process.env.SANITY_STUDIO_PROJECT_ID, + dataset: process.env.SANITY_STUDIO_DATASET, + plugins: [structureTool()], + schema: { + types: [], + }, +}) diff --git a/packages/@sanity/cli/test/init.test.ts b/packages/@sanity/cli/test/init.test.ts index 06722a8eae9..08ec7960886 100644 --- a/packages/@sanity/cli/test/init.test.ts +++ b/packages/@sanity/cli/test/init.test.ts @@ -106,7 +106,7 @@ describeCliTest('CLI: `sanity init v3`', () => { '--dataset', testRunArgs.dataset, '--template', - 'sanity-io/sanity/packages/@sanity/cli/test/test-template', + 'sanity-io/sanity/packages/@sanity/cli/test/__fixtures__/remote-template', '--output-path', `${baseTestPath}/${outpath}`, '--package-manager', @@ -145,7 +145,7 @@ describeCliTest('CLI: `sanity init v3`', () => { '--dataset', testRunArgs.dataset, '--template', - 'https://github.com/sanity-io/sanity/tree/next/packages/@sanity/cli/test/test-template', + 'https://github.com/sanity-io/sanity/tree/next/packages/@sanity/cli/test/__fixtures__/remote-template', '--output-path', `${baseTestPath}/${outpath}`, '--package-manager', @@ -183,7 +183,7 @@ describeCliTest('CLI: `sanity init v3`', () => { '--dataset', testRunArgs.dataset, '--template', - 'sanity-io/sanity/packages/@sanity/cli/test/test-template', + 'sanity-io/sanity/packages/@sanity/cli/test/__fixtures__/remote-template', '--output-path', `${baseTestPath}/${outpath}`, '--package-manager', @@ -192,8 +192,10 @@ describeCliTest('CLI: `sanity init v3`', () => { const envContent = await fs.readFile(path.join(baseTestPath, outpath, '.env.local'), 'utf-8') - expect(envContent).toContain(`SANITY_PROJECT_ID=${cliProjectId}`) - expect(envContent).toContain(`SANITY_DATASET=${testRunArgs.dataset}`) + expect(envContent).toContain(`NEXT_PUBLIC_SANITY_PROJECT_ID=${cliProjectId}`) + expect(envContent).toContain(`SANITY_STUDIO_PROJECT_ID=${cliProjectId}`) + expect(envContent).toContain(`NEXT_PUBLIC_SANITY_DATASET=${testRunArgs.dataset}`) + expect(envContent).toContain(`SANITY_STUDIO_DATASET=${testRunArgs.dataset}`) }) testConcurrent('fails with invalid repository format', async () => { diff --git a/packages/@sanity/cli/test/test-template/.env.local.example b/packages/@sanity/cli/test/test-template/.env.local.example deleted file mode 100644 index abae22560ac..00000000000 --- a/packages/@sanity/cli/test/test-template/.env.local.example +++ /dev/null @@ -1,3 +0,0 @@ -# https://github.com/vercel/next.js/tree/canary/examples/cms-sanity#using-the-sanity-cli -NEXT_PUBLIC_SANITY_PROJECT_ID= -NEXT_PUBLIC_SANITY_DATASET= diff --git a/packages/@sanity/cli/test/test-template/.eslintignore b/packages/@sanity/cli/test/test-template/.eslintignore deleted file mode 100644 index 30764a1a839..00000000000 --- a/packages/@sanity/cli/test/test-template/.eslintignore +++ /dev/null @@ -1,2 +0,0 @@ -# Ignoring generated files -./sanity.types.ts diff --git a/packages/@sanity/cli/test/test-template/.eslintrc b/packages/@sanity/cli/test/test-template/.eslintrc deleted file mode 100644 index 7c1a3addbd4..00000000000 --- a/packages/@sanity/cli/test/test-template/.eslintrc +++ /dev/null @@ -1,4 +0,0 @@ -{ - "extends": "next/core-web-vitals", - "root": true -} diff --git a/packages/@sanity/cli/test/test-template/.gitignore b/packages/@sanity/cli/test/test-template/.gitignore deleted file mode 100644 index d449ea2fa95..00000000000 --- a/packages/@sanity/cli/test/test-template/.gitignore +++ /dev/null @@ -1,42 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/studio/node_modules -/.pnp -.pnp.js -.yarn/install-state.gz - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# sanity -/.sanity/ -/dist/ - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts - -# Env files created by scripts for working locally -.env -.env.local \ No newline at end of file diff --git a/packages/@sanity/cli/test/test-template/.prettierignore b/packages/@sanity/cli/test/test-template/.prettierignore deleted file mode 100644 index 1509c4cdb7a..00000000000 --- a/packages/@sanity/cli/test/test-template/.prettierignore +++ /dev/null @@ -1,3 +0,0 @@ -# Ignoring generated files -./sanity.types.ts -./schema.json diff --git a/packages/@sanity/cli/test/test-template/README.md b/packages/@sanity/cli/test/test-template/README.md deleted file mode 100644 index 6e45bf98f2e..00000000000 --- a/packages/@sanity/cli/test/test-template/README.md +++ /dev/null @@ -1,4 +0,0 @@ -This is a test template solely for the purpose of testing the `init --template` command when using remote templates. - -It is a fork of the officially maintained template at: -https://github.com/vercel/next.js/tree/canary/examples/cms-sanity diff --git a/packages/@sanity/cli/test/test-template/app/(blog)/actions.ts b/packages/@sanity/cli/test/test-template/app/(blog)/actions.ts deleted file mode 100644 index 0263a84602a..00000000000 --- a/packages/@sanity/cli/test/test-template/app/(blog)/actions.ts +++ /dev/null @@ -1,12 +0,0 @@ -'use server' - -import {draftMode} from 'next/headers' - -export async function disableDraftMode() { - 'use server' - await Promise.allSettled([ - (await draftMode()).disable(), - // Simulate a delay to show the loading state - new Promise((resolve) => setTimeout(resolve, 1000)), - ]) -} diff --git a/packages/@sanity/cli/test/test-template/app/(blog)/alert-banner.tsx b/packages/@sanity/cli/test/test-template/app/(blog)/alert-banner.tsx deleted file mode 100644 index f6cc701714f..00000000000 --- a/packages/@sanity/cli/test/test-template/app/(blog)/alert-banner.tsx +++ /dev/null @@ -1,52 +0,0 @@ -'use client' - -import {useRouter} from 'next/navigation' -import {useSyncExternalStore, useTransition} from 'react' - -import {disableDraftMode} from './actions' - -const emptySubscribe = () => () => {} - -export default function AlertBanner() { - const router = useRouter() - const [pending, startTransition] = useTransition() - - const shouldShow = useSyncExternalStore( - emptySubscribe, - () => window.top === window, - () => false - ) - - if (!shouldShow) return null - - return ( -
-
- {pending ? ( - 'Disabling draft mode...' - ) : ( - <> - {'Previewing drafts. '} - - - )} -
-
- ) -} diff --git a/packages/@sanity/cli/test/test-template/app/(blog)/avatar.tsx b/packages/@sanity/cli/test/test-template/app/(blog)/avatar.tsx deleted file mode 100644 index 30ca8a51811..00000000000 --- a/packages/@sanity/cli/test/test-template/app/(blog)/avatar.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import {Image} from 'next-sanity/image' - -import type {Author} from '@/sanity.types' -import {urlForImage} from '@/sanity/lib/utils' - -interface Props { - name: string - picture: Exclude | null -} - -export default function Avatar({name, picture}: Props) { - return ( -
- {picture?.asset?._ref ? ( -
- {picture?.alt -
- ) : ( -
By
- )} -
{name}
-
- ) -} diff --git a/packages/@sanity/cli/test/test-template/app/(blog)/cover-image.tsx b/packages/@sanity/cli/test/test-template/app/(blog)/cover-image.tsx deleted file mode 100644 index 6d393eb0e96..00000000000 --- a/packages/@sanity/cli/test/test-template/app/(blog)/cover-image.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import {Image} from 'next-sanity/image' - -import {urlForImage} from '@/sanity/lib/utils' - -interface CoverImageProps { - image: any - priority?: boolean -} - -export default function CoverImage(props: CoverImageProps) { - const {image: source, priority} = props - const image = source?.asset?._ref ? ( - {source?.alt - ) : ( -
- ) - - return ( -
- {image} -
- ) -} diff --git a/packages/@sanity/cli/test/test-template/app/(blog)/date.tsx b/packages/@sanity/cli/test/test-template/app/(blog)/date.tsx deleted file mode 100644 index 7b65187705e..00000000000 --- a/packages/@sanity/cli/test/test-template/app/(blog)/date.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import {format} from 'date-fns' - -export default function DateComponent({dateString}: {dateString: string}) { - return -} diff --git a/packages/@sanity/cli/test/test-template/app/(blog)/layout.tsx b/packages/@sanity/cli/test/test-template/app/(blog)/layout.tsx deleted file mode 100644 index 933b369e5f6..00000000000 --- a/packages/@sanity/cli/test/test-template/app/(blog)/layout.tsx +++ /dev/null @@ -1,101 +0,0 @@ -import '../globals.css' - -import {SpeedInsights} from '@vercel/speed-insights/next' -import type {Metadata} from 'next' -import {VisualEditing, toPlainText, type PortableTextBlock} from 'next-sanity' -import {Inter} from 'next/font/google' -import {draftMode} from 'next/headers' - -import AlertBanner from './alert-banner' -import PortableText from './portable-text' - -import * as demo from '@/sanity/lib/demo' -import {sanityFetch} from '@/sanity/lib/fetch' -import {settingsQuery} from '@/sanity/lib/queries' -import {resolveOpenGraphImage} from '@/sanity/lib/utils' - -export async function generateMetadata(): Promise { - const settings = await sanityFetch({ - query: settingsQuery, - // Metadata should never contain stega - stega: false, - }) - const title = settings?.title || demo.title - const description = settings?.description || demo.description - - const ogImage = resolveOpenGraphImage(settings?.ogImage) - let metadataBase: URL | undefined = undefined - try { - metadataBase = settings?.ogImage?.metadataBase - ? new URL(settings.ogImage.metadataBase) - : undefined - } catch { - // ignore - } - return { - metadataBase, - title: { - template: `%s | ${title}`, - default: title, - }, - description: toPlainText(description), - openGraph: { - images: ogImage ? [ogImage] : [], - }, - } -} - -const inter = Inter({ - variable: '--font-inter', - subsets: ['latin'], - display: 'swap', -}) - -export default async function RootLayout({children}: {children: React.ReactNode}) { - const data = await sanityFetch({query: settingsQuery}) - const footer = data?.footer || [] - const {isEnabled: isDraftMode} = await draftMode() - - return ( - - -
- {isDraftMode && } -
{children}
- -
- {isDraftMode && } - - - - ) -} diff --git a/packages/@sanity/cli/test/test-template/app/(blog)/more-stories.tsx b/packages/@sanity/cli/test/test-template/app/(blog)/more-stories.tsx deleted file mode 100644 index 2c0378e3e8f..00000000000 --- a/packages/@sanity/cli/test/test-template/app/(blog)/more-stories.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import Link from 'next/link' - -import Avatar from './avatar' -import CoverImage from './cover-image' -import DateComponent from './date' - -import {sanityFetch} from '@/sanity/lib/fetch' -import {moreStoriesQuery} from '@/sanity/lib/queries' - -export default async function MoreStories(params: {skip: string; limit: number}) { - const data = await sanityFetch({query: moreStoriesQuery, params}) - - return ( - <> -
- {data?.map((post) => { - const {_id, title, slug, coverImage, excerpt, author} = post - return ( -
- - - -

- - {title} - -

-
- -
- {excerpt &&

{excerpt}

} - {author && } -
- ) - })} -
- - ) -} diff --git a/packages/@sanity/cli/test/test-template/app/(blog)/onboarding.tsx b/packages/@sanity/cli/test/test-template/app/(blog)/onboarding.tsx deleted file mode 100644 index 9f4153bd9de..00000000000 --- a/packages/@sanity/cli/test/test-template/app/(blog)/onboarding.tsx +++ /dev/null @@ -1,71 +0,0 @@ -'use client' - -/** - * This file is used for onboarding when you don't have any posts yet and are using the template for the first time. - * Once you have content, and know where to go to access the Sanity Studio and create content, you can delete this file. - */ - -import Link from 'next/link' -import {useSyncExternalStore} from 'react' - -const emptySubscribe = () => () => {} - -export default function Onboarding() { - const target = useSyncExternalStore( - emptySubscribe, - () => (window.top === window ? undefined : '_blank'), - () => '_blank' - ) - - return ( -
- -
-

No posts

-

Get started by creating a new post.

-
- -
- - - Create Post - -
-
- ) -} diff --git a/packages/@sanity/cli/test/test-template/app/(blog)/page.tsx b/packages/@sanity/cli/test/test-template/app/(blog)/page.tsx deleted file mode 100644 index 2438886c89f..00000000000 --- a/packages/@sanity/cli/test/test-template/app/(blog)/page.tsx +++ /dev/null @@ -1,105 +0,0 @@ -import Link from 'next/link' -import {Suspense} from 'react' - -import Avatar from './avatar' -import CoverImage from './cover-image' -import DateComponent from './date' -import MoreStories from './more-stories' -import Onboarding from './onboarding' -import PortableText from './portable-text' - -import type {HeroQueryResult} from '@/sanity.types' -import * as demo from '@/sanity/lib/demo' -import {sanityFetch} from '@/sanity/lib/fetch' -import {heroQuery, settingsQuery} from '@/sanity/lib/queries' - -function Intro(props: {title: string | null | undefined; description: any}) { - const title = props.title || demo.title - const description = props.description?.length ? props.description : demo.description - return ( -
-

- {title || demo.title} -

-

- -

-
- ) -} - -function HeroPost({ - title, - slug, - excerpt, - coverImage, - date, - author, -}: Pick< - Exclude, - 'title' | 'coverImage' | 'date' | 'excerpt' | 'author' | 'slug' ->) { - return ( -
- - - -
-
-

- - {title} - -

-
- -
-
-
- {excerpt &&

{excerpt}

} - {author && } -
-
-
- ) -} - -export default async function Page() { - const [settings, heroPost] = await Promise.all([ - sanityFetch({ - query: settingsQuery, - }), - sanityFetch({query: heroQuery}), - ]) - - return ( -
- - {heroPost ? ( - - ) : ( - - )} - {heroPost?._id && ( - - )} -
- ) -} diff --git a/packages/@sanity/cli/test/test-template/app/(blog)/portable-text.tsx b/packages/@sanity/cli/test/test-template/app/(blog)/portable-text.tsx deleted file mode 100644 index 0d8ae8b90d7..00000000000 --- a/packages/@sanity/cli/test/test-template/app/(blog)/portable-text.tsx +++ /dev/null @@ -1,41 +0,0 @@ -/** - * This component uses Portable Text to render a post body. - * - * You can learn more about Portable Text on: - * https://www.sanity.io/docs/block-content - * https://github.com/portabletext/react-portabletext - * https://portabletext.org/ - * - */ - -import {PortableText, type PortableTextComponents, type PortableTextBlock} from 'next-sanity' - -export default function CustomPortableText({ - className, - value, -}: { - className?: string - value: PortableTextBlock[] -}) { - const components: PortableTextComponents = { - block: { - h5: ({children}) =>
{children}
, - h6: ({children}) =>
{children}
, - }, - marks: { - link: ({children, value}) => { - return ( - - {children} - - ) - }, - }, - } - - return ( -
- -
- ) -} diff --git a/packages/@sanity/cli/test/test-template/app/(blog)/posts/[slug]/page.tsx b/packages/@sanity/cli/test/test-template/app/(blog)/posts/[slug]/page.tsx deleted file mode 100644 index c18539794ac..00000000000 --- a/packages/@sanity/cli/test/test-template/app/(blog)/posts/[slug]/page.tsx +++ /dev/null @@ -1,107 +0,0 @@ -import {defineQuery} from 'next-sanity' -import type {Metadata, ResolvingMetadata} from 'next' -import {type PortableTextBlock} from 'next-sanity' -import Link from 'next/link' -import {notFound} from 'next/navigation' -import {Suspense} from 'react' - -import Avatar from '../../avatar' -import CoverImage from '../../cover-image' -import DateComponent from '../../date' -import MoreStories from '../../more-stories' -import PortableText from '../../portable-text' - -import * as demo from '@/sanity/lib/demo' -import {sanityFetch} from '@/sanity/lib/fetch' -import {postQuery, settingsQuery} from '@/sanity/lib/queries' -import {resolveOpenGraphImage} from '@/sanity/lib/utils' - -type Props = { - params: Promise<{slug: string}> -} - -const postSlugs = defineQuery(`*[_type == "post" && defined(slug.current)]{"slug": slug.current}`) - -export async function generateStaticParams() { - return await sanityFetch({ - query: postSlugs, - perspective: 'published', - stega: false, - }) -} - -export async function generateMetadata( - {params}: Props, - parent: ResolvingMetadata -): Promise { - const post = await sanityFetch({ - query: postQuery, - params, - stega: false, - }) - const previousImages = (await parent).openGraph?.images || [] - const ogImage = resolveOpenGraphImage(post?.coverImage) - - return { - authors: post?.author?.name ? [{name: post?.author?.name}] : [], - title: post?.title, - description: post?.excerpt, - openGraph: { - images: ogImage ? [ogImage, ...previousImages] : previousImages, - }, - } satisfies Metadata -} - -export default async function PostPage({params}: Props) { - const [post, settings] = await Promise.all([ - sanityFetch({query: postQuery, params}), - sanityFetch({query: settingsQuery}), - ]) - - if (!post?._id) { - return notFound() - } - - return ( -
-

- - {settings?.title || demo.title} - -

-
-

- {post.title} -

-
- {post.author && } -
-
- -
-
-
- {post.author && } -
-
-
- -
-
-
- {post.content?.length && ( - - )} -
- -
- ) -} diff --git a/packages/@sanity/cli/test/test-template/app/(sanity)/apple-icon.png b/packages/@sanity/cli/test/test-template/app/(sanity)/apple-icon.png deleted file mode 100644 index bc571d60bf6..00000000000 Binary files a/packages/@sanity/cli/test/test-template/app/(sanity)/apple-icon.png and /dev/null differ diff --git a/packages/@sanity/cli/test/test-template/app/(sanity)/icon.ico b/packages/@sanity/cli/test/test-template/app/(sanity)/icon.ico deleted file mode 100644 index 3f67d3e8e86..00000000000 Binary files a/packages/@sanity/cli/test/test-template/app/(sanity)/icon.ico and /dev/null differ diff --git a/packages/@sanity/cli/test/test-template/app/(sanity)/icon.png b/packages/@sanity/cli/test/test-template/app/(sanity)/icon.png deleted file mode 100644 index 6320b50010d..00000000000 Binary files a/packages/@sanity/cli/test/test-template/app/(sanity)/icon.png and /dev/null differ diff --git a/packages/@sanity/cli/test/test-template/app/(sanity)/icon.svg b/packages/@sanity/cli/test/test-template/app/(sanity)/icon.svg deleted file mode 100644 index 1beaa9b7579..00000000000 --- a/packages/@sanity/cli/test/test-template/app/(sanity)/icon.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/packages/@sanity/cli/test/test-template/app/(sanity)/layout.tsx b/packages/@sanity/cli/test/test-template/app/(sanity)/layout.tsx deleted file mode 100644 index d1d13629c68..00000000000 --- a/packages/@sanity/cli/test/test-template/app/(sanity)/layout.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import '../globals.css' - -import {Inter} from 'next/font/google' - -const inter = Inter({ - variable: '--font-inter', - subsets: ['latin'], - display: 'swap', -}) - -export {metadata, viewport} from 'next-sanity/studio' - -export default function RootLayout({children}: {children: React.ReactNode}) { - return ( - - {children} - - ) -} diff --git a/packages/@sanity/cli/test/test-template/app/(sanity)/studio/[[...tool]]/page.tsx b/packages/@sanity/cli/test/test-template/app/(sanity)/studio/[[...tool]]/page.tsx deleted file mode 100644 index 9f98c539da2..00000000000 --- a/packages/@sanity/cli/test/test-template/app/(sanity)/studio/[[...tool]]/page.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import {NextStudio} from 'next-sanity/studio' - -import config from '@/sanity.config' - -export const dynamic = 'force-static' - -export default function StudioPage() { - return -} diff --git a/packages/@sanity/cli/test/test-template/app/api/draft-mode/enable/route.ts b/packages/@sanity/cli/test/test-template/app/api/draft-mode/enable/route.ts deleted file mode 100644 index d9d04445f11..00000000000 --- a/packages/@sanity/cli/test/test-template/app/api/draft-mode/enable/route.ts +++ /dev/null @@ -1,8 +0,0 @@ -import {defineEnableDraftMode} from 'next-sanity/draft-mode' - -import {client} from '@/sanity/lib/client' -import {token} from '@/sanity/lib/token' - -export const {GET} = defineEnableDraftMode({ - client: client.withConfig({token}), -}) diff --git a/packages/@sanity/cli/test/test-template/app/favicon.ico b/packages/@sanity/cli/test/test-template/app/favicon.ico deleted file mode 100644 index af98450595e..00000000000 Binary files a/packages/@sanity/cli/test/test-template/app/favicon.ico and /dev/null differ diff --git a/packages/@sanity/cli/test/test-template/app/globals.css b/packages/@sanity/cli/test/test-template/app/globals.css deleted file mode 100644 index b5c61c95671..00000000000 --- a/packages/@sanity/cli/test/test-template/app/globals.css +++ /dev/null @@ -1,3 +0,0 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; diff --git a/packages/@sanity/cli/test/test-template/next.config.ts b/packages/@sanity/cli/test/test-template/next.config.ts deleted file mode 100644 index 451313c0a5a..00000000000 --- a/packages/@sanity/cli/test/test-template/next.config.ts +++ /dev/null @@ -1,10 +0,0 @@ -import type {NextConfig} from 'next' - -const nextConfig: NextConfig = { - env: { - // Matches the behavior of `sanity dev` which sets styled-components to use the fastest way of inserting CSS rules in both dev and production. It's default behavior is to disable it in dev mode. - SC_DISABLE_SPEEDY: 'false', - }, -} - -export default nextConfig diff --git a/packages/@sanity/cli/test/test-template/package.json b/packages/@sanity/cli/test/test-template/package.json deleted file mode 100644 index 10c11e12cf4..00000000000 --- a/packages/@sanity/cli/test/test-template/package.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "private": true, - "scripts": { - "prebuild": "npm run typegen", - "build": "next build", - "predev": "npm run typegen", - "dev": "next --turbo", - "lint": "next lint", - "presetup": "echo 'about to setup env variables, follow the guide here: https://github.com/vercel/next.js/tree/canary/examples/cms-sanity#using-the-sanity-cli'", - "setup": "npx sanity@latest init --env .env.local", - "postsetup": "echo 'create the read token by following the rest of the guide: https://github.com/vercel/next.js/tree/canary/examples/cms-sanity#creating-a-read-token'", - "start": "next start", - "typegen": "sanity schema extract && sanity typegen generate" - }, - "dependencies": { - "@sanity/assist": "^3.0.8", - "@sanity/icons": "^3.5.7", - "@sanity/image-url": "^1.0.2", - "@sanity/preview-url-secret": "^2.0.0", - "@sanity/vision": "^3.62.0", - "@tailwindcss/typography": "^0.5.15", - "@types/node": "^22.7.8", - "@types/react": "^19.0.3", - "@types/react-dom": "^19.0.2", - "@vercel/speed-insights": "^1.0.13", - "autoprefixer": "^10.4.20", - "date-fns": "^4.1.0", - "next": "^15.0.0", - "next-sanity": "^9.7.0", - "postcss": "^8.4.47", - "react": "^18.3.1", - "react-dom": "^18.3.1", - "sanity": "^3.62.0", - "sanity-plugin-asset-source-unsplash": "^3.0.1", - "server-only": "^0.0.1", - "styled-components": "^6.1.13", - "tailwindcss": "^3.4.14", - "typescript": "5.7.3" - }, - "devDependencies": { - "eslint": "^9.13.0", - "eslint-config-next": "^15.0.0" - } -} - diff --git a/packages/@sanity/cli/test/test-template/postcss.config.js b/packages/@sanity/cli/test/test-template/postcss.config.js deleted file mode 100644 index 33ad091d26d..00000000000 --- a/packages/@sanity/cli/test/test-template/postcss.config.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = { - plugins: { - tailwindcss: {}, - autoprefixer: {}, - }, -} diff --git a/packages/@sanity/cli/test/test-template/sanity.cli.ts b/packages/@sanity/cli/test/test-template/sanity.cli.ts deleted file mode 100644 index 481d2b2b505..00000000000 --- a/packages/@sanity/cli/test/test-template/sanity.cli.ts +++ /dev/null @@ -1,19 +0,0 @@ -import {defineCliConfig} from 'sanity/cli' - -const projectId = process.env.NEXT_PUBLIC_SANITY_PROJECT_ID -const dataset = process.env.NEXT_PUBLIC_SANITY_DATASET - -export default defineCliConfig({ - api: {projectId, dataset}, - vite: { - define: { - 'process.env.NEXT_PUBLIC_SANITY_PROJECT_ID': JSON.stringify(projectId), - 'process.env.NEXT_PUBLIC_SANITY_DATASET': JSON.stringify(dataset), - }, - resolve: { - alias: { - '@': __dirname, - }, - }, - }, -}) diff --git a/packages/@sanity/cli/test/test-template/sanity.config.ts b/packages/@sanity/cli/test/test-template/sanity.config.ts deleted file mode 100644 index af5be2c66c1..00000000000 --- a/packages/@sanity/cli/test/test-template/sanity.config.ts +++ /dev/null @@ -1,88 +0,0 @@ -'use client' -/** - * This config is used to set up Sanity Studio that's mounted on the `app/(sanity)/studio/[[...tool]]/page.tsx` route - */ -import {visionTool} from '@sanity/vision' -import {PluginOptions, defineConfig} from 'sanity' -import {unsplashImageAsset} from 'sanity-plugin-asset-source-unsplash' -import { - presentationTool, - defineDocuments, - defineLocations, - type DocumentLocation, -} from 'sanity/presentation' -import {structureTool} from 'sanity/structure' - -import {apiVersion, dataset, projectId, studioUrl} from '@/sanity/lib/api' -import {pageStructure, singletonPlugin} from '@/sanity/plugins/settings' -import {assistWithPresets} from '@/sanity/plugins/assist' -import author from '@/sanity/schemas/documents/author' -import post from '@/sanity/schemas/documents/post' -import settings from '@/sanity/schemas/singletons/settings' -import {resolveHref} from '@/sanity/lib/utils' - -const homeLocation = { - title: 'Home', - href: '/', -} satisfies DocumentLocation - -export default defineConfig({ - basePath: studioUrl, - projectId, - dataset, - schema: { - types: [ - // Singletons - settings, - // Documents - post, - author, - ], - }, - plugins: [ - presentationTool({ - resolve: { - mainDocuments: defineDocuments([ - { - route: '/posts/:slug', - filter: `_type == "post" && slug.current == $slug`, - }, - ]), - locations: { - settings: defineLocations({ - locations: [homeLocation], - message: 'This document is used on all pages', - tone: 'caution', - }), - post: defineLocations({ - select: { - title: 'title', - slug: 'slug.current', - }, - resolve: (doc) => ({ - locations: [ - { - title: doc?.title || 'Untitled', - href: resolveHref('post', doc?.slug)!, - }, - homeLocation, - ], - }), - }), - }, - }, - previewUrl: {previewMode: {enable: '/api/draft-mode/enable'}}, - }), - structureTool({structure: pageStructure([settings])}), - // Configures the global "new document" button, and document actions, to suit the Settings document singleton - singletonPlugin([settings.name]), - // Add an image asset source for Unsplash - unsplashImageAsset(), - // Sets up AI Assist with preset prompts - // https://www.sanity.io/docs/ai-assist - assistWithPresets(), - // Vision lets you query your content with GROQ in the studio - // https://www.sanity.io/docs/the-vision-plugin - process.env.NODE_ENV === 'development' && visionTool({defaultApiVersion: apiVersion}), - ].filter(Boolean) as PluginOptions[], -}) diff --git a/packages/@sanity/cli/test/test-template/sanity.types.ts b/packages/@sanity/cli/test/test-template/sanity.types.ts deleted file mode 100644 index 3a3daca21c9..00000000000 --- a/packages/@sanity/cli/test/test-template/sanity.types.ts +++ /dev/null @@ -1,649 +0,0 @@ -/** - * --------------------------------------------------------------------------------- - * This file has been generated by Sanity TypeGen. - * Command: `sanity typegen generate` - * - * Any modifications made directly to this file will be overwritten the next time - * the TypeScript definitions are generated. Please make changes to the Sanity - * schema definitions and/or GROQ queries if you need to update these types. - * - * For more information on how to use Sanity TypeGen, visit the official documentation: - * https://www.sanity.io/docs/sanity-typegen - * --------------------------------------------------------------------------------- - */ - -// Source: schema.json -export type SanityImagePaletteSwatch = { - _type: 'sanity.imagePaletteSwatch' - background?: string - foreground?: string - population?: number - title?: string -} - -export type SanityImagePalette = { - _type: 'sanity.imagePalette' - darkMuted?: SanityImagePaletteSwatch - lightVibrant?: SanityImagePaletteSwatch - darkVibrant?: SanityImagePaletteSwatch - vibrant?: SanityImagePaletteSwatch - dominant?: SanityImagePaletteSwatch - lightMuted?: SanityImagePaletteSwatch - muted?: SanityImagePaletteSwatch -} - -export type SanityImageDimensions = { - _type: 'sanity.imageDimensions' - height?: number - width?: number - aspectRatio?: number -} - -export type SanityFileAsset = { - _id: string - _type: 'sanity.fileAsset' - _createdAt: string - _updatedAt: string - _rev: string - originalFilename?: string - label?: string - title?: string - description?: string - altText?: string - sha1hash?: string - extension?: string - mimeType?: string - size?: number - assetId?: string - uploadId?: string - path?: string - url?: string - source?: SanityAssetSourceData -} - -export type Geopoint = { - _type: 'geopoint' - lat?: number - lng?: number - alt?: number -} - -export type Post = { - _id: string - _type: 'post' - _createdAt: string - _updatedAt: string - _rev: string - title?: string - slug?: Slug - content?: Array<{ - children?: Array<{ - marks?: Array - text?: string - _type: 'span' - _key: string - }> - style?: 'normal' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'blockquote' - listItem?: 'bullet' | 'number' - markDefs?: Array<{ - href?: string - _type: 'link' - _key: string - }> - level?: number - _type: 'block' - _key: string - }> - excerpt?: string - coverImage?: { - asset?: { - _ref: string - _type: 'reference' - _weak?: boolean - [internalGroqTypeReferenceTo]?: 'sanity.imageAsset' - } - hotspot?: SanityImageHotspot - crop?: SanityImageCrop - alt?: string - _type: 'image' - } - date?: string - author?: { - _ref: string - _type: 'reference' - _weak?: boolean - [internalGroqTypeReferenceTo]?: 'author' - } -} - -export type Author = { - _id: string - _type: 'author' - _createdAt: string - _updatedAt: string - _rev: string - name?: string - picture?: { - asset?: { - _ref: string - _type: 'reference' - _weak?: boolean - [internalGroqTypeReferenceTo]?: 'sanity.imageAsset' - } - hotspot?: SanityImageHotspot - crop?: SanityImageCrop - alt?: string - _type: 'image' - } -} - -export type Slug = { - _type: 'slug' - current?: string - source?: string -} - -export type Settings = { - _id: string - _type: 'settings' - _createdAt: string - _updatedAt: string - _rev: string - title?: string - description?: Array<{ - children?: Array<{ - marks?: Array - text?: string - _type: 'span' - _key: string - }> - style?: 'normal' - listItem?: never - markDefs?: Array<{ - href?: string - _type: 'link' - _key: string - }> - level?: number - _type: 'block' - _key: string - }> - footer?: Array<{ - children?: Array<{ - marks?: Array - text?: string - _type: 'span' - _key: string - }> - style?: 'normal' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'blockquote' - listItem?: 'bullet' | 'number' - markDefs?: Array<{ - href?: string - _type: 'link' - _key: string - }> - level?: number - _type: 'block' - _key: string - }> - ogImage?: { - asset?: { - _ref: string - _type: 'reference' - _weak?: boolean - [internalGroqTypeReferenceTo]?: 'sanity.imageAsset' - } - hotspot?: SanityImageHotspot - crop?: SanityImageCrop - alt?: string - metadataBase?: string - _type: 'image' - } -} - -export type SanityImageCrop = { - _type: 'sanity.imageCrop' - top?: number - bottom?: number - left?: number - right?: number -} - -export type SanityImageHotspot = { - _type: 'sanity.imageHotspot' - x?: number - y?: number - height?: number - width?: number -} - -export type SanityImageAsset = { - _id: string - _type: 'sanity.imageAsset' - _createdAt: string - _updatedAt: string - _rev: string - originalFilename?: string - label?: string - title?: string - description?: string - altText?: string - sha1hash?: string - extension?: string - mimeType?: string - size?: number - assetId?: string - uploadId?: string - path?: string - url?: string - metadata?: SanityImageMetadata - source?: SanityAssetSourceData -} - -export type SanityAssetSourceData = { - _type: 'sanity.assetSourceData' - name?: string - id?: string - url?: string -} - -export type SanityImageMetadata = { - _type: 'sanity.imageMetadata' - location?: Geopoint - dimensions?: SanityImageDimensions - palette?: SanityImagePalette - lqip?: string - blurHash?: string - hasAlpha?: boolean - isOpaque?: boolean -} - -export type SanityAssistInstructionTask = { - _type: 'sanity.assist.instructionTask' - path?: string - instructionKey?: string - started?: string - updated?: string - info?: string -} - -export type SanityAssistTaskStatus = { - _type: 'sanity.assist.task.status' - tasks?: Array< - { - _key: string - } & SanityAssistInstructionTask - > -} - -export type SanityAssistSchemaTypeAnnotations = { - _type: 'sanity.assist.schemaType.annotations' - title?: string - fields?: Array< - { - _key: string - } & SanityAssistSchemaTypeField - > -} - -export type SanityAssistOutputType = { - _type: 'sanity.assist.output.type' - type?: string -} - -export type SanityAssistOutputField = { - _type: 'sanity.assist.output.field' - path?: string -} - -export type SanityAssistInstructionContext = { - _type: 'sanity.assist.instruction.context' - reference?: { - _ref: string - _type: 'reference' - _weak?: boolean - [internalGroqTypeReferenceTo]?: 'assist.instruction.context' - } -} - -export type AssistInstructionContext = { - _id: string - _type: 'assist.instruction.context' - _createdAt: string - _updatedAt: string - _rev: string - title?: string - context?: Array<{ - children?: Array<{ - marks?: Array - text?: string - _type: 'span' - _key: string - }> - style?: 'normal' - listItem?: never - markDefs?: null - level?: number - _type: 'block' - _key: string - }> -} - -export type SanityAssistInstructionUserInput = { - _type: 'sanity.assist.instruction.userInput' - message?: string - description?: string -} - -export type SanityAssistInstructionPrompt = Array<{ - children?: Array< - | { - marks?: Array - text?: string - _type: 'span' - _key: string - } - | ({ - _key: string - } & SanityAssistInstructionFieldRef) - | ({ - _key: string - } & SanityAssistInstructionContext) - | ({ - _key: string - } & SanityAssistInstructionUserInput) - > - style?: 'normal' - listItem?: never - markDefs?: null - level?: number - _type: 'block' - _key: string -}> - -export type SanityAssistInstructionFieldRef = { - _type: 'sanity.assist.instruction.fieldRef' - path?: string -} - -export type SanityAssistInstruction = { - _type: 'sanity.assist.instruction' - prompt?: SanityAssistInstructionPrompt - icon?: string - title?: string - userId?: string - createdById?: string - output?: Array< - | ({ - _key: string - } & SanityAssistOutputField) - | ({ - _key: string - } & SanityAssistOutputType) - > -} - -export type SanityAssistSchemaTypeField = { - _type: 'sanity.assist.schemaType.field' - path?: string - instructions?: Array< - { - _key: string - } & SanityAssistInstruction - > -} - -export type AllSanitySchemaTypes = - | SanityImagePaletteSwatch - | SanityImagePalette - | SanityImageDimensions - | SanityFileAsset - | Geopoint - | Post - | Author - | Slug - | Settings - | SanityImageCrop - | SanityImageHotspot - | SanityImageAsset - | SanityAssetSourceData - | SanityImageMetadata - | SanityAssistInstructionTask - | SanityAssistTaskStatus - | SanityAssistSchemaTypeAnnotations - | SanityAssistOutputType - | SanityAssistOutputField - | SanityAssistInstructionContext - | AssistInstructionContext - | SanityAssistInstructionUserInput - | SanityAssistInstructionPrompt - | SanityAssistInstructionFieldRef - | SanityAssistInstruction - | SanityAssistSchemaTypeField -export declare const internalGroqTypeReferenceTo: unique symbol -// Source: ./sanity/lib/queries.ts -// Variable: settingsQuery -// Query: *[_type == "settings"][0] -export type SettingsQueryResult = { - _id: string - _type: 'settings' - _createdAt: string - _updatedAt: string - _rev: string - title?: string - description?: Array<{ - children?: Array<{ - marks?: Array - text?: string - _type: 'span' - _key: string - }> - style?: 'normal' - listItem?: never - markDefs?: Array<{ - href?: string - _type: 'link' - _key: string - }> - level?: number - _type: 'block' - _key: string - }> - footer?: Array<{ - children?: Array<{ - marks?: Array - text?: string - _type: 'span' - _key: string - }> - style?: 'blockquote' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'normal' - listItem?: 'bullet' | 'number' - markDefs?: Array<{ - href?: string - _type: 'link' - _key: string - }> - level?: number - _type: 'block' - _key: string - }> - ogImage?: { - asset?: { - _ref: string - _type: 'reference' - _weak?: boolean - [internalGroqTypeReferenceTo]?: 'sanity.imageAsset' - } - hotspot?: SanityImageHotspot - crop?: SanityImageCrop - alt?: string - metadataBase?: string - _type: 'image' - } -} | null -// Variable: heroQuery -// Query: *[_type == "post" && defined(slug.current)] | order(date desc, _updatedAt desc) [0] { content, _id, "status": select(_originalId in path("drafts.**") => "draft", "published"), "title": coalesce(title, "Untitled"), "slug": slug.current, excerpt, coverImage, "date": coalesce(date, _updatedAt), "author": author->{"name": coalesce(name, "Anonymous"), picture}, } -export type HeroQueryResult = { - content: Array<{ - children?: Array<{ - marks?: Array - text?: string - _type: 'span' - _key: string - }> - style?: 'blockquote' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'normal' - listItem?: 'bullet' | 'number' - markDefs?: Array<{ - href?: string - _type: 'link' - _key: string - }> - level?: number - _type: 'block' - _key: string - }> | null - _id: string - status: 'draft' | 'published' - title: string | 'Untitled' - slug: string | null - excerpt: string | null - coverImage: { - asset?: { - _ref: string - _type: 'reference' - _weak?: boolean - [internalGroqTypeReferenceTo]?: 'sanity.imageAsset' - } - hotspot?: SanityImageHotspot - crop?: SanityImageCrop - alt?: string - _type: 'image' - } | null - date: string - author: { - name: string | 'Anonymous' - picture: { - asset?: { - _ref: string - _type: 'reference' - _weak?: boolean - [internalGroqTypeReferenceTo]?: 'sanity.imageAsset' - } - hotspot?: SanityImageHotspot - crop?: SanityImageCrop - alt?: string - _type: 'image' - } | null - } | null -} | null -// Variable: moreStoriesQuery -// Query: *[_type == "post" && _id != $skip && defined(slug.current)] | order(date desc, _updatedAt desc) [0...$limit] { _id, "status": select(_originalId in path("drafts.**") => "draft", "published"), "title": coalesce(title, "Untitled"), "slug": slug.current, excerpt, coverImage, "date": coalesce(date, _updatedAt), "author": author->{"name": coalesce(name, "Anonymous"), picture}, } -export type MoreStoriesQueryResult = Array<{ - _id: string - status: 'draft' | 'published' - title: string | 'Untitled' - slug: string | null - excerpt: string | null - coverImage: { - asset?: { - _ref: string - _type: 'reference' - _weak?: boolean - [internalGroqTypeReferenceTo]?: 'sanity.imageAsset' - } - hotspot?: SanityImageHotspot - crop?: SanityImageCrop - alt?: string - _type: 'image' - } | null - date: string - author: { - name: string | 'Anonymous' - picture: { - asset?: { - _ref: string - _type: 'reference' - _weak?: boolean - [internalGroqTypeReferenceTo]?: 'sanity.imageAsset' - } - hotspot?: SanityImageHotspot - crop?: SanityImageCrop - alt?: string - _type: 'image' - } | null - } | null -}> -// Variable: postQuery -// Query: *[_type == "post" && slug.current == $slug] [0] { content, _id, "status": select(_originalId in path("drafts.**") => "draft", "published"), "title": coalesce(title, "Untitled"), "slug": slug.current, excerpt, coverImage, "date": coalesce(date, _updatedAt), "author": author->{"name": coalesce(name, "Anonymous"), picture}, } -export type PostQueryResult = { - content: Array<{ - children?: Array<{ - marks?: Array - text?: string - _type: 'span' - _key: string - }> - style?: 'blockquote' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'normal' - listItem?: 'bullet' | 'number' - markDefs?: Array<{ - href?: string - _type: 'link' - _key: string - }> - level?: number - _type: 'block' - _key: string - }> | null - _id: string - status: 'draft' | 'published' - title: string | 'Untitled' - slug: string | null - excerpt: string | null - coverImage: { - asset?: { - _ref: string - _type: 'reference' - _weak?: boolean - [internalGroqTypeReferenceTo]?: 'sanity.imageAsset' - } - hotspot?: SanityImageHotspot - crop?: SanityImageCrop - alt?: string - _type: 'image' - } | null - date: string - author: { - name: string | 'Anonymous' - picture: { - asset?: { - _ref: string - _type: 'reference' - _weak?: boolean - [internalGroqTypeReferenceTo]?: 'sanity.imageAsset' - } - hotspot?: SanityImageHotspot - crop?: SanityImageCrop - alt?: string - _type: 'image' - } | null - } | null -} | null - -// Source: ./app/(blog)/posts/[slug]/page.tsx -// Variable: postSlugs -// Query: *[_type == "post" && defined(slug.current)]{"slug": slug.current} -export type PostSlugsResult = Array<{ - slug: string | null -}> - -// Query TypeMap -import '@sanity/client' -declare module '@sanity/client' { - interface SanityQueries { - '*[_type == "settings"][0]': SettingsQueryResult - '\n *[_type == "post" && defined(slug.current)] | order(date desc, _updatedAt desc) [0] {\n content,\n \n _id,\n "status": select(_originalId in path("drafts.**") => "draft", "published"),\n "title": coalesce(title, "Untitled"),\n "slug": slug.current,\n excerpt,\n coverImage,\n "date": coalesce(date, _updatedAt),\n "author": author->{"name": coalesce(name, "Anonymous"), picture},\n\n }\n': HeroQueryResult - '\n *[_type == "post" && _id != $skip && defined(slug.current)] | order(date desc, _updatedAt desc) [0...$limit] {\n \n _id,\n "status": select(_originalId in path("drafts.**") => "draft", "published"),\n "title": coalesce(title, "Untitled"),\n "slug": slug.current,\n excerpt,\n coverImage,\n "date": coalesce(date, _updatedAt),\n "author": author->{"name": coalesce(name, "Anonymous"), picture},\n\n }\n': MoreStoriesQueryResult - '\n *[_type == "post" && slug.current == $slug] [0] {\n content,\n \n _id,\n "status": select(_originalId in path("drafts.**") => "draft", "published"),\n "title": coalesce(title, "Untitled"),\n "slug": slug.current,\n excerpt,\n coverImage,\n "date": coalesce(date, _updatedAt),\n "author": author->{"name": coalesce(name, "Anonymous"), picture},\n\n }\n': PostQueryResult - '*[_type == "post" && defined(slug.current)]{"slug": slug.current}': PostSlugsResult - } -} diff --git a/packages/@sanity/cli/test/test-template/sanity/lib/api.ts b/packages/@sanity/cli/test/test-template/sanity/lib/api.ts deleted file mode 100644 index 8e0157a360a..00000000000 --- a/packages/@sanity/cli/test/test-template/sanity/lib/api.ts +++ /dev/null @@ -1,32 +0,0 @@ -/** - * As this file is reused in several other files, try to keep it lean and small. - * Importing other npm packages here could lead to needlessly increasing the client bundle size, or end up in a server-only function that don't need it. - */ - -function assertValue(v: T | undefined, errorMessage: string): T { - if (v === undefined) { - throw new Error(errorMessage) - } - - return v -} - -export const dataset = assertValue( - process.env.NEXT_PUBLIC_SANITY_DATASET, - 'Missing environment variable: NEXT_PUBLIC_SANITY_DATASET' -) - -export const projectId = assertValue( - process.env.NEXT_PUBLIC_SANITY_PROJECT_ID, - 'Missing environment variable: NEXT_PUBLIC_SANITY_PROJECT_ID' -) - -/** - * see https://www.sanity.io/docs/api-versioning for how versioning works - */ -export const apiVersion = process.env.NEXT_PUBLIC_SANITY_API_VERSION || '2024-02-28' - -/** - * Used to configure edit intent links, for Presentation Mode, as well as to configure where the Studio is mounted in the router. - */ -export const studioUrl = '/studio' diff --git a/packages/@sanity/cli/test/test-template/sanity/lib/client.ts b/packages/@sanity/cli/test/test-template/sanity/lib/client.ts deleted file mode 100644 index c66dbd442dd..00000000000 --- a/packages/@sanity/cli/test/test-template/sanity/lib/client.ts +++ /dev/null @@ -1,22 +0,0 @@ -import {createClient} from 'next-sanity' - -import {apiVersion, dataset, projectId, studioUrl} from '@/sanity/lib/api' - -export const client = createClient({ - projectId, - dataset, - apiVersion, - useCdn: true, - perspective: 'published', - stega: { - studioUrl, - logger: console, - filter: (props) => { - if (props.sourcePath.at(-1) === 'title') { - return true - } - - return props.filterDefault(props) - }, - }, -}) diff --git a/packages/@sanity/cli/test/test-template/sanity/lib/demo.ts b/packages/@sanity/cli/test/test-template/sanity/lib/demo.ts deleted file mode 100644 index 6dc1a7d43ee..00000000000 --- a/packages/@sanity/cli/test/test-template/sanity/lib/demo.ts +++ /dev/null @@ -1,59 +0,0 @@ -/** - * Demo data used as placeholders and initial values for the blog - */ - -export const title = 'Blog.' - -export const description = [ - { - _key: '9f1a629887fd', - _type: 'block', - children: [ - { - _key: '4a58edd077880', - _type: 'span', - marks: [], - text: 'A statically generated blog example using ', - }, - { - _key: '4a58edd077881', - _type: 'span', - marks: ['ec5b66c9b1e0'], - text: 'Next.js', - }, - { - _key: '4a58edd077882', - _type: 'span', - marks: [], - text: ' and ', - }, - { - _key: '4a58edd077883', - _type: 'span', - marks: ['1f8991913ea8'], - text: 'Sanity', - }, - { - _key: '4a58edd077884', - _type: 'span', - marks: [], - text: '.', - }, - ], - markDefs: [ - { - _key: 'ec5b66c9b1e0', - _type: 'link', - href: 'https://nextjs.org/', - }, - { - _key: '1f8991913ea8', - _type: 'link', - href: 'https://sanity.io/', - }, - ], - style: 'normal', - }, -] - -export const ogImageTitle = 'A Next.js Blog with a Native Authoring Experience' diff --git a/packages/@sanity/cli/test/test-template/sanity/lib/fetch.ts b/packages/@sanity/cli/test/test-template/sanity/lib/fetch.ts deleted file mode 100644 index 50775f7c013..00000000000 --- a/packages/@sanity/cli/test/test-template/sanity/lib/fetch.ts +++ /dev/null @@ -1,52 +0,0 @@ -import type {ClientPerspective, QueryParams} from 'next-sanity' -import {draftMode} from 'next/headers' - -import {client} from '@/sanity/lib/client' -import {token} from '@/sanity/lib/token' - -/** - * Used to fetch data in Server Components, it has built in support for handling Draft Mode and perspectives. - * When using the "published" perspective then time-based revalidation is used, set to match the time-to-live on Sanity's API CDN (60 seconds) - * and will also fetch from the CDN. - * When using the "previewDrafts" perspective then the data is fetched from the live API and isn't cached, it will also fetch draft content that isn't published yet. - */ -export async function sanityFetch({ - query, - params = {}, - perspective: _perspective, - /** - * Stega embedded Content Source Maps are used by Visual Editing by both the Sanity Presentation Tool and Vercel Visual Editing. - * The Sanity Presentation Tool will enable Draft Mode when loading up the live preview, and we use it as a signal for when to embed source maps. - * When outside of the Sanity Studio we also support the Vercel Toolbar Visual Editing feature, which is only enabled in production when it's a Vercel Preview Deployment. - */ - stega: _stega, -}: { - query: QueryString - params?: QueryParams | Promise - perspective?: Omit - stega?: boolean -}) { - const perspective = _perspective || (await draftMode()).isEnabled ? 'previewDrafts' : 'published' - const stega = _stega || perspective === 'previewDrafts' || process.env.VERCEL_ENV === 'preview' - if (perspective === 'previewDrafts') { - return client.fetch(query, await params, { - stega, - perspective: 'previewDrafts', - // The token is required to fetch draft content - token, - // The `previewDrafts` perspective isn't available on the API CDN - useCdn: false, - // And we can't cache the responses as it would slow down the live preview experience - next: {revalidate: 0}, - }) - } - return client.fetch(query, await params, { - stega, - perspective: 'published', - // The `published` perspective is available on the API CDN - useCdn: true, - // Only enable Stega in production if it's a Vercel Preview Deployment, as the Vercel Toolbar supports Visual Editing - // When using the `published` perspective we use time-based revalidation to match the time-to-live on Sanity's API CDN (60 seconds) - next: {revalidate: 60}, - }) -} diff --git a/packages/@sanity/cli/test/test-template/sanity/lib/queries.ts b/packages/@sanity/cli/test/test-template/sanity/lib/queries.ts deleted file mode 100644 index 34906f5c968..00000000000 --- a/packages/@sanity/cli/test/test-template/sanity/lib/queries.ts +++ /dev/null @@ -1,34 +0,0 @@ -import {defineQuery} from 'next-sanity' - -export const settingsQuery = defineQuery(`*[_type == "settings"][0]`) - -const postFields = /* groq */ ` - _id, - "status": select(_originalId in path("drafts.**") => "draft", "published"), - "title": coalesce(title, "Untitled"), - "slug": slug.current, - excerpt, - coverImage, - "date": coalesce(date, _updatedAt), - "author": author->{"name": coalesce(name, "Anonymous"), picture}, -` - -export const heroQuery = defineQuery(` - *[_type == "post" && defined(slug.current)] | order(date desc, _updatedAt desc) [0] { - content, - ${postFields} - } -`) - -export const moreStoriesQuery = defineQuery(` - *[_type == "post" && _id != $skip && defined(slug.current)] | order(date desc, _updatedAt desc) [0...$limit] { - ${postFields} - } -`) - -export const postQuery = defineQuery(` - *[_type == "post" && slug.current == $slug] [0] { - content, - ${postFields} - } -`) diff --git a/packages/@sanity/cli/test/test-template/sanity/lib/token.ts b/packages/@sanity/cli/test/test-template/sanity/lib/token.ts deleted file mode 100644 index c5aaae62039..00000000000 --- a/packages/@sanity/cli/test/test-template/sanity/lib/token.ts +++ /dev/null @@ -1,7 +0,0 @@ -import 'server-only' - -export const token = process.env.SANITY_API_READ_TOKEN - -if (!token) { - throw new Error('Missing SANITY_API_READ_TOKEN') -} diff --git a/packages/@sanity/cli/test/test-template/sanity/lib/utils.ts b/packages/@sanity/cli/test/test-template/sanity/lib/utils.ts deleted file mode 100644 index c029316eada..00000000000 --- a/packages/@sanity/cli/test/test-template/sanity/lib/utils.ts +++ /dev/null @@ -1,34 +0,0 @@ -import createImageUrlBuilder from '@sanity/image-url' - -import {dataset, projectId} from '@/sanity/lib/api' - -const imageBuilder = createImageUrlBuilder({ - projectId: projectId || '', - dataset: dataset || '', -}) - -export const urlForImage = (source: any) => { - // Ensure that source image contains a valid reference - if (!source?.asset?._ref) { - return undefined - } - - return imageBuilder?.image(source).auto('format').fit('max') -} - -export function resolveOpenGraphImage(image: any, width = 1200, height = 627) { - if (!image) return - const url = urlForImage(image)?.width(1200).height(627).fit('crop').url() - if (!url) return - return {url, alt: image?.alt as string, width, height} -} - -export function resolveHref(documentType?: string, slug?: string): string | undefined { - switch (documentType) { - case 'post': - return slug ? `/posts/${slug}` : undefined - default: - console.warn('Invalid document type:', documentType) - return undefined - } -} diff --git a/packages/@sanity/cli/test/test-template/sanity/plugins/assist.ts b/packages/@sanity/cli/test/test-template/sanity/plugins/assist.ts deleted file mode 100644 index c844ee942b8..00000000000 --- a/packages/@sanity/cli/test/test-template/sanity/plugins/assist.ts +++ /dev/null @@ -1,265 +0,0 @@ -/** - * Sets up the AI Assist plugin with preset prompts for content creation - */ - -import {assist} from '@sanity/assist' - -import postType from '../schemas/documents/post' - -export const assistWithPresets = () => - assist({ - __presets: { - [postType.name]: { - fields: [ - { - /** - * Creates Portable Text `content` blocks from the `title` field - */ - path: 'content', - instructions: [ - { - _key: 'preset-instruction-1', - title: 'Generate sample content', - icon: 'block-content', - prompt: [ - { - _key: '86e70087d4d5', - markDefs: [], - children: [ - { - _type: 'span', - marks: [], - text: 'Given the draft title ', - _key: '6b5d5d6a63cf0', - }, - { - path: 'title', - _type: 'sanity.assist.instruction.fieldRef', - _key: '0132742d463b', - }, - { - _type: 'span', - marks: [], - text: ' of a blog post, generate a comprehensive and engaging sample content that spans the length of one to two A4 pages. The content should be structured, informative, and tailored to the subject matter implied by the title, whether it be travel, software engineering, fashion, politics, or any other theme. The text will be displayed below the ', - _key: 'a02c9ab4eb2d', - }, - { - _type: 'sanity.assist.instruction.fieldRef', - _key: 'f208ef240062', - path: 'title', - }, - { - text: " and doesn't need to repeat it in the text. The generated text should include the following elements:", - _key: '8ecfa74a8487', - _type: 'span', - marks: [], - }, - ], - _type: 'block', - style: 'normal', - }, - { - style: 'normal', - _key: 'e4dded41ea89', - markDefs: [], - children: [ - { - _type: 'span', - marks: [], - text: '1. Introduction: A brief paragraph that captures the essence of the blog post, hooks the reader with intriguing insights, and outlines the purpose of the post.', - _key: 'cc5ef44a2fb5', - }, - ], - _type: 'block', - }, - { - style: 'normal', - _key: '585e8de2fe35', - markDefs: [], - children: [ - { - _type: 'span', - marks: [], - text: '2. Main Body:', - _key: 'fab36eb7c541', - }, - ], - _type: 'block', - }, - { - _type: 'block', - style: 'normal', - _key: 'e96b89ef6357', - markDefs: [], - children: [ - { - _type: 'span', - marks: [], - text: '- For thematic consistency, divide the body into several sections with subheadings that explore different facets of the topic.', - _key: 'b685a310a0ff', - }, - ], - }, - { - children: [ - { - marks: [], - text: '- Include engaging and informative content such as personal anecdotes (for travel or fashion blogs), technical explanations or tutorials (for software engineering blogs), satirical or humorous observations (for shitposting), or well-argued positions (for political blogs).', - _key: 'c7468d106c91', - _type: 'span', - }, - ], - _type: 'block', - style: 'normal', - _key: 'ce4acdb00da9', - markDefs: [], - }, - { - _type: 'block', - style: 'normal', - _key: 'fb4572e65833', - markDefs: [], - children: [ - { - _type: 'span', - marks: [], - text: '- ', - _key: '5358f261dce4', - }, - { - _type: 'span', - marks: [], - text: ' observations (for shitposting), or well-argued positions (for political blogs).', - _key: '50792c6d0f77', - }, - ], - }, - { - children: [ - { - marks: [], - text: 'Where applicable, incorporate bullet points or numbered lists to break down complex information, steps in a process, or key highlights.', - _key: '3b891d8c1dde0', - _type: 'span', - }, - ], - _type: 'block', - style: 'normal', - _key: '9364b67074ce', - markDefs: [], - }, - { - _key: 'a6ba7579cd66', - markDefs: [], - children: [ - { - _type: 'span', - marks: [], - text: '3. Conclusion: Summarize the main points discussed in the post, offer final thoughts or calls to action, and invite readers to engage with the content through comments or social media sharing.', - _key: '1280f11d499d', - }, - ], - _type: 'block', - style: 'normal', - }, - { - style: 'normal', - _key: '719a79eb4c1c', - markDefs: [], - children: [ - { - marks: [], - text: "4. Engagement Prompts: Conclude with questions or prompts that encourage readers to share their experiences, opinions, or questions related to the blog post's topic, but keep in mind there is no Comments field below the blog post.", - _key: 'f1512086bab6', - _type: 'span', - }, - ], - _type: 'block', - }, - { - _type: 'block', - style: 'normal', - _key: '4a1c586fd44a', - markDefs: [], - children: [ - { - marks: [], - text: 'Ensure the generated content maintains a balance between being informative and entertaining, to capture the interest of a wide audience. The sample content should serve as a solid foundation that can be further customized or expanded upon by the blog author to finalize the post.', - _key: '697bbd03cb110', - _type: 'span', - }, - ], - }, - { - children: [ - { - marks: [], - text: 'Don\'t prefix each section with "Introduction", "Main Body", "Conclusion" or "Engagement Prompts"', - _key: 'd20bb9a03b0d', - _type: 'span', - }, - ], - _type: 'block', - style: 'normal', - _key: 'b072b3c62c3c', - markDefs: [], - }, - ], - }, - ], - }, - { - /** - * Summarize content into the `excerpt` field - */ - path: 'excerpt', - instructions: [ - { - _key: 'preset-instruction-2', - title: 'Summarize content', - icon: 'blockquote', - prompt: [ - { - markDefs: [], - children: [ - { - _key: '650a0dcc327d', - _type: 'span', - marks: [], - text: 'Create a short excerpt based on ', - }, - { - path: 'content', - _type: 'sanity.assist.instruction.fieldRef', - _key: 'c62d14c73496', - }, - { - _key: '38e043efa606', - _type: 'span', - marks: [], - text: " that doesn't repeat what's already in the ", - }, - { - path: 'title', - _type: 'sanity.assist.instruction.fieldRef', - _key: '445e62dda246', - }, - { - _key: '98cce773915e', - _type: 'span', - marks: [], - text: ' . Consider the UI has limited horizontal space and try to avoid too many line breaks and make it as short, terse and brief as possible. At best a single sentence, at most two sentences.', - }, - ], - _type: 'block', - style: 'normal', - _key: '392c618784b0', - }, - ], - }, - ], - }, - ], - }, - }, - }) diff --git a/packages/@sanity/cli/test/test-template/sanity/plugins/settings.tsx b/packages/@sanity/cli/test/test-template/sanity/plugins/settings.tsx deleted file mode 100644 index d5c3d717a46..00000000000 --- a/packages/@sanity/cli/test/test-template/sanity/plugins/settings.tsx +++ /dev/null @@ -1,55 +0,0 @@ -/** - * This plugin contains all the logic for setting up the singletons - */ - -import {definePlugin, type DocumentDefinition} from 'sanity' -import {type StructureResolver} from 'sanity/structure' - -export const singletonPlugin = definePlugin((types: string[]) => { - return { - name: 'singletonPlugin', - document: { - // Hide 'Singletons (such as Settings)' from new document options - // https://user-images.githubusercontent.com/81981/195728798-e0c6cf7e-d442-4e58-af3a-8cd99d7fcc28.png - newDocumentOptions: (prev, {creationContext, ...rest}) => { - if (creationContext.type === 'global') { - return prev.filter((templateItem) => !types.includes(templateItem.templateId)) - } - - return prev - }, - // Removes the "duplicate" action on the Singletons (such as Home) - actions: (prev, {schemaType}) => { - if (types.includes(schemaType)) { - return prev.filter(({action}) => action !== 'duplicate') - } - - return prev - }, - }, - } -}) - -// The StructureResolver is how we're changing the DeskTool structure to linking to document (named Singleton) -// like how "Home" is handled. -export const pageStructure = (typeDefArray: DocumentDefinition[]): StructureResolver => { - return (S) => { - // Goes through all of the singletons that were provided and translates them into something the - // Structure tool can understand - const singletonItems = typeDefArray.map((typeDef) => { - return S.listItem() - .title(typeDef.title!) - .icon(typeDef.icon) - .child(S.editor().id(typeDef.name).schemaType(typeDef.name).documentId(typeDef.name)) - }) - - // The default root list items (except custom ones) - const defaultListItems = S.documentTypeListItems().filter( - (listItem) => !typeDefArray.find((singleton) => singleton.name === listItem.getId()) - ) - - return S.list() - .title('Content') - .items([...singletonItems, S.divider(), ...defaultListItems]) - } -} diff --git a/packages/@sanity/cli/test/test-template/sanity/schemas/documents/author.ts b/packages/@sanity/cli/test/test-template/sanity/schemas/documents/author.ts deleted file mode 100644 index 3b1d0a3a59b..00000000000 --- a/packages/@sanity/cli/test/test-template/sanity/schemas/documents/author.ts +++ /dev/null @@ -1,45 +0,0 @@ -import {UserIcon} from '@sanity/icons' -import {defineField, defineType} from 'sanity' - -export default defineType({ - name: 'author', - title: 'Author', - icon: UserIcon, - type: 'document', - fields: [ - defineField({ - name: 'name', - title: 'Name', - type: 'string', - validation: (rule) => rule.required(), - }), - defineField({ - name: 'picture', - title: 'Picture', - type: 'image', - fields: [ - { - name: 'alt', - type: 'string', - title: 'Alternative text', - description: 'Important for SEO and accessiblity.', - validation: (rule) => { - return rule.custom((alt, context) => { - if ((context.document?.picture as any)?.asset?._ref && !alt) { - return 'Required' - } - return true - }) - }, - }, - ], - options: { - hotspot: true, - aiAssist: { - imageDescriptionField: 'alt', - }, - }, - validation: (rule) => rule.required(), - }), - ], -}) diff --git a/packages/@sanity/cli/test/test-template/sanity/schemas/documents/post.ts b/packages/@sanity/cli/test/test-template/sanity/schemas/documents/post.ts deleted file mode 100644 index 74e6cb068c8..00000000000 --- a/packages/@sanity/cli/test/test-template/sanity/schemas/documents/post.ts +++ /dev/null @@ -1,111 +0,0 @@ -import {DocumentTextIcon} from '@sanity/icons' -import {format, parseISO} from 'date-fns' -import {defineField, defineType} from 'sanity' - -import authorType from './author' - -/** - * This file is the schema definition for a post. - * - * Here you'll be able to edit the different fields that appear when you - * create or edit a post in the studio. - * - * Here you can see the different schema types that are available: - - https://www.sanity.io/docs/schema-types - - */ - -export default defineType({ - name: 'post', - title: 'Post', - icon: DocumentTextIcon, - type: 'document', - fields: [ - defineField({ - name: 'title', - title: 'Title', - type: 'string', - validation: (rule) => rule.required(), - }), - defineField({ - name: 'slug', - title: 'Slug', - type: 'slug', - description: 'A slug is required for the post to show up in the preview', - options: { - source: 'title', - maxLength: 96, - isUnique: (value, context) => context.defaultIsUnique(value, context), - }, - validation: (rule) => rule.required(), - }), - defineField({ - name: 'content', - title: 'Content', - type: 'array', - of: [{type: 'block'}], - }), - defineField({ - name: 'excerpt', - title: 'Excerpt', - type: 'text', - }), - defineField({ - name: 'coverImage', - title: 'Cover Image', - type: 'image', - options: { - hotspot: true, - aiAssist: { - imageDescriptionField: 'alt', - }, - }, - fields: [ - { - name: 'alt', - type: 'string', - title: 'Alternative text', - description: 'Important for SEO and accessiblity.', - validation: (rule) => { - return rule.custom((alt, context) => { - if ((context.document?.coverImage as any)?.asset?._ref && !alt) { - return 'Required' - } - return true - }) - }, - }, - ], - validation: (rule) => rule.required(), - }), - defineField({ - name: 'date', - title: 'Date', - type: 'datetime', - initialValue: () => new Date().toISOString(), - }), - defineField({ - name: 'author', - title: 'Author', - type: 'reference', - to: [{type: authorType.name}], - }), - ], - preview: { - select: { - title: 'title', - author: 'author.name', - date: 'date', - media: 'coverImage', - }, - prepare({title, media, author, date}) { - const subtitles = [ - author && `by ${author}`, - date && `on ${format(parseISO(date), 'LLL d, yyyy')}`, - ].filter(Boolean) - - return {title, media, subtitle: subtitles.join(' ')} - }, - }, -}) diff --git a/packages/@sanity/cli/test/test-template/sanity/schemas/singletons/settings.tsx b/packages/@sanity/cli/test/test-template/sanity/schemas/singletons/settings.tsx deleted file mode 100644 index b3613560d6c..00000000000 --- a/packages/@sanity/cli/test/test-template/sanity/schemas/singletons/settings.tsx +++ /dev/null @@ -1,127 +0,0 @@ -import {CogIcon} from '@sanity/icons' -import {defineArrayMember, defineField, defineType} from 'sanity' - -import * as demo from '@/sanity/lib/demo' - -export default defineType({ - name: 'settings', - title: 'Settings', - type: 'document', - icon: CogIcon, - fields: [ - defineField({ - name: 'title', - description: 'This field is the title of your blog.', - title: 'Title', - type: 'string', - initialValue: demo.title, - validation: (rule) => rule.required(), - }), - defineField({ - name: 'description', - description: 'Used both for the description tag for SEO, and the blog subheader.', - title: 'Description', - type: 'array', - initialValue: demo.description, - of: [ - defineArrayMember({ - type: 'block', - options: {}, - styles: [], - lists: [], - marks: { - decorators: [], - annotations: [ - defineField({ - type: 'object', - name: 'link', - fields: [ - { - type: 'string', - name: 'href', - title: 'URL', - validation: (rule) => rule.required(), - }, - ], - }), - ], - }, - }), - ], - }), - defineField({ - name: 'footer', - description: 'This is a block of text that will be displayed at the bottom of the page.', - title: 'Footer Info', - type: 'array', - of: [ - defineArrayMember({ - type: 'block', - marks: { - annotations: [ - { - name: 'link', - type: 'object', - title: 'Link', - fields: [ - { - name: 'href', - type: 'url', - title: 'Url', - }, - ], - }, - ], - }, - }), - ], - }), - defineField({ - name: 'ogImage', - title: 'Open Graph Image', - type: 'image', - description: 'Displayed on social cards and search engine results.', - options: { - hotspot: true, - aiAssist: { - imageDescriptionField: 'alt', - }, - }, - fields: [ - defineField({ - name: 'alt', - description: 'Important for accessibility and SEO.', - title: 'Alternative text', - type: 'string', - validation: (rule) => { - return rule.custom((alt, context) => { - if ((context.document?.ogImage as any)?.asset?._ref && !alt) { - return 'Required' - } - return true - }) - }, - }), - defineField({ - name: 'metadataBase', - type: 'url', - description: ( - - More information - - ), - }), - ], - }), - ], - preview: { - prepare() { - return { - title: 'Settings', - } - }, - }, -}) diff --git a/packages/@sanity/cli/test/test-template/schema.json b/packages/@sanity/cli/test/test-template/schema.json deleted file mode 100644 index 7db0c69906a..00000000000 --- a/packages/@sanity/cli/test/test-template/schema.json +++ /dev/null @@ -1,2329 +0,0 @@ -[ - { - "name": "sanity.imagePaletteSwatch", - "type": "type", - "value": { - "type": "object", - "attributes": { - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "sanity.imagePaletteSwatch" - } - }, - "background": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "foreground": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "population": { - "type": "objectAttribute", - "value": { - "type": "number" - }, - "optional": true - }, - "title": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - } - } - } - }, - { - "name": "sanity.imagePalette", - "type": "type", - "value": { - "type": "object", - "attributes": { - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "sanity.imagePalette" - } - }, - "darkMuted": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "sanity.imagePaletteSwatch" - }, - "optional": true - }, - "lightVibrant": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "sanity.imagePaletteSwatch" - }, - "optional": true - }, - "darkVibrant": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "sanity.imagePaletteSwatch" - }, - "optional": true - }, - "vibrant": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "sanity.imagePaletteSwatch" - }, - "optional": true - }, - "dominant": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "sanity.imagePaletteSwatch" - }, - "optional": true - }, - "lightMuted": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "sanity.imagePaletteSwatch" - }, - "optional": true - }, - "muted": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "sanity.imagePaletteSwatch" - }, - "optional": true - } - } - } - }, - { - "name": "sanity.imageDimensions", - "type": "type", - "value": { - "type": "object", - "attributes": { - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "sanity.imageDimensions" - } - }, - "height": { - "type": "objectAttribute", - "value": { - "type": "number" - }, - "optional": true - }, - "width": { - "type": "objectAttribute", - "value": { - "type": "number" - }, - "optional": true - }, - "aspectRatio": { - "type": "objectAttribute", - "value": { - "type": "number" - }, - "optional": true - } - } - } - }, - { - "name": "sanity.fileAsset", - "type": "document", - "attributes": { - "_id": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "sanity.fileAsset" - } - }, - "_createdAt": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_updatedAt": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_rev": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "originalFilename": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "label": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "title": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "description": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "altText": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "sha1hash": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "extension": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "mimeType": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "size": { - "type": "objectAttribute", - "value": { - "type": "number" - }, - "optional": true - }, - "assetId": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "uploadId": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "path": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "url": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "source": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "sanity.assetSourceData" - }, - "optional": true - } - } - }, - { - "name": "geopoint", - "type": "type", - "value": { - "type": "object", - "attributes": { - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "geopoint" - } - }, - "lat": { - "type": "objectAttribute", - "value": { - "type": "number" - }, - "optional": true - }, - "lng": { - "type": "objectAttribute", - "value": { - "type": "number" - }, - "optional": true - }, - "alt": { - "type": "objectAttribute", - "value": { - "type": "number" - }, - "optional": true - } - } - } - }, - { - "name": "post", - "type": "document", - "attributes": { - "_id": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "post" - } - }, - "_createdAt": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_updatedAt": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_rev": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "title": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "slug": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "slug" - }, - "optional": true - }, - "content": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "object", - "attributes": { - "children": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "object", - "attributes": { - "marks": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "string" - } - }, - "optional": true - }, - "text": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "span" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - } - }, - "optional": true - }, - "style": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { - "type": "string", - "value": "normal" - }, - { - "type": "string", - "value": "h1" - }, - { - "type": "string", - "value": "h2" - }, - { - "type": "string", - "value": "h3" - }, - { - "type": "string", - "value": "h4" - }, - { - "type": "string", - "value": "h5" - }, - { - "type": "string", - "value": "h6" - }, - { - "type": "string", - "value": "blockquote" - } - ] - }, - "optional": true - }, - "listItem": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { - "type": "string", - "value": "bullet" - }, - { - "type": "string", - "value": "number" - } - ] - }, - "optional": true - }, - "markDefs": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "object", - "attributes": { - "href": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "link" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - } - }, - "optional": true - }, - "level": { - "type": "objectAttribute", - "value": { - "type": "number" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "block" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - } - }, - "optional": true - }, - "excerpt": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "coverImage": { - "type": "objectAttribute", - "value": { - "type": "object", - "attributes": { - "asset": { - "type": "objectAttribute", - "value": { - "type": "object", - "attributes": { - "_ref": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "reference" - } - }, - "_weak": { - "type": "objectAttribute", - "value": { - "type": "boolean" - }, - "optional": true - } - }, - "dereferencesTo": "sanity.imageAsset" - }, - "optional": true - }, - "hotspot": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "sanity.imageHotspot" - }, - "optional": true - }, - "crop": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "sanity.imageCrop" - }, - "optional": true - }, - "alt": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "image" - } - } - } - }, - "optional": true - }, - "date": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "author": { - "type": "objectAttribute", - "value": { - "type": "object", - "attributes": { - "_ref": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "reference" - } - }, - "_weak": { - "type": "objectAttribute", - "value": { - "type": "boolean" - }, - "optional": true - } - }, - "dereferencesTo": "author" - }, - "optional": true - } - } - }, - { - "name": "author", - "type": "document", - "attributes": { - "_id": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "author" - } - }, - "_createdAt": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_updatedAt": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_rev": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "name": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "picture": { - "type": "objectAttribute", - "value": { - "type": "object", - "attributes": { - "asset": { - "type": "objectAttribute", - "value": { - "type": "object", - "attributes": { - "_ref": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "reference" - } - }, - "_weak": { - "type": "objectAttribute", - "value": { - "type": "boolean" - }, - "optional": true - } - }, - "dereferencesTo": "sanity.imageAsset" - }, - "optional": true - }, - "hotspot": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "sanity.imageHotspot" - }, - "optional": true - }, - "crop": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "sanity.imageCrop" - }, - "optional": true - }, - "alt": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "image" - } - } - } - }, - "optional": true - } - } - }, - { - "name": "slug", - "type": "type", - "value": { - "type": "object", - "attributes": { - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "slug" - } - }, - "current": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "source": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - } - } - } - }, - { - "name": "settings", - "type": "document", - "attributes": { - "_id": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "settings" - } - }, - "_createdAt": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_updatedAt": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_rev": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "title": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "description": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "object", - "attributes": { - "children": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "object", - "attributes": { - "marks": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "string" - } - }, - "optional": true - }, - "text": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "span" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - } - }, - "optional": true - }, - "style": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { - "type": "string", - "value": "normal" - } - ] - }, - "optional": true - }, - "listItem": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [] - }, - "optional": true - }, - "markDefs": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "object", - "attributes": { - "href": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "link" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - } - }, - "optional": true - }, - "level": { - "type": "objectAttribute", - "value": { - "type": "number" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "block" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - } - }, - "optional": true - }, - "footer": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "object", - "attributes": { - "children": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "object", - "attributes": { - "marks": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "string" - } - }, - "optional": true - }, - "text": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "span" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - } - }, - "optional": true - }, - "style": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { - "type": "string", - "value": "normal" - }, - { - "type": "string", - "value": "h1" - }, - { - "type": "string", - "value": "h2" - }, - { - "type": "string", - "value": "h3" - }, - { - "type": "string", - "value": "h4" - }, - { - "type": "string", - "value": "h5" - }, - { - "type": "string", - "value": "h6" - }, - { - "type": "string", - "value": "blockquote" - } - ] - }, - "optional": true - }, - "listItem": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { - "type": "string", - "value": "bullet" - }, - { - "type": "string", - "value": "number" - } - ] - }, - "optional": true - }, - "markDefs": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "object", - "attributes": { - "href": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "link" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - } - }, - "optional": true - }, - "level": { - "type": "objectAttribute", - "value": { - "type": "number" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "block" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - } - }, - "optional": true - }, - "ogImage": { - "type": "objectAttribute", - "value": { - "type": "object", - "attributes": { - "asset": { - "type": "objectAttribute", - "value": { - "type": "object", - "attributes": { - "_ref": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "reference" - } - }, - "_weak": { - "type": "objectAttribute", - "value": { - "type": "boolean" - }, - "optional": true - } - }, - "dereferencesTo": "sanity.imageAsset" - }, - "optional": true - }, - "hotspot": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "sanity.imageHotspot" - }, - "optional": true - }, - "crop": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "sanity.imageCrop" - }, - "optional": true - }, - "alt": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "metadataBase": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "image" - } - } - } - }, - "optional": true - } - } - }, - { - "name": "sanity.imageCrop", - "type": "type", - "value": { - "type": "object", - "attributes": { - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "sanity.imageCrop" - } - }, - "top": { - "type": "objectAttribute", - "value": { - "type": "number" - }, - "optional": true - }, - "bottom": { - "type": "objectAttribute", - "value": { - "type": "number" - }, - "optional": true - }, - "left": { - "type": "objectAttribute", - "value": { - "type": "number" - }, - "optional": true - }, - "right": { - "type": "objectAttribute", - "value": { - "type": "number" - }, - "optional": true - } - } - } - }, - { - "name": "sanity.imageHotspot", - "type": "type", - "value": { - "type": "object", - "attributes": { - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "sanity.imageHotspot" - } - }, - "x": { - "type": "objectAttribute", - "value": { - "type": "number" - }, - "optional": true - }, - "y": { - "type": "objectAttribute", - "value": { - "type": "number" - }, - "optional": true - }, - "height": { - "type": "objectAttribute", - "value": { - "type": "number" - }, - "optional": true - }, - "width": { - "type": "objectAttribute", - "value": { - "type": "number" - }, - "optional": true - } - } - } - }, - { - "name": "sanity.imageAsset", - "type": "document", - "attributes": { - "_id": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "sanity.imageAsset" - } - }, - "_createdAt": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_updatedAt": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_rev": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "originalFilename": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "label": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "title": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "description": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "altText": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "sha1hash": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "extension": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "mimeType": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "size": { - "type": "objectAttribute", - "value": { - "type": "number" - }, - "optional": true - }, - "assetId": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "uploadId": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "path": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "url": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "metadata": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "sanity.imageMetadata" - }, - "optional": true - }, - "source": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "sanity.assetSourceData" - }, - "optional": true - } - } - }, - { - "name": "sanity.assetSourceData", - "type": "type", - "value": { - "type": "object", - "attributes": { - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "sanity.assetSourceData" - } - }, - "name": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "id": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "url": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - } - } - } - }, - { - "name": "sanity.imageMetadata", - "type": "type", - "value": { - "type": "object", - "attributes": { - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "sanity.imageMetadata" - } - }, - "location": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "geopoint" - }, - "optional": true - }, - "dimensions": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "sanity.imageDimensions" - }, - "optional": true - }, - "palette": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "sanity.imagePalette" - }, - "optional": true - }, - "lqip": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "blurHash": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "hasAlpha": { - "type": "objectAttribute", - "value": { - "type": "boolean" - }, - "optional": true - }, - "isOpaque": { - "type": "objectAttribute", - "value": { - "type": "boolean" - }, - "optional": true - } - } - } - }, - { - "name": "sanity.assist.instructionTask", - "type": "type", - "value": { - "type": "object", - "attributes": { - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "sanity.assist.instructionTask" - } - }, - "path": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "instructionKey": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "started": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "updated": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "info": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - } - } - } - }, - { - "name": "sanity.assist.task.status", - "type": "type", - "value": { - "type": "object", - "attributes": { - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "sanity.assist.task.status" - } - }, - "tasks": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - }, - "rest": { - "type": "inline", - "name": "sanity.assist.instructionTask" - } - } - }, - "optional": true - } - } - } - }, - { - "name": "sanity.assist.schemaType.annotations", - "type": "type", - "value": { - "type": "object", - "attributes": { - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "sanity.assist.schemaType.annotations" - } - }, - "title": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "fields": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - }, - "rest": { - "type": "inline", - "name": "sanity.assist.schemaType.field" - } - } - }, - "optional": true - } - } - } - }, - { - "name": "sanity.assist.output.type", - "type": "type", - "value": { - "type": "object", - "attributes": { - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "sanity.assist.output.type" - } - }, - "type": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - } - } - } - }, - { - "name": "sanity.assist.output.field", - "type": "type", - "value": { - "type": "object", - "attributes": { - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "sanity.assist.output.field" - } - }, - "path": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - } - } - } - }, - { - "name": "sanity.assist.instruction.context", - "type": "type", - "value": { - "type": "object", - "attributes": { - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "sanity.assist.instruction.context" - } - }, - "reference": { - "type": "objectAttribute", - "value": { - "type": "object", - "attributes": { - "_ref": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "reference" - } - }, - "_weak": { - "type": "objectAttribute", - "value": { - "type": "boolean" - }, - "optional": true - } - }, - "dereferencesTo": "assist.instruction.context" - }, - "optional": true - } - } - } - }, - { - "name": "assist.instruction.context", - "type": "document", - "attributes": { - "_id": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "assist.instruction.context" - } - }, - "_createdAt": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_updatedAt": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_rev": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "title": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "context": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "object", - "attributes": { - "children": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "object", - "attributes": { - "marks": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "string" - } - }, - "optional": true - }, - "text": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "span" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - } - }, - "optional": true - }, - "style": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { - "type": "string", - "value": "normal" - } - ] - }, - "optional": true - }, - "listItem": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [] - }, - "optional": true - }, - "markDefs": { - "type": "objectAttribute", - "value": { - "type": "null" - }, - "optional": true - }, - "level": { - "type": "objectAttribute", - "value": { - "type": "number" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "block" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - } - }, - "optional": true - } - } - }, - { - "name": "sanity.assist.instruction.userInput", - "type": "type", - "value": { - "type": "object", - "attributes": { - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "sanity.assist.instruction.userInput" - } - }, - "message": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "description": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - } - } - } - }, - { - "name": "sanity.assist.instruction.prompt", - "type": "type", - "value": { - "type": "array", - "of": { - "type": "object", - "attributes": { - "children": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "union", - "of": [ - { - "type": "object", - "attributes": { - "marks": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "string" - } - }, - "optional": true - }, - "text": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "span" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - }, - { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - }, - "rest": { - "type": "inline", - "name": "sanity.assist.instruction.fieldRef" - } - }, - { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - }, - "rest": { - "type": "inline", - "name": "sanity.assist.instruction.context" - } - }, - { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - }, - "rest": { - "type": "inline", - "name": "sanity.assist.instruction.userInput" - } - } - ] - } - }, - "optional": true - }, - "style": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { - "type": "string", - "value": "normal" - } - ] - }, - "optional": true - }, - "listItem": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [] - }, - "optional": true - }, - "markDefs": { - "type": "objectAttribute", - "value": { - "type": "null" - }, - "optional": true - }, - "level": { - "type": "objectAttribute", - "value": { - "type": "number" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "block" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - } - } - }, - { - "name": "sanity.assist.instruction.fieldRef", - "type": "type", - "value": { - "type": "object", - "attributes": { - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "sanity.assist.instruction.fieldRef" - } - }, - "path": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - } - } - } - }, - { - "name": "sanity.assist.instruction", - "type": "type", - "value": { - "type": "object", - "attributes": { - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "sanity.assist.instruction" - } - }, - "prompt": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "sanity.assist.instruction.prompt" - }, - "optional": true - }, - "icon": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "title": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "userId": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "createdById": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "output": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "union", - "of": [ - { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - }, - "rest": { - "type": "inline", - "name": "sanity.assist.output.field" - } - }, - { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - }, - "rest": { - "type": "inline", - "name": "sanity.assist.output.type" - } - } - ] - } - }, - "optional": true - } - } - } - }, - { - "name": "sanity.assist.schemaType.field", - "type": "type", - "value": { - "type": "object", - "attributes": { - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "sanity.assist.schemaType.field" - } - }, - "path": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "instructions": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - }, - "rest": { - "type": "inline", - "name": "sanity.assist.instruction" - } - } - }, - "optional": true - } - } - } - } -] diff --git a/packages/@sanity/cli/test/test-template/tailwind.config.ts b/packages/@sanity/cli/test/test-template/tailwind.config.ts deleted file mode 100644 index 48364a13764..00000000000 --- a/packages/@sanity/cli/test/test-template/tailwind.config.ts +++ /dev/null @@ -1,17 +0,0 @@ -import type {Config} from 'tailwindcss' -import typography from '@tailwindcss/typography' - -export default { - content: ['./app/**/*.{ts,tsx}', './sanity/**/*.{ts,tsx}'], - theme: { - extend: { - fontFamily: { - sans: ['var(--font-inter)'], - }, - }, - }, - future: { - hoverOnlyWhenSupported: true, - }, - plugins: [typography], -} satisfies Config diff --git a/packages/@sanity/cli/test/test-template/tsconfig.json b/packages/@sanity/cli/test/test-template/tsconfig.json deleted file mode 100644 index 2d9e949e103..00000000000 --- a/packages/@sanity/cli/test/test-template/tsconfig.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "compilerOptions": { - "target": "esnext", - "lib": ["dom", "dom.iterable", "esnext"], - "allowJs": true, - "skipLibCheck": true, - "strict": true, - "forceConsistentCasingInFileNames": true, - "noEmit": true, - "module": "preserve", - "isolatedModules": true, - "jsx": "preserve", - "incremental": true, - "plugins": [ - { - "name": "next" - } - ], - "paths": { - "@/*": ["./*"] - } - }, - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], - "exclude": ["node_modules"] -} diff --git a/packages/@sanity/vision/package.json b/packages/@sanity/vision/package.json index 19dc66454c2..4fef06ce8c3 100644 --- a/packages/@sanity/vision/package.json +++ b/packages/@sanity/vision/package.json @@ -63,7 +63,7 @@ "@rexxars/react-split-pane": "^1.0.0", "@sanity/color": "^3.0.0", "@sanity/icons": "^3.5.7", - "@sanity/ui": "^2.11.1", + "@sanity/ui": "^2.11.2", "@uiw/react-codemirror": "^4.11.4", "is-hotkey-esm": "^1.0.0", "json-2-csv": "^5.5.1", @@ -85,7 +85,7 @@ "@sanity/types": "workspace:*", "@sanity/util": "workspace:*", "@types/lodash": "^4.17.7", - "babel-plugin-react-compiler": "19.0.0-beta-63e3235-20250105", + "babel-plugin-react-compiler": "19.0.0-beta-e552027-20250112", "react": "^18.3.1", "sanity": "workspace:*", "styled-components": "^6.1.14" diff --git a/packages/sanity/package.json b/packages/sanity/package.json index 079368edf2d..3dfa7782e29 100644 --- a/packages/sanity/package.json +++ b/packages/sanity/package.json @@ -153,7 +153,7 @@ "@dnd-kit/sortable": "^7.0.1", "@dnd-kit/utilities": "^3.2.0", "@juggle/resize-observer": "^3.3.1", - "@portabletext/editor": "^1.21.0", + "@portabletext/editor": "^1.21.1", "@portabletext/react": "^3.0.0", "@rexxars/react-json-inspector": "^9.0.1", "@sanity/asset-utils": "^2.0.6", @@ -173,11 +173,11 @@ "@sanity/logos": "^2.1.4", "@sanity/migrate": "3.69.0", "@sanity/mutator": "3.69.0", - "@sanity/presentation": "1.20.3", + "@sanity/presentation": "1.21.1", "@sanity/schema": "3.69.0", "@sanity/telemetry": "^0.7.7", "@sanity/types": "3.69.0", - "@sanity/ui": "^2.11.1", + "@sanity/ui": "^2.11.2", "@sanity/util": "3.69.0", "@sanity/uuid": "^3.0.1", "@sentry/react": "^8.33.0", @@ -243,7 +243,7 @@ "react-i18next": "14.0.2", "react-is": "^18.2.0", "react-refractor": "^2.1.6", - "react-rx": "^4.1.12", + "react-rx": "^4.1.14", "read-pkg-up": "^7.0.1", "refractor": "^3.6.0", "resolve-from": "^5.0.0", @@ -296,7 +296,7 @@ "@types/tar-fs": "^2.0.1", "@vitejs/plugin-react": "^4.3.4", "@vvo/tzdb": "6.137.0", - "babel-plugin-react-compiler": "19.0.0-beta-63e3235-20250105", + "babel-plugin-react-compiler": "19.0.0-beta-e552027-20250112", "blob-polyfill": "^9.0.20240710", "date-fns-tz": "2.0.1", "react": "^18.3.1", diff --git a/packages/sanity/src/core/config/configPropertyReducers.ts b/packages/sanity/src/core/config/configPropertyReducers.ts index ce9c2d888cf..1fcc613e510 100644 --- a/packages/sanity/src/core/config/configPropertyReducers.ts +++ b/packages/sanity/src/core/config/configPropertyReducers.ts @@ -364,6 +364,29 @@ export const internalTasksReducer = (opts: { return result } +export const serverDocumentActionsReducer = (opts: { + config: PluginOptions + initialValue: boolean | undefined +}): boolean | undefined => { + const {config, initialValue} = opts + const flattenedConfig = flattenConfig(config, []) + + const result = flattenedConfig.reduce((acc: boolean | undefined, {config: innerConfig}) => { + const enabled = innerConfig.__internal_serverDocumentActions?.enabled + + if (typeof enabled === 'undefined') return acc + if (typeof enabled === 'boolean') return enabled + + throw new Error( + `Expected \`__internal_serverDocumentActions\` to be a boolean, but received ${getPrintableType( + enabled, + )}`, + ) + }, initialValue) + + return result +} + export const partialIndexingEnabledReducer = (opts: { config: PluginOptions initialValue: boolean diff --git a/packages/sanity/src/core/config/prepareConfig.tsx b/packages/sanity/src/core/config/prepareConfig.tsx index a85c9d74cc5..f9b7c4966c2 100644 --- a/packages/sanity/src/core/config/prepareConfig.tsx +++ b/packages/sanity/src/core/config/prepareConfig.tsx @@ -39,6 +39,7 @@ import { resolveProductionUrlReducer, schemaTemplatesReducer, searchStrategyReducer, + serverDocumentActionsReducer, startInCreateEnabledReducer, toolsReducer, } from './configPropertyReducers' @@ -209,8 +210,6 @@ export function prepareConfig( __internal: { sources: resolvedSources, }, - // eslint-disable-next-line camelcase - __internal_serverDocumentActions: rawWorkspace.__internal_serverDocumentActions, ...defaultPluginsOptions, } preparedWorkspaces.set(rawWorkspace, workspaceSummary) @@ -655,6 +654,10 @@ function resolveSource({ fallbackStudioOrigin: createFallbackOriginReducer(config), }, }, + // eslint-disable-next-line camelcase + __internal_serverDocumentActions: { + enabled: serverDocumentActionsReducer({config, initialValue: undefined}), + }, announcements: { enabled: announcementsEnabledReducer({config, initialValue: true}), diff --git a/packages/sanity/src/core/config/types.ts b/packages/sanity/src/core/config/types.ts index f41df2bdfd8..656de9a7c94 100644 --- a/packages/sanity/src/core/config/types.ts +++ b/packages/sanity/src/core/config/types.ts @@ -407,6 +407,9 @@ export interface PluginOptions { enableLegacySearch?: boolean } + /** @internal */ + __internal_serverDocumentActions?: WorkspaceOptions['__internal_serverDocumentActions'] + /** Configuration for studio beta features. * @internal */ @@ -862,7 +865,6 @@ export interface WorkspaceSummary extends DefaultPluginsWorkspaceOptions { source: Observable }> } - __internal_serverDocumentActions: WorkspaceOptions['__internal_serverDocumentActions'] } /** diff --git a/packages/sanity/src/core/form/components/EditPortal.tsx b/packages/sanity/src/core/form/components/EditPortal.tsx index 621afa306f0..608b76ebee3 100644 --- a/packages/sanity/src/core/form/components/EditPortal.tsx +++ b/packages/sanity/src/core/form/components/EditPortal.tsx @@ -8,16 +8,23 @@ import {VirtualizerScrollInstanceProvider} from '../inputs/arrays/ArrayOfObjects const PRESENCE_MARGINS: [number, number, number, number] = [0, 0, 1, 0] -interface Props { - type: 'popover' | 'dialog' - width: ResponsiveWidthProps['width'] +interface SharedProps { + children?: ReactNode header: string + width: ResponsiveWidthProps['width'] +} +interface DialogProps extends SharedProps { + type: 'dialog' id?: string - onClose: () => void - children?: ReactNode + autofocus?: boolean + onClose?: () => void +} + +interface PopoverProps extends SharedProps { + type: 'popover' // eslint-disable-next-line camelcase legacy_referenceElement: HTMLElement | null - autofocus?: boolean + onClose: () => void } function onDragEnter(event: DragEvent) { @@ -28,17 +35,13 @@ function onDrop(event: DragEvent) { return event.stopPropagation() } -export function EditPortal(props: Props): React.JSX.Element { - const { - children, - header, - id, - legacy_referenceElement: referenceElement, - onClose, - type, - width, - autofocus, - } = props +/** + * @internal + * Creates a dialog or a popover for editing content. + * Handles presence and virtual scrolling. + */ +export function EditPortal(props: PopoverProps | DialogProps): React.JSX.Element { + const {children, header, onClose, type, width} = props const [documentScrollElement, setDocumentScrollElement] = useState(null) const containerElement = useRef(null) @@ -55,11 +58,11 @@ export function EditPortal(props: Props): React.JSX.Element { containerElement={containerElement} > diff --git a/packages/sanity/src/core/form/components/index.ts b/packages/sanity/src/core/form/components/index.ts index 1232b537f5f..505b839b942 100644 --- a/packages/sanity/src/core/form/components/index.ts +++ b/packages/sanity/src/core/form/components/index.ts @@ -1,2 +1,3 @@ +export * from './EditPortal' export * from './formField' export * from './FormInput' diff --git a/perf/efps/package.json b/perf/efps/package.json index cd00beaf2ef..7d2c43ce999 100644 --- a/perf/efps/package.json +++ b/perf/efps/package.json @@ -23,7 +23,7 @@ "@types/serve-handler": "^6.1.4", "@types/yargs": "^17.0.7", "@vitejs/plugin-react": "^4.3.4", - "babel-plugin-react-compiler": "19.0.0-beta-63e3235-20250105", + "babel-plugin-react-compiler": "19.0.0-beta-e552027-20250112", "chalk": "^4.1.2", "cli-table3": "^0.6.5", "dotenv": "^16.0.3", diff --git a/perf/studio/package.json b/perf/studio/package.json index 870c6233a52..28425ae607f 100644 --- a/perf/studio/package.json +++ b/perf/studio/package.json @@ -14,7 +14,7 @@ "start": "sanity start --port 3300" }, "dependencies": { - "babel-plugin-react-compiler": "19.0.0-beta-63e3235-20250105", + "babel-plugin-react-compiler": "19.0.0-beta-e552027-20250112", "react": "^19.0.0", "react-dom": "^19.0.0", "sanity": "workspace:*", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 51a27af2272..b822f912ec7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,7 +6,7 @@ settings: overrides: '@npmcli/arborist': ^7.5.4 - '@sanity/ui@2': ^2.11.1 + '@sanity/ui@2': ^2.11.2 '@typescript-eslint/eslint-plugin': ^7.18.0 '@typescript-eslint/parser': ^7.18.0 @@ -50,7 +50,7 @@ importers: version: 0.11.1(debug@4.4.0) '@sanity/pkg-utils': specifier: 6.13.4 - version: 6.13.4(@types/babel__core@7.20.5)(@types/node@22.10.2)(babel-plugin-react-compiler@19.0.0-beta-63e3235-20250105)(typescript@5.7.3) + version: 6.13.4(@types/babel__core@7.20.5)(@types/node@22.10.2)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(typescript@5.7.3) '@sanity/prettier-config': specifier: ^1.0.3 version: 1.0.3(prettier@3.4.2) @@ -59,10 +59,10 @@ importers: version: 0.0.1-alpha.1 '@sanity/tsdoc': specifier: 1.0.169 - version: 1.0.169(@emotion/is-prop-valid@1.3.1)(@types/babel__core@7.20.5)(@types/node@22.10.2)(babel-plugin-react-compiler@19.0.0-beta-63e3235-20250105)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(sanity@packages+sanity)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(terser@5.37.0)(yaml@2.6.1) + version: 1.0.169(@emotion/is-prop-valid@1.3.1)(@types/babel__core@7.20.5)(@types/node@22.10.2)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(sanity@packages+sanity)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(terser@5.37.0)(yaml@2.6.1) '@sanity/ui': - specifier: ^2.11.1 - version: 2.11.1(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) + specifier: ^2.11.2 + version: 2.11.2(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) '@sanity/uuid': specifier: ^3.0.2 version: 3.0.2 @@ -142,8 +142,8 @@ importers: specifier: ^7.36.1 version: 7.37.2(eslint@8.57.1) eslint-plugin-react-compiler: - specifier: 19.0.0-beta-63e3235-20250105 - version: 19.0.0-beta-63e3235-20250105(eslint@8.57.1) + specifier: 19.0.0-beta-e552027-20250112 + version: 19.0.0-beta-e552027-20250112(eslint@8.57.1) eslint-plugin-react-hooks: specifier: ^4.6.2 version: 4.6.2(eslint@8.57.1) @@ -237,8 +237,8 @@ importers: specifier: ^3.5.7 version: 3.5.7(react@18.3.1) '@sanity/ui': - specifier: ^2.11.1 - version: 2.11.1(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react-is@19.0.0-rc.1)(react@18.3.1)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + specifier: ^2.11.2 + version: 2.11.2(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react-is@19.0.0-rc.1)(react@18.3.1)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) react: specifier: ^18.3.1 version: 18.3.1 @@ -255,8 +255,8 @@ importers: dev/embedded-studio: dependencies: '@sanity/ui': - specifier: ^2.11.1 - version: 2.11.1(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react-is@19.0.0-rc.1)(react@18.3.1)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + specifier: ^2.11.2 + version: 2.11.2(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react-is@19.0.0-rc.1)(react@18.3.1)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) react: specifier: ^18.3.1 version: 18.3.1 @@ -292,8 +292,8 @@ importers: specifier: workspace:* version: link:../../packages/@sanity/vision babel-plugin-react-compiler: - specifier: 19.0.0-beta-63e3235-20250105 - version: 19.0.0-beta-63e3235-20250105 + specifier: 19.0.0-beta-e552027-20250112 + version: 19.0.0-beta-e552027-20250112 react: specifier: ^18.2.0 version: 18.3.1 @@ -316,8 +316,8 @@ importers: dev/starter-studio: dependencies: babel-plugin-react-compiler: - specifier: 19.0.0-beta-63e3235-20250105 - version: 19.0.0-beta-63e3235-20250105 + specifier: 19.0.0-beta-e552027-20250112 + version: 19.0.0-beta-e552027-20250112 react: specifier: ^18.3.1 version: 18.3.1 @@ -361,14 +361,14 @@ importers: specifier: ^3.5.7 version: 3.5.7(react@19.0.0) '@sanity/ui': - specifier: ^2.11.1 - version: 2.11.1(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) + specifier: ^2.11.2 + version: 2.11.2(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) '@sanity/vision': specifier: 3.69.0 version: link:../../packages/@sanity/vision babel-plugin-react-compiler: - specifier: 19.0.0-beta-63e3235-20250105 - version: 19.0.0-beta-63e3235-20250105 + specifier: 19.0.0-beta-e552027-20250112 + version: 19.0.0-beta-e552027-20250112 react: specifier: ^19.0.0 version: 19.0.0 @@ -383,7 +383,7 @@ importers: version: 5.0.0(@emotion/is-prop-valid@1.3.1)(easymde@2.18.0)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(sanity@packages+sanity)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) sanity-plugin-media: specifier: ^2.3.1 - version: 2.3.2(@sanity/ui@2.11.1(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@types/react@19.0.3)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sanity@packages+sanity)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) + version: 2.3.2(@sanity/ui@2.11.2(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@types/react@19.0.3)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sanity@packages+sanity)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) sanity-plugin-mux-input: specifier: ^2.2.1 version: 2.4.0(@emotion/is-prop-valid@1.3.1)(@types/react@19.0.3)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(sanity@packages+sanity)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) @@ -415,8 +415,8 @@ importers: dev/test-studio: dependencies: '@portabletext/editor': - specifier: ^1.21.0 - version: 1.21.0(@sanity/block-tools@packages+@sanity+block-tools)(@sanity/schema@packages+@sanity+schema)(@sanity/types@packages+@sanity+types)(@types/react@19.0.3)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rxjs@7.8.1) + specifier: ^1.21.1 + version: 1.21.1(@sanity/block-tools@packages+@sanity+block-tools)(@sanity/schema@packages+@sanity+schema)(@sanity/types@packages+@sanity+types)(@types/react@19.0.3)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rxjs@7.8.1) '@portabletext/react': specifier: ^3.0.0 version: 3.2.0(react@19.0.0) @@ -467,22 +467,22 @@ importers: version: link:../../packages/@sanity/migrate '@sanity/preview-url-secret': specifier: ^2.0.0 - version: 2.0.7(@sanity/client@6.24.3(debug@4.4.0)) + version: 2.1.0(@sanity/client@6.24.3(debug@4.4.0)) '@sanity/react-loader': specifier: ^1.8.3 version: 1.10.32(react@19.0.0) '@sanity/tsdoc': specifier: 1.0.169 - version: 1.0.169(@emotion/is-prop-valid@1.3.1)(@types/babel__core@7.20.5)(@types/node@22.10.2)(babel-plugin-react-compiler@19.0.0-beta-63e3235-20250105)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(sanity@packages+sanity)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(terser@5.37.0)(yaml@2.6.1) + version: 1.0.169(@emotion/is-prop-valid@1.3.1)(@types/babel__core@7.20.5)(@types/node@22.10.2)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(sanity@packages+sanity)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(terser@5.37.0)(yaml@2.6.1) '@sanity/types': specifier: workspace:* version: link:../../packages/@sanity/types '@sanity/ui': - specifier: ^2.11.1 - version: 2.11.1(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) + specifier: ^2.11.2 + version: 2.11.2(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) '@sanity/ui-workshop': specifier: ^1.0.0 - version: 1.2.11(@sanity/icons@3.5.7(react@19.0.0))(@sanity/ui@2.11.1(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@types/node@22.10.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(terser@5.37.0) + version: 1.2.11(@sanity/icons@3.5.7(react@19.0.0))(@sanity/ui@2.11.2(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@types/node@22.10.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(terser@5.37.0) '@sanity/util': specifier: workspace:* version: link:../../packages/@sanity/util @@ -494,7 +494,7 @@ importers: version: link:../../packages/@sanity/vision '@sanity/visual-editing': specifier: 2.11.5 - version: 2.11.5(@sanity/client@6.24.3)(next@15.1.3(@babel/core@7.26.0)(@playwright/test@1.49.1)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@19.0.0-beta-63e3235-20250105)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 2.11.5(@sanity/client@6.24.3)(next@15.1.3(@babel/core@7.26.0)(@playwright/test@1.49.1)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@turf/helpers': specifier: ^6.0.1 version: 6.5.0 @@ -539,13 +539,13 @@ importers: version: link:../../packages/sanity sanity-plugin-hotspot-array: specifier: ^2.0.0 - version: 2.1.2(@emotion/is-prop-valid@1.3.1)(@sanity/ui@2.11.1(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sanity@packages+sanity)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) + version: 2.1.2(@emotion/is-prop-valid@1.3.1)(@sanity/ui@2.11.2(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sanity@packages+sanity)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) sanity-plugin-markdown: specifier: ^5.0.0 version: 5.0.0(@emotion/is-prop-valid@1.3.1)(easymde@2.18.0)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(sanity@packages+sanity)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) sanity-plugin-media: specifier: ^2.3.1 - version: 2.3.2(@sanity/ui@2.11.1(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@types/react@19.0.3)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sanity@packages+sanity)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) + version: 2.3.2(@sanity/ui@2.11.2(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@types/react@19.0.3)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sanity@packages+sanity)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) sanity-plugin-mux-input: specifier: ^2.2.1 version: 2.4.0(@emotion/is-prop-valid@1.3.1)(@types/react@19.0.3)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(sanity@packages+sanity)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) @@ -557,8 +557,8 @@ importers: specifier: 1.0.14 version: 1.0.14(encoding@0.1.13)(rollup@4.30.1) babel-plugin-react-compiler: - specifier: 19.0.0-beta-63e3235-20250105 - version: 19.0.0-beta-63e3235-20250105 + specifier: 19.0.0-beta-e552027-20250112 + version: 19.0.0-beta-e552027-20250112 vite: specifier: ^5.4.11 version: 5.4.11(@types/node@22.10.2)(terser@5.37.0) @@ -599,8 +599,8 @@ importers: specifier: 3.69.0 version: link:../../packages/@sanity/cli '@sanity/ui': - specifier: ^2.11.1 - version: 2.11.1(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react-is@19.0.0-rc.1)(react@18.3.1)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + specifier: ^2.11.2 + version: 2.11.2(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react-is@19.0.0-rc.1)(react@18.3.1)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) react: specifier: ^18.3.1 version: 18.3.1 @@ -745,7 +745,7 @@ importers: dependencies: '@babel/traverse': specifier: ^7.23.5 - version: 7.26.4 + version: 7.26.5 '@sanity/client': specifier: ^6.24.3 version: 6.24.3(debug@4.4.0) @@ -962,7 +962,7 @@ importers: version: 7.26.0 '@babel/generator': specifier: ^7.23.6 - version: 7.26.3 + version: 7.26.5 '@babel/preset-env': specifier: ^7.23.8 version: 7.26.0(@babel/core@7.26.0) @@ -977,10 +977,10 @@ importers: version: 7.25.9(@babel/core@7.26.0) '@babel/traverse': specifier: ^7.23.5 - version: 7.26.4 + version: 7.26.5 '@babel/types': specifier: ^7.23.9 - version: 7.26.3 + version: 7.26.5 debug: specifier: ^4.3.4 version: 4.4.0(supports-color@9.4.0) @@ -1254,7 +1254,7 @@ importers: version: 6.18.4 '@codemirror/commands': specifier: ^6.0.1 - version: 6.7.1 + version: 6.8.0 '@codemirror/lang-javascript': specifier: ^6.0.2 version: 6.2.2 @@ -1266,10 +1266,10 @@ importers: version: 6.5.8 '@codemirror/state': specifier: ^6.0.0 - version: 6.5.0 + version: 6.5.1 '@codemirror/view': specifier: ^6.1.1 - version: 6.36.1 + version: 6.36.2 '@juggle/resize-observer': specifier: ^3.3.1 version: 3.4.0 @@ -1289,11 +1289,11 @@ importers: specifier: ^3.5.7 version: 3.5.7(react@18.3.1) '@sanity/ui': - specifier: ^2.11.1 - version: 2.11.1(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@18.3.1))(react-is@19.0.0-rc.1)(react@18.3.1)(styled-components@6.1.14(react-dom@19.0.0(react@18.3.1))(react@18.3.1)) + specifier: ^2.11.2 + version: 2.11.2(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@18.3.1))(react-is@19.0.0-rc.1)(react@18.3.1)(styled-components@6.1.14(react-dom@19.0.0(react@18.3.1))(react@18.3.1)) '@uiw/react-codemirror': specifier: ^4.11.4 - version: 4.23.7(@babel/runtime@7.26.0)(@codemirror/autocomplete@6.18.4)(@codemirror/language@6.10.8)(@codemirror/lint@6.8.4)(@codemirror/search@6.5.8)(@codemirror/state@6.5.0)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.36.1)(codemirror@6.0.1)(react-dom@19.0.0(react@18.3.1))(react@18.3.1) + version: 4.23.7(@babel/runtime@7.26.0)(@codemirror/autocomplete@6.18.4)(@codemirror/language@6.10.8)(@codemirror/lint@6.8.4)(@codemirror/search@6.5.8)(@codemirror/state@6.5.1)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.36.2)(codemirror@6.0.1)(react-dom@19.0.0(react@18.3.1))(react@18.3.1) is-hotkey-esm: specifier: ^1.0.0 version: 1.0.0 @@ -1350,8 +1350,8 @@ importers: specifier: ^4.17.7 version: 4.17.13 babel-plugin-react-compiler: - specifier: 19.0.0-beta-63e3235-20250105 - version: 19.0.0-beta-63e3235-20250105 + specifier: 19.0.0-beta-e552027-20250112 + version: 19.0.0-beta-e552027-20250112 react: specifier: ^18.3.1 version: 18.3.1 @@ -1395,8 +1395,8 @@ importers: specifier: ^3.3.1 version: 3.4.0 '@portabletext/editor': - specifier: ^1.21.0 - version: 1.21.0(@sanity/block-tools@packages+@sanity+block-tools)(@sanity/schema@packages+@sanity+schema)(@sanity/types@packages+@sanity+types)(@types/react@19.0.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.1) + specifier: ^1.21.1 + version: 1.21.1(@sanity/block-tools@packages+@sanity+block-tools)(@sanity/schema@packages+@sanity+schema)(@sanity/types@packages+@sanity+types)(@types/react@19.0.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.1) '@portabletext/react': specifier: ^3.0.0 version: 3.2.0(react@18.3.1) @@ -1455,8 +1455,8 @@ importers: specifier: 3.69.0 version: link:../@sanity/mutator '@sanity/presentation': - specifier: 1.20.3 - version: 1.20.3(@emotion/is-prop-valid@1.3.1)(@sanity/color@3.0.6)(debug@4.4.0)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + specifier: 1.21.1 + version: 1.21.1(@emotion/is-prop-valid@1.3.1)(@sanity/color@3.0.6)(debug@4.4.0)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) '@sanity/schema': specifier: 3.69.0 version: link:../@sanity/schema @@ -1467,8 +1467,8 @@ importers: specifier: 3.69.0 version: link:../@sanity/types '@sanity/ui': - specifier: ^2.11.1 - version: 2.11.1(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + specifier: ^2.11.2 + version: 2.11.2(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) '@sanity/util': specifier: 3.69.0 version: link:../@sanity/util @@ -1665,8 +1665,8 @@ importers: specifier: ^2.1.6 version: 2.2.0(react@18.3.1) react-rx: - specifier: ^4.1.12 - version: 4.1.12(react@18.3.1)(rxjs@7.8.1) + specifier: ^4.1.14 + version: 4.1.14(react@18.3.1)(rxjs@7.8.1) read-pkg-up: specifier: ^7.0.1 version: 7.0.1 @@ -1751,13 +1751,13 @@ importers: version: 3.0.0 '@sanity/pkg-utils': specifier: 6.13.4 - version: 6.13.4(@types/babel__core@7.20.5)(@types/node@22.10.2)(babel-plugin-react-compiler@19.0.0-beta-63e3235-20250105)(debug@4.4.0)(typescript@5.7.3) + version: 6.13.4(@types/babel__core@7.20.5)(@types/node@22.10.2)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(debug@4.4.0)(typescript@5.7.3) '@sanity/tsdoc': specifier: 1.0.169 - version: 1.0.169(@emotion/is-prop-valid@1.3.1)(@types/babel__core@7.20.5)(@types/node@22.10.2)(babel-plugin-react-compiler@19.0.0-beta-63e3235-20250105)(debug@4.4.0)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)(sanity@packages+sanity)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(terser@5.37.0)(yaml@2.6.1) + version: 1.0.169(@emotion/is-prop-valid@1.3.1)(@types/babel__core@7.20.5)(@types/node@22.10.2)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(debug@4.4.0)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)(sanity@packages+sanity)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(terser@5.37.0)(yaml@2.6.1) '@sanity/ui-workshop': specifier: ^1.2.11 - version: 1.2.11(@sanity/icons@3.5.7(react@18.3.1))(@sanity/ui@2.11.1(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@types/node@22.10.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(terser@5.37.0) + version: 1.2.11(@sanity/icons@3.5.7(react@18.3.1))(@sanity/ui@2.11.2(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@types/node@22.10.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(terser@5.37.0) '@sentry/types': specifier: ^8.12.0 version: 8.46.0 @@ -1816,8 +1816,8 @@ importers: specifier: 6.137.0 version: 6.137.0 babel-plugin-react-compiler: - specifier: 19.0.0-beta-63e3235-20250105 - version: 19.0.0-beta-63e3235-20250105 + specifier: 19.0.0-beta-e552027-20250112 + version: 19.0.0-beta-e552027-20250112 blob-polyfill: specifier: ^9.0.20240710 version: 9.0.20240710 @@ -1903,8 +1903,8 @@ importers: specifier: ^4.3.4 version: 4.3.4(vite@5.4.11(@types/node@22.10.2)(terser@5.37.0)) babel-plugin-react-compiler: - specifier: 19.0.0-beta-63e3235-20250105 - version: 19.0.0-beta-63e3235-20250105 + specifier: 19.0.0-beta-e552027-20250112 + version: 19.0.0-beta-e552027-20250112 chalk: specifier: ^4.1.2 version: 4.1.2 @@ -1951,8 +1951,8 @@ importers: perf/studio: dependencies: babel-plugin-react-compiler: - specifier: 19.0.0-beta-63e3235-20250105 - version: 19.0.0-beta-63e3235-20250105 + specifier: 19.0.0-beta-e552027-20250112 + version: 19.0.0-beta-e552027-20250112 react: specifier: ^19.0.0 version: 19.0.0 @@ -2072,8 +2072,8 @@ packages: '@babel/core': ^7.11.0 eslint: ^7.5.0 || ^8.0.0 || ^9.0.0 - '@babel/generator@7.26.3': - resolution: {integrity: sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==} + '@babel/generator@7.26.5': + resolution: {integrity: sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==} engines: {node: '>=6.9.0'} '@babel/helper-annotate-as-pure@7.25.9': @@ -2119,8 +2119,8 @@ packages: resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==} engines: {node: '>=6.9.0'} - '@babel/helper-plugin-utils@7.25.9': - resolution: {integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==} + '@babel/helper-plugin-utils@7.26.5': + resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==} engines: {node: '>=6.9.0'} '@babel/helper-remap-async-to-generator@7.25.9': @@ -2129,8 +2129,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-replace-supers@7.25.9': - resolution: {integrity: sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==} + '@babel/helper-replace-supers@7.26.5': + resolution: {integrity: sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -2159,8 +2159,8 @@ packages: resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.26.3': - resolution: {integrity: sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==} + '@babel/parser@7.26.5': + resolution: {integrity: sha512-SRJ4jYmXRqV1/Xc+TIVG84WjHBXKlxO9sHQnA2Pf12QQEAp1LOh6kDzNHXcUnbH1QI0FDoPPVOt+vyUDucxpaw==} engines: {node: '>=6.0.0'} hasBin: true @@ -2616,16 +2616,16 @@ packages: resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.26.4': - resolution: {integrity: sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==} + '@babel/traverse@7.26.5': + resolution: {integrity: sha512-rkOSPOw+AXbgtwUga3U4u8RpoK9FEFWBNAlTpcnkLFjL5CT+oyHNuUUC/xx6XefEJ16r38r8Bc/lfp6rYuHeJQ==} engines: {node: '>=6.9.0'} '@babel/types@7.26.0': resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} engines: {node: '>=6.9.0'} - '@babel/types@7.26.3': - resolution: {integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==} + '@babel/types@7.26.5': + resolution: {integrity: sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg==} engines: {node: '>=6.9.0'} '@bcoe/v8-coverage@0.2.3': @@ -2645,8 +2645,8 @@ packages: '@codemirror/autocomplete@6.18.4': resolution: {integrity: sha512-sFAphGQIqyQZfP2ZBsSHV7xQvo9Py0rV0dW7W3IMRdS+zDuNb2l3no78CvUaWKGfzFjI4FTrLdUSj86IGb2hRA==} - '@codemirror/commands@6.7.1': - resolution: {integrity: sha512-llTrboQYw5H4THfhN4U3qCnSZ1SOJ60ohhz+SzU0ADGtwlc533DtklQP0vSFaQuCPDn3BPpOd1GbbnUtwNjsrw==} + '@codemirror/commands@6.8.0': + resolution: {integrity: sha512-q8VPEFaEP4ikSlt6ZxjB3zW72+7osfAYW9i8Zu943uqbKuz6utc1+F170hyLUCUltXORjQXRyYQNfkckzA/bPQ==} '@codemirror/lang-css@6.3.1': resolution: {integrity: sha512-kr5fwBGiGtmz6l0LSJIbno9QrifNMUusivHbnA1H6Dmqy4HZFte3UAICix1VuKo0lMPKQr2rqB+0BkKi/S3Ejg==} @@ -2684,14 +2684,14 @@ packages: '@codemirror/search@6.5.8': resolution: {integrity: sha512-PoWtZvo7c1XFeZWmmyaOp2G0XVbOnm+fJzvghqGAktBW3cufwJUWvSCcNG0ppXiBEM05mZu6RhMtXPv2hpllig==} - '@codemirror/state@6.5.0': - resolution: {integrity: sha512-MwBHVK60IiIHDcoMet78lxt6iw5gJOGSbNbOIVBHWVXIH4/Nq1+GQgLLGgI1KlnN86WDXsPudVaqYHKBIx7Eyw==} + '@codemirror/state@6.5.1': + resolution: {integrity: sha512-3rA9lcwciEB47ZevqvD8qgbzhM9qMb8vCcQCNmDfVRPQG4JT9mSb0Jg8H7YjKGGQcFnLN323fj9jdnG59Kx6bg==} '@codemirror/theme-one-dark@6.1.2': resolution: {integrity: sha512-F+sH0X16j/qFLMAfbciKTxVOwkdAS336b7AXTKOZhy8BR3eH/RelsnLgLFINrpST63mmN2OuwUt0W2ndUgYwUA==} - '@codemirror/view@6.36.1': - resolution: {integrity: sha512-miD1nyT4m4uopZaDdO2uXU/LLHliKNYL9kB1C1wJHrunHLm/rpkb5QVSokqgw9hFqEZakrdlb/VGWX8aYZTslQ==} + '@codemirror/view@6.36.2': + resolution: {integrity: sha512-DZ6ONbs8qdJK0fdN7AB82CgI6tYXf4HWk1wSVa0+9bhVznCuuvhQtX8bFBoy3dv8rZSQqUd8GvhVAcielcidrA==} '@colors/colors@1.5.0': resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} @@ -4338,8 +4338,8 @@ packages: resolution: {integrity: sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==} engines: {node: '>=12'} - '@portabletext/editor@1.21.0': - resolution: {integrity: sha512-Rg2PjPgUnMbQAYK1QgjnXkeeRf/97Ng94u9zb7FarIt0zpAkqrl1xxq7t8mpNMK3tio9wxIkNJjgbk3NahEBXg==} + '@portabletext/editor@1.21.1': + resolution: {integrity: sha512-fDaYG0uKumP1NRo5G0D0BOhamC9xpykwInC9sZQhMb+SzpNY8eVNS/CsZfNGyOtsdCLpaeAbGsSgoqTvDmcY9Q==} engines: {node: '>=18'} peerDependencies: '@sanity/block-tools': ^3.69.0 @@ -4656,8 +4656,8 @@ packages: resolution: {integrity: sha512-ODjmZZJ4a4hiSK4TaQk2ysppIweIj6UNZ7o+fAkh7hotwcLxh+qTo8Rpb5yW2UfqGSAWTQDMcta9/4HAMWGfUA==} engines: {node: '>=18'} - '@sanity/comlink@2.0.5': - resolution: {integrity: sha512-6Rbg71hkeoGInk/9hBsCUBCZ33IHSs2fZynAR85ANkXDM+WYiwRDlker7OngBkfbK8TF9+G797VjNMQQgJINiQ==} + '@sanity/comlink@3.0.0': + resolution: {integrity: sha512-R6oUq5GrLIldCCHFpVZbZt4Zuw9QWUeA1A1YhRJxifarTj+RDETIfDGenioKGvUAZeeVhADMooG33xzyQor45w==} engines: {node: '>=18'} '@sanity/core-loader@1.7.23': @@ -4781,8 +4781,8 @@ packages: babel-plugin-react-compiler: optional: true - '@sanity/presentation@1.20.3': - resolution: {integrity: sha512-EQ/BnyEA+Zcsx8mCjRolsZb2IXo96si+LCBuFU4aqFua7NXkXkd9BawS9wc2zWuEj5Nf6VItcLBkf5QXl3XArA==} + '@sanity/presentation@1.21.1': + resolution: {integrity: sha512-SDjWRJG+5EaVrlVI4boXpc070fwb9wkTBLHpcifQyL21Strkvlx65unMnadU3wDJyULwj+TLLGzDgcD5eP8y5g==} engines: {node: '>=16.14'} '@sanity/prettier-config@1.0.3': @@ -4796,8 +4796,8 @@ packages: peerDependencies: '@sanity/client': ^6.23.0 - '@sanity/preview-url-secret@2.0.7': - resolution: {integrity: sha512-Lcz2lf/wNNIGhK4NYOxkVqp6I/ug+MCaPoAJOyW/ye/YyJ7PpL7tdGWNvRiOnBX3S+qv3utK6vlWAoHcXWDLNQ==} + '@sanity/preview-url-secret@2.1.0': + resolution: {integrity: sha512-tnRnbPAhEgUp0mESCRJmScbvEC8r+UwJXDN0mwAv1das6FBUMP5VvvvPa+E/OhEDs8QLTFs0q+G9JpbgvK3DSw==} engines: {node: '>=18'} peerDependencies: '@sanity/client': ^6.24.1 @@ -4848,8 +4848,8 @@ packages: react-dom: ^18 styled-components: ^5.2 || ^6 - '@sanity/ui@2.11.1': - resolution: {integrity: sha512-aO9+dIlwua6QuQfE5O8WF5gb4BUUyunzK2jmT1g/EVovxhkdBOHbmx2bNfw/xNOcSoL0X7ETnKUW4qdR+Hn2TQ==} + '@sanity/ui@2.11.2': + resolution: {integrity: sha512-EfuQE6JEBZ1DcDHOD6vBsSnqQgyCT08Sqy0iYKF3dQBnT/0hd+bVpomqnmjnzDiAO6E5SfUTXCIm4MxLsQ4QMg==} engines: {node: '>=14.0.0'} peerDependencies: react: ^18 || >=19.0.0-0 @@ -5886,8 +5886,8 @@ packages: peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-plugin-react-compiler@19.0.0-beta-63e3235-20250105: - resolution: {integrity: sha512-38qEX4e1nNOZ9K7rVAF4VVijcjTHBbRHd+ftYpfim2Oabitd1NGjvrL0bnwFymDTBB4MqswqIHTYjYfuy1OeTQ==} + babel-plugin-react-compiler@19.0.0-beta-e552027-20250112: + resolution: {integrity: sha512-pUTT0mAZ4XLewC6bvqVeX015nVRLVultcSQlkzGdC10G6YV6K2h4E7cwGlLAuLKWTj3Z08mTO9uTnPP/opUBsg==} babel-plugin-styled-components@2.1.4: resolution: {integrity: sha512-Xgp9g+A/cG47sUyRwwYxGM4bR/jDRg5N6it/8+HxCnbT5XNKSKDT9xm4oag/osgqjC2It/vH0yXsomOG6k558g==} @@ -6092,8 +6092,8 @@ packages: camelize@1.0.1: resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} - caniuse-lite@1.0.30001690: - resolution: {integrity: sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==} + caniuse-lite@1.0.30001692: + resolution: {integrity: sha512-A95VKan0kdtrsnMubMKxEKUKImOPSuCpYgxSQBo036P5YYgVIcOYJEgt/txJWqObiRQeISNCfef9nvlQ0vbV7A==} castable-video@1.0.10: resolution: {integrity: sha512-tJgUv+8/zE191y8EKojvB0eKIyKA9obIttd6Wpdm6x2qBmuwZ7wDgzVCSmf5cN2v9jBiuu0s7O5poz8a8cFX/w==} @@ -6872,8 +6872,8 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - effect@3.12.1: - resolution: {integrity: sha512-aAZdh56Yp1ehOFYeMcHHctTtxfqm6kkOdZFTXK6Zf0QoaKKc1hPG6ocjrKOc0axE8JbG4eZw351ogNLrM4vo9w==} + effect@3.12.2: + resolution: {integrity: sha512-PslVtcxwapLj95icHZJ/ribCS4O26I4o8ga9zzSdLqRTPRBobwbLTJ2E/Bzim5knJjTutfNdVHOGzl8FW03K5Q==} ejs@3.1.10: resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} @@ -7165,8 +7165,8 @@ packages: eslint-config-prettier: optional: true - eslint-plugin-react-compiler@19.0.0-beta-63e3235-20250105: - resolution: {integrity: sha512-Smts5x+u+rRopr0926jCXFPkS8D8hFJexDvTW41V0Xu/xHgd4pnGWiJQRBsvTEARzOdJ6NdlmYs4n+O4Thn2iA==} + eslint-plugin-react-compiler@19.0.0-beta-e552027-20250112: + resolution: {integrity: sha512-VjkIXHouCYyJHgk5HmZ1LH+fAK5CX+ULRX9iNYtwYJ+ljbivFhIT+JJyxNT/USQpCeS2Dt5ahjFeeMv0RRwTww==} engines: {node: ^14.17.0 || ^16.0.0 || >= 18.0.0} peerDependencies: eslint: '>=7' @@ -10230,8 +10230,8 @@ packages: resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} engines: {node: '>=0.10.0'} - react-rx@4.1.12: - resolution: {integrity: sha512-rX8WaVq+YkW9AcfKrEIXg8X15dR9pLHU7JZh4K1Ffc2k8zM4YuR7xh0Fi5EkranqcTAFGKoN2Z+q5QY8k+lHxA==} + react-rx@4.1.14: + resolution: {integrity: sha512-/PBHocT90BuwNTvDXpGda4nZYhysVxU+qL5TZVqmxZ+4QQ6KfvpS2BiW8/iNSQpLTKq0pbfFe+9nB60A8g6pkw==} peerDependencies: react: ^18.3 || >=19.0.0-0 rxjs: ^7 @@ -10652,7 +10652,7 @@ packages: resolution: {integrity: sha512-UhPLzUkXy7m6MFPW+zfW/g3WqpdJuj6IBFCEL81VUNUWNRQkuej10WGe41d70iAqAMCG9+ypSWHmBNv9/lhMvA==} engines: {node: '>=18'} peerDependencies: - '@sanity/ui': ^2.11.1 + '@sanity/ui': ^2.11.2 react: ^18 sanity: ^3.0.0 styled-components: ^6.1 @@ -10670,7 +10670,7 @@ packages: resolution: {integrity: sha512-5RZJyKuN2SuatWjUEr9x+DOZOPg6+ga/6RD+pc8RK3PgviP+945M+E8k93XwnIzSGNFtix8jf0mUbdbCO7HpjA==} engines: {node: '>=14'} peerDependencies: - '@sanity/ui': ^2.11.1 + '@sanity/ui': ^2.11.2 react: ^18 react-dom: ^18 sanity: ^3.0.0 @@ -12266,14 +12266,14 @@ snapshots: dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.3 + '@babel/generator': 7.26.5 '@babel/helper-compilation-targets': 7.25.9 '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) '@babel/helpers': 7.26.0 - '@babel/parser': 7.26.3 + '@babel/parser': 7.26.5 '@babel/template': 7.25.9 - '@babel/traverse': 7.26.4 - '@babel/types': 7.26.3 + '@babel/traverse': 7.26.5 + '@babel/types': 7.26.5 convert-source-map: 2.0.0 debug: 4.4.0(supports-color@9.4.0) gensync: 1.0.0-beta.2 @@ -12290,17 +12290,17 @@ snapshots: eslint-visitor-keys: 2.1.0 semver: 6.3.1 - '@babel/generator@7.26.3': + '@babel/generator@7.26.5': dependencies: - '@babel/parser': 7.26.3 - '@babel/types': 7.26.3 + '@babel/parser': 7.26.5 + '@babel/types': 7.26.5 '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 jsesc: 3.1.0 '@babel/helper-annotate-as-pure@7.25.9': dependencies: - '@babel/types': 7.26.3 + '@babel/types': 7.26.5 '@babel/helper-compilation-targets@7.25.9': dependencies: @@ -12316,9 +12316,9 @@ snapshots: '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-member-expression-to-functions': 7.25.9 '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0) + '@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.0) '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/traverse': 7.26.4 + '@babel/traverse': 7.26.5 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -12334,7 +12334,7 @@ snapshots: dependencies: '@babel/core': 7.26.0 '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 debug: 4.4.0(supports-color@9.4.0) lodash.debounce: 4.0.8 resolve: 1.22.9 @@ -12343,22 +12343,22 @@ snapshots: '@babel/helper-member-expression-to-functions@7.25.9': dependencies: - '@babel/traverse': 7.26.4 - '@babel/types': 7.26.3 + '@babel/traverse': 7.26.5 + '@babel/types': 7.26.5 transitivePeerDependencies: - supports-color '@babel/helper-module-imports@7.25.9': dependencies: - '@babel/traverse': 7.26.4 - '@babel/types': 7.26.3 + '@babel/traverse': 7.26.5 + '@babel/types': 7.26.5 transitivePeerDependencies: - supports-color '@babel/helper-module-imports@7.25.9(supports-color@5.5.0)': dependencies: - '@babel/traverse': 7.26.4(supports-color@5.5.0) - '@babel/types': 7.26.3 + '@babel/traverse': 7.26.5(supports-color@5.5.0) + '@babel/types': 7.26.5 transitivePeerDependencies: - supports-color @@ -12367,38 +12367,38 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-module-imports': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.26.4 + '@babel/traverse': 7.26.5 transitivePeerDependencies: - supports-color '@babel/helper-optimise-call-expression@7.25.9': dependencies: - '@babel/types': 7.26.3 + '@babel/types': 7.26.5 - '@babel/helper-plugin-utils@7.25.9': {} + '@babel/helper-plugin-utils@7.26.5': {} '@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-wrap-function': 7.25.9 - '@babel/traverse': 7.26.4 + '@babel/traverse': 7.26.5 transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.25.9(@babel/core@7.26.0)': + '@babel/helper-replace-supers@7.26.5(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-member-expression-to-functions': 7.25.9 '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/traverse': 7.26.4 + '@babel/traverse': 7.26.5 transitivePeerDependencies: - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.25.9': dependencies: - '@babel/traverse': 7.26.4 - '@babel/types': 7.26.3 + '@babel/traverse': 7.26.5 + '@babel/types': 7.26.5 transitivePeerDependencies: - supports-color @@ -12411,42 +12411,42 @@ snapshots: '@babel/helper-wrap-function@7.25.9': dependencies: '@babel/template': 7.25.9 - '@babel/traverse': 7.26.4 - '@babel/types': 7.26.3 + '@babel/traverse': 7.26.5 + '@babel/types': 7.26.5 transitivePeerDependencies: - supports-color '@babel/helpers@7.26.0': dependencies: '@babel/template': 7.25.9 - '@babel/types': 7.26.3 + '@babel/types': 7.26.5 - '@babel/parser@7.26.3': + '@babel/parser@7.26.5': dependencies: - '@babel/types': 7.26.3 + '@babel/types': 7.26.5 '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/traverse': 7.26.4 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/traverse': 7.26.5 transitivePeerDependencies: - supports-color '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.0) transitivePeerDependencies: @@ -12455,8 +12455,8 @@ snapshots: '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/traverse': 7.26.4 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/traverse': 7.26.5 transitivePeerDependencies: - supports-color @@ -12464,7 +12464,7 @@ snapshots: dependencies: '@babel/core': 7.26.0 '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 transitivePeerDependencies: - supports-color @@ -12475,40 +12475,40 @@ snapshots: '@babel/plugin-syntax-import-assertions@7.26.0(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-async-generator-functions@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.0) - '@babel/traverse': 7.26.4 + '@babel/traverse': 7.26.5 transitivePeerDependencies: - supports-color @@ -12516,7 +12516,7 @@ snapshots: dependencies: '@babel/core': 7.26.0 '@babel/helper-module-imports': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.0) transitivePeerDependencies: - supports-color @@ -12524,18 +12524,18 @@ snapshots: '@babel/plugin-transform-block-scoped-functions@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-block-scoping@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 transitivePeerDependencies: - supports-color @@ -12543,7 +12543,7 @@ snapshots: dependencies: '@babel/core': 7.26.0 '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 transitivePeerDependencies: - supports-color @@ -12552,9 +12552,9 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0) - '@babel/traverse': 7.26.4 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.0) + '@babel/traverse': 7.26.5 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -12562,50 +12562,50 @@ snapshots: '@babel/plugin-transform-computed-properties@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/template': 7.25.9 '@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-dotall-regex@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-duplicate-keys@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-dynamic-import@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-exponentiation-operator@7.26.3(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-export-namespace-from@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-for-of@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 transitivePeerDependencies: - supports-color @@ -12614,36 +12614,36 @@ snapshots: dependencies: '@babel/core': 7.26.0 '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/traverse': 7.26.4 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/traverse': 7.26.5 transitivePeerDependencies: - supports-color '@babel/plugin-transform-json-strings@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-literals@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-logical-assignment-operators@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-member-expression-literals@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-modules-amd@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 transitivePeerDependencies: - supports-color @@ -12651,7 +12651,7 @@ snapshots: dependencies: '@babel/core': 7.26.0 '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 transitivePeerDependencies: - supports-color @@ -12659,9 +12659,9 @@ snapshots: dependencies: '@babel/core': 7.26.0 '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.26.4 + '@babel/traverse': 7.26.5 transitivePeerDependencies: - supports-color @@ -12669,7 +12669,7 @@ snapshots: dependencies: '@babel/core': 7.26.0 '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 transitivePeerDependencies: - supports-color @@ -12677,47 +12677,47 @@ snapshots: dependencies: '@babel/core': 7.26.0 '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-new-target@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-nullish-coalescing-operator@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-numeric-separator@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-object-rest-spread@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-object-super@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.0) transitivePeerDependencies: - supports-color '@babel/plugin-transform-optional-catch-binding@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-optional-chaining@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 transitivePeerDependencies: - supports-color @@ -12725,13 +12725,13 @@ snapshots: '@babel/plugin-transform-parameters@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 transitivePeerDependencies: - supports-color @@ -12740,19 +12740,19 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 transitivePeerDependencies: - supports-color '@babel/plugin-transform-property-literals@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-react-display-name@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-react-jsx-development@7.25.9(@babel/core@7.26.0)': dependencies: @@ -12764,21 +12764,21 @@ snapshots: '@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-react-jsx-source@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-module-imports': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) - '@babel/types': 7.26.3 + '@babel/types': 7.26.5 transitivePeerDependencies: - supports-color @@ -12786,34 +12786,34 @@ snapshots: dependencies: '@babel/core': 7.26.0 '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-regenerator@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 regenerator-transform: 0.15.2 '@babel/plugin-transform-regexp-modifiers@7.26.0(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-reserved-words@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-shorthand-properties@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-spread@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 transitivePeerDependencies: - supports-color @@ -12821,24 +12821,24 @@ snapshots: '@babel/plugin-transform-sticky-regex@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-template-literals@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-typeof-symbol@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-typescript@7.26.3(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.0) transitivePeerDependencies: @@ -12847,32 +12847,32 @@ snapshots: '@babel/plugin-transform-unicode-escapes@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-unicode-property-regex@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-unicode-regex@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-unicode-sets-regex@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/preset-env@7.26.0(@babel/core@7.26.0)': dependencies: '@babel/compat-data': 7.26.3 '@babel/core': 7.26.0 '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/helper-validator-option': 7.25.9 '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.9(@babel/core@7.26.0) '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.9(@babel/core@7.26.0) @@ -12945,14 +12945,14 @@ snapshots: '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/types': 7.26.3 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/types': 7.26.5 esutils: 2.0.3 '@babel/preset-react@7.26.3(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/helper-validator-option': 7.25.9 '@babel/plugin-transform-react-display-name': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0) @@ -12964,7 +12964,7 @@ snapshots: '@babel/preset-typescript@7.26.0(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 '@babel/helper-validator-option': 7.25.9 '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.0) @@ -12988,28 +12988,28 @@ snapshots: '@babel/template@7.25.9': dependencies: '@babel/code-frame': 7.26.2 - '@babel/parser': 7.26.3 - '@babel/types': 7.26.3 + '@babel/parser': 7.26.5 + '@babel/types': 7.26.5 - '@babel/traverse@7.26.4': + '@babel/traverse@7.26.5': dependencies: '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.3 - '@babel/parser': 7.26.3 + '@babel/generator': 7.26.5 + '@babel/parser': 7.26.5 '@babel/template': 7.25.9 - '@babel/types': 7.26.3 + '@babel/types': 7.26.5 debug: 4.4.0(supports-color@9.4.0) globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/traverse@7.26.4(supports-color@5.5.0)': + '@babel/traverse@7.26.5(supports-color@5.5.0)': dependencies: '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.3 - '@babel/parser': 7.26.3 + '@babel/generator': 7.26.5 + '@babel/parser': 7.26.5 '@babel/template': 7.25.9 - '@babel/types': 7.26.3 + '@babel/types': 7.26.5 debug: 4.4.0(supports-color@5.5.0) globals: 11.12.0 transitivePeerDependencies: @@ -13020,7 +13020,7 @@ snapshots: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 - '@babel/types@7.26.3': + '@babel/types@7.26.5': dependencies: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 @@ -13047,22 +13047,22 @@ snapshots: '@codemirror/autocomplete@6.18.4': dependencies: '@codemirror/language': 6.10.8 - '@codemirror/state': 6.5.0 - '@codemirror/view': 6.36.1 + '@codemirror/state': 6.5.1 + '@codemirror/view': 6.36.2 '@lezer/common': 1.2.3 - '@codemirror/commands@6.7.1': + '@codemirror/commands@6.8.0': dependencies: '@codemirror/language': 6.10.8 - '@codemirror/state': 6.5.0 - '@codemirror/view': 6.36.1 + '@codemirror/state': 6.5.1 + '@codemirror/view': 6.36.2 '@lezer/common': 1.2.3 '@codemirror/lang-css@6.3.1': dependencies: '@codemirror/autocomplete': 6.18.4 '@codemirror/language': 6.10.8 - '@codemirror/state': 6.5.0 + '@codemirror/state': 6.5.1 '@lezer/common': 1.2.3 '@lezer/css': 1.1.9 @@ -13072,8 +13072,8 @@ snapshots: '@codemirror/lang-css': 6.3.1 '@codemirror/lang-javascript': 6.2.2 '@codemirror/language': 6.10.8 - '@codemirror/state': 6.5.0 - '@codemirror/view': 6.36.1 + '@codemirror/state': 6.5.1 + '@codemirror/view': 6.36.2 '@lezer/common': 1.2.3 '@lezer/css': 1.1.9 '@lezer/html': 1.3.10 @@ -13088,8 +13088,8 @@ snapshots: '@codemirror/autocomplete': 6.18.4 '@codemirror/language': 6.10.8 '@codemirror/lint': 6.8.4 - '@codemirror/state': 6.5.0 - '@codemirror/view': 6.36.1 + '@codemirror/state': 6.5.1 + '@codemirror/view': 6.36.2 '@lezer/common': 1.2.3 '@lezer/javascript': 1.4.21 @@ -13103,8 +13103,8 @@ snapshots: '@codemirror/autocomplete': 6.18.4 '@codemirror/lang-html': 6.4.9 '@codemirror/language': 6.10.8 - '@codemirror/state': 6.5.0 - '@codemirror/view': 6.36.1 + '@codemirror/state': 6.5.1 + '@codemirror/view': 6.36.2 '@lezer/common': 1.2.3 '@lezer/markdown': 1.3.2 @@ -13112,7 +13112,7 @@ snapshots: dependencies: '@codemirror/lang-html': 6.4.9 '@codemirror/language': 6.10.8 - '@codemirror/state': 6.5.0 + '@codemirror/state': 6.5.1 '@lezer/common': 1.2.3 '@lezer/php': 1.0.2 @@ -13120,15 +13120,15 @@ snapshots: dependencies: '@codemirror/autocomplete': 6.18.4 '@codemirror/language': 6.10.8 - '@codemirror/state': 6.5.0 + '@codemirror/state': 6.5.1 '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 '@codemirror/language@6.10.8': dependencies: - '@codemirror/state': 6.5.0 - '@codemirror/view': 6.36.1 + '@codemirror/state': 6.5.1 + '@codemirror/view': 6.36.2 '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 @@ -13140,30 +13140,30 @@ snapshots: '@codemirror/lint@6.8.4': dependencies: - '@codemirror/state': 6.5.0 - '@codemirror/view': 6.36.1 + '@codemirror/state': 6.5.1 + '@codemirror/view': 6.36.2 crelt: 1.0.6 '@codemirror/search@6.5.8': dependencies: - '@codemirror/state': 6.5.0 - '@codemirror/view': 6.36.1 + '@codemirror/state': 6.5.1 + '@codemirror/view': 6.36.2 crelt: 1.0.6 - '@codemirror/state@6.5.0': + '@codemirror/state@6.5.1': dependencies: '@marijn/find-cluster-break': 1.0.2 '@codemirror/theme-one-dark@6.1.2': dependencies: '@codemirror/language': 6.10.8 - '@codemirror/state': 6.5.0 - '@codemirror/view': 6.36.1 + '@codemirror/state': 6.5.1 + '@codemirror/view': 6.36.2 '@lezer/highlight': 1.2.1 - '@codemirror/view@6.36.1': + '@codemirror/view@6.36.2': dependencies: - '@codemirror/state': 6.5.0 + '@codemirror/state': 6.5.1 style-mod: 4.1.2 w3c-keyname: 2.2.8 @@ -14090,13 +14090,13 @@ snapshots: dependencies: '@antfu/ni': 0.21.12 '@axiomhq/js': 1.0.0-rc.3 - '@babel/parser': 7.26.3 + '@babel/parser': 7.26.5 '@babel/types': 7.26.0 '@clack/prompts': 0.7.0 ast-types: 0.14.2 cli-high: 0.4.3 diff: 5.2.0 - effect: 3.12.1 + effect: 3.12.2 nanoid: 5.0.9 recast: 0.23.9 xycolors: 0.1.2 @@ -14708,7 +14708,7 @@ snapshots: '@pnpm/network.ca-file': 1.0.2 config-chain: 1.1.13 - '@portabletext/editor@1.21.0(@sanity/block-tools@packages+@sanity+block-tools)(@sanity/schema@packages+@sanity+schema)(@sanity/types@packages+@sanity+types)(@types/react@19.0.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.1)': + '@portabletext/editor@1.21.1(@sanity/block-tools@packages+@sanity+block-tools)(@sanity/schema@packages+@sanity+schema)(@sanity/types@packages+@sanity+types)(@types/react@19.0.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.1)': dependencies: '@portabletext/patches': 1.1.1 '@sanity/block-tools': link:packages/@sanity/block-tools @@ -14732,7 +14732,7 @@ snapshots: - react-dom - supports-color - '@portabletext/editor@1.21.0(@sanity/block-tools@packages+@sanity+block-tools)(@sanity/schema@packages+@sanity+schema)(@sanity/types@packages+@sanity+types)(@types/react@19.0.3)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rxjs@7.8.1)': + '@portabletext/editor@1.21.1(@sanity/block-tools@packages+@sanity+block-tools)(@sanity/schema@packages+@sanity+schema)(@sanity/types@packages+@sanity+types)(@types/react@19.0.3)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rxjs@7.8.1)': dependencies: '@portabletext/patches': 1.1.1 '@sanity/block-tools': link:packages/@sanity/block-tools @@ -14993,7 +14993,7 @@ snapshots: '@sanity/icons': 3.5.7(react@19.0.0) '@sanity/incompatible-plugin': 1.0.5(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@sanity/mutator': link:packages/@sanity/mutator - '@sanity/ui': 2.11.1(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) + '@sanity/ui': 2.11.2(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) date-fns: 3.6.0 lodash: 4.17.21 lodash-es: 4.17.21 @@ -15026,7 +15026,7 @@ snapshots: '@sanity/code-input@5.1.2(@babel/runtime@7.26.0)(@codemirror/theme-one-dark@6.1.2)(@emotion/is-prop-valid@1.3.1)(codemirror@6.0.1)(react-dom@18.3.1(react@18.3.1))(react-is@19.0.0-rc.1)(react@18.3.1)(sanity@packages+sanity)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': dependencies: '@codemirror/autocomplete': 6.18.4 - '@codemirror/commands': 6.7.1 + '@codemirror/commands': 6.8.0 '@codemirror/lang-html': 6.4.9 '@codemirror/lang-java': 6.0.1 '@codemirror/lang-javascript': 6.2.2 @@ -15037,15 +15037,15 @@ snapshots: '@codemirror/language': 6.10.8 '@codemirror/legacy-modes': 6.4.2 '@codemirror/search': 6.5.8 - '@codemirror/state': 6.5.0 - '@codemirror/view': 6.36.1 + '@codemirror/state': 6.5.1 + '@codemirror/view': 6.36.2 '@juggle/resize-observer': 3.4.0 '@lezer/highlight': 1.2.1 '@sanity/icons': 3.5.7(react@18.3.1) '@sanity/incompatible-plugin': 1.0.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@sanity/ui': 2.11.1(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react-is@19.0.0-rc.1)(react@18.3.1)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) - '@uiw/codemirror-themes': 4.23.7(@codemirror/language@6.10.8)(@codemirror/state@6.5.0)(@codemirror/view@6.36.1) - '@uiw/react-codemirror': 4.23.7(@babel/runtime@7.26.0)(@codemirror/autocomplete@6.18.4)(@codemirror/language@6.10.8)(@codemirror/search@6.5.8)(@codemirror/state@6.5.0)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.36.1)(codemirror@6.0.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@sanity/ui': 2.11.2(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react-is@19.0.0-rc.1)(react@18.3.1)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@uiw/codemirror-themes': 4.23.7(@codemirror/language@6.10.8)(@codemirror/state@6.5.1)(@codemirror/view@6.36.2) + '@uiw/react-codemirror': 4.23.7(@babel/runtime@7.26.0)(@codemirror/autocomplete@6.18.4)(@codemirror/language@6.10.8)(@codemirror/search@6.5.8)(@codemirror/state@6.5.1)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.36.2)(codemirror@6.0.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) sanity: link:packages/sanity @@ -15062,7 +15062,7 @@ snapshots: dependencies: '@sanity/icons': 3.5.7(react@19.0.0) '@sanity/incompatible-plugin': 1.0.5(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@sanity/ui': 2.11.1(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) + '@sanity/ui': 2.11.2(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) react: 19.0.0 react-color: 2.19.3(react@19.0.0) sanity: link:packages/sanity @@ -15081,7 +15081,7 @@ snapshots: uuid: 11.0.4 xstate: 5.19.1 - '@sanity/comlink@2.0.5': + '@sanity/comlink@3.0.0': dependencies: rxjs: 7.8.1 uuid: 11.0.4 @@ -15159,7 +15159,7 @@ snapshots: dependencies: '@sanity/icons': 3.5.7(react@18.3.1) '@sanity/incompatible-plugin': 1.0.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@sanity/ui': 2.11.1(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react-is@19.0.0-rc.1)(react@18.3.1)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@sanity/ui': 2.11.2(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react-is@19.0.0-rc.1)(react@18.3.1)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) react: 18.3.1 sanity: link:packages/sanity styled-components: 6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -15172,7 +15172,7 @@ snapshots: dependencies: '@sanity/icons': 3.5.7(react@19.0.0) '@sanity/incompatible-plugin': 1.0.5(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@sanity/ui': 2.11.1(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) + '@sanity/ui': 2.11.2(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) react: 19.0.0 sanity: link:packages/sanity styled-components: 6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -15231,7 +15231,7 @@ snapshots: dependencies: '@sanity/icons': 3.5.7(react@18.3.1) '@sanity/types': link:packages/@sanity/types - '@sanity/ui': 2.11.1(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@sanity/ui': 2.11.2(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) lodash: 4.17.21 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -15244,7 +15244,7 @@ snapshots: dependencies: '@sanity/icons': 3.5.7(react@18.3.1) '@sanity/types': link:packages/@sanity/types - '@sanity/ui': 2.11.1(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@18.3.1))(react-is@19.0.0-rc.1)(react@18.3.1)(styled-components@6.1.14(react-dom@19.0.0(react@18.3.1))(react@18.3.1)) + '@sanity/ui': 2.11.2(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@18.3.1))(react-is@19.0.0-rc.1)(react@18.3.1)(styled-components@6.1.14(react-dom@19.0.0(react@18.3.1))(react@18.3.1)) lodash: 4.17.21 react: 18.3.1 react-dom: 19.0.0(react@18.3.1) @@ -15309,11 +15309,11 @@ snapshots: transitivePeerDependencies: - debug - '@sanity/pkg-utils@6.13.4(@types/babel__core@7.20.5)(@types/node@22.10.2)(babel-plugin-react-compiler@19.0.0-beta-63e3235-20250105)(debug@4.4.0)(typescript@5.7.3)': + '@sanity/pkg-utils@6.13.4(@types/babel__core@7.20.5)(@types/node@22.10.2)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(debug@4.4.0)(typescript@5.7.3)': dependencies: '@babel/core': 7.26.0 '@babel/preset-typescript': 7.26.0(@babel/core@7.26.0) - '@babel/types': 7.26.3 + '@babel/types': 7.26.5 '@microsoft/api-extractor': 7.48.1(@types/node@22.10.2) '@microsoft/tsdoc-config': 0.17.1 '@optimize-lodash/rollup-plugin': 5.0.0(rollup@4.30.1) @@ -15354,18 +15354,18 @@ snapshots: zod: 3.24.1 zod-validation-error: 3.4.0(zod@3.24.1) optionalDependencies: - babel-plugin-react-compiler: 19.0.0-beta-63e3235-20250105 + babel-plugin-react-compiler: 19.0.0-beta-e552027-20250112 transitivePeerDependencies: - '@types/babel__core' - '@types/node' - debug - supports-color - '@sanity/pkg-utils@6.13.4(@types/babel__core@7.20.5)(@types/node@22.10.2)(babel-plugin-react-compiler@19.0.0-beta-63e3235-20250105)(typescript@5.7.3)': + '@sanity/pkg-utils@6.13.4(@types/babel__core@7.20.5)(@types/node@22.10.2)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(typescript@5.7.3)': dependencies: '@babel/core': 7.26.0 '@babel/preset-typescript': 7.26.0(@babel/core@7.26.0) - '@babel/types': 7.26.3 + '@babel/types': 7.26.5 '@microsoft/api-extractor': 7.48.1(@types/node@22.10.2) '@microsoft/tsdoc-config': 0.17.1 '@optimize-lodash/rollup-plugin': 5.0.0(rollup@4.30.1) @@ -15406,21 +15406,21 @@ snapshots: zod: 3.24.1 zod-validation-error: 3.4.0(zod@3.24.1) optionalDependencies: - babel-plugin-react-compiler: 19.0.0-beta-63e3235-20250105 + babel-plugin-react-compiler: 19.0.0-beta-e552027-20250112 transitivePeerDependencies: - '@types/babel__core' - '@types/node' - debug - supports-color - '@sanity/presentation@1.20.3(@emotion/is-prop-valid@1.3.1)(@sanity/color@3.0.6)(debug@4.4.0)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': + '@sanity/presentation@1.21.1(@emotion/is-prop-valid@1.3.1)(@sanity/color@3.0.6)(debug@4.4.0)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': dependencies: '@sanity/client': 6.24.3(debug@4.4.0) - '@sanity/comlink': 2.0.5 + '@sanity/comlink': 3.0.0 '@sanity/icons': 3.5.7(react@18.3.1) '@sanity/logos': 2.1.13(@sanity/color@3.0.6)(react@18.3.1) - '@sanity/preview-url-secret': 2.0.7(@sanity/client@6.24.3(debug@4.4.0)) - '@sanity/ui': 2.11.1(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@sanity/preview-url-secret': 2.1.0(@sanity/client@6.24.3(debug@4.4.0)) + '@sanity/ui': 2.11.2(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) '@sanity/uuid': 3.0.2 fast-deep-equal: 3.1.3 framer-motion: 11.16.1(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -15451,7 +15451,7 @@ snapshots: '@sanity/client': 6.24.3(debug@4.4.0) '@sanity/uuid': 3.0.2 - '@sanity/preview-url-secret@2.0.7(@sanity/client@6.24.3(debug@4.4.0))': + '@sanity/preview-url-secret@2.1.0(@sanity/client@6.24.3(debug@4.4.0))': dependencies: '@sanity/client': 6.24.3(debug@4.4.0) '@sanity/uuid': 3.0.2 @@ -15482,7 +15482,7 @@ snapshots: dependencies: '@actions/core': 1.11.1 '@actions/github': 6.0.0 - '@sanity/pkg-utils': 6.13.4(@types/babel__core@7.20.5)(@types/node@22.10.2)(babel-plugin-react-compiler@19.0.0-beta-63e3235-20250105)(debug@4.4.0)(typescript@5.7.3) + '@sanity/pkg-utils': 6.13.4(@types/babel__core@7.20.5)(@types/node@22.10.2)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(debug@4.4.0)(typescript@5.7.3) yaml: 2.6.1 transitivePeerDependencies: - '@types/babel__core' @@ -15501,7 +15501,7 @@ snapshots: transitivePeerDependencies: - debug - '@sanity/tsdoc@1.0.169(@emotion/is-prop-valid@1.3.1)(@types/babel__core@7.20.5)(@types/node@22.10.2)(babel-plugin-react-compiler@19.0.0-beta-63e3235-20250105)(debug@4.4.0)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)(sanity@packages+sanity)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(terser@5.37.0)(yaml@2.6.1)': + '@sanity/tsdoc@1.0.169(@emotion/is-prop-valid@1.3.1)(@types/babel__core@7.20.5)(@types/node@22.10.2)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(debug@4.4.0)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)(sanity@packages+sanity)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(terser@5.37.0)(yaml@2.6.1)': dependencies: '@microsoft/api-extractor': 7.49.0(@types/node@22.10.2) '@microsoft/api-extractor-model': 7.30.1(@types/node@22.10.2) @@ -15512,8 +15512,8 @@ snapshots: '@sanity/client': 6.24.3(debug@4.4.0) '@sanity/color': 3.0.6 '@sanity/icons': 3.5.7(react@18.3.1) - '@sanity/pkg-utils': 6.13.4(@types/babel__core@7.20.5)(@types/node@22.10.2)(babel-plugin-react-compiler@19.0.0-beta-63e3235-20250105)(debug@4.4.0)(typescript@5.7.3) - '@sanity/ui': 2.11.1(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@sanity/pkg-utils': 6.13.4(@types/babel__core@7.20.5)(@types/node@22.10.2)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(debug@4.4.0)(typescript@5.7.3) + '@sanity/ui': 2.11.2(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) '@types/cpx': 1.5.5 '@vitejs/plugin-react': 4.3.4(vite@6.0.7(@types/node@22.10.2)(terser@5.37.0)(yaml@2.6.1)) cac: 6.7.14 @@ -15559,7 +15559,7 @@ snapshots: - tsx - yaml - '@sanity/tsdoc@1.0.169(@emotion/is-prop-valid@1.3.1)(@types/babel__core@7.20.5)(@types/node@22.10.2)(babel-plugin-react-compiler@19.0.0-beta-63e3235-20250105)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(sanity@packages+sanity)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(terser@5.37.0)(yaml@2.6.1)': + '@sanity/tsdoc@1.0.169(@emotion/is-prop-valid@1.3.1)(@types/babel__core@7.20.5)(@types/node@22.10.2)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(sanity@packages+sanity)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(terser@5.37.0)(yaml@2.6.1)': dependencies: '@microsoft/api-extractor': 7.49.0(@types/node@22.10.2) '@microsoft/api-extractor-model': 7.30.1(@types/node@22.10.2) @@ -15570,8 +15570,8 @@ snapshots: '@sanity/client': 6.24.3(debug@4.4.0) '@sanity/color': 3.0.6 '@sanity/icons': 3.5.7(react@19.0.0) - '@sanity/pkg-utils': 6.13.4(@types/babel__core@7.20.5)(@types/node@22.10.2)(babel-plugin-react-compiler@19.0.0-beta-63e3235-20250105)(typescript@5.7.3) - '@sanity/ui': 2.11.1(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) + '@sanity/pkg-utils': 6.13.4(@types/babel__core@7.20.5)(@types/node@22.10.2)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(typescript@5.7.3) + '@sanity/ui': 2.11.2(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) '@types/cpx': 1.5.5 '@vitejs/plugin-react': 4.3.4(vite@6.0.7(@types/node@22.10.2)(terser@5.37.0)(yaml@2.6.1)) cac: 6.7.14 @@ -15624,10 +15624,10 @@ snapshots: transitivePeerDependencies: - debug - '@sanity/ui-workshop@1.2.11(@sanity/icons@3.5.7(react@18.3.1))(@sanity/ui@2.11.1(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@types/node@22.10.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(terser@5.37.0)': + '@sanity/ui-workshop@1.2.11(@sanity/icons@3.5.7(react@18.3.1))(@sanity/ui@2.11.2(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@types/node@22.10.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(terser@5.37.0)': dependencies: '@sanity/icons': 3.5.7(react@18.3.1) - '@sanity/ui': 2.11.1(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@sanity/ui': 2.11.2(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) '@vitejs/plugin-react': 4.3.4(vite@4.5.5(@types/node@22.10.2)(terser@5.37.0)) axe-core: 4.10.2 cac: 6.7.14 @@ -15655,10 +15655,10 @@ snapshots: - supports-color - terser - '@sanity/ui-workshop@1.2.11(@sanity/icons@3.5.7(react@19.0.0))(@sanity/ui@2.11.1(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@types/node@22.10.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(terser@5.37.0)': + '@sanity/ui-workshop@1.2.11(@sanity/icons@3.5.7(react@19.0.0))(@sanity/ui@2.11.2(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@types/node@22.10.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(terser@5.37.0)': dependencies: '@sanity/icons': 3.5.7(react@19.0.0) - '@sanity/ui': 2.11.1(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) + '@sanity/ui': 2.11.2(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) '@vitejs/plugin-react': 4.3.4(vite@4.5.5(@types/node@22.10.2)(terser@5.37.0)) axe-core: 4.10.2 cac: 6.7.14 @@ -15686,7 +15686,7 @@ snapshots: - supports-color - terser - '@sanity/ui@2.11.1(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': + '@sanity/ui@2.11.2(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': dependencies: '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@sanity/color': 3.0.6 @@ -15703,7 +15703,7 @@ snapshots: transitivePeerDependencies: - '@emotion/is-prop-valid' - '@sanity/ui@2.11.1(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react-is@19.0.0-rc.1)(react@18.3.1)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': + '@sanity/ui@2.11.2(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react-is@19.0.0-rc.1)(react@18.3.1)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': dependencies: '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@sanity/color': 3.0.6 @@ -15720,7 +15720,7 @@ snapshots: transitivePeerDependencies: - '@emotion/is-prop-valid' - '@sanity/ui@2.11.1(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@18.3.1))(react-is@19.0.0-rc.1)(react@18.3.1)(styled-components@6.1.14(react-dom@19.0.0(react@18.3.1))(react@18.3.1))': + '@sanity/ui@2.11.2(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@18.3.1))(react-is@19.0.0-rc.1)(react@18.3.1)(styled-components@6.1.14(react-dom@19.0.0(react@18.3.1))(react@18.3.1))': dependencies: '@floating-ui/react-dom': 2.1.2(react-dom@19.0.0(react@18.3.1))(react@18.3.1) '@sanity/color': 3.0.6 @@ -15737,7 +15737,7 @@ snapshots: transitivePeerDependencies: - '@emotion/is-prop-valid' - '@sanity/ui@2.11.1(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0))': + '@sanity/ui@2.11.2(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0))': dependencies: '@floating-ui/react-dom': 2.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@sanity/color': 3.0.6 @@ -15770,7 +15770,7 @@ snapshots: '@types/uuid': 8.3.4 uuid: 8.3.2 - '@sanity/visual-editing@2.11.5(@sanity/client@6.24.3)(next@15.1.3(@babel/core@7.26.0)(@playwright/test@1.49.1)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@19.0.0-beta-63e3235-20250105)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@sanity/visual-editing@2.11.5(@sanity/client@6.24.3)(next@15.1.3(@babel/core@7.26.0)(@playwright/test@1.49.1)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@sanity/comlink': 2.0.4 '@sanity/mutate': 0.11.0-canary.4(xstate@5.19.1) @@ -15786,7 +15786,7 @@ snapshots: xstate: 5.19.1 optionalDependencies: '@sanity/client': 6.24.3(debug@4.4.0) - next: 15.1.3(@babel/core@7.26.0)(@playwright/test@1.49.1)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@19.0.0-beta-63e3235-20250105)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + next: 15.1.3(@babel/core@7.26.0)(@playwright/test@1.49.1)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - debug @@ -16063,15 +16063,15 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.26.3 - '@babel/types': 7.26.3 + '@babel/parser': 7.26.5 + '@babel/types': 7.26.5 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.6 '@types/babel__generator@7.6.8': dependencies: - '@babel/types': 7.26.3 + '@babel/types': 7.26.5 '@types/babel__register@7.17.3': dependencies: @@ -16079,12 +16079,12 @@ snapshots: '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.26.3 - '@babel/types': 7.26.3 + '@babel/parser': 7.26.5 + '@babel/types': 7.26.5 '@types/babel__traverse@7.20.6': dependencies: - '@babel/types': 7.26.3 + '@babel/types': 7.26.5 '@types/caseless@0.12.5': {} @@ -16377,30 +16377,30 @@ snapshots: '@typescript-eslint/types': 7.18.0 eslint-visitor-keys: 3.4.3 - '@uiw/codemirror-extensions-basic-setup@4.23.7(@codemirror/autocomplete@6.18.4)(@codemirror/commands@6.7.1)(@codemirror/language@6.10.8)(@codemirror/lint@6.8.4)(@codemirror/search@6.5.8)(@codemirror/state@6.5.0)(@codemirror/view@6.36.1)': + '@uiw/codemirror-extensions-basic-setup@4.23.7(@codemirror/autocomplete@6.18.4)(@codemirror/commands@6.8.0)(@codemirror/language@6.10.8)(@codemirror/lint@6.8.4)(@codemirror/search@6.5.8)(@codemirror/state@6.5.1)(@codemirror/view@6.36.2)': dependencies: '@codemirror/autocomplete': 6.18.4 - '@codemirror/commands': 6.7.1 + '@codemirror/commands': 6.8.0 '@codemirror/language': 6.10.8 '@codemirror/lint': 6.8.4 '@codemirror/search': 6.5.8 - '@codemirror/state': 6.5.0 - '@codemirror/view': 6.36.1 + '@codemirror/state': 6.5.1 + '@codemirror/view': 6.36.2 - '@uiw/codemirror-themes@4.23.7(@codemirror/language@6.10.8)(@codemirror/state@6.5.0)(@codemirror/view@6.36.1)': + '@uiw/codemirror-themes@4.23.7(@codemirror/language@6.10.8)(@codemirror/state@6.5.1)(@codemirror/view@6.36.2)': dependencies: '@codemirror/language': 6.10.8 - '@codemirror/state': 6.5.0 - '@codemirror/view': 6.36.1 + '@codemirror/state': 6.5.1 + '@codemirror/view': 6.36.2 - '@uiw/react-codemirror@4.23.7(@babel/runtime@7.26.0)(@codemirror/autocomplete@6.18.4)(@codemirror/language@6.10.8)(@codemirror/lint@6.8.4)(@codemirror/search@6.5.8)(@codemirror/state@6.5.0)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.36.1)(codemirror@6.0.1)(react-dom@19.0.0(react@18.3.1))(react@18.3.1)': + '@uiw/react-codemirror@4.23.7(@babel/runtime@7.26.0)(@codemirror/autocomplete@6.18.4)(@codemirror/language@6.10.8)(@codemirror/lint@6.8.4)(@codemirror/search@6.5.8)(@codemirror/state@6.5.1)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.36.2)(codemirror@6.0.1)(react-dom@19.0.0(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.0 - '@codemirror/commands': 6.7.1 - '@codemirror/state': 6.5.0 + '@codemirror/commands': 6.8.0 + '@codemirror/state': 6.5.1 '@codemirror/theme-one-dark': 6.1.2 - '@codemirror/view': 6.36.1 - '@uiw/codemirror-extensions-basic-setup': 4.23.7(@codemirror/autocomplete@6.18.4)(@codemirror/commands@6.7.1)(@codemirror/language@6.10.8)(@codemirror/lint@6.8.4)(@codemirror/search@6.5.8)(@codemirror/state@6.5.0)(@codemirror/view@6.36.1) + '@codemirror/view': 6.36.2 + '@uiw/codemirror-extensions-basic-setup': 4.23.7(@codemirror/autocomplete@6.18.4)(@codemirror/commands@6.8.0)(@codemirror/language@6.10.8)(@codemirror/lint@6.8.4)(@codemirror/search@6.5.8)(@codemirror/state@6.5.1)(@codemirror/view@6.36.2) codemirror: 6.0.1 react: 18.3.1 react-dom: 19.0.0(react@18.3.1) @@ -16410,14 +16410,14 @@ snapshots: - '@codemirror/lint' - '@codemirror/search' - '@uiw/react-codemirror@4.23.7(@babel/runtime@7.26.0)(@codemirror/autocomplete@6.18.4)(@codemirror/language@6.10.8)(@codemirror/search@6.5.8)(@codemirror/state@6.5.0)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.36.1)(codemirror@6.0.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@uiw/react-codemirror@4.23.7(@babel/runtime@7.26.0)(@codemirror/autocomplete@6.18.4)(@codemirror/language@6.10.8)(@codemirror/search@6.5.8)(@codemirror/state@6.5.1)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.36.2)(codemirror@6.0.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.0 - '@codemirror/commands': 6.7.1 - '@codemirror/state': 6.5.0 + '@codemirror/commands': 6.8.0 + '@codemirror/state': 6.5.1 '@codemirror/theme-one-dark': 6.1.2 - '@codemirror/view': 6.36.1 - '@uiw/codemirror-extensions-basic-setup': 4.23.7(@codemirror/autocomplete@6.18.4)(@codemirror/commands@6.7.1)(@codemirror/language@6.10.8)(@codemirror/lint@6.8.4)(@codemirror/search@6.5.8)(@codemirror/state@6.5.0)(@codemirror/view@6.36.1) + '@codemirror/view': 6.36.2 + '@uiw/codemirror-extensions-basic-setup': 4.23.7(@codemirror/autocomplete@6.18.4)(@codemirror/commands@6.8.0)(@codemirror/language@6.10.8)(@codemirror/lint@6.8.4)(@codemirror/search@6.5.8)(@codemirror/state@6.5.1)(@codemirror/view@6.36.2) codemirror: 6.0.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -16556,7 +16556,7 @@ snapshots: '@vue/compiler-core@3.5.13': dependencies: - '@babel/parser': 7.26.3 + '@babel/parser': 7.26.5 '@vue/shared': 3.5.13 entities: 4.5.0 estree-walker: 2.0.2 @@ -16569,7 +16569,7 @@ snapshots: '@vue/compiler-sfc@3.5.13': dependencies: - '@babel/parser': 7.26.3 + '@babel/parser': 7.26.5 '@vue/compiler-core': 3.5.13 '@vue/compiler-dom': 3.5.13 '@vue/compiler-ssr': 3.5.13 @@ -16941,9 +16941,9 @@ snapshots: transitivePeerDependencies: - supports-color - babel-plugin-react-compiler@19.0.0-beta-63e3235-20250105: + babel-plugin-react-compiler@19.0.0-beta-e552027-20250112: dependencies: - '@babel/types': 7.26.3 + '@babel/types': 7.26.5 babel-plugin-styled-components@2.1.4(@babel/core@7.26.0)(styled-components@5.3.11(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react-is@19.0.0-rc.1)(react@18.3.1))(supports-color@5.5.0): dependencies: @@ -17105,7 +17105,7 @@ snapshots: browserslist@4.24.4: dependencies: - caniuse-lite: 1.0.30001690 + caniuse-lite: 1.0.30001692 electron-to-chromium: 1.5.74 node-releases: 2.0.19 update-browserslist-db: 1.1.1(browserslist@4.24.4) @@ -17214,7 +17214,7 @@ snapshots: camelize@1.0.1: {} - caniuse-lite@1.0.30001690: {} + caniuse-lite@1.0.30001692: {} castable-video@1.0.10: dependencies: @@ -17401,12 +17401,12 @@ snapshots: codemirror@6.0.1: dependencies: '@codemirror/autocomplete': 6.18.4 - '@codemirror/commands': 6.7.1 + '@codemirror/commands': 6.8.0 '@codemirror/language': 6.10.8 '@codemirror/lint': 6.8.4 '@codemirror/search': 6.5.8 - '@codemirror/state': 6.5.0 - '@codemirror/view': 6.36.1 + '@codemirror/state': 6.5.1 + '@codemirror/view': 6.36.2 collection-visit@1.0.0: dependencies: @@ -17875,8 +17875,8 @@ snapshots: depcheck@1.4.7: dependencies: - '@babel/parser': 7.26.3 - '@babel/traverse': 7.26.4 + '@babel/parser': 7.26.5 + '@babel/traverse': 7.26.5 '@vue/compiler-sfc': 3.5.13 callsite: 1.0.0 camelcase: 6.3.0 @@ -18037,7 +18037,7 @@ snapshots: ee-first@1.1.1: {} - effect@3.12.1: + effect@3.12.2: dependencies: fast-check: 3.23.2 @@ -18522,10 +18522,10 @@ snapshots: optionalDependencies: eslint-config-prettier: 9.1.0(eslint@8.57.1) - eslint-plugin-react-compiler@19.0.0-beta-63e3235-20250105(eslint@8.57.1): + eslint-plugin-react-compiler@19.0.0-beta-e552027-20250112(eslint@8.57.1): dependencies: '@babel/core': 7.26.0 - '@babel/parser': 7.26.3 + '@babel/parser': 7.26.5 '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.26.0) eslint: 8.57.1 hermes-parser: 0.25.1 @@ -20582,8 +20582,8 @@ snapshots: magicast@0.3.5: dependencies: - '@babel/parser': 7.26.3 - '@babel/types': 7.26.3 + '@babel/parser': 7.26.5 + '@babel/types': 7.26.5 source-map-js: 1.2.1 make-dir@1.3.0: @@ -20960,13 +20960,13 @@ snapshots: neo-async@2.6.2: {} - next@15.1.3(@babel/core@7.26.0)(@playwright/test@1.49.1)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@19.0.0-beta-63e3235-20250105)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + next@15.1.3(@babel/core@7.26.0)(@playwright/test@1.49.1)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: '@next/env': 15.1.3 '@swc/counter': 0.1.3 '@swc/helpers': 0.5.15 busboy: 1.6.0 - caniuse-lite: 1.0.30001690 + caniuse-lite: 1.0.30001692 postcss: 8.4.31 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) @@ -20981,7 +20981,7 @@ snapshots: '@next/swc-win32-arm64-msvc': 15.1.3 '@next/swc-win32-x64-msvc': 15.1.3 '@playwright/test': 1.49.1 - babel-plugin-react-compiler: 19.0.0-beta-63e3235-20250105 + babel-plugin-react-compiler: 19.0.0-beta-e552027-20250112 sharp: 0.33.5 transitivePeerDependencies: - '@babel/core' @@ -22015,7 +22015,7 @@ snapshots: react-refresh@0.14.2: {} - react-rx@4.1.12(react@18.3.1)(rxjs@7.8.1): + react-rx@4.1.14(react@18.3.1)(rxjs@7.8.1): dependencies: observable-callback: 1.0.3(rxjs@7.8.1) react: 18.3.1 @@ -22023,7 +22023,7 @@ snapshots: rxjs: 7.8.1 use-effect-event: 1.0.2(react@18.3.1) - react-rx@4.1.12(react@19.0.0)(rxjs@7.8.1): + react-rx@4.1.14(react@19.0.0)(rxjs@7.8.1): dependencies: observable-callback: 1.0.3(rxjs@7.8.1) react: 19.0.0 @@ -22522,12 +22522,12 @@ snapshots: dependencies: '@sanity/diff-match-patch': 3.1.2 - sanity-plugin-hotspot-array@2.1.2(@emotion/is-prop-valid@1.3.1)(@sanity/ui@2.11.1(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sanity@packages+sanity)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)): + sanity-plugin-hotspot-array@2.1.2(@emotion/is-prop-valid@1.3.1)(@sanity/ui@2.11.2(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sanity@packages+sanity)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)): dependencies: '@sanity/asset-utils': 2.2.1 '@sanity/image-url': 1.1.0 '@sanity/incompatible-plugin': 1.0.5(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@sanity/ui': 2.11.1(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) + '@sanity/ui': 2.11.2(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) '@sanity/util': link:packages/@sanity/util '@types/lodash-es': 4.17.12 framer-motion: 11.16.1(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -22542,7 +22542,7 @@ snapshots: sanity-plugin-markdown@5.0.0(@emotion/is-prop-valid@1.3.1)(easymde@2.18.0)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(sanity@packages+sanity)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)): dependencies: '@sanity/incompatible-plugin': 1.0.5(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@sanity/ui': 2.11.1(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) + '@sanity/ui': 2.11.2(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) easymde: 2.18.0 react: 19.0.0 react-simplemde-editor: 5.2.0(easymde@2.18.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -22553,12 +22553,12 @@ snapshots: - react-dom - react-is - sanity-plugin-media@2.3.2(@sanity/ui@2.11.1(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@types/react@19.0.3)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sanity@packages+sanity)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)): + sanity-plugin-media@2.3.2(@sanity/ui@2.11.2(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@types/react@19.0.3)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sanity@packages+sanity)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)): dependencies: '@hookform/resolvers': 3.9.1(react-hook-form@7.54.1(react@19.0.0)) '@reduxjs/toolkit': 1.9.7(react-redux@7.2.9(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0) '@sanity/incompatible-plugin': 1.0.5(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@sanity/ui': 2.11.1(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) + '@sanity/ui': 2.11.2(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) '@sanity/uuid': 3.0.2 '@tanem/react-nprogress': 5.0.53(react-dom@19.0.0(react@19.0.0))(react@19.0.0) copy-to-clipboard: 3.3.3 @@ -22594,14 +22594,14 @@ snapshots: '@mux/upchunk': 3.4.0 '@sanity/icons': 3.5.7(react@19.0.0) '@sanity/incompatible-plugin': 1.0.5(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@sanity/ui': 2.11.1(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) + '@sanity/ui': 2.11.2(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react-is@19.0.0-rc.1)(react@19.0.0)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) '@sanity/uuid': 3.0.2 iso-639-1: 3.1.3 jsonwebtoken-esm: 1.0.5 lodash: 4.17.21 react: 19.0.0 react-is: 19.0.0-rc.1 - react-rx: 4.1.12(react@19.0.0)(rxjs@7.8.1) + react-rx: 4.1.14(react@19.0.0)(rxjs@7.8.1) rxjs: 7.8.1 sanity: link:packages/sanity scroll-into-view-if-needed: 3.1.0 @@ -23245,7 +23245,7 @@ snapshots: styled-components@5.3.11(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react-is@19.0.0-rc.1)(react@18.3.1): dependencies: '@babel/helper-module-imports': 7.25.9(supports-color@5.5.0) - '@babel/traverse': 7.26.4(supports-color@5.5.0) + '@babel/traverse': 7.26.5(supports-color@5.5.0) '@emotion/is-prop-valid': 1.3.1 '@emotion/stylis': 0.8.5 '@emotion/unitless': 0.7.5