diff --git a/.eslintignore.react-compiler b/.eslintignore.react-compiler index 90aa9428070..41f084b2cee 100644 --- a/.eslintignore.react-compiler +++ b/.eslintignore.react-compiler @@ -19,7 +19,6 @@ dev/test-studio/workshop/scopes.js dev/design-studio/* dev/embedded-studio/* dev/starter-cra-studio/* -dev/starter-next-studio/* dev/starter-studio/* dev/strict-studio/* dev/studio-e2e-studio/* diff --git a/dev/depcheck-test/package.json b/dev/depcheck-test/package.json index 97766669cc4..0e8d6a1a8d1 100644 --- a/dev/depcheck-test/package.json +++ b/dev/depcheck-test/package.json @@ -1,6 +1,6 @@ { "name": "depcheck-test", - "version": "3.68.3", + "version": "3.69.0", "private": true, "license": "MIT", "author": "Sanity.io " diff --git a/dev/design-studio/package.json b/dev/design-studio/package.json index 98abbb9c726..1bdb16ac2e7 100644 --- a/dev/design-studio/package.json +++ b/dev/design-studio/package.json @@ -1,6 +1,6 @@ { "name": "design-studio", - "version": "3.68.3", + "version": "3.69.0", "private": true, "description": "Sanity Design Studio", "keywords": [ @@ -31,8 +31,8 @@ "start": "../.bin/sanity start --port 4000" }, "dependencies": { - "@sanity/icons": "^3.5.6", - "@sanity/ui": "^2.10.14", + "@sanity/icons": "^3.5.7", + "@sanity/ui": "^2.11.1", "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 b1c910a0986..cb8ea3eb0db 100644 --- a/dev/embedded-studio/package.json +++ b/dev/embedded-studio/package.json @@ -1,6 +1,6 @@ { "name": "embedded-studio", - "version": "3.68.3", + "version": "3.69.0", "private": true, "scripts": { "build": "tsc && vite build && sanity manifest extract", @@ -8,15 +8,15 @@ "preview": "vite preview" }, "dependencies": { - "@sanity/ui": "^2.10.14", + "@sanity/ui": "^2.11.1", "react": "^18.3.1", "react-dom": "^18.3.1", "sanity": "workspace:*", "styled-components": "^6.1.0" }, "devDependencies": { - "@types/react": "^18.3.18", - "@types/react-dom": "^18.3.5", + "@types/react": "^19.0.3", + "@types/react-dom": "^19.0.2", "@vitejs/plugin-react": "^4.3.4", "typescript": "5.7.2", "vite": "^5.4.11" diff --git a/dev/page-building-studio/package.json b/dev/page-building-studio/package.json index b047509064f..6cf08824e5e 100644 --- a/dev/page-building-studio/package.json +++ b/dev/page-building-studio/package.json @@ -1,6 +1,6 @@ { "name": "sanity-page-building-studio", - "version": "3.68.3", + "version": "3.69.0", "private": true, "license": "MIT", "author": "Sanity.io ", @@ -13,7 +13,7 @@ }, "dependencies": { "@sanity/vision": "workspace:*", - "babel-plugin-react-compiler": "19.0.0-beta-55955c9-20241229", + "babel-plugin-react-compiler": "19.0.0-beta-63e3235-20250105", "react": "^18.2.0", "react-compiler-runtime": "19.0.0-beta-55955c9-20241229", "react-dom": "^18.2.0", diff --git a/dev/starter-next-studio/.depcheckignore.json b/dev/starter-next-studio/.depcheckignore.json deleted file mode 100644 index 33db52f0a1e..00000000000 --- a/dev/starter-next-studio/.depcheckignore.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "ignore": ["styled-components", "react", "react-dom", "sanity", "eslint-config-next"] -} diff --git a/dev/starter-next-studio/.eslintrc b/dev/starter-next-studio/.eslintrc deleted file mode 100644 index b1fe994d14a..00000000000 --- a/dev/starter-next-studio/.eslintrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": ["@sanity/eslint-config-studio"] -} diff --git a/dev/starter-next-studio/.gitignore b/dev/starter-next-studio/.gitignore deleted file mode 100644 index f0f5197150f..00000000000 --- a/dev/starter-next-studio/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -.next - -public/static/*.create-schema.json -public/static/create-manifest.json diff --git a/dev/starter-next-studio/components/Studio.tsx b/dev/starter-next-studio/components/Studio.tsx deleted file mode 100644 index 11aa0e3ce65..00000000000 --- a/dev/starter-next-studio/components/Studio.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import {Studio} from 'sanity' - -import config from '../sanity.config' - -const wrapperStyles = {height: '100vh', width: '100vw'} - -export default function StudioRoot({basePath}: {basePath: string}) { - return ( -
- -
- ) -} diff --git a/dev/starter-next-studio/next-env.d.ts b/dev/starter-next-studio/next-env.d.ts deleted file mode 100644 index 4f11a03dc6c..00000000000 --- a/dev/starter-next-studio/next-env.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -/// -/// - -// NOTE: This file should not be edited -// see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/dev/starter-next-studio/next.config.js b/dev/starter-next-studio/next.config.js deleted file mode 100644 index 5b6982f8a8d..00000000000 --- a/dev/starter-next-studio/next.config.js +++ /dev/null @@ -1,16 +0,0 @@ -module.exports = { - 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', - }, - async redirects() { - return [ - { - // the studio will redirect to /structure after load, we do it here so it's already done before load - source: '/studio', - destination: '/studio/structure', - permanent: false, - }, - ] - }, -} diff --git a/dev/starter-next-studio/package.json b/dev/starter-next-studio/package.json deleted file mode 100644 index 1077e9a4e59..00000000000 --- a/dev/starter-next-studio/package.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "sanity-starter-next-studio", - "version": "3.68.3", - "private": true, - "license": "MIT", - "author": "Sanity.io ", - "scripts": { - "build": "sanity manifest extract --path public/static && next build", - "dev": "next dev", - "start": "next start" - }, - "dependencies": { - "next": "^14.0.0", - "react": "^18.3.1", - "react-dom": "^18.3.1", - "sanity": "workspace:*", - "styled-components": "^6.1.0" - } -} diff --git a/dev/starter-next-studio/pages/_app.tsx b/dev/starter-next-studio/pages/_app.tsx deleted file mode 100644 index 4ab91d94233..00000000000 --- a/dev/starter-next-studio/pages/_app.tsx +++ /dev/null @@ -1,8 +0,0 @@ -// eslint-disable-next-line import/no-unassigned-import -import '../reset.css' - -import {type AppProps} from 'next/app' - -export default function App({Component, pageProps}: AppProps) { - return -} diff --git a/dev/starter-next-studio/pages/index.tsx b/dev/starter-next-studio/pages/index.tsx deleted file mode 100644 index 4d1be08b6cd..00000000000 --- a/dev/starter-next-studio/pages/index.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import Link from 'next/link' - -export default function IndexPage() { - return ( - - - Launch Sanity Studio inside Next.js! - - - ) -} diff --git a/dev/starter-next-studio/pages/studio/[[...tool]].tsx b/dev/starter-next-studio/pages/studio/[[...tool]].tsx deleted file mode 100644 index ffa257e98f3..00000000000 --- a/dev/starter-next-studio/pages/studio/[[...tool]].tsx +++ /dev/null @@ -1,11 +0,0 @@ -import {useRouter} from 'next/router' -import {useState} from 'react' - -import Studio from '../../components/Studio' - -export default function StudioPage() { - const router = useRouter() - const [basePath] = useState(() => router.route.split('/[[...tool]]')?.[0]) - - return -} diff --git a/dev/starter-next-studio/reset.css b/dev/starter-next-studio/reset.css deleted file mode 100644 index 78f6b1158d4..00000000000 --- a/dev/starter-next-studio/reset.css +++ /dev/null @@ -1,9 +0,0 @@ -html, -body, -#__next { - margin: 0; - padding: 0; - height: 100%; - width: 100%; - overscroll-behavior: none; -} diff --git a/dev/starter-next-studio/sanity.cli.ts b/dev/starter-next-studio/sanity.cli.ts deleted file mode 100644 index fac247bf8cf..00000000000 --- a/dev/starter-next-studio/sanity.cli.ts +++ /dev/null @@ -1,8 +0,0 @@ -import {defineCliConfig} from 'sanity/cli' - -export default defineCliConfig({ - api: { - projectId: 'ppsg7ml5', - dataset: 'test', - }, -}) diff --git a/dev/starter-next-studio/sanity.config.ts b/dev/starter-next-studio/sanity.config.ts deleted file mode 100644 index 102cbb15f94..00000000000 --- a/dev/starter-next-studio/sanity.config.ts +++ /dev/null @@ -1,25 +0,0 @@ -import {defineConfig} from 'sanity' -import {structureTool} from 'sanity/structure' - -export default defineConfig({ - plugins: [structureTool()], - title: 'Next.js Starter', - projectId: 'ppsg7ml5', - dataset: 'test', - schema: { - types: [ - { - type: 'document', - name: 'post', - title: 'Post', - fields: [ - { - type: 'string', - name: 'title', - title: 'Title', - }, - ], - }, - ], - }, -}) diff --git a/dev/starter-next-studio/tsconfig.json b/dev/starter-next-studio/tsconfig.json deleted file mode 100644 index 6a0ffdc7f4c..00000000000 --- a/dev/starter-next-studio/tsconfig.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "compilerOptions": { - "target": "ES2017", - "lib": ["dom", "dom.iterable", "esnext"], - "allowJs": true, - "skipLibCheck": true, - "strict": false, - "forceConsistentCasingInFileNames": true, - "noEmit": true, - "incremental": true, - "module": "Preserve", - "moduleDetection": "force", - "isolatedModules": true, - "jsx": "preserve" - }, - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"], - "exclude": ["node_modules"] -} diff --git a/dev/starter-studio/package.json b/dev/starter-studio/package.json index b8a62324d10..8e984b7c1be 100644 --- a/dev/starter-studio/package.json +++ b/dev/starter-studio/package.json @@ -1,6 +1,6 @@ { "name": "sanity-starter-studio", - "version": "3.68.3", + "version": "3.69.0", "private": true, "license": "MIT", "author": "Sanity.io ", @@ -12,7 +12,7 @@ "start": "../.bin/sanity start --port 3337" }, "dependencies": { - "babel-plugin-react-compiler": "19.0.0-beta-55955c9-20241229", + "babel-plugin-react-compiler": "19.0.0-beta-63e3235-20250105", "react": "^18.3.1", "react-compiler-runtime": "19.0.0-beta-55955c9-20241229", "react-dom": "^18.3.1", diff --git a/dev/strict-studio/package.json b/dev/strict-studio/package.json index 1a60c265922..05600b3ab46 100644 --- a/dev/strict-studio/package.json +++ b/dev/strict-studio/package.json @@ -1,6 +1,6 @@ { "name": "sanity-strict-studio", - "version": "3.68.3", + "version": "3.69.0", "private": true, "license": "MIT", "author": "Sanity.io ", diff --git a/dev/studio-e2e-testing/package.json b/dev/studio-e2e-testing/package.json index 5c9670ee629..05fab2c2b1b 100644 --- a/dev/studio-e2e-testing/package.json +++ b/dev/studio-e2e-testing/package.json @@ -1,6 +1,6 @@ { "name": "studio-e2e-testing", - "version": "3.68.3", + "version": "3.69.0", "private": true, "keywords": [ "sanity" @@ -17,13 +17,12 @@ "dependencies": { "@sanity/color-input": "^4.0.1", "@sanity/google-maps-input": "^4.0.0", - "@sanity/icons": "^3.5.6", - "@sanity/ui": "^2.10.14", - "@sanity/vision": "3.68.3", - "babel-plugin-react-compiler": "19.0.0-beta-55955c9-20241229", - "react": "^18.3.1", - "react-compiler-runtime": "19.0.0-beta-55955c9-20241229", - "react-dom": "^18.3.1", + "@sanity/icons": "^3.5.7", + "@sanity/ui": "^2.11.1", + "@sanity/vision": "3.69.0", + "babel-plugin-react-compiler": "19.0.0-beta-63e3235-20250105", + "react": "^19.0.0", + "react-dom": "^19.0.0", "sanity": "workspace:*", "sanity-plugin-markdown": "^5.0.0", "sanity-plugin-media": "^2.3.1", diff --git a/dev/studio-e2e-testing/sanity.cli.ts b/dev/studio-e2e-testing/sanity.cli.ts index 95205d33185..f832bcab27e 100644 --- a/dev/studio-e2e-testing/sanity.cli.ts +++ b/dev/studio-e2e-testing/sanity.cli.ts @@ -9,7 +9,7 @@ export default defineCliConfig({ projectId: process.env.SANITY_E2E_PROJECT_ID, dataset: process.env.SANITY_E2E_DATASET, }, - reactCompiler: {target: '18'}, + reactCompiler: {target: '19'}, vite: { define: { 'process.env.SANITY_E2E_PROJECT_ID': JSON.stringify(process.env.SANITY_E2E_PROJECT_ID), diff --git a/dev/test-create-integration-studio/package.json b/dev/test-create-integration-studio/package.json index 68eda8931a6..e78263b04ef 100644 --- a/dev/test-create-integration-studio/package.json +++ b/dev/test-create-integration-studio/package.json @@ -1,6 +1,6 @@ { "name": "test-create-integration-studio", - "version": "3.68.3", + "version": "3.69.0", "private": true, "license": "MIT", "author": "Sanity.io ", diff --git a/dev/test-next-studio/.depcheckignore.json b/dev/test-next-studio/.depcheckignore.json deleted file mode 100644 index b417fad3e91..00000000000 --- a/dev/test-next-studio/.depcheckignore.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "//": "https://github.com/depcheck/depcheck/pull/756", - "ignore": [ - "styled-components", - "react", - "react-dom", - "react-is", - "sanity", - "eslint-config-next", - "sanity-test-studio", - "sanity" - ] -} diff --git a/dev/test-next-studio/.depcheckrc.json b/dev/test-next-studio/.depcheckrc.json deleted file mode 100644 index 6834a373eee..00000000000 --- a/dev/test-next-studio/.depcheckrc.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "ignores": ["@sanity/vision", "typescript", "react-is"] -} diff --git a/dev/test-next-studio/.gitignore b/dev/test-next-studio/.gitignore deleted file mode 100644 index 55cf473c032..00000000000 --- a/dev/test-next-studio/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -.next -.vscode diff --git a/dev/test-next-studio/app/GlobalStyle.tsx b/dev/test-next-studio/app/GlobalStyle.tsx deleted file mode 100644 index f8fea653b33..00000000000 --- a/dev/test-next-studio/app/GlobalStyle.tsx +++ /dev/null @@ -1,107 +0,0 @@ -'use client' - -import {createGlobalStyle} from 'styled-components' - -export const GlobalStyle = createGlobalStyle` - @font-face { - font-family: Inter; - font-style: normal; - font-weight: 400; - font-display: swap; - src: url("https://studio-static.sanity.io/Inter-Regular.woff2") format("woff2"); - } - @font-face { - font-family: Inter; - font-style: italic; - font-weight: 400; - font-display: swap; - src: url("https://studio-static.sanity.io/Inter-Italic.woff2") format("woff2"); - } - @font-face { - font-family: Inter; - font-style: normal; - font-weight: 500; - font-display: swap; - src: url("https://studio-static.sanity.io/Inter-Medium.woff2") format("woff2"); - } - @font-face { - font-family: Inter; - font-style: italic; - font-weight: 500; - font-display: swap; - src: url("https://studio-static.sanity.io/Inter-MediumItalic.woff2") format("woff2"); - } - @font-face { - font-family: Inter; - font-style: normal; - font-weight: 600; - font-display: swap; - src: url("https://studio-static.sanity.io/Inter-SemiBold.woff2") format("woff2"); - } - @font-face { - font-family: Inter; - font-style: italic; - font-weight: 600; - font-display: swap; - src: url("https://studio-static.sanity.io/Inter-SemiBoldItalic.woff2") format("woff2"); - } - @font-face { - font-family: Inter; - font-style: normal; - font-weight: 700; - font-display: swap; - src: url("https://studio-static.sanity.io/Inter-Bold.woff2") format("woff2"); - } - @font-face { - font-family: Inter; - font-style: italic; - font-weight: 700; - font-display: swap; - src: url("https://studio-static.sanity.io/Inter-BoldItalic.woff2") format("woff2"); - } - @font-face { - font-family: Inter; - font-style: normal; - font-weight: 800; - font-display: swap; - src: url("https://studio-static.sanity.io/Inter-ExtraBold.woff2") format("woff2"); - } - @font-face { - font-family: Inter; - font-style: italic; - font-weight: 800; - font-display: swap; - src: url("https://studio-static.sanity.io/Inter-ExtraBoldItalic.woff2") format("woff2"); - } - @font-face { - font-family: Inter; - font-style: normal; - font-weight: 900; - font-display: swap; - src: url("https://studio-static.sanity.io/Inter-Black.woff2") format("woff2"); - } - @font-face { - font-family: Inter; - font-style: italic; - font-weight: 900; - font-display: swap; - src: url("https://studio-static.sanity.io/Inter-BlackItalic.woff2") format("woff2"); - } - html { - background-color: #f6f6f8; - } - html, - body, - #sanity { - height: 100%; - } - body { - margin: 0; - -webkit-font-smoothing: antialiased; - } - @media (prefers-color-scheme: dark) { - html { - background-color: #0d0e12; - } - } -` diff --git a/dev/test-next-studio/app/PreloadResources.tsx b/dev/test-next-studio/app/PreloadResources.tsx deleted file mode 100644 index 092d5a27768..00000000000 --- a/dev/test-next-studio/app/PreloadResources.tsx +++ /dev/null @@ -1,12 +0,0 @@ -'use client' - -import ReactDOM from 'react-dom' - -export function PreloadResources() { - ReactDOM.preconnect('https://studio-static.sanity.io', { - crossOrigin: 'anonymous', - }) - ReactDOM.prefetchDNS('https://studio-static.sanity.io') - - return null -} diff --git a/dev/test-next-studio/app/[[...tool]]/Studio.tsx b/dev/test-next-studio/app/[[...tool]]/Studio.tsx deleted file mode 100644 index d3a57d937f8..00000000000 --- a/dev/test-next-studio/app/[[...tool]]/Studio.tsx +++ /dev/null @@ -1,8 +0,0 @@ -'use client' - -import {Studio} from 'sanity' -import config from 'sanity-test-studio/sanity.config' - -export default function StudioPage() { - return -} diff --git a/dev/test-next-studio/app/[[...tool]]/page.tsx b/dev/test-next-studio/app/[[...tool]]/page.tsx deleted file mode 100644 index 77e06302fb8..00000000000 --- a/dev/test-next-studio/app/[[...tool]]/page.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import Studio from './Studio' - -export default function Page() { - return ( -
- -
- ) -} diff --git a/dev/test-next-studio/app/layout.tsx b/dev/test-next-studio/app/layout.tsx deleted file mode 100644 index 579679840d2..00000000000 --- a/dev/test-next-studio/app/layout.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import {GlobalStyle} from './GlobalStyle' -import {PreloadResources} from './PreloadResources' -import {StyledComponentsRegistry} from './registry' - -export default function RootLayout({children}: {children: React.ReactNode}) { - return ( - - - - - - {children} - - - - ) -} diff --git a/dev/test-next-studio/app/registry.tsx b/dev/test-next-studio/app/registry.tsx deleted file mode 100644 index 0306d343e96..00000000000 --- a/dev/test-next-studio/app/registry.tsx +++ /dev/null @@ -1,33 +0,0 @@ -// https://beta.nextjs.org/docs/styling/css-in-js#styled-components - -'use client' - -import {useServerInsertedHTML} from 'next/navigation' -import {useState, useSyncExternalStore} from 'react' -import {ServerStyleSheet, StyleSheetManager} from 'styled-components' - -export function StyledComponentsRegistry({children}: {children: React.ReactNode}): JSX.Element { - const isMounted = useSyncExternalStore( - emptySubscribe, - () => true, - () => false, - ) - // Only create stylesheet once with lazy initial state - // x-ref: https://reactjs.org/docs/hooks-reference.html#lazy-initial-state - const [styledComponentsStyleSheet] = useState(() => new ServerStyleSheet()) - - useServerInsertedHTML(() => { - const styles = styledComponentsStyleSheet.getStyleElement() - styledComponentsStyleSheet.instance.clearTag() - return <>{styles} - }) - - if (isMounted) return <>{children} - - return ( - {children} - ) -} - -// eslint-disable-next-line no-empty-function -const emptySubscribe = () => () => {} diff --git a/dev/test-next-studio/next-env.d.ts b/dev/test-next-studio/next-env.d.ts deleted file mode 100644 index 40c3d68096c..00000000000 --- a/dev/test-next-studio/next-env.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -/// -/// - -// NOTE: This file should not be edited -// see https://nextjs.org/docs/app/building-your-application/configuring/typescript for more information. diff --git a/dev/test-next-studio/next.config.mjs b/dev/test-next-studio/next.config.mjs deleted file mode 100644 index 116440f3a8f..00000000000 --- a/dev/test-next-studio/next.config.mjs +++ /dev/null @@ -1,158 +0,0 @@ -function requireResolve(id) { - return import.meta.resolve(id).replace('file://', '') -} - -const reactProductionProfiling = process.env.REACT_PRODUCTION_PROFILING === 'true' - -// eslint-disable-next-line tsdoc/syntax -/** @type {import('next').NextConfig} */ -const config = { - compiler: { - styledComponents: true, - }, - typescript: { - ignoreBuildErrors: true, - }, - eslint: { - ignoreDuringBuilds: true, - }, - env: { - // Support the ability to debug log the studio, for example `DEBUG="sanity:pte:* pnpm dev:next-studio"` - DEBUG: process.env.DEBUG, - // 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', - }, - transpilePackages: [ - '@sanity/block-tools', - '@sanity/cli', - '@sanity/diff', - '@sanity/migrate', - '@sanity/mutator', - '@sanity/schema', - '@sanity/types', - '@sanity/util', - '@sanity/vision', - 'sanity-test-studio', - 'sanity', - ], - // eslint-disable-next-line @typescript-eslint/no-shadow - webpack(config) { - config.resolve.alias = { - ...config.resolve.alias, - '@sanity/block-tools': requireResolve('../../packages/@sanity/block-tools/src/index.ts'), - '@sanity/diff': requireResolve('../../packages/@sanity/diff/src/index.ts'), - '@sanity/cli': requireResolve('../../packages/@sanity/cli/src/index.ts'), - '@sanity/mutator': requireResolve('../../packages/@sanity/mutator/src/index.ts'), - '@sanity/schema/_internal': requireResolve( - '../../packages/@sanity/schema/src/_exports/_internal.ts', - ), - '@sanity/schema': requireResolve('../../packages/@sanity/schema/src/_exports/index.ts'), - '@sanity/migrate': requireResolve('../../packages/@sanity/migrate/src/_exports/index.ts'), - '@sanity/types': requireResolve('../../packages/@sanity/types/src/index.ts'), - '@sanity/util/fs': requireResolve('../../packages/@sanity/util/src/_exports/fs.ts'), - '@sanity/util/client': requireResolve('../../packages/@sanity/util/src/_exports/client.ts'), - '@sanity/util/concurrency-limiter': requireResolve( - '../../packages/@sanity/util/src/_exports/concurrency-limiter.ts', - ), - '@sanity/util/content': requireResolve('../../packages/@sanity/util/src/_exports/content.ts'), - '@sanity/util/createSafeJsonParser': requireResolve( - '../../packages/@sanity/util/src/_exports/createSafeJsonParser.ts', - ), - '@sanity/util/legacyDateFormat': requireResolve( - '../../packages/@sanity/util/src/_exports/legacyDateFormat.ts', - ), - '@sanity/util/paths': requireResolve('../../packages/@sanity/util/src/_exports/paths.ts'), - '@sanity/util': requireResolve('../../packages/@sanity/util/src/_exports/index.ts'), - '@sanity/vision': requireResolve('../../packages/@sanity/vision/src/index.ts'), - 'sanity/_internal': requireResolve('../../packages/sanity/src/_exports/_internal.ts'), - 'sanity/_singletons': requireResolve('../../packages/sanity/src/_exports/_singletons.ts'), - 'sanity/_createContext': requireResolve( - '../../packages/sanity/src/_exports/_createContext.ts', - ), - 'sanity/cli': requireResolve('../../packages/sanity/src/_exports/cli.ts'), - 'sanity/desk': requireResolve('../../packages/sanity/src/_exports/desk.ts'), - 'sanity/presentation': requireResolve('../../packages/sanity/src/_exports/presentation.ts'), - 'sanity/router': requireResolve('../../packages/sanity/src/_exports/router.ts'), - 'sanity/structure': requireResolve('../../packages/sanity/src/_exports/structure.ts'), - 'sanity/migrate': requireResolve('../../packages/sanity/src/_exports/migrate.ts'), - 'sanity': requireResolve('../../packages/sanity/src/_exports/index.ts'), - 'styled-components': requireResolve( - 'styled-components/dist/styled-components.browser.esm.js', - ), - } - return config - }, - // Makes it much easier to see which component got memoized by the react compiler - // when testing on https://test-next-studio.sanity.build - productionBrowserSourceMaps: reactProductionProfiling, - reactProductionProfiling, - experimental: { - reactCompiler: true, - turbo: { - resolveAlias: { - '@sanity/block-tools': '@sanity/block-tools/src/index.ts', - '@sanity/diff': '@sanity/diff/src/index.ts', - '@sanity/cli': '@sanity/cli/src/index.ts', - '@sanity/mutator': '@sanity/mutator/src/index.ts', - '@sanity/schema/_internal': '@sanity/schema/src/_exports/_internal.ts', - '@sanity/schema': '@sanity/schema/src/_exports/index.ts', - '@sanity/migrate': '@sanity/migrate/src/_exports/index.ts', - '@sanity/types': '@sanity/types/src/index.ts', - '@sanity/util/fs': '@sanity/util/src/_exports/fs.ts', - '@sanity/util/client': '@sanity/util/src/_exports/client.ts', - '@sanity/util/concurrency-limiter': '@sanity/util/src/_exports/concurrency-limiter.ts', - '@sanity/util/content': '@sanity/util/src/_exports/content.ts', - '@sanity/util/createSafeJsonParser': '@sanity/util/src/_exports/createSafeJsonParser.ts', - '@sanity/util/legacyDateFormat': '@sanity/util/src/_exports/legacyDateFormat.ts', - '@sanity/util/paths': '@sanity/util/src/_exports/paths.ts', - '@sanity/util': '@sanity/util/src/_exports/index.ts', - '@sanity/vision': '@sanity/vision/src/index.ts', - 'sanity/_internal': 'sanity/src/_exports/_internal.ts', - 'sanity/_singletons': 'sanity/src/_exports/_singletons.ts', - 'sanity/_createContext': 'sanity/src/_exports/_createContext.ts', - 'sanity/cli': 'sanity/src/_exports/cli.ts', - 'sanity/desk': 'sanity/src/_exports/desk.ts', - 'sanity/presentation': 'sanity/src/_exports/presentation.ts', - 'sanity/router': 'sanity/src/_exports/router.ts', - 'sanity/structure': 'sanity/src/_exports/structure.ts', - 'sanity/migrate': 'sanity/src/_exports/migrate.ts', - 'sanity': 'sanity/src/_exports/index.ts', - 'styled-components': {browser: 'styled-components/dist/styled-components.browser.esm.js'}, - }, - }, - }, - async headers() { - return [ - { - // @TODO fix Presentation to never load itself recursively in an iframe - source: '/(.*)?', // Matches all routes by default - headers: [ - { - key: 'X-Frame-Options', - value: 'DENY', - }, - ], - }, - // These routes aren't working yet anyway - // { - // source: '/workshop/frame/(.*)?', // Allow `@sanity/ui-workshop` iframe - // headers: [ - // { - // key: 'X-Frame-Options', - // value: 'SAMEORIGIN', - // }, - // ], - // }, - // { - // source: '/preview/(.*)?', // Allow Presentation test iframe - // headers: [ - // { - // key: 'X-Frame-Options', - // value: 'SAMEORIGIN', - // }, - // ], - // }, - ] - }, -} -export default config diff --git a/dev/test-next-studio/package.json b/dev/test-next-studio/package.json deleted file mode 100644 index c5a8012d3d3..00000000000 --- a/dev/test-next-studio/package.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "sanity-test-next-studio", - "version": "3.68.3", - "private": true, - "license": "MIT", - "author": "Sanity.io ", - "scripts": { - "build": "next build", - "dev": "next dev -p 3333", - "lint": "eslint --cache .", - "start": "next start" - }, - "dependencies": { - "@sanity/vision": "workspace:*", - "babel-plugin-react-compiler": "19.0.0-beta-55955c9-20241229", - "next": "15.1.2", - "react": "rc", - "react-dom": "rc", - "react-is": "rc", - "sanity": "workspace:*", - "sanity-test-studio": "workspace:*", - "styled-components": "^6.1.12", - "typescript": "5.7.2" - } -} diff --git a/dev/test-next-studio/tsconfig.json b/dev/test-next-studio/tsconfig.json deleted file mode 100644 index bceb3bc11ee..00000000000 --- a/dev/test-next-studio/tsconfig.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "compilerOptions": { - "target": "esnext", - "lib": ["dom", "dom.iterable", "esnext"], - "allowJs": true, - "skipLibCheck": true, - "strict": false, - "forceConsistentCasingInFileNames": true, - "noEmit": true, - "incremental": true, - "module": "Preserve", - "moduleDetection": "force", - "isolatedModules": true, - "jsx": "preserve", - "plugins": [ - { - "name": "next" - } - ], - "strictNullChecks": true - }, - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], - "exclude": ["node_modules"] -} diff --git a/dev/test-next-studio/turbo.json b/dev/test-next-studio/turbo.json deleted file mode 100644 index 96c64879f03..00000000000 --- a/dev/test-next-studio/turbo.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "$schema": "https://turbo.build/schema.json", - "extends": ["//"], - "tasks": { - "build": { - "env": ["REACT_PRODUCTION_PROFILING", "REACT_MILLION_LINT"], - "outputs": [".next/**", "!.next/cache/**", "out/**"], - "dependsOn": ["^build"] - }, - "dev": { - "dependsOn": ["^build"], - "cache": false, - "persistent": true - } - } -} diff --git a/dev/test-studio/package.json b/dev/test-studio/package.json index 05b8de4529e..d17e36fc601 100644 --- a/dev/test-studio/package.json +++ b/dev/test-studio/package.json @@ -1,6 +1,6 @@ { "name": "sanity-test-studio", - "version": "3.68.3", + "version": "3.69.0", "private": true, "license": "MIT", "author": "Sanity.io ", @@ -16,15 +16,15 @@ "workshop:dev": "node -r esbuild-register scripts/workshop/dev.ts" }, "dependencies": { - "@portabletext/editor": "^1.18.7", + "@portabletext/editor": "^1.20.0", "@portabletext/react": "^3.0.0", "@sanity/assist": "^3.0.2", - "@sanity/block-tools": "3.68.3", + "@sanity/block-tools": "3.69.0", "@sanity/client": "^6.24.1", "@sanity/color": "^3.0.0", "@sanity/color-input": "^4.0.1", "@sanity/google-maps-input": "^4.0.0", - "@sanity/icons": "^3.5.6", + "@sanity/icons": "^3.5.7", "@sanity/image-url": "^1.0.2", "@sanity/locale-ko-kr": "^1.0.1", "@sanity/locale-nb-no": "^1.0.1", @@ -35,14 +35,14 @@ "@sanity/migrate": "workspace:*", "@sanity/preview-url-secret": "^2.0.0", "@sanity/react-loader": "^1.8.3", - "@sanity/tsdoc": "1.0.157", + "@sanity/tsdoc": "1.0.164", "@sanity/types": "workspace:*", - "@sanity/ui": "^2.10.14", + "@sanity/ui": "^2.11.1", "@sanity/ui-workshop": "^1.0.0", "@sanity/util": "workspace:*", "@sanity/uuid": "^3.0.1", "@sanity/vision": "workspace:*", - "@sanity/visual-editing": "2.11.3", + "@sanity/visual-editing": "2.11.5", "@turf/helpers": "^6.0.1", "@turf/points-within-polygon": "^5.1.5", "@vercel/stega": "0.1.2", @@ -51,9 +51,8 @@ "history": "^5.3.0", "lodash": "^4.17.21", "qs": "^6.10.2", - "react": "^18.3.1", - "react-compiler-runtime": "19.0.0-beta-55955c9-20241229", - "react-dom": "^18.3.1", + "react": "^19.0.0", + "react-dom": "^19.0.0", "react-refractor": "^2.1.6", "refractor": "^3.6.0", "rxjs": "^7.8.0", @@ -66,7 +65,7 @@ }, "devDependencies": { "@million/lint": "1.0.14", - "babel-plugin-react-compiler": "19.0.0-beta-55955c9-20241229", + "babel-plugin-react-compiler": "19.0.0-beta-63e3235-20250105", "chokidar": "^3.6.0", "vite": "^5.4.11" } diff --git a/dev/test-studio/preview/FieldGroups.tsx b/dev/test-studio/preview/FieldGroups.tsx index bca2af357cb..7b675ca722a 100644 --- a/dev/test-studio/preview/FieldGroups.tsx +++ b/dev/test-studio/preview/FieldGroups.tsx @@ -2,7 +2,7 @@ import {Box, Card, Stack, Text} from '@sanity/ui' import {useQuery} from './loader' -export function FieldGroups(): JSX.Element { +export function FieldGroups(): React.JSX.Element { const {data, loading, error} = useQuery< { _id: string diff --git a/dev/test-studio/preview/SimpleBlockPortableText.tsx b/dev/test-studio/preview/SimpleBlockPortableText.tsx index 9a6339ae15e..4cd27549f65 100644 --- a/dev/test-studio/preview/SimpleBlockPortableText.tsx +++ b/dev/test-studio/preview/SimpleBlockPortableText.tsx @@ -19,7 +19,7 @@ const components: PortableTextComponents = { }, } -export function SimpleBlockPortableText(): JSX.Element { +export function SimpleBlockPortableText(): React.JSX.Element { const {data, loading, error} = useQuery< { _id: string diff --git a/dev/test-studio/sanity.cli.ts b/dev/test-studio/sanity.cli.ts index 5e8b1869b32..149923f5d36 100644 --- a/dev/test-studio/sanity.cli.ts +++ b/dev/test-studio/sanity.cli.ts @@ -4,9 +4,10 @@ import {defineCliConfig} from 'sanity/cli' import {type UserConfig} from 'vite' const millionLintEnabled = process.env.REACT_MILLION_LINT === 'true' +const millionLintEverything = process.env.REACT_MILLION_LINT_EVERYTHING === 'true' const millionInclude: string[] = [] try { - if (millionLintEnabled) { + if (millionLintEnabled && !millionLintEverything) { for (const filePath of require('./.react-compiler-bailout-report.json')) { millionInclude.push(`**/${filePath}`) } @@ -27,23 +28,24 @@ export default defineCliConfig({ // A) `SANITY_STUDIO_REACT_STRICT_MODE=false pnpm dev` // B) creating a `.env` file locally that sets the same env variable as above reactStrictMode: true, - reactCompiler: millionLintEnabled - ? { - target: '18', - sources: (filename) => { - /** - * This is the default filter when `sources` is not defined. - * Since we're overriding it we have to ensure we don't accidentally try running the compiler on non-src files from npm. - */ - if (filename.includes('node_modules')) { - return false - } - return millionInclude.every( - (pattern) => !filename.endsWith(`/${pattern.split('**/')[1]}`), - ) - }, - } - : {target: '18'}, + reactCompiler: + millionLintEnabled && !millionLintEverything + ? { + target: '19', + sources: (filename) => { + /** + * This is the default filter when `sources` is not defined. + * Since we're overriding it we have to ensure we don't accidentally try running the compiler on non-src files from npm. + */ + if (filename.includes('node_modules')) { + return false + } + return millionInclude.every( + (pattern) => !filename.endsWith(`/${pattern.split('**/')[1]}`), + ) + }, + } + : {target: '19'}, vite(viteConfig: UserConfig): UserConfig { const reactProductionProfiling = process.env.REACT_PRODUCTION_PROFILING === 'true' @@ -55,11 +57,15 @@ export default defineCliConfig({ * We're doing a dynamic import here, instead of a static import, to avoid an issue where a WebSocket Server is created by Million for `vite dev` that isn't closed. * Which leaves `sanity build` hanging, even if the plugin itself isn't actually used. */ - require('@million/lint').vite({ - filter: { - include: millionInclude, - }, - }), + require('@million/lint').vite( + millionLintEverything + ? {} + : { + filter: { + include: millionInclude, + }, + }, + ), ...(viteConfig.plugins || []), ] : viteConfig.plugins, diff --git a/dev/test-studio/schema/debug/patchOnMount.tsx b/dev/test-studio/schema/debug/patchOnMount.tsx new file mode 100644 index 00000000000..1595b5317bb --- /dev/null +++ b/dev/test-studio/schema/debug/patchOnMount.tsx @@ -0,0 +1,30 @@ +import {defineType} from '@sanity/types' +import {useEffect, useRef} from 'react' +import {set} from 'sanity' + +export const patchOnMountDebug = defineType({ + type: 'document', + name: 'patchOnMountDebug', + fields: [ + { + type: 'string', + name: 'title', + }, + ], + components: { + // eslint-disable-next-line func-name-matching + input: function PatchOnMountInput(props) { + const {onChange} = props + const mounted = useRef(false) + + useEffect(() => { + if (!mounted.current) { + onChange(set(`${Math.random()}`, ['title'])) + mounted.current = true + } + }, [onChange]) + + return props.renderDefault(props) + }, + }, +}) diff --git a/dev/test-studio/schema/index.ts b/dev/test-studio/schema/index.ts index b579539513f..ebc53f54904 100644 --- a/dev/test-studio/schema/index.ts +++ b/dev/test-studio/schema/index.ts @@ -53,6 +53,7 @@ import localeString from './debug/localeString' import manyFieldsTest from './debug/manyFieldsTest' import notitle from './debug/notitle' import {objectsDebug} from './debug/objectsDebug' +import {patchOnMountDebug} from './debug/patchOnMount' import poppers from './debug/poppers' import presence, {objectWithNestedArray} from './debug/presence' import previewImageUrlTest from './debug/previewImageUrlTest' @@ -238,6 +239,7 @@ export const schemaTypes = [ recursiveObjectTest, recursiveObject, recursivePopover, + patchOnMountDebug, simpleArrayOfObjects, simpleReferences, reservedFieldNames, diff --git a/dev/test-studio/structure/constants.ts b/dev/test-studio/structure/constants.ts index ffcdea6447a..75b4b5ba8e5 100644 --- a/dev/test-studio/structure/constants.ts +++ b/dev/test-studio/structure/constants.ts @@ -55,6 +55,7 @@ export const DEBUG_INPUT_TYPES = [ 'fieldsetsTest', 'fieldValidationInferReproDoc', 'focusTest', + 'patchOnMountDebug', 'formInputDebug', 'initialValuesTest', 'inspectorsTest', diff --git a/dev/test-studio/turbo.json b/dev/test-studio/turbo.json index fe29e2ba46b..dbf36f48d69 100644 --- a/dev/test-studio/turbo.json +++ b/dev/test-studio/turbo.json @@ -3,7 +3,7 @@ "extends": ["//"], "tasks": { "build": { - "env": ["REACT_PRODUCTION_PROFILING", "REACT_MILLION_LINT"], + "env": ["REACT_PRODUCTION_PROFILING", "REACT_MILLION_LINT", "REACT_MILLION_LINT_EVERYTHING"], "outputs": [".sanity/**", "dist/**", "workshop/scopes.js"] }, "start": { diff --git a/examples/blog-studio/package.json b/examples/blog-studio/package.json index 3a0bfb3d2b0..8984322cbd4 100644 --- a/examples/blog-studio/package.json +++ b/examples/blog-studio/package.json @@ -1,6 +1,6 @@ { "name": "blog-studio", - "version": "3.68.3", + "version": "3.69.0", "private": true, "description": "Content studio running with schema from the blog init template", "keywords": [ diff --git a/examples/clean-studio/package.json b/examples/clean-studio/package.json index 636b72f0e08..87f7bc5297b 100644 --- a/examples/clean-studio/package.json +++ b/examples/clean-studio/package.json @@ -1,6 +1,6 @@ { "name": "clean-studio", - "version": "3.68.3", + "version": "3.69.0", "private": true, "description": "Content studio running with schema from the clean template", "keywords": [ diff --git a/examples/ecommerce-studio/package.json b/examples/ecommerce-studio/package.json index c677dabb6d4..1f5f8012038 100644 --- a/examples/ecommerce-studio/package.json +++ b/examples/ecommerce-studio/package.json @@ -1,6 +1,6 @@ { "name": "ecommerce-studio", - "version": "3.68.3", + "version": "3.69.0", "private": true, "description": "", "keywords": [ @@ -29,8 +29,8 @@ "start": "sanity dev --port 3337" }, "dependencies": { - "@sanity/cli": "3.68.3", - "@sanity/ui": "^2.10.14", + "@sanity/cli": "3.69.0", + "@sanity/ui": "^2.11.1", "react": "^18.3.1", "react-barcode": "^1.4.1", "react-dom": "^18.3.1", diff --git a/examples/movies-studio/package.json b/examples/movies-studio/package.json index 0875f3b6eb9..d2f3b8e2dc0 100644 --- a/examples/movies-studio/package.json +++ b/examples/movies-studio/package.json @@ -1,6 +1,6 @@ { "name": "movies-studio", - "version": "3.68.3", + "version": "3.69.0", "private": true, "description": "Content studio running with schema from the moviedb init template", "keywords": [ diff --git a/lerna.json b/lerna.json index f1844f46509..12e7c0b5481 100644 --- a/lerna.json +++ b/lerna.json @@ -12,5 +12,5 @@ "packages/groq", "packages/sanity" ], - "version": "3.68.3" + "version": "3.69.0" } diff --git a/package.json b/package.json index 9c0beecde4e..0ffa609bec8 100644 --- a/package.json +++ b/package.json @@ -43,9 +43,8 @@ "dev:test-create-studio": "pnpm --filter test-create-integration-studio dev", "dev:test-studio-production-profiling": "REACT_PRODUCTION_PROFILING=true turbo run start --filter=sanity-test-studio", "dev:million-lint": "pnpm report:react-compiler-bailout && pnpm dev:test-studio-million-lint", + "dev:million-lint-everything": "REACT_MILLION_LINT=true REACT_MILLION_LINT_EVERYTHING=true pnpm --filter sanity-test-studio dev", "dev:test-studio-million-lint": "REACT_MILLION_LINT=true pnpm --filter sanity-test-studio dev", - "dev:next-studio": "pnpm --filter sanity-test-next-studio dev", - "dev:turbo-studio": "pnpm dev:next-studio --turbo", "docs:report": "node -r dotenv-flow/config -r esbuild-register scripts/doc-report/docReport", "docs:report:cleanup": "node -r dotenv-flow/config -r esbuild-register scripts/doc-report/docReportCleanup", "docs:report:create": "node -r dotenv-flow/config -r esbuild-register scripts/doc-report/docReportCreate", @@ -114,16 +113,16 @@ "@sanity/eslint-config-i18n": "1.0.0", "@sanity/eslint-config-studio": "^4.0.0", "@sanity/mutate": "^0.11.1", - "@sanity/pkg-utils": "6.12.3", + "@sanity/pkg-utils": "6.13.2", "@sanity/prettier-config": "^1.0.3", "@sanity/test": "0.0.1-alpha.1", - "@sanity/tsdoc": "1.0.157", - "@sanity/ui": "^2.10.14", + "@sanity/tsdoc": "1.0.164", + "@sanity/ui": "^2.11.1", "@sanity/uuid": "^3.0.2", "@types/glob": "^7.2.0", "@types/lodash": "^4.17.7", "@types/node": "^22.10.0", - "@types/react": "^18.3.12", + "@types/react": "^19.0.3", "@types/semver": "^7.5.6", "@types/yargs": "^17.0.7", "@typescript-eslint/eslint-plugin": "^7.18.0", @@ -145,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-55955c9-20241229", + "eslint-plugin-react-compiler": "19.0.0-beta-63e3235-20250105", "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/@repo/dev-aliases/package.json b/packages/@repo/dev-aliases/package.json index f5ed6f97d43..72a4d6751fa 100644 --- a/packages/@repo/dev-aliases/package.json +++ b/packages/@repo/dev-aliases/package.json @@ -1,6 +1,6 @@ { "name": "@repo/dev-aliases", - "version": "3.68.3", + "version": "3.69.0", "private": true, "description": "Dev aliases for the sanity monorepo", "type": "module", diff --git a/packages/@repo/package.bundle/package.json b/packages/@repo/package.bundle/package.json index c5b889a3625..744dbbde463 100644 --- a/packages/@repo/package.bundle/package.json +++ b/packages/@repo/package.bundle/package.json @@ -1,6 +1,6 @@ { "name": "@repo/package.bundle", - "version": "3.68.3", + "version": "3.69.0", "private": true, "description": "Shared package bundle configuration", "main": "./src/package.bundle.ts", diff --git a/packages/@repo/package.config/package.json b/packages/@repo/package.config/package.json index 7de1c3011d9..25dd5239f3d 100644 --- a/packages/@repo/package.config/package.json +++ b/packages/@repo/package.config/package.json @@ -1,6 +1,6 @@ { "name": "@repo/package.config", - "version": "3.68.3", + "version": "3.69.0", "private": true, "description": "Shared @sanity/pkg-utils configuration", "main": "./src/package.config.ts", diff --git a/packages/@repo/test-config/package.json b/packages/@repo/test-config/package.json index fa716402353..3238034f7d7 100644 --- a/packages/@repo/test-config/package.json +++ b/packages/@repo/test-config/package.json @@ -1,6 +1,6 @@ { "name": "@repo/test-config", - "version": "3.68.3", + "version": "3.69.0", "private": true, "description": "Test (as in unit test) config shared across packages in the sanity monorepo", "type": "module", diff --git a/packages/@repo/test-exports/package.json b/packages/@repo/test-exports/package.json index 93b0f17bfd3..cc9918047ac 100644 --- a/packages/@repo/test-exports/package.json +++ b/packages/@repo/test-exports/package.json @@ -1,6 +1,6 @@ { "name": "@repo/test-exports", - "version": "3.68.3", + "version": "3.69.0", "private": true, "description": "Ensures that all the monorepo packages that are published works in native node ESM and CJS runtimes", "exports": { diff --git a/packages/@repo/tsconfig/package.json b/packages/@repo/tsconfig/package.json index 1e526b46145..079163e205d 100644 --- a/packages/@repo/tsconfig/package.json +++ b/packages/@repo/tsconfig/package.json @@ -1,5 +1,5 @@ { "name": "@repo/tsconfig", - "version": "3.68.3", + "version": "3.69.0", "private": true } diff --git a/packages/@sanity/block-tools/package.json b/packages/@sanity/block-tools/package.json index a4665e30847..1fe7911f06a 100644 --- a/packages/@sanity/block-tools/package.json +++ b/packages/@sanity/block-tools/package.json @@ -1,6 +1,6 @@ { "name": "@sanity/block-tools", - "version": "3.68.3", + "version": "3.69.0", "description": "Can format HTML, Slate JSON or Sanity block array into any other format.", "keywords": [ "sanity", @@ -49,22 +49,25 @@ "watch": "pkg-utils watch" }, "dependencies": { - "@sanity/types": "3.68.3", - "@types/react": "^18.3.5", + "@sanity/types": "3.69.0", "get-random-values-esm": "1.0.2", "lodash": "^4.17.21" }, "devDependencies": { "@repo/package.config": "workspace:*", "@repo/test-config": "workspace:*", - "@sanity/schema": "3.68.3", + "@sanity/schema": "3.69.0", "@types/jsdom": "^20.0.0", "@types/lodash": "^4.17.7", + "@types/react": "^19.0.3", "@vercel/stega": "0.1.2", - "@vitest/coverage-v8": "^2.1.1", + "@vitest/coverage-v8": "^2.1.8", "jsdom": "^23.0.1", "vitest": "^2.1.8" }, + "peerDependencies": { + "@types/react": "18 || 19" + }, "publishConfig": { "access": "public" } diff --git a/packages/@sanity/cli/package.json b/packages/@sanity/cli/package.json index 8caeab4253a..56e8670d15a 100644 --- a/packages/@sanity/cli/package.json +++ b/packages/@sanity/cli/package.json @@ -1,6 +1,6 @@ { "name": "@sanity/cli", - "version": "3.68.3", + "version": "3.69.0", "description": "Sanity CLI tool for managing Sanity installations, managing plugins, schemas and datasets", "keywords": [ "sanity", @@ -58,10 +58,10 @@ "dependencies": { "@babel/traverse": "^7.23.5", "@sanity/client": "^6.24.1", - "@sanity/codegen": "3.68.3", + "@sanity/codegen": "3.69.0", "@sanity/telemetry": "^0.7.7", "@sanity/template-validator": "^2.0.0", - "@sanity/util": "3.68.3", + "@sanity/util": "3.69.0", "chalk": "^4.1.2", "debug": "^4.3.4", "decompress": "^4.2.0", diff --git a/packages/@sanity/cli/src/actions/init-project/bootstrapRemoteTemplate.ts b/packages/@sanity/cli/src/actions/init-project/bootstrapRemoteTemplate.ts index e036924827d..0c00eeae602 100644 --- a/packages/@sanity/cli/src/actions/init-project/bootstrapRemoteTemplate.ts +++ b/packages/@sanity/cli/src/actions/init-project/bootstrapRemoteTemplate.ts @@ -30,6 +30,8 @@ export interface BootstrapRemoteOptions { variables: GenerateConfigOptions['variables'] } +const SANITY_DEFAULT_PORT = 3333 +const READ_TOKEN_LABEL = 'Live Preview API' const INITIAL_COMMIT_MESSAGE = 'Initial commit from Sanity CLI' export async function bootstrapRemoteTemplate( @@ -45,6 +47,7 @@ export async function bootstrapRemoteTemplate( headers.Authorization = `Bearer ${bearerToken}` } const spinner = output.spinner(`Bootstrapping files from template "${name}"`).start() + const corsAdded: number[] = [SANITY_DEFAULT_PORT] debug('Validating remote template') const fileReader = new GitHubFileReader(contentsUrl, headers) @@ -67,7 +70,7 @@ export async function bootstrapRemoteTemplate( debug('Applying environment variables') const readToken = needsReadToken - ? await generateSanityApiReadToken('API Read Token', variables.projectId, apiClient) + ? await generateSanityApiReadToken(READ_TOKEN_LABEL, variables.projectId, apiClient) : undefined for (const pkg of packages ?? ['']) { @@ -76,10 +79,13 @@ export async function bootstrapRemoteTemplate( fs: new LocalFileSystemDetector(packagePath), frameworkList: frameworks as readonly Framework[], }) - const port = getDefaultPortForFramework(packageFramework?.slug) - debug('Setting CORS origin to http://localhost:%d', port) - await setCorsOrigin(`http://localhost:${port}`, variables.projectId, apiClient) + const port = getDefaultPortForFramework(packageFramework?.slug) + if (corsAdded.includes(port) === false) { + debug('Setting CORS origin to http://localhost:%d', port) + await setCorsOrigin(`http://localhost:${port}`, variables.projectId, apiClient) + corsAdded.push(port) + } debug('Applying environment variables to %s', pkg) // Next.js uses `.env.local` for local environment variables @@ -97,4 +103,10 @@ export async function bootstrapRemoteTemplate( await updateInitialTemplateMetadata(apiClient, variables.projectId, `external-${name}`) spinner.succeed() + if (corsAdded.length) { + output.success(`CORS origins added (${corsAdded.map((p) => `localhost:${p}`).join(', ')})`) + } + if (readToken) { + output.success(`API token generated (${READ_TOKEN_LABEL})`) + } } diff --git a/packages/@sanity/cli/src/actions/init-project/initProject.ts b/packages/@sanity/cli/src/actions/init-project/initProject.ts index 37dad51c57f..e100bed2e2a 100644 --- a/packages/@sanity/cli/src/actions/init-project/initProject.ts +++ b/packages/@sanity/cli/src/actions/init-project/initProject.ts @@ -846,7 +846,7 @@ export default async function initSanity( const projectChoices = projects.map((project) => ({ value: project.id, - name: `${project.displayName} [${project.id}]`, + name: `${project.displayName} (${project.id})`, })) const selected = await prompt.single({ diff --git a/packages/@sanity/cli/src/util/remoteTemplate.ts b/packages/@sanity/cli/src/util/remoteTemplate.ts index b42b153dbfc..992837060dc 100644 --- a/packages/@sanity/cli/src/util/remoteTemplate.ts +++ b/packages/@sanity/cli/src/util/remoteTemplate.ts @@ -301,7 +301,7 @@ export async function setCorsOrigin( await apiClient({api: {projectId}}).request({ method: 'POST', url: '/cors', - body: {origin: origin, allowCredentials: false}, + body: {origin: origin, allowCredentials: true}, // allowCredentials is true to allow for embedded studios if needed }) } catch (error) { // Silent fail, it most likely means that the origin is already set diff --git a/packages/@sanity/cli/test/test-template/package.json b/packages/@sanity/cli/test/test-template/package.json index 2fe7ae50df1..20e5c08598f 100644 --- a/packages/@sanity/cli/test/test-template/package.json +++ b/packages/@sanity/cli/test/test-template/package.json @@ -20,8 +20,8 @@ "@sanity/vision": "^3.62.0", "@tailwindcss/typography": "^0.5.15", "@types/node": "^22.7.8", - "@types/react": "^18.3.11", - "@types/react-dom": "^18.3.1", + "@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", diff --git a/packages/@sanity/codegen/package.json b/packages/@sanity/codegen/package.json index ccb767e1d88..befd919c8f8 100644 --- a/packages/@sanity/codegen/package.json +++ b/packages/@sanity/codegen/package.json @@ -1,6 +1,6 @@ { "name": "@sanity/codegen", - "version": "3.68.3", + "version": "3.69.0", "description": "Codegen toolkit for Sanity.io", "keywords": [ "sanity", diff --git a/packages/@sanity/diff/package.json b/packages/@sanity/diff/package.json index 78448e64987..d212fcebf03 100644 --- a/packages/@sanity/diff/package.json +++ b/packages/@sanity/diff/package.json @@ -1,6 +1,6 @@ { "name": "@sanity/diff", - "version": "3.68.3", + "version": "3.69.0", "description": "Generates diffs between documents and primitive types", "keywords": [ "sanity", diff --git a/packages/@sanity/migrate/package.json b/packages/@sanity/migrate/package.json index 8949060a7c4..0407fabbddd 100644 --- a/packages/@sanity/migrate/package.json +++ b/packages/@sanity/migrate/package.json @@ -1,6 +1,6 @@ { "name": "@sanity/migrate", - "version": "3.68.3", + "version": "3.69.0", "description": "Tooling for running data migrations on Sanity.io projects", "keywords": [ "sanity", @@ -52,8 +52,8 @@ "dependencies": { "@sanity/client": "^6.24.1", "@sanity/mutate": "^0.11.1", - "@sanity/types": "3.68.3", - "@sanity/util": "3.68.3", + "@sanity/types": "3.69.0", + "@sanity/util": "3.69.0", "arrify": "^2.0.1", "debug": "^4.3.4", "fast-fifo": "^1.3.2", diff --git a/packages/@sanity/mutator/package.json b/packages/@sanity/mutator/package.json index 1fc83259ac1..53c84fba187 100644 --- a/packages/@sanity/mutator/package.json +++ b/packages/@sanity/mutator/package.json @@ -1,6 +1,6 @@ { "name": "@sanity/mutator", - "version": "3.68.3", + "version": "3.69.0", "description": "A set of models to make it easier to utilize the powerful real time collaborative features of Sanity", "keywords": [ "sanity", @@ -50,7 +50,7 @@ }, "dependencies": { "@sanity/diff-match-patch": "^3.1.1", - "@sanity/types": "3.68.3", + "@sanity/types": "3.69.0", "@sanity/uuid": "^3.0.1", "debug": "^4.3.4", "lodash": "^4.17.21" diff --git a/packages/@sanity/schema/package.json b/packages/@sanity/schema/package.json index 06426eaa9d9..d8cee070443 100644 --- a/packages/@sanity/schema/package.json +++ b/packages/@sanity/schema/package.json @@ -1,6 +1,6 @@ { "name": "@sanity/schema", - "version": "3.68.3", + "version": "3.69.0", "description": "", "keywords": [ "sanity", @@ -64,7 +64,7 @@ }, "dependencies": { "@sanity/generate-help-url": "^3.0.0", - "@sanity/types": "3.68.3", + "@sanity/types": "3.69.0", "arrify": "^2.0.1", "groq-js": "^1.14.2", "humanize-list": "^1.0.1", @@ -78,7 +78,7 @@ "@sanity/icons": "^3.5.7", "@types/lodash": "^4.17.7", "@types/object-inspect": "^1.13.0", - "@types/react": "^18.3.12", + "@types/react": "^19.0.3", "rimraf": "^5.0.10", "vitest": "^2.1.8" } diff --git a/packages/@sanity/types/package.json b/packages/@sanity/types/package.json index 05de0cdccb8..fe722198cf5 100644 --- a/packages/@sanity/types/package.json +++ b/packages/@sanity/types/package.json @@ -1,6 +1,6 @@ { "name": "@sanity/types", - "version": "3.68.3", + "version": "3.69.0", "description": "Type definitions for common Sanity data structures", "keywords": [ "sanity", @@ -55,7 +55,7 @@ "@repo/package.config": "workspace:*", "@repo/test-config": "workspace:*", "@sanity/insert-menu": "1.0.18", - "@types/react": "^18.3.5", + "@types/react": "^19.0.3", "@vitejs/plugin-react": "^4.3.4", "react": "^18.3.1", "rimraf": "^5.0.10", diff --git a/packages/@sanity/types/src/schema/definition/type/common.ts b/packages/@sanity/types/src/schema/definition/type/common.ts index b970f82e3fe..24abf2b4444 100644 --- a/packages/@sanity/types/src/schema/definition/type/common.ts +++ b/packages/@sanity/types/src/schema/definition/type/common.ts @@ -1,4 +1,4 @@ -import {type ComponentType, type ReactElement, type ReactNode} from 'react' +import {type ComponentType, type ReactNode} from 'react' import {type ConditionalProperty, type DeprecatedProperty, type I18nTextRecord} from '../../types' import {type ObjectOptions} from './object' @@ -55,7 +55,7 @@ export interface BaseSchemaTypeOptions { export interface BaseSchemaDefinition { name: string title?: string - description?: string | ReactElement + description?: string | React.JSX.Element hidden?: ConditionalProperty readOnly?: ConditionalProperty icon?: ComponentType | ReactNode diff --git a/packages/@sanity/util/package.json b/packages/@sanity/util/package.json index 4c93852bb0c..c388ca0695d 100644 --- a/packages/@sanity/util/package.json +++ b/packages/@sanity/util/package.json @@ -1,6 +1,6 @@ { "name": "@sanity/util", - "version": "3.68.3", + "version": "3.69.0", "description": "Utilities shared across projects of Sanity", "keywords": [ "sanity", @@ -122,7 +122,7 @@ }, "dependencies": { "@sanity/client": "^6.24.1", - "@sanity/types": "3.68.3", + "@sanity/types": "3.69.0", "get-random-values-esm": "1.0.2", "moment": "^2.30.1", "rxjs": "^7.8.1" diff --git a/packages/@sanity/vision/package.json b/packages/@sanity/vision/package.json index 05a450eb3b6..87c54a95af1 100644 --- a/packages/@sanity/vision/package.json +++ b/packages/@sanity/vision/package.json @@ -1,6 +1,6 @@ { "name": "@sanity/vision", - "version": "3.68.3", + "version": "3.69.0", "description": "Sanity plugin for running/debugging GROQ-queries against Sanity datasets", "keywords": [ "sanity", @@ -63,7 +63,7 @@ "@rexxars/react-split-pane": "^1.0.0", "@sanity/color": "^3.0.0", "@sanity/icons": "^3.5.7", - "@sanity/ui": "^2.10.14", + "@sanity/ui": "^2.11.1", "@uiw/react-codemirror": "^4.11.4", "is-hotkey-esm": "^1.0.0", "json-2-csv": "^5.5.1", @@ -85,10 +85,10 @@ "@sanity/types": "workspace:*", "@sanity/util": "workspace:*", "@types/lodash": "^4.17.7", - "babel-plugin-react-compiler": "19.0.0-beta-55955c9-20241229", + "babel-plugin-react-compiler": "19.0.0-beta-63e3235-20250105", "react": "^18.3.1", "sanity": "workspace:*", - "styled-components": "^6.1.13" + "styled-components": "^6.1.14" }, "peerDependencies": { "react": "^18 || ^19.0.0", diff --git a/packages/@sanity/vision/src/components/ResultView.tsx b/packages/@sanity/vision/src/components/ResultView.tsx index 48d76d9ac71..7a7c15b0f49 100644 --- a/packages/@sanity/vision/src/components/ResultView.tsx +++ b/packages/@sanity/vision/src/components/ResultView.tsx @@ -9,7 +9,7 @@ import {ResultViewWrapper} from './ResultView.styled' const lru = new LRU({maxSize: 50000}) -export function ResultView(props: {data: unknown; datasetName: string}): JSX.Element { +export function ResultView(props: {data: unknown; datasetName: string}): React.JSX.Element { const {data, datasetName} = props const workspaceDataset = useDataset() diff --git a/packages/@sanity/vision/src/components/VisionGui.tsx b/packages/@sanity/vision/src/components/VisionGui.tsx index c26e5c885b3..11823bfb8b6 100644 --- a/packages/@sanity/vision/src/components/VisionGui.tsx +++ b/packages/@sanity/vision/src/components/VisionGui.tsx @@ -151,11 +151,11 @@ interface VisionGuiState { } export class VisionGui extends PureComponent { - _visionRoot: RefObject - _queryEditorContainer: RefObject - _paramsEditorContainer: RefObject - _operationUrlElement: RefObject - _customApiVersionElement: RefObject + _visionRoot: RefObject + _queryEditorContainer: RefObject + _paramsEditorContainer: RefObject + _operationUrlElement: RefObject + _customApiVersionElement: RefObject _resizeListener: ResizeObserver | undefined _querySubscription: Subscription | undefined _listenSubscription: Subscription | undefined diff --git a/packages/create-sanity/package.json b/packages/create-sanity/package.json index 63c01a182a4..45c5414a986 100644 --- a/packages/create-sanity/package.json +++ b/packages/create-sanity/package.json @@ -1,6 +1,6 @@ { "name": "create-sanity", - "version": "3.68.3", + "version": "3.69.0", "description": "Initialize a new Sanity project", "keywords": [ "sanity", @@ -26,7 +26,7 @@ "index.js" ], "dependencies": { - "@sanity/cli": "3.68.3", + "@sanity/cli": "3.69.0", "resolve-pkg": "^2.0.0" }, "engines": { diff --git a/packages/groq/package.json b/packages/groq/package.json index aeed9ed4950..da49182258f 100644 --- a/packages/groq/package.json +++ b/packages/groq/package.json @@ -1,6 +1,6 @@ { "name": "groq", - "version": "3.68.3", + "version": "3.69.0", "description": "Tagged template literal for Sanity.io GROQ-queries", "keywords": [ "sanity", diff --git a/packages/sanity/fixtures/examples/prj-with-react-19/package.json b/packages/sanity/fixtures/examples/prj-with-react-19/package.json index 3e7a9bb7cd3..2c5ea924233 100644 --- a/packages/sanity/fixtures/examples/prj-with-react-19/package.json +++ b/packages/sanity/fixtures/examples/prj-with-react-19/package.json @@ -2,8 +2,8 @@ "name": "prj-with-react-19", "private": true, "dependencies": { - "react": "19.0.0-rc-f994737d14-20240522", - "react-dom": "19.0.0-rc-f994737d14-20240522", + "react": "^19.0.0", + "react-dom": "^19.0.0", "styled-components": "^6.1.0" } } diff --git a/packages/sanity/package.json b/packages/sanity/package.json index 3de76055258..4a020f29b3c 100644 --- a/packages/sanity/package.json +++ b/packages/sanity/package.json @@ -1,6 +1,6 @@ { "name": "sanity", - "version": "3.68.3", + "version": "3.69.0", "description": "Sanity is a real-time content infrastructure with a scalable, hosted backend featuring a Graph Oriented Query Language (GROQ), asset pipelines and fast edge caches", "keywords": [ "sanity", @@ -153,37 +153,37 @@ "@dnd-kit/sortable": "^7.0.1", "@dnd-kit/utilities": "^3.2.0", "@juggle/resize-observer": "^3.3.1", - "@portabletext/editor": "^1.18.7", + "@portabletext/editor": "^1.20.0", "@portabletext/react": "^3.0.0", "@rexxars/react-json-inspector": "^9.0.1", "@sanity/asset-utils": "^2.0.6", "@sanity/bifur-client": "^0.4.1", - "@sanity/block-tools": "3.68.3", - "@sanity/cli": "3.68.3", + "@sanity/block-tools": "3.69.0", + "@sanity/cli": "3.69.0", "@sanity/client": "^6.24.1", "@sanity/color": "^3.0.0", - "@sanity/diff": "3.68.3", + "@sanity/diff": "3.69.0", "@sanity/diff-match-patch": "^3.1.1", "@sanity/eventsource": "^5.0.0", - "@sanity/export": "^3.42.1", + "@sanity/export": "^3.42.2", "@sanity/icons": "^3.5.7", "@sanity/image-url": "^1.0.2", "@sanity/import": "^3.37.9", "@sanity/insert-menu": "1.0.18", "@sanity/logos": "^2.1.4", - "@sanity/migrate": "3.68.3", - "@sanity/mutator": "3.68.3", + "@sanity/migrate": "3.69.0", + "@sanity/mutator": "3.69.0", "@sanity/presentation": "1.19.14-release.0", - "@sanity/schema": "3.68.3", + "@sanity/schema": "3.69.0", "@sanity/telemetry": "^0.7.7", - "@sanity/types": "3.68.3", - "@sanity/ui": "^2.10.14", - "@sanity/util": "3.68.3", + "@sanity/types": "3.69.0", + "@sanity/ui": "^2.11.1", + "@sanity/util": "3.69.0", "@sanity/uuid": "^3.0.1", "@sentry/react": "^8.33.0", "@tanstack/react-table": "^8.16.0", "@tanstack/react-virtual": "^3.11.2", - "@types/react-is": "^18.3.0", + "@types/react-is": "^19.0.0", "@types/shallow-equals": "^1.0.0", "@types/speakingurl": "^13.0.3", "@types/tar-stream": "^3.1.3", @@ -243,7 +243,7 @@ "react-i18next": "14.0.2", "react-is": "^18.2.0", "react-refractor": "^2.1.6", - "react-rx": "^4.1.11", + "react-rx": "^4.1.12", "read-pkg-up": "^7.0.1", "refractor": "^3.6.0", "resolve-from": "^5.0.0", @@ -272,10 +272,10 @@ "@repo/dev-aliases": "workspace:*", "@repo/package.config": "workspace:*", "@repo/test-config": "workspace:*", - "@sanity/codegen": "3.68.3", + "@sanity/codegen": "3.69.0", "@sanity/generate-help-url": "^3.0.0", - "@sanity/pkg-utils": "6.12.3", - "@sanity/tsdoc": "1.0.157", + "@sanity/pkg-utils": "6.13.2", + "@sanity/tsdoc": "1.0.164", "@sanity/ui-workshop": "^1.2.11", "@sentry/types": "^8.12.0", "@testing-library/jest-dom": "^6.4.8", @@ -289,23 +289,23 @@ "@types/log-symbols": "^2.0.0", "@types/node": "^22.10.0", "@types/raf": "^3.4.0", - "@types/react": "^18.3.12", - "@types/react-dom": "^18.3.1", + "@types/react": "^19.0.3", + "@types/react-dom": "^19.0.2", "@types/refractor": "^3.0.0", "@types/resolve-from": "^4.0.0", "@types/semver": "^6.2.3", "@types/tar-fs": "^2.0.1", - "@vitejs/plugin-react": "^4.3.3", + "@vitejs/plugin-react": "^4.3.4", "@vvo/tzdb": "6.137.0", - "babel-plugin-react-compiler": "19.0.0-beta-55955c9-20241229", + "babel-plugin-react-compiler": "19.0.0-beta-63e3235-20250105", "blob-polyfill": "^9.0.20240710", "date-fns-tz": "2.0.1", "react": "^18.3.1", "react-dom": "^18.3.1", "rxjs-etc": "^10.6.2", - "styled-components": "^6.1.13", + "styled-components": "^6.1.14", "swr": "2.2.5", - "vitest": "^2.1.8" + "vitest": "2.1.8" }, "peerDependencies": { "react": "^18 || ^19.0.0", diff --git a/packages/sanity/playwright-ct/tests/formBuilder/tree-editing/TreeEditingStory.tsx b/packages/sanity/playwright-ct/tests/formBuilder/tree-editing/TreeEditingStory.tsx index c1262ccdfb1..6158f5f79ba 100644 --- a/packages/sanity/playwright-ct/tests/formBuilder/tree-editing/TreeEditingStory.tsx +++ b/packages/sanity/playwright-ct/tests/formBuilder/tree-editing/TreeEditingStory.tsx @@ -162,7 +162,7 @@ interface TreeEditingStoryProps { value?: SanityDocument } -export function TreeEditingStory(props: TreeEditingStoryProps): JSX.Element { +export function TreeEditingStory(props: TreeEditingStoryProps): React.JSX.Element { const {legacyEditing, openPath, value} = props const types = getSchemaTypes({legacyEditing}) diff --git a/packages/sanity/playwright-ct/tests/formBuilder/utils/TestWrapper.tsx b/packages/sanity/playwright-ct/tests/formBuilder/utils/TestWrapper.tsx index f0508b4893b..ce6896dc295 100644 --- a/packages/sanity/playwright-ct/tests/formBuilder/utils/TestWrapper.tsx +++ b/packages/sanity/playwright-ct/tests/formBuilder/utils/TestWrapper.tsx @@ -45,7 +45,7 @@ const router = route.create('/') * @description This component is used to wrap all tests in the providers it needs to be able to run successfully. * It provides a mock Sanity client and a mock workspace. */ -export const TestWrapper = (props: TestWrapperProps): JSX.Element | null => { +export const TestWrapper = (props: TestWrapperProps): React.JSX.Element | null => { const {children, schemaTypes, betaFeatures} = props const [mockWorkspace, setMockWorkspace] = useState(null) diff --git a/packages/sanity/src/_internal/cli/actions/graphql/extractFromSanitySchema.ts b/packages/sanity/src/_internal/cli/actions/graphql/extractFromSanitySchema.ts index 1ca695844c8..ec9a28d7d43 100644 --- a/packages/sanity/src/_internal/cli/actions/graphql/extractFromSanitySchema.ts +++ b/packages/sanity/src/_internal/cli/actions/graphql/extractFromSanitySchema.ts @@ -481,7 +481,9 @@ export function extractFromSanitySchema( } try { - unionRecursionGuards.add(guardPathName) + if (guardPathName !== 'reference') { + unionRecursionGuards.add(guardPathName) + } candidates.forEach((def, i) => { if (typeNeedsHoisting(def)) { diff --git a/packages/sanity/src/_internal/cli/util/checkStudioDependencyVersions.ts b/packages/sanity/src/_internal/cli/util/checkStudioDependencyVersions.ts index 8c8a638676d..989186f54e2 100644 --- a/packages/sanity/src/_internal/cli/util/checkStudioDependencyVersions.ts +++ b/packages/sanity/src/_internal/cli/util/checkStudioDependencyVersions.ts @@ -19,8 +19,8 @@ interface PackageInfo { // NOTE: when doing changes here, also remember to update versions in help docs at // https://sanity.io/admin/structure/docs;helpArticle;upgrade-packages const PACKAGES = [ - {name: 'react', supported: ['^18'], deprecatedBelow: null}, - {name: 'react-dom', supported: ['^18'], deprecatedBelow: null}, + {name: 'react', supported: ['^18 || ^19'], deprecatedBelow: null}, + {name: 'react-dom', supported: ['^18 || ^19'], deprecatedBelow: null}, {name: 'styled-components', supported: ['^6'], deprecatedBelow: null}, {name: '@sanity/ui', supported: ['^2'], deprecatedBelow: null}, ] diff --git a/packages/sanity/src/_internal/manifest/Icon.tsx b/packages/sanity/src/_internal/manifest/Icon.tsx index a0b087ab4e6..e36e99e1faa 100644 --- a/packages/sanity/src/_internal/manifest/Icon.tsx +++ b/packages/sanity/src/_internal/manifest/Icon.tsx @@ -12,7 +12,7 @@ interface SchemaIconProps { subtitle?: string } -const SchemaIcon = ({icon, title, subtitle}: SchemaIconProps): JSX.Element => { +const SchemaIcon = ({icon, title, subtitle}: SchemaIconProps): React.JSX.Element => { return {normalizeIcon(icon, title, subtitle)} } @@ -20,7 +20,7 @@ function normalizeIcon( Icon: ComponentType | ReactNode | undefined, title: string, subtitle = '', -): JSX.Element { +): React.JSX.Element { if (isValidElementType(Icon)) return if (isValidElement(Icon)) return Icon return createDefaultIcon(title, subtitle) diff --git a/packages/sanity/src/core/changeIndicators/overlay/ConnectorsOverlay.tsx b/packages/sanity/src/core/changeIndicators/overlay/ConnectorsOverlay.tsx index 9343598c34d..1fc11f5257b 100644 --- a/packages/sanity/src/core/changeIndicators/overlay/ConnectorsOverlay.tsx +++ b/packages/sanity/src/core/changeIndicators/overlay/ConnectorsOverlay.tsx @@ -3,7 +3,7 @@ import {sortBy} from 'lodash' import {useCallback, useMemo, useState} from 'react' import {type Reported} from '../../components/react-track-elements' -import {ScrollMonitor} from '../../components/scroll' +import {useOnScroll} from '../../components/scroll' import {DEBUG_LAYER_BOUNDS} from '../constants' import {findMostSpecificTarget} from '../helpers/findMostSpecificTarget' import {getOffsetsTo} from '../helpers/getOffsetsTo' @@ -121,27 +121,26 @@ export function ConnectorsOverlay(props: ConnectorsOverlayProps) { }, [byId, allReportedValues, hovered, rootElement]) useResizeObserver(rootElement, handleScrollOrResize) + useOnScroll(handleScrollOrResize) return ( - - - {visibleConnectors.map(({field, change}) => { - if (!change) { - return null - } - - return ( - - ) - })} - - + + {visibleConnectors.map(({field, change}) => { + if (!change) { + return null + } + + return ( + + ) + })} + ) } diff --git a/packages/sanity/src/core/comments/__workshop__/CommentsMessageURLSerializerStory.tsx b/packages/sanity/src/core/comments/__workshop__/CommentsMessageURLSerializerStory.tsx index e7561d7c8e6..524735d40dc 100644 --- a/packages/sanity/src/core/comments/__workshop__/CommentsMessageURLSerializerStory.tsx +++ b/packages/sanity/src/core/comments/__workshop__/CommentsMessageURLSerializerStory.tsx @@ -40,7 +40,7 @@ const BLOCKS: CommentMessage = [ }, ] -export default function CommentsMessageURLSerializerStory(): JSX.Element { +export default function CommentsMessageURLSerializerStory(): React.JSX.Element { return ( diff --git a/packages/sanity/src/core/comments/components/pte/CommentMessageSerializer.tsx b/packages/sanity/src/core/comments/components/pte/CommentMessageSerializer.tsx index 0a315e682ef..dd4a236f74a 100644 --- a/packages/sanity/src/core/comments/components/pte/CommentMessageSerializer.tsx +++ b/packages/sanity/src/core/comments/components/pte/CommentMessageSerializer.tsx @@ -78,7 +78,7 @@ interface CommentMessageSerializerProps { * @beta * @hidden */ -export function CommentMessageSerializer(props: CommentMessageSerializerProps): JSX.Element { +export function CommentMessageSerializer(props: CommentMessageSerializerProps): React.JSX.Element { const {blocks} = props return ( diff --git a/packages/sanity/src/core/comments/components/pte/blocks/NormalBlock.tsx b/packages/sanity/src/core/comments/components/pte/blocks/NormalBlock.tsx index 338136e9bd6..85787534215 100644 --- a/packages/sanity/src/core/comments/components/pte/blocks/NormalBlock.tsx +++ b/packages/sanity/src/core/comments/components/pte/blocks/NormalBlock.tsx @@ -10,7 +10,7 @@ interface NormalBlockProps { children: ReactNode } -export function NormalBlock(props: NormalBlockProps): JSX.Element { +export function NormalBlock(props: NormalBlockProps): React.JSX.Element { const {children} = props return {children} diff --git a/packages/sanity/src/core/comments/components/reactions/CommentReactionsMenuButton.tsx b/packages/sanity/src/core/comments/components/reactions/CommentReactionsMenuButton.tsx index 974855a1241..3a180a2e20d 100644 --- a/packages/sanity/src/core/comments/components/reactions/CommentReactionsMenuButton.tsx +++ b/packages/sanity/src/core/comments/components/reactions/CommentReactionsMenuButton.tsx @@ -20,7 +20,7 @@ export interface CommentReactionsMenuButtonProps { open: boolean tooltipContent: string t: TFunction - }) => React.ReactElement + }) => React.JSX.Element } export function CommentReactionsMenuButton(props: CommentReactionsMenuButtonProps) { diff --git a/packages/sanity/src/core/comments/components/reactions/CommentReactionsUsersTooltip.tsx b/packages/sanity/src/core/comments/components/reactions/CommentReactionsUsersTooltip.tsx index 50126e0d88b..c340d7b2e39 100644 --- a/packages/sanity/src/core/comments/components/reactions/CommentReactionsUsersTooltip.tsx +++ b/packages/sanity/src/core/comments/components/reactions/CommentReactionsUsersTooltip.tsx @@ -89,7 +89,7 @@ function FormattedUserList({currentUserId, userIds}: {currentUserId: string; use * not special case on _comma_ per se, but rather by the presence of a non-whitespace character. */ const parts = listFormat.formatToParts(userIds) - const elements: JSX.Element[] = [] + const elements: React.JSX.Element[] = [] for (let i = 0; i < parts.length; i++) { const item = parts[i] diff --git a/packages/sanity/src/core/components/DefaultDocument.tsx b/packages/sanity/src/core/components/DefaultDocument.tsx index 25bc84feb17..f432dfc65a9 100644 --- a/packages/sanity/src/core/components/DefaultDocument.tsx +++ b/packages/sanity/src/core/components/DefaultDocument.tsx @@ -1,5 +1,4 @@ /* eslint-disable i18next/no-literal-string */ -import {type ReactElement} from 'react' import {Favicons} from './Favicons' import {GlobalErrorHandler} from './globalErrorHandler' @@ -122,7 +121,7 @@ const EMPTY_ARRAY: never[] = [] /** * @hidden * @beta */ -export function DefaultDocument(props: DefaultDocumentProps): ReactElement { +export function DefaultDocument(props: DefaultDocumentProps): React.JSX.Element { const {entryPath, css = EMPTY_ARRAY} = props return ( diff --git a/packages/sanity/src/core/components/WithReferringDocuments.tsx b/packages/sanity/src/core/components/WithReferringDocuments.tsx index ef784d2c6a3..e1cfcc5d0de 100644 --- a/packages/sanity/src/core/components/WithReferringDocuments.tsx +++ b/packages/sanity/src/core/components/WithReferringDocuments.tsx @@ -1,5 +1,4 @@ import {type SanityDocument} from '@sanity/types' -import {type ReactElement} from 'react' import {useReferringDocuments} from '../hooks/useReferringDocuments' import {type DocumentStore} from '../store' @@ -14,7 +13,7 @@ export function WithReferringDocuments({ children, id, }: { - children: (props: {isLoading: boolean; referringDocuments: SanityDocument[]}) => ReactElement + children: (props: {isLoading: boolean; referringDocuments: SanityDocument[]}) => React.JSX.Element /** * @deprecated - no longer required */ diff --git a/packages/sanity/src/core/components/collapseMenu/CollapseMenu.tsx b/packages/sanity/src/core/components/collapseMenu/CollapseMenu.tsx index 6f6a6542232..86c5d2cdabe 100644 --- a/packages/sanity/src/core/components/collapseMenu/CollapseMenu.tsx +++ b/packages/sanity/src/core/components/collapseMenu/CollapseMenu.tsx @@ -7,7 +7,6 @@ import { forwardRef, Fragment, memo, - type ReactElement, type ReactNode, useCallback, useMemo, @@ -30,7 +29,7 @@ export interface CollapseMenuProps { gap?: number | number[] menuButtonProps?: Omit & { id?: string - button?: ReactElement + button?: React.JSX.Element } onMenuClose?: () => void } @@ -73,13 +72,13 @@ const OptionObserveElement = styled(ObserveElement)` ${OPTION_STYLE} ` -function _isReactElement(node: unknown): node is ReactElement { +function _isReactElement(node: unknown): node is React.JSX.Element { return Boolean(node) } interface IntersectionEntry { intersects: boolean - element: ReactElement + element: React.JSX.Element // todo: potentially add bounding rects so we can calculate how many we can fit non-collapsed vs collapsed } @@ -126,7 +125,7 @@ export const CollapseMenu = forwardRef(function CollapseMenu( /** @internal */ export const AutoCollapseMenu = forwardRef(function AutoCollapseMenu( - props: Omit & {menuOptions: ReactElement[]}, + props: Omit & {menuOptions: React.JSX.Element[]}, ref: ForwardedRef, ) { const { @@ -180,7 +179,7 @@ export const AutoCollapseMenu = forwardRef(function AutoCollapseMenu( ) const handleExpandedIntersection = useCallback( - (e: IntersectionObserverEntry, element: ReactElement) => { + (e: IntersectionObserverEntry, element: React.JSX.Element) => { setExpandedIntersections((current) => { const key = element.key if (key === null) { @@ -205,7 +204,7 @@ export const AutoCollapseMenu = forwardRef(function AutoCollapseMenu( ) const handleCollapsedIntersection = useCallback( - (e: IntersectionObserverEntry, element: ReactElement) => { + (e: IntersectionObserverEntry, element: React.JSX.Element) => { setCollapsedIntersections((current) => { const key = element.key if (key === null) { @@ -335,10 +334,10 @@ export const AutoCollapseMenu = forwardRef(function AutoCollapseMenu( }) const RenderHidden = memo(function RenderHidden(props: { - elements: ReactElement[] + elements: React.JSX.Element[] gap?: number | number[] intersectionOptions: IntersectionObserverInit - onIntersectionChange: (e: IntersectionObserverEntry, element: ReactElement) => void + onIntersectionChange: (e: IntersectionObserverEntry, element: React.JSX.Element) => void }) { const {elements, gap, intersectionOptions, onIntersectionChange} = props return ( diff --git a/packages/sanity/src/core/components/collapseMenu/CollapseMenuButton.tsx b/packages/sanity/src/core/components/collapseMenu/CollapseMenuButton.tsx index 31eff1cd059..b2271431713 100644 --- a/packages/sanity/src/core/components/collapseMenu/CollapseMenuButton.tsx +++ b/packages/sanity/src/core/components/collapseMenu/CollapseMenuButton.tsx @@ -10,7 +10,7 @@ import {Button, type ButtonProps, type TooltipProps} from '../../../ui-component /** @internal */ export interface CommonProps extends Omit { - as?: ElementType | keyof JSX.IntrinsicElements + as?: ElementType | keyof React.JSX.IntrinsicElements dividerBefore?: boolean focused?: boolean tooltipProps?: TooltipProps diff --git a/packages/sanity/src/core/components/collapseMenu/CollapseOverflowMenu.tsx b/packages/sanity/src/core/components/collapseMenu/CollapseOverflowMenu.tsx index d37318090d8..219de6a165d 100644 --- a/packages/sanity/src/core/components/collapseMenu/CollapseOverflowMenu.tsx +++ b/packages/sanity/src/core/components/collapseMenu/CollapseOverflowMenu.tsx @@ -1,5 +1,5 @@ import {Menu, MenuDivider} from '@sanity/ui' -import {type ForwardedRef, forwardRef, Fragment, type ReactElement} from 'react' +import {type ForwardedRef, forwardRef, Fragment} from 'react' import {MenuButton, type MenuButtonProps, MenuItem} from '../../../ui-components' import {type CollapseMenuProps} from './CollapseMenu' @@ -13,7 +13,7 @@ export const CollapseOverflowMenu = forwardRef(function CollapseOverflowMenu( props: Pick< CollapseMenuProps, 'disableRestoreFocusOnClose' | 'menuButtonProps' | 'onMenuClose' - > & {menuOptions: ReactElement[]; menuButton: ReactElement}, + > & {menuOptions: React.JSX.Element[]; menuButton: React.JSX.Element}, forwardedRef: ForwardedRef, ) { const {disableRestoreFocusOnClose, menuButton, menuButtonProps, menuOptions, onMenuClose} = props diff --git a/packages/sanity/src/core/components/collapseMenu/ObserveElement.tsx b/packages/sanity/src/core/components/collapseMenu/ObserveElement.tsx index be88e0324a0..fe86c397d45 100644 --- a/packages/sanity/src/core/components/collapseMenu/ObserveElement.tsx +++ b/packages/sanity/src/core/components/collapseMenu/ObserveElement.tsx @@ -1,8 +1,8 @@ import {Flex} from '@sanity/ui' -import {type ReactElement, useEffect, useState} from 'react' +import {useEffect, useState} from 'react' interface ObserveElementProps { - children: ReactElement + children: React.JSX.Element options?: IntersectionObserverInit onIntersectionChange: IntersectionObserverCallback } diff --git a/packages/sanity/src/core/components/collapseTabList/CollapseTabList.tsx b/packages/sanity/src/core/components/collapseTabList/CollapseTabList.tsx index d91b7a6ac55..d96e532b011 100644 --- a/packages/sanity/src/core/components/collapseTabList/CollapseTabList.tsx +++ b/packages/sanity/src/core/components/collapseTabList/CollapseTabList.tsx @@ -4,7 +4,6 @@ import { cloneElement, type ForwardedRef, forwardRef, - type ReactElement, type ReactNode, useCallback, useMemo, @@ -17,7 +16,7 @@ import {CollapseOverflowMenu} from '../collapseMenu/CollapseOverflowMenu' import {ObserveElement} from '../collapseMenu/ObserveElement' import {ContextMenuButton} from '../contextMenuButton' -function _isReactElement(node: unknown): node is ReactElement { +function _isReactElement(node: unknown): node is React.JSX.Element { return Boolean(node) } @@ -40,7 +39,7 @@ interface CollapseTabListProps { gap?: number | number[] menuButtonProps?: Omit & { id?: string - button?: ReactElement + button?: React.JSX.Element } onMenuClose?: () => void collapsed?: boolean @@ -65,7 +64,7 @@ export const CollapseTabList = forwardRef(function CollapseTabList( ...rest } = props const [rootEl, setRootEl] = useState(null) - const [hiddenElements, setHiddenElements] = useState([]) + const [hiddenElements, setHiddenElements] = useState([]) const [showChildren, setShowChildren] = useState(false) const children = useMemo( @@ -101,13 +100,15 @@ export const CollapseTabList = forwardRef(function CollapseTabList( () => collapsed ? children - : // eslint-disable-next-line max-nested-callbacks - children.filter(({key}) => hiddenElements.find((o: ReactElement) => o.key === key)), + : children.filter(({key}) => + // eslint-disable-next-line max-nested-callbacks + hiddenElements.find((o: React.JSX.Element) => o.key === key), + ), [children, hiddenElements, collapsed], ) const handleIntersection = useCallback( - (e: IntersectionObserverEntry, child: ReactElement) => { + (e: IntersectionObserverEntry, child: React.JSX.Element) => { const isHidden = hiddenElements.some((el) => el.key === child.key) if (!showChildren) setShowChildren(true) diff --git a/packages/sanity/src/core/components/commandList/CommandList.tsx b/packages/sanity/src/core/components/commandList/CommandList.tsx index c4c44978074..be7b38a9e92 100644 --- a/packages/sanity/src/core/components/commandList/CommandList.tsx +++ b/packages/sanity/src/core/components/commandList/CommandList.tsx @@ -10,7 +10,6 @@ import { Fragment, isValidElement, memo, - type ReactElement, useCallback, useEffect, useId, @@ -608,7 +607,7 @@ const CommandListComponent = forwardRef(fun disabled, selected, virtualIndex, - }) as ReactElement + }) as React.JSX.Element // @TODO can we avoid using cloneElement here? const clonedItem = diff --git a/packages/sanity/src/core/components/hookCollection/GetHookCollectionState.tsx b/packages/sanity/src/core/components/hookCollection/GetHookCollectionState.tsx index a310675ae48..9a412df18ac 100644 --- a/packages/sanity/src/core/components/hookCollection/GetHookCollectionState.tsx +++ b/packages/sanity/src/core/components/hookCollection/GetHookCollectionState.tsx @@ -33,4 +33,4 @@ GetHookCollectionStateComponent.displayName = 'Memo(GetHookCollectionState)' /** @internal */ export const GetHookCollectionState = GetHookCollectionStateComponent as ( props: GetHookCollectionStateProps, -) => JSX.Element +) => React.JSX.Element diff --git a/packages/sanity/src/core/components/previews/_common/Media.tsx b/packages/sanity/src/core/components/previews/_common/Media.tsx index b81c46daf97..8acd19e2751 100644 --- a/packages/sanity/src/core/components/previews/_common/Media.tsx +++ b/packages/sanity/src/core/components/previews/_common/Media.tsx @@ -49,13 +49,7 @@ function renderMedia(props: { if (isValidElementType(media)) { const MediaComponent = media - return ( - - ) + return } if (typeof media === 'string') { diff --git a/packages/sanity/src/core/components/previews/helpers.tsx b/packages/sanity/src/core/components/previews/helpers.tsx index b85beb80929..bc46c81f131 100644 --- a/packages/sanity/src/core/components/previews/helpers.tsx +++ b/packages/sanity/src/core/components/previews/helpers.tsx @@ -10,13 +10,7 @@ export function renderPreviewMedia( ): ReactNode { if (isValidElementType(value)) { const Value = value - return ( - - ) + return } if (typeof value === 'string') { @@ -38,12 +32,7 @@ export function renderPreviewNode( if (isValidElementType(value)) { const Value = value - return ( - - ) + return } // @todo: find out why `value` isn't infered as `ReactNode` here diff --git a/packages/sanity/src/core/components/previews/template/TemplatePreview.tsx b/packages/sanity/src/core/components/previews/template/TemplatePreview.tsx index 545bf6fa24c..2e26e30b34e 100644 --- a/packages/sanity/src/core/components/previews/template/TemplatePreview.tsx +++ b/packages/sanity/src/core/components/previews/template/TemplatePreview.tsx @@ -86,20 +86,14 @@ export function TemplatePreview(props: TemplatePreviewProps) { {isValidElementType(Title) && ( - + <Title layout="default" /> </Text> )} {isValidElement(Title) && <Text textOverflow="ellipsis">{Title}</Text>} {isValidElementType(Subtitle) && ( <Text muted size={1} textOverflow="ellipsis"> - <Subtitle - // @ts-expect-error - @todo fix typings - layout="default" - /> + <Subtitle layout="default" /> </Text> )} {isValidElement(Subtitle) && ( diff --git a/packages/sanity/src/core/components/previews/types.ts b/packages/sanity/src/core/components/previews/types.ts index 9c22873ba6d..d67008a646a 100644 --- a/packages/sanity/src/core/components/previews/types.ts +++ b/packages/sanity/src/core/components/previews/types.ts @@ -1,5 +1,5 @@ import {type ImageUrlFitMode, type SchemaType} from '@sanity/types' -import {type ComponentType, type ReactElement, type ReactNode} from 'react' +import {type ComponentType, type ReactNode} from 'react' /** * Portable text preview layout key @@ -65,7 +65,7 @@ export interface PreviewProps<TLayoutKey = PreviewLayoutKey> { withRadius?: boolean withShadow?: boolean schemaType?: SchemaType - renderDefault: (props: PreviewProps) => ReactElement + renderDefault: (props: PreviewProps) => React.JSX.Element } /** diff --git a/packages/sanity/src/core/components/scroll/index.ts b/packages/sanity/src/core/components/scroll/index.ts index e64e5cb3d46..fe7bd0d64c9 100644 --- a/packages/sanity/src/core/components/scroll/index.ts +++ b/packages/sanity/src/core/components/scroll/index.ts @@ -1,4 +1,3 @@ export * from './hooks' export * from './scrollContainer' -export * from './scrollMonitor' export * from './types' diff --git a/packages/sanity/src/core/components/scroll/scrollContainer.tsx b/packages/sanity/src/core/components/scroll/scrollContainer.tsx index f8a39fdb2e3..302a509c65d 100644 --- a/packages/sanity/src/core/components/scroll/scrollContainer.tsx +++ b/packages/sanity/src/core/components/scroll/scrollContainer.tsx @@ -4,6 +4,7 @@ import { type ForwardedRef, forwardRef, type HTMLProps, + memo, useContext, useEffect, useImperativeHandle, @@ -15,23 +16,13 @@ import {ScrollContext} from 'sanity/_singletons' /** @internal */ export interface ScrollContainerProps<T extends ElementType> extends Omit<HTMLProps<T>, 'as' | 'onScroll'> { - as?: ElementType | keyof JSX.IntrinsicElements + as?: ElementType | keyof React.JSX.IntrinsicElements onScroll?: (event: Event) => () => void } -/** - * This provides a utility function for use within Sanity Studios to create scrollable containers - * It also provides a way for components inside a scrollable container to track onScroll on their first parent scroll container - * NOTE: this is used by different studio utilities to track positions of elements on screen - * NOTE: It will call any given `onScroll` callback with a Native DOM Event, and not a React Synthetic event - * NOTE: It will not make sure the element is actually scrollable, this still needs to be done with css as usual - * - * @internal - */ -export const ScrollContainer = forwardRef(function ScrollContainer<T extends ElementType = 'div'>( - props: ScrollContainerProps<T>, - forwardedRef: ForwardedRef<HTMLDivElement>, -) { +const ScrollContainerComponent = forwardRef(function ScrollContainerComponent< + T extends ElementType = 'div', +>(props: ScrollContainerProps<T>, forwardedRef: ForwardedRef<HTMLDivElement>) { const {as: As = 'div', onScroll, ...rest} = props const ref = useRef<HTMLDivElement | null>(null) @@ -79,3 +70,15 @@ export const ScrollContainer = forwardRef(function ScrollContainer<T extends Ele </ScrollContext.Provider> ) }) + +/** + * This provides a utility function for use within Sanity Studios to create scrollable containers + * It also provides a way for components inside a scrollable container to track onScroll on their first parent scroll container + * NOTE: this is used by different studio utilities to track positions of elements on screen + * NOTE: It will call any given `onScroll` callback with a Native DOM Event, and not a React Synthetic event + * NOTE: It will not make sure the element is actually scrollable, this still needs to be done with css as usual + * + * @internal + */ +export const ScrollContainer = memo(ScrollContainerComponent) +ScrollContainer.displayName = 'Memo(Forwardref(ScrollContainer))' diff --git a/packages/sanity/src/core/components/scroll/scrollMonitor.tsx b/packages/sanity/src/core/components/scroll/scrollMonitor.tsx deleted file mode 100644 index 674de4029af..00000000000 --- a/packages/sanity/src/core/components/scroll/scrollMonitor.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import {type ReactNode} from 'react' - -import {useOnScroll} from './hooks' -import {type ScrollEventHandler} from './types' - -/** @internal */ -export interface ScrollMonitorProps { - onScroll: ScrollEventHandler - children?: ReactNode -} - -/** @internal */ -export function ScrollMonitor({onScroll, children}: ScrollMonitorProps) { - useOnScroll(onScroll) - return <>{children}</> -} diff --git a/packages/sanity/src/core/components/zOffsets/ZIndexProvider.tsx b/packages/sanity/src/core/components/zOffsets/ZIndexProvider.tsx index 42a9cfd0629..a39c814fc94 100644 --- a/packages/sanity/src/core/components/zOffsets/ZIndexProvider.tsx +++ b/packages/sanity/src/core/components/zOffsets/ZIndexProvider.tsx @@ -1,4 +1,4 @@ -import {type ReactElement, type ReactNode} from 'react' +import {type ReactNode} from 'react' import {ZIndexContext, zIndexContextDefaults} from 'sanity/_singletons' /** @@ -6,6 +6,6 @@ import {ZIndexContext, zIndexContextDefaults} from 'sanity/_singletons' * * @internal */ -export function ZIndexProvider({children}: {children?: ReactNode}): ReactElement { +export function ZIndexProvider({children}: {children?: ReactNode}): React.JSX.Element { return <ZIndexContext.Provider value={zIndexContextDefaults}>{children}</ZIndexContext.Provider> } diff --git a/packages/sanity/src/core/config/prepareConfig.tsx b/packages/sanity/src/core/config/prepareConfig.tsx index a50a441252b..9c5e73dd0ed 100644 --- a/packages/sanity/src/core/config/prepareConfig.tsx +++ b/packages/sanity/src/core/config/prepareConfig.tsx @@ -71,7 +71,7 @@ function normalizeIcon( Icon: ComponentType | ElementType | undefined, title: string, subtitle = '', -): JSX.Element { +): React.JSX.Element { if (isValidElementType(Icon)) return <Icon /> if (isValidElement(Icon)) return Icon return createDefaultIcon(title, subtitle) diff --git a/packages/sanity/src/core/config/studio/types.ts b/packages/sanity/src/core/config/studio/types.ts index ac12e9d2861..a8e3a5657b2 100644 --- a/packages/sanity/src/core/config/studio/types.ts +++ b/packages/sanity/src/core/config/studio/types.ts @@ -1,4 +1,4 @@ -import {type ComponentType, type ReactElement} from 'react' +import {type ComponentType} from 'react' import {type Tool} from '../types' @@ -7,7 +7,7 @@ import {type Tool} from '../types' * @beta */ // Components export interface LayoutProps { - renderDefault: (props: LayoutProps) => ReactElement + renderDefault: (props: LayoutProps) => React.JSX.Element } /** @@ -15,7 +15,7 @@ export interface LayoutProps { * @beta */ export interface LogoProps { title: string - renderDefault: (props: LogoProps) => ReactElement + renderDefault: (props: LogoProps) => React.JSX.Element } interface NavbarActionBase { @@ -25,7 +25,7 @@ interface NavbarActionBase { } interface ActionWithCustomRender extends NavbarActionBase { - render: () => ReactElement + render: () => React.ReactElement } interface Action extends NavbarActionBase { @@ -46,7 +46,7 @@ export type NavbarAction = Action | ActionWithCustomRender * @hidden * @beta */ export interface NavbarProps { - renderDefault: (props: NavbarProps) => ReactElement + renderDefault: (props: NavbarProps) => React.JSX.Element /** * @internal @@ -58,7 +58,7 @@ export interface NavbarProps { * @hidden * @beta */ export interface ActiveToolLayoutProps { - renderDefault: (props: ActiveToolLayoutProps) => React.ReactElement + renderDefault: (props: ActiveToolLayoutProps) => React.JSX.Element activeTool: Tool } @@ -71,7 +71,7 @@ export interface ToolMenuProps { context: 'sidebar' | 'topbar' isSidebarOpen: boolean tools: Tool[] - renderDefault: (props: ToolMenuProps) => ReactElement + renderDefault: (props: ToolMenuProps) => React.JSX.Element } /** diff --git a/packages/sanity/src/core/config/types.ts b/packages/sanity/src/core/config/types.ts index ed8205733dc..b2035e203c0 100644 --- a/packages/sanity/src/core/config/types.ts +++ b/packages/sanity/src/core/config/types.ts @@ -604,7 +604,7 @@ export interface DocumentLayoutProps { * The type of the document. This is a read-only property and changing it will have no effect. */ documentType: string - renderDefault: (props: DocumentLayoutProps) => React.ReactElement + renderDefault: (props: DocumentLayoutProps) => React.JSX.Element } interface DocumentComponents { diff --git a/packages/sanity/src/core/create/context/SanityCreateConfigProvider.tsx b/packages/sanity/src/core/create/context/SanityCreateConfigProvider.tsx index d1ae36a1105..5d58ee1905c 100644 --- a/packages/sanity/src/core/create/context/SanityCreateConfigProvider.tsx +++ b/packages/sanity/src/core/create/context/SanityCreateConfigProvider.tsx @@ -15,7 +15,9 @@ interface SanityCreateConfigProviderProps { /** * @internal */ -export function SanityCreateConfigProvider(props: SanityCreateConfigProviderProps): JSX.Element { +export function SanityCreateConfigProvider( + props: SanityCreateConfigProviderProps, +): React.JSX.Element { const {children} = props const {beta} = useSource() diff --git a/packages/sanity/src/core/field/diff/components/ChangeList.tsx b/packages/sanity/src/core/field/diff/components/ChangeList.tsx index 0abc2113592..e23ad016580 100644 --- a/packages/sanity/src/core/field/diff/components/ChangeList.tsx +++ b/packages/sanity/src/core/field/diff/components/ChangeList.tsx @@ -2,7 +2,7 @@ import {type SanityDocument} from '@sanity/client' import {RevertIcon} from '@sanity/icons' import {type ObjectSchemaType} from '@sanity/types' import {Box, Card, Flex, Stack, Text, useClickOutsideEvent} from '@sanity/ui' -import {type ReactElement, useCallback, useContext, useMemo, useRef, useState} from 'react' +import {useCallback, useContext, useMemo, useRef, useState} from 'react' import {DiffContext} from 'sanity/_singletons' import {Button, Popover} from '../../../../ui-components' @@ -26,7 +26,7 @@ export interface ChangeListProps { } /** @internal */ -export function ChangeList({diff, fields, schemaType}: ChangeListProps): ReactElement | null { +export function ChangeList({diff, fields, schemaType}: ChangeListProps): React.JSX.Element | null { const {documentId, isComparingCurrent, value} = useDocumentChange() const docOperations = useDocumentOperation(documentId, schemaType.name) as FieldOperationsAPI const {path} = useContext(DiffContext) diff --git a/packages/sanity/src/core/field/diff/components/DiffCard.tsx b/packages/sanity/src/core/field/diff/components/DiffCard.tsx index e1e104e054f..d5eb775601d 100644 --- a/packages/sanity/src/core/field/diff/components/DiffCard.tsx +++ b/packages/sanity/src/core/field/diff/components/DiffCard.tsx @@ -10,7 +10,7 @@ import {DiffTooltip} from './DiffTooltip' /** @internal */ export interface DiffCardProps { annotation?: Annotation - as?: ElementType | keyof JSX.IntrinsicElements + as?: ElementType | keyof React.JSX.IntrinsicElements diff?: Diff disableHoverEffect?: boolean path?: Path | string diff --git a/packages/sanity/src/core/field/diff/components/DiffInspectWrapper.tsx b/packages/sanity/src/core/field/diff/components/DiffInspectWrapper.tsx index 7499bbe9f6f..13a97306772 100644 --- a/packages/sanity/src/core/field/diff/components/DiffInspectWrapper.tsx +++ b/packages/sanity/src/core/field/diff/components/DiffInspectWrapper.tsx @@ -1,5 +1,5 @@ import {Box, type BoxProps, Card, Code, Stack, Text} from '@sanity/ui' -import {type ReactElement, type ReactNode, useCallback, useEffect, useRef, useState} from 'react' +import {type ReactNode, useCallback, useEffect, useRef, useState} from 'react' import {type ExecutionProps, styled} from 'styled-components' import {useTranslation} from '../../../i18n' @@ -26,7 +26,7 @@ const Meta = styled.div` ` /** @internal */ -export function DiffInspectWrapper(props: DiffInspectWrapperProps & BoxProps): ReactElement { +export function DiffInspectWrapper(props: DiffInspectWrapperProps & BoxProps): React.JSX.Element { const {children, as, change, ...restProps} = props const isHovering = useRef(false) const [isInspecting, setIsInspecting] = useState(false) @@ -62,7 +62,7 @@ const MetaLabel = ({title}: {title: string}) => ( </Box> ) -function DiffInspector({change}: {change: FieldChangeNode}): ReactElement | null { +function DiffInspector({change}: {change: FieldChangeNode}): React.JSX.Element | null { const {t} = useTranslation() return ( <Stack space={3}> diff --git a/packages/sanity/src/core/field/diff/components/DiffString.tsx b/packages/sanity/src/core/field/diff/components/DiffString.tsx index 3cd144e82ba..8980cf623b3 100644 --- a/packages/sanity/src/core/field/diff/components/DiffString.tsx +++ b/packages/sanity/src/core/field/diff/components/DiffString.tsx @@ -1,5 +1,4 @@ import {Card, rem, Text} from '@sanity/ui' -import {type ReactElement} from 'react' import {styled} from 'styled-components' import {useTranslation} from '../../../i18n' @@ -35,7 +34,7 @@ const ChangeSegment = styled(Text)` ` /** @internal */ -export function DiffStringSegment(props: {segment: StringDiffSegment}): ReactElement { +export function DiffStringSegment(props: {segment: StringDiffSegment}): React.JSX.Element { const {segment} = props const {text} = segment const {t} = useTranslation() diff --git a/packages/sanity/src/core/field/diff/components/DiffTooltip.tsx b/packages/sanity/src/core/field/diff/components/DiffTooltip.tsx index b5cc342a249..6c0100d1cc0 100644 --- a/packages/sanity/src/core/field/diff/components/DiffTooltip.tsx +++ b/packages/sanity/src/core/field/diff/components/DiffTooltip.tsx @@ -1,6 +1,6 @@ import {type Path} from '@sanity/types' import {Card, Flex, Inline, Stack, Text} from '@sanity/ui' -import {type ReactElement, type ReactNode} from 'react' +import {type ReactNode} from 'react' import {Tooltip, type TooltipProps} from '../../../../ui-components' import {LegacyLayerProvider, UserAvatar} from '../../../components' @@ -13,7 +13,7 @@ import {Event} from '../components/Event' /** @internal */ export interface DiffTooltipProps extends TooltipProps { - children: ReactElement + children: React.JSX.Element description?: ReactNode diff: Diff path?: Path | string @@ -22,7 +22,7 @@ export interface DiffTooltipProps extends TooltipProps { /** @internal */ export interface DiffTooltipWithAnnotationsProps extends TooltipProps { annotations: AnnotationDetails[] - children: ReactElement + children: React.JSX.Element description?: ReactNode } diff --git a/packages/sanity/src/core/field/diff/components/GroupChange.tsx b/packages/sanity/src/core/field/diff/components/GroupChange.tsx index 109c3af4ca5..b3f1804f700 100644 --- a/packages/sanity/src/core/field/diff/components/GroupChange.tsx +++ b/packages/sanity/src/core/field/diff/components/GroupChange.tsx @@ -1,13 +1,5 @@ import {Box, Flex, Stack, Text, useClickOutsideEvent} from '@sanity/ui' -import { - type HTMLAttributes, - type ReactElement, - useCallback, - useContext, - useMemo, - useRef, - useState, -} from 'react' +import {type HTMLAttributes, useCallback, useContext, useMemo, useRef, useState} from 'react' import {DiffContext} from 'sanity/_singletons' import {Button, Popover} from '../../../../ui-components' @@ -33,7 +25,7 @@ export function GroupChange( readOnly?: boolean hidden?: boolean } & HTMLAttributes<HTMLDivElement>, -): ReactElement | null { +): React.JSX.Element | null { const {change: group, readOnly, hidden, ...restProps} = props const {titlePath, changes, path: groupPath} = group const {path: diffPath} = useContext(DiffContext) diff --git a/packages/sanity/src/core/field/diff/components/RevertChangesButton.tsx b/packages/sanity/src/core/field/diff/components/RevertChangesButton.tsx index c0c718e0f70..f1ce3a18700 100644 --- a/packages/sanity/src/core/field/diff/components/RevertChangesButton.tsx +++ b/packages/sanity/src/core/field/diff/components/RevertChangesButton.tsx @@ -1,5 +1,5 @@ import {RevertIcon} from '@sanity/icons' -import {type ForwardedRef, forwardRef, type HTMLProps, type ReactElement} from 'react' +import {type ForwardedRef, forwardRef, type HTMLProps} from 'react' import {styled} from 'styled-components' import {Button, type ButtonProps} from '../../../../ui-components' @@ -31,7 +31,7 @@ export const RevertChangesButton = forwardRef(function RevertChangesButton( props: Omit<ButtonProps, 'tooltipProps'> & Omit<HTMLProps<HTMLButtonElement>, 'ref'> & {changeCount: number}, ref: ForwardedRef<HTMLButtonElement>, -): ReactElement { +): React.JSX.Element { const {selected, changeCount, ...restProps} = props const {t} = useTranslation() diff --git a/packages/sanity/src/core/field/types/image/diff/ImagePreview.tsx b/packages/sanity/src/core/field/types/image/diff/ImagePreview.tsx index 690a7ca077e..1cfedd5d02a 100644 --- a/packages/sanity/src/core/field/types/image/diff/ImagePreview.tsx +++ b/packages/sanity/src/core/field/types/image/diff/ImagePreview.tsx @@ -3,7 +3,7 @@ import {hues} from '@sanity/color' import {ImageIcon} from '@sanity/icons' import imageUrlBuilder from '@sanity/image-url' import {Box, Card, Flex, Text} from '@sanity/ui' -import {type ReactElement, type SyntheticEvent, useMemo, useState} from 'react' +import {type SyntheticEvent, useMemo, useState} from 'react' import {styled} from 'styled-components' import {useClient} from '../../../../hooks' @@ -95,7 +95,7 @@ const HotspotDiff = styled.div` } ` -export function ImagePreview(props: ImagePreviewProps): ReactElement { +export function ImagePreview(props: ImagePreviewProps): React.JSX.Element { const {id, action, diff, hotspot, crop, is} = props const {t} = useTranslation() const client = useClient(DEFAULT_STUDIO_CLIENT_OPTIONS) diff --git a/packages/sanity/src/core/field/types/portableText/diff/components/Block.tsx b/packages/sanity/src/core/field/types/portableText/diff/components/Block.tsx index 56484c1128e..c61b0e31b3d 100644 --- a/packages/sanity/src/core/field/types/portableText/diff/components/Block.tsx +++ b/packages/sanity/src/core/field/types/portableText/diff/components/Block.tsx @@ -16,8 +16,8 @@ const EMPTY_PATH: Path = [] export function Block(props: { diff: PortableTextDiff block: PortableTextTextBlock - children: JSX.Element -}): JSX.Element { + children: React.JSX.Element +}): React.JSX.Element { const {diff, block, children} = props const color = useDiffAnnotationColor(diff, EMPTY_PATH) const {path: fullPath} = useContext(DiffContext) diff --git a/packages/sanity/src/core/field/types/portableText/diff/components/Blockquote.tsx b/packages/sanity/src/core/field/types/portableText/diff/components/Blockquote.tsx index a3becda3f81..81b8a4fa83f 100644 --- a/packages/sanity/src/core/field/types/portableText/diff/components/Blockquote.tsx +++ b/packages/sanity/src/core/field/types/portableText/diff/components/Blockquote.tsx @@ -5,7 +5,7 @@ const Quote = styled.blockquote` margin: 0; ` -export function Blockquote({children}: {children: ReactNode}): JSX.Element { +export function Blockquote({children}: {children: ReactNode}): React.JSX.Element { return ( <div> <Quote>{children}</Quote> diff --git a/packages/sanity/src/core/field/types/portableText/diff/components/Decorator.tsx b/packages/sanity/src/core/field/types/portableText/diff/components/Decorator.tsx index b5aa49f53a3..203308240b4 100644 --- a/packages/sanity/src/core/field/types/portableText/diff/components/Decorator.tsx +++ b/packages/sanity/src/core/field/types/portableText/diff/components/Decorator.tsx @@ -25,6 +25,6 @@ const DecoratorWrapper = styled.span<{decoration: string}>` }} ` -export function Decorator({mark, children}: {mark: string; children: JSX.Element}) { +export function Decorator({mark, children}: {mark: string; children: React.JSX.Element}) { return <DecoratorWrapper decoration={mark}>{children}</DecoratorWrapper> } diff --git a/packages/sanity/src/core/field/types/portableText/diff/components/Header.tsx b/packages/sanity/src/core/field/types/portableText/diff/components/Header.tsx index cfecee3f84a..a4073371b43 100644 --- a/packages/sanity/src/core/field/types/portableText/diff/components/Header.tsx +++ b/packages/sanity/src/core/field/types/portableText/diff/components/Header.tsx @@ -24,6 +24,6 @@ const StyledHeading = styled(Heading)` } ` -export function Header({style, children}: {style: string; children: ReactNode}): JSX.Element { +export function Header({style, children}: {style: string; children: ReactNode}): React.JSX.Element { return <StyledHeading size={headingSizes[style]}>{children}</StyledHeading> } diff --git a/packages/sanity/src/core/field/types/portableText/diff/components/Paragraph.tsx b/packages/sanity/src/core/field/types/portableText/diff/components/Paragraph.tsx index 0fb5b264c91..970e9affef7 100644 --- a/packages/sanity/src/core/field/types/portableText/diff/components/Paragraph.tsx +++ b/packages/sanity/src/core/field/types/portableText/diff/components/Paragraph.tsx @@ -9,6 +9,6 @@ const StyledParagraph = styled.div` margin: 0; ` -export function Paragraph({children}: {children: ReactNode}): JSX.Element { +export function Paragraph({children}: {children: ReactNode}): React.JSX.Element { return <StyledParagraph>{children}</StyledParagraph> } diff --git a/packages/sanity/src/core/field/types/portableText/diff/components/PortableText.tsx b/packages/sanity/src/core/field/types/portableText/diff/components/PortableText.tsx index b26cac60bb1..05bf4823dcd 100644 --- a/packages/sanity/src/core/field/types/portableText/diff/components/PortableText.tsx +++ b/packages/sanity/src/core/field/types/portableText/diff/components/PortableText.tsx @@ -6,7 +6,7 @@ import { type SpanSchemaType, } from '@sanity/types' import {uniq, xor} from 'lodash' -import {type ReactElement, type ReactNode, useCallback, useMemo} from 'react' +import {type ReactNode, useCallback, useMemo} from 'react' import {type TFunction, useTranslation} from '../../../../../i18n' import {DiffCard} from '../../../../diff' @@ -51,7 +51,7 @@ type Props = { schemaType: ObjectSchemaType } -export function PortableText(props: Props): JSX.Element { +export function PortableText(props: Props): React.JSX.Element { const {diff, schemaType} = props const block = (diff.origin.toValue || diff.origin.fromValue) as PortableTextTextBlock const {t} = useTranslation() @@ -196,7 +196,7 @@ export function PortableText(props: Props): JSX.Element { } if (endedAnnotation) { const key = `annotation-${endedAnnotation.object._key}` - const lastChild = returnedChildren[returnedChildren.length - 1] as ReactElement + const lastChild = returnedChildren[returnedChildren.length - 1] as React.JSX.Element if (lastChild && lastChild.key !== key) { const annotationDiff = findAnnotationDiff(diff.origin, endedAnnotation.mark) const objectSchemaType = @@ -258,7 +258,7 @@ function renderTextSegment({ segIndex: number spanSchemaType: SpanSchemaType t: TFunction -}): JSX.Element { +}): React.JSX.Element { // Newlines if (seg.text === '\n') { return <br /> @@ -315,13 +315,13 @@ function renderDecorators({ activeMarks: string[] decoratorTypes: {title: string; value: string}[] diff: PortableTextDiff - children: JSX.Element + children: React.JSX.Element seg: StringDiffSegment segIndex: number spanDiff: ObjectDiff spanSchemaType: SpanSchemaType t: TFunction -}): JSX.Element { +}): React.JSX.Element { let returned = <span key={`text-segment-${segIndex}`}>{children}</span> const fromPtDiffText: string = (diff.origin.fromValue && diff.fromValue && diff.fromValue.children[0].text) || '' // Always one child diff --git a/packages/sanity/src/core/field/types/portableText/diff/components/Text.tsx b/packages/sanity/src/core/field/types/portableText/diff/components/Text.tsx index e5fceb4db39..af67d83bc22 100644 --- a/packages/sanity/src/core/field/types/portableText/diff/components/Text.tsx +++ b/packages/sanity/src/core/field/types/portableText/diff/components/Text.tsx @@ -10,7 +10,7 @@ import {InlineBox} from './styledComponents' interface TextProps { diff?: StringDiff childDiff?: ObjectDiff - children: JSX.Element + children: React.JSX.Element path: Path segment: StringDiffSegment } diff --git a/packages/sanity/src/core/form/components/EditPortal.tsx b/packages/sanity/src/core/form/components/EditPortal.tsx index 2f18993ab3d..621afa306f0 100644 --- a/packages/sanity/src/core/form/components/EditPortal.tsx +++ b/packages/sanity/src/core/form/components/EditPortal.tsx @@ -1,5 +1,5 @@ import {Box, type ResponsiveWidthProps} from '@sanity/ui' -import {type DragEvent, type ReactElement, type ReactNode, useRef, useState} from 'react' +import {type DragEvent, type ReactNode, useRef, useState} from 'react' import {Dialog} from '../../../ui-components' import {PopoverDialog} from '../../components' @@ -28,7 +28,7 @@ function onDrop(event: DragEvent<HTMLDivElement>) { return event.stopPropagation() } -export function EditPortal(props: Props): ReactElement { +export function EditPortal(props: Props): React.JSX.Element { const { children, header, diff --git a/packages/sanity/src/core/form/form-components-hooks/components.tsx b/packages/sanity/src/core/form/form-components-hooks/components.tsx index a778bf1129d..1b9693a29fa 100644 --- a/packages/sanity/src/core/form/form-components-hooks/components.tsx +++ b/packages/sanity/src/core/form/form-components-hooks/components.tsx @@ -1,5 +1,5 @@ import {type SchemaType} from '@sanity/types' -import {type ComponentType, type ReactElement, useCallback} from 'react' +import {type ComponentType, useCallback} from 'react' import {type PreviewProps} from '../../components/previews' import { @@ -24,7 +24,7 @@ import { function useResolveDefaultComponent<T extends {schemaType?: SchemaType}>(props: { componentProps: Omit<T, 'renderDefault'> componentResolver: (schemaType: SchemaType) => ComponentType<Omit<T, 'renderDefault'>> -}): ReactElement<T> { +}): React.JSX.Element { const {componentResolver, componentProps} = props // NOTE: this will not happen, but we do this to avoid updating too many places @@ -58,7 +58,7 @@ function useResolveDefaultComponent<T extends {schemaType?: SchemaType}>(props: /** * @internal */ -export function DefaultInput(props: Omit<InputProps, 'renderDefault'>): ReactElement { +export function DefaultInput(props: Omit<InputProps, 'renderDefault'>): React.JSX.Element { return useResolveDefaultComponent<Omit<InputProps, 'renderDefault'>>({ componentProps: props, componentResolver: defaultResolveInputComponent, @@ -68,7 +68,7 @@ export function DefaultInput(props: Omit<InputProps, 'renderDefault'>): ReactEle /** * @internal */ -export function DefaultField(props: Omit<FieldProps, 'renderDefault'>): ReactElement { +export function DefaultField(props: Omit<FieldProps, 'renderDefault'>): React.JSX.Element { return useResolveDefaultComponent<Omit<FieldProps, 'renderDefault'>>({ componentProps: props, componentResolver: defaultResolveFieldComponent, @@ -78,7 +78,7 @@ export function DefaultField(props: Omit<FieldProps, 'renderDefault'>): ReactEle /** * @internal */ -export function DefaultItem(props: Omit<ItemProps, 'renderDefault'>): ReactElement { +export function DefaultItem(props: Omit<ItemProps, 'renderDefault'>): React.JSX.Element { return useResolveDefaultComponent<Omit<ItemProps, 'renderDefault'>>({ componentProps: props, componentResolver: defaultResolveItemComponent, @@ -88,7 +88,7 @@ export function DefaultItem(props: Omit<ItemProps, 'renderDefault'>): ReactEleme /** * @internal */ -export function DefaultPreview(props: Omit<PreviewProps, 'renderDefault'>): ReactElement { +export function DefaultPreview(props: Omit<PreviewProps, 'renderDefault'>): React.JSX.Element { return useResolveDefaultComponent<PreviewProps>({ componentProps: props, componentResolver: defaultResolvePreviewComponent, @@ -98,7 +98,7 @@ export function DefaultPreview(props: Omit<PreviewProps, 'renderDefault'>): Reac /** * @internal */ -export function DefaultBlock(props: Omit<BlockProps, 'renderDefault'>): ReactElement { +export function DefaultBlock(props: Omit<BlockProps, 'renderDefault'>): React.JSX.Element { return useResolveDefaultComponent<Omit<BlockProps, 'renderDefault'>>({ componentProps: props, componentResolver: defaultResolveBlockComponent, @@ -108,7 +108,7 @@ export function DefaultBlock(props: Omit<BlockProps, 'renderDefault'>): ReactEle /** * @internal */ -export function DefaultInlineBlock(props: Omit<BlockProps, 'renderDefault'>): ReactElement { +export function DefaultInlineBlock(props: Omit<BlockProps, 'renderDefault'>): React.JSX.Element { return useResolveDefaultComponent<Omit<BlockProps, 'renderDefault'>>({ componentProps: props, componentResolver: defaultResolveInlineBlockComponent, @@ -120,7 +120,7 @@ export function DefaultInlineBlock(props: Omit<BlockProps, 'renderDefault'>): Re */ export function DefaultAnnotation( props: Omit<BlockAnnotationProps, 'renderDefault'>, -): ReactElement { +): React.JSX.Element { return useResolveDefaultComponent<Omit<BlockAnnotationProps, 'renderDefault'>>({ componentProps: props, componentResolver: defaultResolveAnnotationComponent, diff --git a/packages/sanity/src/core/form/inputs/CrossDatasetReferenceInput/ReferenceAutocomplete.tsx b/packages/sanity/src/core/form/inputs/CrossDatasetReferenceInput/ReferenceAutocomplete.tsx index c3fb37655d0..abc0af42d7d 100644 --- a/packages/sanity/src/core/form/inputs/CrossDatasetReferenceInput/ReferenceAutocomplete.tsx +++ b/packages/sanity/src/core/form/inputs/CrossDatasetReferenceInput/ReferenceAutocomplete.tsx @@ -3,7 +3,6 @@ import { type ComponentProps, type ForwardedRef, forwardRef, - type ReactElement, type Ref, type RefObject, useCallback, @@ -30,7 +29,7 @@ export const ReferenceAutocomplete = forwardRef(function ReferenceAutocomplete( props: ComponentProps<typeof Autocomplete> & { referenceElement: HTMLDivElement | null searchString?: string - portalRef?: RefObject<HTMLDivElement> + portalRef?: RefObject<HTMLDivElement | null> }, ref: ForwardedRef<HTMLInputElement>, ) { @@ -46,7 +45,7 @@ export const ReferenceAutocomplete = forwardRef(function ReferenceAutocomplete( onMouseEnter, onMouseLeave, }: { - content: ReactElement | null + content: React.JSX.Element | null hidden: boolean inputElement: HTMLInputElement | null onMouseEnter: () => void diff --git a/packages/sanity/src/core/form/inputs/DateInputs/CommonDateTimeInput.tsx b/packages/sanity/src/core/form/inputs/DateInputs/CommonDateTimeInput.tsx index d2178604d06..49ea0de2c5a 100644 --- a/packages/sanity/src/core/form/inputs/DateInputs/CommonDateTimeInput.tsx +++ b/packages/sanity/src/core/form/inputs/DateInputs/CommonDateTimeInput.tsx @@ -1,6 +1,5 @@ /* eslint-disable no-nested-ternary */ -import {TextInput} from '@sanity/ui' import { type FocusEvent, type ForwardedRef, @@ -105,9 +104,7 @@ export const CommonDateTimeInput = forwardRef(function CommonDateTimeInput( ? formatInputValue(parseResult.date) : value - return readOnly ? ( - <TextInput value={inputValue} readOnly /> - ) : ( + return ( <DateTimeInput {...restProps} calendarLabels={props.calendarLabels} diff --git a/packages/sanity/src/core/form/inputs/ObjectInput/__tests__/test-utils.tsx b/packages/sanity/src/core/form/inputs/ObjectInput/__tests__/test-utils.tsx index 5e92d8292e6..3d1c7e9d756 100644 --- a/packages/sanity/src/core/form/inputs/ObjectInput/__tests__/test-utils.tsx +++ b/packages/sanity/src/core/form/inputs/ObjectInput/__tests__/test-utils.tsx @@ -1,7 +1,6 @@ /* eslint-disable import/export */ import {LayerProvider, studioTheme, ThemeProvider} from '@sanity/ui' import {render, type RenderOptions} from '@testing-library/react' -import {type ReactElement} from 'react' const Providers = ({children}: {children: React.ReactNode}) => { return ( @@ -16,7 +15,7 @@ export * from '@testing-library/react' export type {RenderOptions} const customRender = ( - ui: ReactElement, + ui: React.JSX.Element, options?: Omit<RenderOptions, 'wrapper'>, ): ReturnType<typeof render> => render(ui, {wrapper: Providers, ...options}) diff --git a/packages/sanity/src/core/form/inputs/PortableText/Compositor.tsx b/packages/sanity/src/core/form/inputs/PortableText/Compositor.tsx index f587579ea1b..533bc35e333 100644 --- a/packages/sanity/src/core/form/inputs/PortableText/Compositor.tsx +++ b/packages/sanity/src/core/form/inputs/PortableText/Compositor.tsx @@ -36,7 +36,7 @@ import {AnnotationObjectEditModal} from './object/modals/AnnotationObjectEditMod import {TextBlock} from './text' interface InputProps extends ArrayOfObjectsInputProps<PortableTextBlock> { - elementRef: React.RefObject<HTMLDivElement> + elementRef: React.RefObject<HTMLDivElement | null> hasFocusWithin: boolean hideToolbar?: boolean hotkeys?: HotkeyOptions diff --git a/packages/sanity/src/core/form/inputs/PortableText/Editor.tsx b/packages/sanity/src/core/form/inputs/PortableText/Editor.tsx index 505b1cf9e68..bef3ec457bf 100644 --- a/packages/sanity/src/core/form/inputs/PortableText/Editor.tsx +++ b/packages/sanity/src/core/form/inputs/PortableText/Editor.tsx @@ -47,7 +47,7 @@ const PlaceholderWrapper = styled.span((props) => { }) interface EditorProps { - elementRef: React.RefObject<HTMLDivElement> + elementRef: React.RefObject<HTMLDivElement | null> hideToolbar?: boolean hotkeys: HotkeyOptions initialSelection?: EditorSelection diff --git a/packages/sanity/src/core/form/inputs/PortableText/PortableTextInput.tsx b/packages/sanity/src/core/form/inputs/PortableText/PortableTextInput.tsx index d048caea4c9..85e8191e97a 100644 --- a/packages/sanity/src/core/form/inputs/PortableText/PortableTextInput.tsx +++ b/packages/sanity/src/core/form/inputs/PortableText/PortableTextInput.tsx @@ -14,6 +14,7 @@ import { useEditor, usePortableTextEditor, } from '@portabletext/editor' +import {coreBehaviors, createMarkdownBehaviors} from '@portabletext/editor/behaviors' import {useTelemetry} from '@sanity/telemetry/react' import {isKeySegment, type Path, type PortableTextBlock} from '@sanity/types' import {Box, Flex, Text, useToast} from '@sanity/ui' @@ -384,6 +385,21 @@ export function PortableTextInput(props: PortableTextInputProps): ReactNode { <PortableTextMemberItemsProvider memberItems={portableTextMemberItems}> <EditorProvider initialConfig={{ + behaviors: [ + ...coreBehaviors, + ...createMarkdownBehaviors({ + defaultStyle: ({schema}) => + schema.styles.find((style) => style.value === 'normal')?.value, + blockquoteStyle: ({schema}) => + schema.styles.find((style) => style.value === 'blockquote')?.value, + headingStyle: ({schema, level}) => + schema.styles.find((style) => style.value === `h${level}`)?.value, + orderedListStyle: ({schema}) => + schema.lists.find((list) => list.value === 'number')?.value, + unorderedListStyle: ({schema}) => + schema.lists.find((list) => list.value === 'bullet')?.value, + }), + ], initialValue: value, readOnly: readOnly || !ready, keyGenerator, diff --git a/packages/sanity/src/core/form/inputs/PortableText/__workshop__/defaultSchema/Story.tsx b/packages/sanity/src/core/form/inputs/PortableText/__workshop__/defaultSchema/Story.tsx index a85d04cb8b7..5e2940095a8 100644 --- a/packages/sanity/src/core/form/inputs/PortableText/__workshop__/defaultSchema/Story.tsx +++ b/packages/sanity/src/core/form/inputs/PortableText/__workshop__/defaultSchema/Story.tsx @@ -53,7 +53,7 @@ function TestForm() { const patchChannel = useMemo(() => createPatchChannel(), []) const [focusPath, setFocusPath] = useState<Path>([]) const changed = false - const focusRef = useRef() + const focusRef = useRef(undefined) const handleAppendItem = useAction('onItemAppend') const handleBlur = useAction('onBlur') const handleFocus = useAction('onFocus') diff --git a/packages/sanity/src/core/form/inputs/PortableText/object/Annotation.tsx b/packages/sanity/src/core/form/inputs/PortableText/object/Annotation.tsx index c37a92b7bbd..89345431cb6 100644 --- a/packages/sanity/src/core/form/inputs/PortableText/object/Annotation.tsx +++ b/packages/sanity/src/core/form/inputs/PortableText/object/Annotation.tsx @@ -1,14 +1,7 @@ import {PortableTextEditor, usePortableTextEditor} from '@portabletext/editor' import {type ObjectSchemaType, type Path, type PortableTextObject} from '@sanity/types' import {isEqual} from '@sanity/util/paths' -import { - type ComponentType, - type ReactElement, - type ReactNode, - useCallback, - useMemo, - useState, -} from 'react' +import {type ComponentType, type ReactNode, useCallback, useMemo, useState} from 'react' import {Tooltip} from '../../../../../ui-components' import {pathToString} from '../../../../field' @@ -37,7 +30,7 @@ import {Root, TooltipBox} from './Annotation.styles' import {AnnotationToolbarPopover} from './AnnotationToolbarPopover' interface AnnotationProps { - children: ReactElement + children: React.JSX.Element editorNodeFocused: boolean floatingBoundary: HTMLElement | null focused: boolean diff --git a/packages/sanity/src/core/form/inputs/PortableText/object/BlockObjectActionsMenu.tsx b/packages/sanity/src/core/form/inputs/PortableText/object/BlockObjectActionsMenu.tsx index 14ec96e3e44..cf73242119a 100644 --- a/packages/sanity/src/core/form/inputs/PortableText/object/BlockObjectActionsMenu.tsx +++ b/packages/sanity/src/core/form/inputs/PortableText/object/BlockObjectActionsMenu.tsx @@ -5,7 +5,6 @@ import { forwardRef, type MouseEvent, type PropsWithChildren, - type ReactElement, type Ref, useCallback, useEffect, @@ -34,7 +33,7 @@ const POPOVER_PROPS: MenuButtonProps['popover'] = { tone: 'default', } -export function BlockObjectActionsMenu(props: BlockObjectActionsMenuProps): ReactElement { +export function BlockObjectActionsMenu(props: BlockObjectActionsMenuProps): React.JSX.Element { const {children, focused, isOpen, onOpen, onRemove, readOnly, value} = props const {t} = useTranslation() const menuButtonId = useId() diff --git a/packages/sanity/src/core/form/inputs/PortableText/presence-cursors/UserPresenceCursor.tsx b/packages/sanity/src/core/form/inputs/PortableText/presence-cursors/UserPresenceCursor.tsx index ab30643a483..3418e7f4d94 100644 --- a/packages/sanity/src/core/form/inputs/PortableText/presence-cursors/UserPresenceCursor.tsx +++ b/packages/sanity/src/core/form/inputs/PortableText/presence-cursors/UserPresenceCursor.tsx @@ -112,7 +112,7 @@ interface UserPresenceCursorProps { user: User } -export function UserPresenceCursor(props: UserPresenceCursorProps): JSX.Element { +export function UserPresenceCursor(props: UserPresenceCursorProps): React.JSX.Element { const {children, user} = props const {tints} = useUserColor(user.id) const [hovered, setHovered] = useState<boolean>(false) diff --git a/packages/sanity/src/core/form/inputs/PortableText/toolbar/BlockStyleSelect.tsx b/packages/sanity/src/core/form/inputs/PortableText/toolbar/BlockStyleSelect.tsx index 2c0a9a5bc8e..d99b64b3394 100644 --- a/packages/sanity/src/core/form/inputs/PortableText/toolbar/BlockStyleSelect.tsx +++ b/packages/sanity/src/core/form/inputs/PortableText/toolbar/BlockStyleSelect.tsx @@ -70,7 +70,7 @@ const emptyStyle: BlockStyleItem = { export const BlockStyleSelect = memo(function BlockStyleSelect( props: BlockStyleSelectProps, -): JSX.Element { +): React.JSX.Element { const {disabled, items: itemsProp, boundaryElement} = props const editor = usePortableTextEditor() const focusBlock = useFocusBlock() diff --git a/packages/sanity/src/core/form/inputs/ReferenceInput/CreateButton.tsx b/packages/sanity/src/core/form/inputs/ReferenceInput/CreateButton.tsx index 3634c07217b..a707c11af63 100644 --- a/packages/sanity/src/core/form/inputs/ReferenceInput/CreateButton.tsx +++ b/packages/sanity/src/core/form/inputs/ReferenceInput/CreateButton.tsx @@ -18,7 +18,7 @@ interface Props extends Omit<HTMLProps<HTMLButtonElement>, 'as' | 'size' | 'width' | 'type' | 'ref'> { id: string createOptions: CreateReferenceOption[] - menuRef?: RefObject<HTMLDivElement> + menuRef?: RefObject<HTMLDivElement | null> onCreate: (option: CreateReferenceOption) => void readOnly?: boolean } diff --git a/packages/sanity/src/core/form/inputs/ReferenceInput/ReferenceAutocomplete.tsx b/packages/sanity/src/core/form/inputs/ReferenceInput/ReferenceAutocomplete.tsx index 80b4bf6e5e7..de976d95166 100644 --- a/packages/sanity/src/core/form/inputs/ReferenceInput/ReferenceAutocomplete.tsx +++ b/packages/sanity/src/core/form/inputs/ReferenceInput/ReferenceAutocomplete.tsx @@ -3,7 +3,6 @@ import { type ComponentProps, type ForwardedRef, forwardRef, - type ReactElement, type Ref, type RefObject, useCallback, @@ -30,7 +29,7 @@ export const ReferenceAutocomplete = forwardRef(function ReferenceAutocomplete( props: ComponentProps<typeof Autocomplete> & { referenceElement: HTMLDivElement | null searchString?: string - portalRef?: RefObject<HTMLDivElement> + portalRef?: RefObject<HTMLDivElement | null> }, ref: ForwardedRef<HTMLInputElement>, ) { @@ -46,7 +45,7 @@ export const ReferenceAutocomplete = forwardRef(function ReferenceAutocomplete( onMouseEnter, onMouseLeave, }: { - content: ReactElement | null + content: React.JSX.Element | null hidden: boolean inputElement: HTMLInputElement | null onMouseEnter: () => void diff --git a/packages/sanity/src/core/form/inputs/files/ImageInput/ImageInput.tsx b/packages/sanity/src/core/form/inputs/files/ImageInput/ImageInput.tsx index d9f85e56a36..1b63da9b017 100644 --- a/packages/sanity/src/core/form/inputs/files/ImageInput/ImageInput.tsx +++ b/packages/sanity/src/core/form/inputs/files/ImageInput/ImageInput.tsx @@ -26,7 +26,7 @@ import {type BaseImageInputProps, type BaseImageInputValue, type FileInfo} from export {BaseImageInputProps, BaseImageInputValue} -function BaseImageInputComponent(props: BaseImageInputProps): JSX.Element { +function BaseImageInputComponent(props: BaseImageInputProps): React.JSX.Element { const { assetSources, client, @@ -275,7 +275,7 @@ function BaseImageInputComponent(props: BaseImageInputProps): JSX.Element { menuButtonElement?.focus() }, [menuButtonElement]) - const renderPreview = useCallback<() => JSX.Element>(() => { + const renderPreview = useCallback<() => React.JSX.Element>(() => { if (!value) { return <></> } diff --git a/packages/sanity/src/core/form/inputs/files/ImageInput/ImageInputAsset.tsx b/packages/sanity/src/core/form/inputs/files/ImageInput/ImageInputAsset.tsx index c07bbfdf903..1100dd2405f 100644 --- a/packages/sanity/src/core/form/inputs/files/ImageInput/ImageInputAsset.tsx +++ b/packages/sanity/src/core/form/inputs/files/ImageInput/ImageInputAsset.tsx @@ -24,10 +24,10 @@ function ImageInputAssetComponent(props: { inputProps: Omit<InputProps, 'renderDefault'> isStale: boolean readOnly: boolean | undefined - renderAssetMenu(): JSX.Element | null - renderPreview: () => JSX.Element - renderUploadPlaceholder(): JSX.Element - renderUploadState(uploadState: UploadState): JSX.Element + renderAssetMenu(): React.JSX.Element | null + renderPreview: () => React.JSX.Element + renderUploadPlaceholder(): React.JSX.Element + renderUploadState(uploadState: UploadState): React.JSX.Element tone: CardTone value: BaseImageInputValue | undefined }) { diff --git a/packages/sanity/src/core/form/inputs/files/ImageInput/ImageInputUploadPlaceholder.tsx b/packages/sanity/src/core/form/inputs/files/ImageInput/ImageInputUploadPlaceholder.tsx index 440c2bdf4fc..a0b7c414d16 100644 --- a/packages/sanity/src/core/form/inputs/files/ImageInput/ImageInputUploadPlaceholder.tsx +++ b/packages/sanity/src/core/form/inputs/files/ImageInput/ImageInputUploadPlaceholder.tsx @@ -10,7 +10,7 @@ function ImageInputUploadPlaceholderComponent(props: { handleSelectFiles: (files: File[]) => void hoveringFiles: FileInfo[] readOnly: boolean | undefined - renderBrowser(): JSX.Element | null + renderBrowser(): React.JSX.Element | null resolveUploader: BaseImageInputProps['resolveUploader'] schemaType: BaseImageInputProps['schemaType'] }) { diff --git a/packages/sanity/src/core/form/inputs/files/ImageToolInput/imagetool/DragAwareCanvas.tsx b/packages/sanity/src/core/form/inputs/files/ImageToolInput/imagetool/DragAwareCanvas.tsx index 7275c09bcd0..26cedca562d 100644 --- a/packages/sanity/src/core/form/inputs/files/ImageToolInput/imagetool/DragAwareCanvas.tsx +++ b/packages/sanity/src/core/form/inputs/files/ImageToolInput/imagetool/DragAwareCanvas.tsx @@ -23,7 +23,7 @@ export interface DragAwareCanvasProps { } const DragAwareCanvasComponent = forwardRef<HTMLCanvasElement, DragAwareCanvasProps>( - function DragAwareCanvas(props, ref): JSX.Element { + function DragAwareCanvas(props, ref): React.JSX.Element { const {readOnly, onDragStart, onDragEnd, onDrag, ...rest} = props const domNode = useRef<HTMLCanvasElement | null>(null) diff --git a/packages/sanity/src/core/form/inputs/files/ImageToolInput/imagetool/ImageLoader.tsx b/packages/sanity/src/core/form/inputs/files/ImageToolInput/imagetool/ImageLoader.tsx index e43171566c4..f57c20d1203 100644 --- a/packages/sanity/src/core/form/inputs/files/ImageToolInput/imagetool/ImageLoader.tsx +++ b/packages/sanity/src/core/form/inputs/files/ImageToolInput/imagetool/ImageLoader.tsx @@ -1,5 +1,5 @@ /* eslint-disable @typescript-eslint/no-shadow */ -import {type ReactElement, useEffect, useState} from 'react' +import {useEffect, useState} from 'react' interface ImageLoaderProps { src: string @@ -7,7 +7,7 @@ interface ImageLoaderProps { isLoading: boolean image: HTMLImageElement | null error: Error | null - }) => ReactElement | null + }) => React.JSX.Element | null } export function ImageLoader(props: ImageLoaderProps) { diff --git a/packages/sanity/src/core/form/inputs/files/common/FileInputMenuItem/FileInputMenuItem.tsx b/packages/sanity/src/core/form/inputs/files/common/FileInputMenuItem/FileInputMenuItem.tsx index 612662e1b59..b24a08991c8 100644 --- a/packages/sanity/src/core/form/inputs/files/common/FileInputMenuItem/FileInputMenuItem.tsx +++ b/packages/sanity/src/core/form/inputs/files/common/FileInputMenuItem/FileInputMenuItem.tsx @@ -36,7 +36,7 @@ export const FileInputMenuItem = forwardRef(function FileInputMenuItem( ) const renderMenuItem = useCallback( - (item: JSX.Element) => ( + (item: React.JSX.Element) => ( <div> {item} {/* Visibly hidden input */} diff --git a/packages/sanity/src/core/form/members/array/items/ArrayOfObjectsItem.tsx b/packages/sanity/src/core/form/members/array/items/ArrayOfObjectsItem.tsx index 75381e61af7..71e3e147b90 100644 --- a/packages/sanity/src/core/form/members/array/items/ArrayOfObjectsItem.tsx +++ b/packages/sanity/src/core/form/members/array/items/ArrayOfObjectsItem.tsx @@ -53,7 +53,7 @@ export interface MemberItemProps { * @beta */ export function ArrayOfObjectsItem(props: MemberItemProps) { - const focusRef = useRef<{focus: () => void}>() + const focusRef = useRef<{focus: () => void}>(undefined) const { member, renderAnnotation, diff --git a/packages/sanity/src/core/form/members/array/items/ArrayOfPrimitivesItem.tsx b/packages/sanity/src/core/form/members/array/items/ArrayOfPrimitivesItem.tsx index 92621c95e80..cce64b058f6 100644 --- a/packages/sanity/src/core/form/members/array/items/ArrayOfPrimitivesItem.tsx +++ b/packages/sanity/src/core/form/members/array/items/ArrayOfPrimitivesItem.tsx @@ -37,7 +37,7 @@ export interface PrimitiveMemberItemProps { * @beta */ export function ArrayOfPrimitivesItem(props: PrimitiveMemberItemProps) { - const focusRef = useRef<{focus: () => void}>() + const focusRef = useRef<{focus: () => void}>(undefined) const {member, renderItem, renderInput} = props const [localValue, setLocalValue] = useState<undefined | string>() diff --git a/packages/sanity/src/core/form/members/object/fields/ArrayOfObjectsField.tsx b/packages/sanity/src/core/form/members/object/fields/ArrayOfObjectsField.tsx index 6e68f79e074..ac7c2a1184f 100644 --- a/packages/sanity/src/core/form/members/object/fields/ArrayOfObjectsField.tsx +++ b/packages/sanity/src/core/form/members/object/fields/ArrayOfObjectsField.tsx @@ -76,7 +76,7 @@ export function ArrayOfObjectsField(props: { const fieldActions = useDocumentFieldActions() - const focusRef = useRef<Element & {focus: () => void}>() + const focusRef = useRef<Element & {focus: () => void}>(undefined) const uploadSubscriptions = useRef<Record<string, Subscription>>({}) useDidUpdate(member.field.focused, (hadFocus, hasFocus) => { diff --git a/packages/sanity/src/core/form/members/object/fields/ArrayOfPrimitivesField.tsx b/packages/sanity/src/core/form/members/object/fields/ArrayOfPrimitivesField.tsx index 6be94b28a40..454c7ba3a28 100644 --- a/packages/sanity/src/core/form/members/object/fields/ArrayOfPrimitivesField.tsx +++ b/packages/sanity/src/core/form/members/object/fields/ArrayOfPrimitivesField.tsx @@ -159,8 +159,8 @@ export function ArrayOfPrimitivesField(props: { } = props const fieldActions = useDocumentFieldActions() - const focusRef = useRef<Element & {focus: () => void}>() - const uploadSubscriptions = useRef<Subscription>() + const focusRef = useRef<Element & {focus: () => void}>(undefined) + const uploadSubscriptions = useRef<Subscription>(undefined) const client = useClient(DEFAULT_STUDIO_CLIENT_OPTIONS) useDidUpdate(member.field.focused, (hadFocus, hasFocus) => { diff --git a/packages/sanity/src/core/form/members/object/fields/ObjectField.tsx b/packages/sanity/src/core/form/members/object/fields/ObjectField.tsx index 3bebe912c04..13f5a573cff 100644 --- a/packages/sanity/src/core/form/members/object/fields/ObjectField.tsx +++ b/packages/sanity/src/core/form/members/object/fields/ObjectField.tsx @@ -58,7 +58,7 @@ export const ObjectField = function ObjectField(props: { renderPreview, } = props const fieldActions = useDocumentFieldActions() - const focusRef = useRef<{focus: () => void}>() + const focusRef = useRef<{focus: () => void}>(undefined) // Keep a local reference to the most recent value. See comment in `handleChange` below for more details const pendingValue = useRef(member.field.value) diff --git a/packages/sanity/src/core/form/members/object/fields/PrimitiveField.tsx b/packages/sanity/src/core/form/members/object/fields/PrimitiveField.tsx index bfa42f9fa2a..17e325e323b 100644 --- a/packages/sanity/src/core/form/members/object/fields/PrimitiveField.tsx +++ b/packages/sanity/src/core/form/members/object/fields/PrimitiveField.tsx @@ -29,7 +29,7 @@ export function PrimitiveField(props: { const fieldActions = useDocumentFieldActions() - const focusRef = useRef<{focus: () => void}>() + const focusRef = useRef<{focus: () => void}>(undefined) const [localValue, setLocalValue] = useState<string | undefined>() diff --git a/packages/sanity/src/core/form/studio/FormBuilder.tsx b/packages/sanity/src/core/form/studio/FormBuilder.tsx index 95c36662732..aa6e88dc4c2 100644 --- a/packages/sanity/src/core/form/studio/FormBuilder.tsx +++ b/packages/sanity/src/core/form/studio/FormBuilder.tsx @@ -299,7 +299,7 @@ interface RootInputProps { rootInputProps: Omit<ObjectInputProps, 'renderDefault'> onPathOpen: (path: Path) => void openPath: Path - renderInput: (props: Omit<ObjectInputProps, 'renderDefault'>) => JSX.Element + renderInput: (props: Omit<ObjectInputProps, 'renderDefault'>) => React.JSX.Element } function RootInput(props: RootInputProps) { diff --git a/packages/sanity/src/core/form/studio/FormBuilderInputErrorBoundary.tsx b/packages/sanity/src/core/form/studio/FormBuilderInputErrorBoundary.tsx index 17caafefdb0..b8c7d726253 100644 --- a/packages/sanity/src/core/form/studio/FormBuilderInputErrorBoundary.tsx +++ b/packages/sanity/src/core/form/studio/FormBuilderInputErrorBoundary.tsx @@ -22,7 +22,7 @@ interface FormBuilderInputErrorBoundaryProps { */ export function FormBuilderInputErrorBoundary( props: FormBuilderInputErrorBoundaryProps, -): JSX.Element { +): React.JSX.Element { const {children} = props const [{error, info}, setError] = useState<{error: unknown; info: React.ErrorInfo}>({ error: null, diff --git a/packages/sanity/src/core/form/studio/assetSource/file/AssetRow.tsx b/packages/sanity/src/core/form/studio/assetSource/file/AssetRow.tsx index 305ac9f6e25..cdae2c8eeb3 100644 --- a/packages/sanity/src/core/form/studio/assetSource/file/AssetRow.tsx +++ b/packages/sanity/src/core/form/studio/assetSource/file/AssetRow.tsx @@ -131,7 +131,7 @@ const STYLES_ASSETMENU_WRAPPER = { export const AssetRow = (props: RowProps): React.JSX.Element => { const versionedClient = useClient(DEFAULT_STUDIO_CLIENT_OPTIONS) const toast = useToast() - const deleteRef$ = useRef<Subscription>() + const deleteRef$ = useRef<Subscription>(undefined) const [showUsageDialog, setShowUsageDialog] = useState(false) const [showDeleteDialog, setShowDeleteDialog] = useState(false) const [isDeleting, setIsDeleting] = useState(false) diff --git a/packages/sanity/src/core/form/studio/assetSource/image/AssetThumb.tsx b/packages/sanity/src/core/form/studio/assetSource/image/AssetThumb.tsx index faa773c407d..bcd7d31e8fc 100644 --- a/packages/sanity/src/core/form/studio/assetSource/image/AssetThumb.tsx +++ b/packages/sanity/src/core/form/studio/assetSource/image/AssetThumb.tsx @@ -88,7 +88,7 @@ const MenuContainer = styled.div` export const AssetThumb = memo(function AssetThumb(props: AssetProps) { const versionedClient = useClient(DEFAULT_STUDIO_CLIENT_OPTIONS) const toast = useToast() - const deleteRef$ = useRef<Subscription>() + const deleteRef$ = useRef<Subscription>(undefined) const {asset, onClick, onKeyPress, onDeleteFinished, isSelected} = props const [showUsageDialog, setShowUsageDialog] = useState(false) const [showDeleteDialog, setShowDeleteDialog] = useState(false) diff --git a/packages/sanity/src/core/form/studio/assetSource/shared/DefaultSource.tsx b/packages/sanity/src/core/form/studio/assetSource/shared/DefaultSource.tsx index bd091673972..d5c2825c36c 100644 --- a/packages/sanity/src/core/form/studio/assetSource/shared/DefaultSource.tsx +++ b/packages/sanity/src/core/form/studio/assetSource/shared/DefaultSource.tsx @@ -108,7 +108,7 @@ const DefaultAssetSource = function DefaultAssetSource( const [_elementId] = useState(() => `default-asset-source-${uniqueId()}`) const currentPageNumber = useRef(0) const {t} = useTranslation() - const fetch$ = useRef<Subscription>() + const fetch$ = useRef<Subscription>(undefined) const [assets, setAssets] = useState<Asset[]>([]) const [isLastPage, setIsLastPage] = useState(false) const [hasResetAutoFocus, setHasResetFocus] = useState(false) diff --git a/packages/sanity/src/core/form/studio/contexts/reviewChanges/ReviewChangesProvider.tsx b/packages/sanity/src/core/form/studio/contexts/reviewChanges/ReviewChangesProvider.tsx index ffe37c799d1..4b47d66b287 100644 --- a/packages/sanity/src/core/form/studio/contexts/reviewChanges/ReviewChangesProvider.tsx +++ b/packages/sanity/src/core/form/studio/contexts/reviewChanges/ReviewChangesProvider.tsx @@ -1,4 +1,4 @@ -import {type ReactElement, type ReactNode, useMemo} from 'react' +import {type ReactNode, useMemo} from 'react' import {ReviewChangesContext} from 'sanity/_singletons' import {type ReviewChangesContextValue} from './types' @@ -9,7 +9,7 @@ import {type ReviewChangesContextValue} from './types' export function ReviewChangesContextProvider(props: { children?: ReactNode changesOpen: boolean -}): ReactElement { +}): React.JSX.Element { const {children, changesOpen} = props const contextValue: ReviewChangesContextValue = useMemo(() => ({changesOpen}), [changesOpen]) diff --git a/packages/sanity/src/core/form/studio/tree-editing/__workshop__/TreeEditingBreadcrumbsMenuButtonStory.tsx b/packages/sanity/src/core/form/studio/tree-editing/__workshop__/TreeEditingBreadcrumbsMenuButtonStory.tsx index bd75820a73a..e576beb36bf 100644 --- a/packages/sanity/src/core/form/studio/tree-editing/__workshop__/TreeEditingBreadcrumbsMenuButtonStory.tsx +++ b/packages/sanity/src/core/form/studio/tree-editing/__workshop__/TreeEditingBreadcrumbsMenuButtonStory.tsx @@ -47,7 +47,7 @@ const ITEM: TreeEditingBreadcrumb = { })), } -export default function TreeEditingBreadcrumbsMenuButtonStory(): JSX.Element { +export default function TreeEditingBreadcrumbsMenuButtonStory(): React.JSX.Element { const [selectedPath, setSelectedPath] = useState<Path>(['first-item']) return ( diff --git a/packages/sanity/src/core/form/studio/tree-editing/__workshop__/TreeEditingBreadcrumbsMenuStory.tsx b/packages/sanity/src/core/form/studio/tree-editing/__workshop__/TreeEditingBreadcrumbsMenuStory.tsx index 41a53a44599..e92478da333 100644 --- a/packages/sanity/src/core/form/studio/tree-editing/__workshop__/TreeEditingBreadcrumbsMenuStory.tsx +++ b/packages/sanity/src/core/form/studio/tree-editing/__workshop__/TreeEditingBreadcrumbsMenuStory.tsx @@ -55,7 +55,7 @@ const items: TreeEditingBreadcrumb[] = [ }, ] -export default function TreeEditingBreadcrumbsMenuStory(): JSX.Element { +export default function TreeEditingBreadcrumbsMenuStory(): React.JSX.Element { const [selectedPath, setSelectedPath] = useState<Path>(['second-item']) return ( diff --git a/packages/sanity/src/core/form/studio/tree-editing/__workshop__/TreeEditingBreadcrumbsStory.tsx b/packages/sanity/src/core/form/studio/tree-editing/__workshop__/TreeEditingBreadcrumbsStory.tsx index 03c17716256..d2400211983 100644 --- a/packages/sanity/src/core/form/studio/tree-editing/__workshop__/TreeEditingBreadcrumbsStory.tsx +++ b/packages/sanity/src/core/form/studio/tree-editing/__workshop__/TreeEditingBreadcrumbsStory.tsx @@ -118,7 +118,7 @@ const DOCUMENT_VALUE = { ], } -export default function TreeEditingBreadcrumbsStory(): JSX.Element { +export default function TreeEditingBreadcrumbsStory(): React.JSX.Element { const [selectedPath, setSelectedPath] = useState<Path>(['myArrayOfObjects', {_key: 'item-1'}]) const {menuItems} = useMemo((): TreeEditingState => { diff --git a/packages/sanity/src/core/form/studio/tree-editing/__workshop__/TreeEditingLayoutStory.tsx b/packages/sanity/src/core/form/studio/tree-editing/__workshop__/TreeEditingLayoutStory.tsx index 25ed4877ab9..7866163e92b 100644 --- a/packages/sanity/src/core/form/studio/tree-editing/__workshop__/TreeEditingLayoutStory.tsx +++ b/packages/sanity/src/core/form/studio/tree-editing/__workshop__/TreeEditingLayoutStory.tsx @@ -118,7 +118,7 @@ const DOCUMENT_VALUE = { ], } -export default function TreeEditingLayoutStory(): JSX.Element { +export default function TreeEditingLayoutStory(): React.JSX.Element { const [selectedPath, setSelectedPath] = useState<Path>(['myArrayOfObjects', {_key: 'first-item'}]) const state = useMemo(() => { diff --git a/packages/sanity/src/core/form/studio/tree-editing/__workshop__/TreeEditingMenuStory.tsx b/packages/sanity/src/core/form/studio/tree-editing/__workshop__/TreeEditingMenuStory.tsx index 4b3fabb5e5e..682c16c4604 100644 --- a/packages/sanity/src/core/form/studio/tree-editing/__workshop__/TreeEditingMenuStory.tsx +++ b/packages/sanity/src/core/form/studio/tree-editing/__workshop__/TreeEditingMenuStory.tsx @@ -118,7 +118,7 @@ const DOCUMENT_VALUE = { ], } -export default function TreeEditingMenuStory(): JSX.Element { +export default function TreeEditingMenuStory(): React.JSX.Element { const [selectedPath, setSelectedPath] = useState<Path>(['myArrayOfObjects', {_key: 'first-item'}]) const {menuItems} = useMemo((): TreeEditingState => { diff --git a/packages/sanity/src/core/form/studio/tree-editing/components/TreeEditingDialog.tsx b/packages/sanity/src/core/form/studio/tree-editing/components/TreeEditingDialog.tsx index a0f24944ca5..3a85abc7cc0 100644 --- a/packages/sanity/src/core/form/studio/tree-editing/components/TreeEditingDialog.tsx +++ b/packages/sanity/src/core/form/studio/tree-editing/components/TreeEditingDialog.tsx @@ -66,7 +66,7 @@ interface TreeEditingDialogProps { schemaType: ObjectSchemaType } -export function TreeEditingDialog(props: TreeEditingDialogProps): JSX.Element | null { +export function TreeEditingDialog(props: TreeEditingDialogProps): React.JSX.Element | null { const {onPathFocus, onPathOpen, openPath, rootInputProps, schemaType} = props const {value} = rootInputProps const {t} = useTranslation() diff --git a/packages/sanity/src/core/form/studio/tree-editing/components/breadcrumbs/TreeEditingBreadcrumbs.tsx b/packages/sanity/src/core/form/studio/tree-editing/components/breadcrumbs/TreeEditingBreadcrumbs.tsx index a7d179705ef..6e2aad4805e 100644 --- a/packages/sanity/src/core/form/studio/tree-editing/components/breadcrumbs/TreeEditingBreadcrumbs.tsx +++ b/packages/sanity/src/core/form/studio/tree-editing/components/breadcrumbs/TreeEditingBreadcrumbs.tsx @@ -121,7 +121,9 @@ interface TreeEditingBreadcrumbsProps { selectedPath: Path } -export function TreeEditingBreadcrumbs(props: TreeEditingBreadcrumbsProps): JSX.Element | null { +export function TreeEditingBreadcrumbs( + props: TreeEditingBreadcrumbsProps, +): React.JSX.Element | null { const {items: itemsProp = EMPTY_ARRAY, onPathSelect, selectedPath} = props const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null) diff --git a/packages/sanity/src/core/form/studio/tree-editing/components/breadcrumbs/TreeEditingBreadcrumbsMenu.tsx b/packages/sanity/src/core/form/studio/tree-editing/components/breadcrumbs/TreeEditingBreadcrumbsMenu.tsx index 97318d080d6..b29b0637f8d 100644 --- a/packages/sanity/src/core/form/studio/tree-editing/components/breadcrumbs/TreeEditingBreadcrumbsMenu.tsx +++ b/packages/sanity/src/core/form/studio/tree-editing/components/breadcrumbs/TreeEditingBreadcrumbsMenu.tsx @@ -23,10 +23,10 @@ interface BreadcrumbsItemProps { selected: boolean isFirst: boolean onPathSelect: (path: Path) => void - renderMenuItemTitle: (value: PreviewValue) => JSX.Element + renderMenuItemTitle: (value: PreviewValue) => React.JSX.Element } -function BreadcrumbsItem(props: BreadcrumbsItemProps): JSX.Element { +function BreadcrumbsItem(props: BreadcrumbsItemProps): React.JSX.Element { const {item, onPathSelect, selected, isFirst, renderMenuItemTitle} = props const {value} = useValuePreviewWithFallback({ @@ -67,7 +67,9 @@ interface TreeEditingBreadcrumbsMenuProps { selectedPath: Path } -export function TreeEditingBreadcrumbsMenu(props: TreeEditingBreadcrumbsMenuProps): JSX.Element { +export function TreeEditingBreadcrumbsMenu( + props: TreeEditingBreadcrumbsMenuProps, +): React.JSX.Element { const {items, onPathSelect, selectedPath, collapsed = false} = props const {t} = useTranslation() diff --git a/packages/sanity/src/core/form/studio/tree-editing/components/breadcrumbs/TreeEditingBreadcrumbsMenuButton.tsx b/packages/sanity/src/core/form/studio/tree-editing/components/breadcrumbs/TreeEditingBreadcrumbsMenuButton.tsx index 13847a408ee..e41940de92d 100644 --- a/packages/sanity/src/core/form/studio/tree-editing/components/breadcrumbs/TreeEditingBreadcrumbsMenuButton.tsx +++ b/packages/sanity/src/core/form/studio/tree-editing/components/breadcrumbs/TreeEditingBreadcrumbsMenuButton.tsx @@ -1,14 +1,7 @@ import {type Path} from '@sanity/types' import {Box, Card, Flex, Text, useClickOutsideEvent} from '@sanity/ui' // eslint-disable-next-line camelcase -import { - cloneElement, - type KeyboardEvent, - type ReactElement, - useCallback, - useRef, - useState, -} from 'react' +import {cloneElement, type KeyboardEvent, useCallback, useRef, useState} from 'react' import ReactFocusLock from 'react-focus-lock' import {css, styled} from 'styled-components' @@ -57,7 +50,7 @@ const StyledPopover = styled(Popover)(() => { }) interface TreeEditingBreadcrumbsMenuButtonProps { - button: ReactElement + button: React.JSX.Element collapsed?: boolean items: TreeEditingBreadcrumb[] menuTitle?: string @@ -68,7 +61,7 @@ interface TreeEditingBreadcrumbsMenuButtonProps { export function TreeEditingBreadcrumbsMenuButton( props: TreeEditingBreadcrumbsMenuButtonProps, -): JSX.Element { +): React.JSX.Element { const { button, collapsed = false, diff --git a/packages/sanity/src/core/form/studio/tree-editing/components/layout/TreeEditingLayout.tsx b/packages/sanity/src/core/form/studio/tree-editing/components/layout/TreeEditingLayout.tsx index 23ea2c54ffa..a478ed6f612 100644 --- a/packages/sanity/src/core/form/studio/tree-editing/components/layout/TreeEditingLayout.tsx +++ b/packages/sanity/src/core/form/studio/tree-editing/components/layout/TreeEditingLayout.tsx @@ -24,7 +24,7 @@ interface TreeEditingLayoutProps { export const TreeEditingLayout = memo(function TreeEditingLayout( props: TreeEditingLayoutProps, -): JSX.Element { +): React.JSX.Element { const { breadcrumbs, children, diff --git a/packages/sanity/src/core/form/studio/tree-editing/components/layout/resizer/Resizable.tsx b/packages/sanity/src/core/form/studio/tree-editing/components/layout/resizer/Resizable.tsx index 8c9849f9b1c..62e98375652 100644 --- a/packages/sanity/src/core/form/studio/tree-editing/components/layout/resizer/Resizable.tsx +++ b/packages/sanity/src/core/form/studio/tree-editing/components/layout/resizer/Resizable.tsx @@ -30,7 +30,7 @@ export function Resizable( ...restProps } = props const [element, setElement] = useState<HTMLDivElement | null>(null) - const elementWidthRef = useRef<number>() + const elementWidthRef = useRef<number>(undefined) const [targetWidth, setTargetWidth] = useState<number>(initialWidth) const handleResizeStart = useCallback(() => { diff --git a/packages/sanity/src/core/form/studio/tree-editing/components/search/TreeEditingSearch.tsx b/packages/sanity/src/core/form/studio/tree-editing/components/search/TreeEditingSearch.tsx index a096c1b36b1..90f7fe9bca5 100644 --- a/packages/sanity/src/core/form/studio/tree-editing/components/search/TreeEditingSearch.tsx +++ b/packages/sanity/src/core/form/studio/tree-editing/components/search/TreeEditingSearch.tsx @@ -57,7 +57,7 @@ interface TreeEditingSearchProps { onPathSelect: (path: Path) => void } -export function TreeEditingSearch(props: TreeEditingSearchProps): JSX.Element { +export function TreeEditingSearch(props: TreeEditingSearchProps): React.JSX.Element { const {items, onPathSelect} = props const [textInputElement, setTextInputElement] = useState<HTMLInputElement | null>(null) diff --git a/packages/sanity/src/core/form/studio/tree-editing/components/search/TreeEditingSearchMenu.tsx b/packages/sanity/src/core/form/studio/tree-editing/components/search/TreeEditingSearchMenu.tsx index faf6b4dc633..adf1379b70a 100644 --- a/packages/sanity/src/core/form/studio/tree-editing/components/search/TreeEditingSearchMenu.tsx +++ b/packages/sanity/src/core/form/studio/tree-editing/components/search/TreeEditingSearchMenu.tsx @@ -24,7 +24,7 @@ interface ResultItemProps { isFirst: boolean } -function ResultItem(props: ResultItemProps): JSX.Element { +function ResultItem(props: ResultItemProps): React.JSX.Element { const {item, onPathSelect, isFirst} = props const {value} = useValuePreviewWithFallback({ @@ -61,7 +61,7 @@ interface TreeEditingSearchMenuProps { textInputElement: HTMLInputElement | null } -export function TreeEditingSearchMenu(props: TreeEditingSearchMenuProps): JSX.Element { +export function TreeEditingSearchMenu(props: TreeEditingSearchMenuProps): React.JSX.Element { const {items, onPathSelect, textInputElement} = props const {t} = useTranslation() diff --git a/packages/sanity/src/core/form/studio/tree-editing/components/tree-menu/TreeEditingMenu.tsx b/packages/sanity/src/core/form/studio/tree-editing/components/tree-menu/TreeEditingMenu.tsx index 7856f5af523..47a8c4dee63 100644 --- a/packages/sanity/src/core/form/studio/tree-editing/components/tree-menu/TreeEditingMenu.tsx +++ b/packages/sanity/src/core/form/studio/tree-editing/components/tree-menu/TreeEditingMenu.tsx @@ -15,7 +15,7 @@ interface TreeEditingMenuProps { export const TreeEditingMenu = memo(function TreeEditingMenu( props: TreeEditingMenuProps, -): JSX.Element { +): React.JSX.Element { const {items, onPathSelect, selectedPath} = props return ( diff --git a/packages/sanity/src/core/form/studio/tree-editing/components/tree-menu/TreeEditingMenuItem.tsx b/packages/sanity/src/core/form/studio/tree-editing/components/tree-menu/TreeEditingMenuItem.tsx index e78eaa26b97..a58bd16435e 100644 --- a/packages/sanity/src/core/form/studio/tree-editing/components/tree-menu/TreeEditingMenuItem.tsx +++ b/packages/sanity/src/core/form/studio/tree-editing/components/tree-menu/TreeEditingMenuItem.tsx @@ -116,7 +116,7 @@ interface TreeEditingMenuItemProps { siblingHasChildren?: boolean } -export function TreeEditingMenuItem(props: TreeEditingMenuItemProps): JSX.Element { +export function TreeEditingMenuItem(props: TreeEditingMenuItemProps): React.JSX.Element { const {item, onPathSelect, selectedPath, siblingHasChildren} = props const {children} = item const hasChildren = children && children.length > 0 diff --git a/packages/sanity/src/core/form/studio/tree-editing/context/enabled/TreeEditingEnabledProvider.tsx b/packages/sanity/src/core/form/studio/tree-editing/context/enabled/TreeEditingEnabledProvider.tsx index a2e30c93669..4dd20733199 100644 --- a/packages/sanity/src/core/form/studio/tree-editing/context/enabled/TreeEditingEnabledProvider.tsx +++ b/packages/sanity/src/core/form/studio/tree-editing/context/enabled/TreeEditingEnabledProvider.tsx @@ -8,7 +8,9 @@ interface TreeEditingEnabledProviderProps { legacyEditing?: boolean } -export function TreeEditingEnabledProvider(props: TreeEditingEnabledProviderProps): JSX.Element { +export function TreeEditingEnabledProvider( + props: TreeEditingEnabledProviderProps, +): React.JSX.Element { const {children, legacyEditing: legacyEditingProp} = props const parentContextValue = useTreeEditingEnabled() diff --git a/packages/sanity/src/core/form/types/blockProps.ts b/packages/sanity/src/core/form/types/blockProps.ts index f2074956fe0..6ee30f5cf8a 100644 --- a/packages/sanity/src/core/form/types/blockProps.ts +++ b/packages/sanity/src/core/form/types/blockProps.ts @@ -11,7 +11,7 @@ import { type PortableTextTextBlock, type SchemaType, } from '@sanity/types' -import {type ReactElement, type ReactNode} from 'react' +import {type ReactNode} from 'react' import {type PortableTextMarker} from '../..' import {type FormNodePresence} from '../../presence' @@ -34,7 +34,7 @@ export interface BlockDecoratorProps { /** * The span node as rendered without the decorator. */ - children: ReactElement + children: React.JSX.Element /** * If the span node currently is focused by the user. */ @@ -43,7 +43,7 @@ export interface BlockDecoratorProps { * The default render function for this decorator, * some decorators are proved by default and has a default rendering. */ - renderDefault: (props: BlockDecoratorProps) => ReactElement + renderDefault: (props: BlockDecoratorProps) => React.JSX.Element /** * The decorator schema type. Icon can be found here. */ @@ -76,7 +76,7 @@ export interface BlockStyleProps { /** * The block as rendered without this style. */ - children: ReactElement + children: React.JSX.Element /** * If the block currently has focus in the text editor. */ @@ -84,7 +84,7 @@ export interface BlockStyleProps { /** * The default rendering function for this style. */ - renderDefault: (props: BlockStyleProps) => ReactElement + renderDefault: (props: BlockStyleProps) => React.JSX.Element /** * The schema type for this style. */ @@ -116,7 +116,7 @@ export interface BlockListItemProps { /** * The block rendered without the list style. */ - children: ReactElement + children: React.JSX.Element /** * If the block currently is focused by the user. */ @@ -129,7 +129,7 @@ export interface BlockListItemProps { * The default function for rendering this as a list item. Some list types are built in and * will have a default rendering. */ - renderDefault: (props: BlockListItemProps) => ReactElement + renderDefault: (props: BlockListItemProps) => React.JSX.Element /** * The schema type for this list type. Icon can be found here. */ @@ -273,7 +273,7 @@ export interface BlockAnnotationProps { /** * Plugin chain render callback. */ - renderDefault: (props: BlockAnnotationProps) => ReactElement + renderDefault: (props: BlockAnnotationProps) => React.JSX.Element /** * Plugin chain render callback. */ @@ -305,7 +305,7 @@ export interface BlockAnnotationProps { /** * React element of the text that is being annotated. */ - textElement: ReactElement + textElement: React.JSX.Element /** * Form validation for the annotation object. */ @@ -397,7 +397,7 @@ export interface BlockProps { /** * Plugin chain render callback (default rendering function of the block). */ - renderDefault: (props: BlockProps) => ReactElement + renderDefault: (props: BlockProps) => React.JSX.Element /** * Plugin chain render callback. */ diff --git a/packages/sanity/src/core/form/types/fieldProps.ts b/packages/sanity/src/core/form/types/fieldProps.ts index c9095a2141b..f3ff9c41fce 100644 --- a/packages/sanity/src/core/form/types/fieldProps.ts +++ b/packages/sanity/src/core/form/types/fieldProps.ts @@ -14,7 +14,7 @@ import { type SlugValue, type StringSchemaType, } from '@sanity/types' -import {type ReactElement, type ReactNode} from 'react' +import {type ReactNode} from 'react' import {type DocumentFieldAction} from '../../config' import {type FormNodePresence} from '../../presence' @@ -60,8 +60,8 @@ export interface BaseFieldProps { index: number changed: boolean children: ReactNode - renderDefault: (props: FieldProps) => ReactElement version?: string + renderDefault: (props: FieldProps) => React.JSX.Element } /** diff --git a/packages/sanity/src/core/form/types/inputProps.ts b/packages/sanity/src/core/form/types/inputProps.ts index 49dbf3eb8ca..d2698496993 100644 --- a/packages/sanity/src/core/form/types/inputProps.ts +++ b/packages/sanity/src/core/form/types/inputProps.ts @@ -28,7 +28,6 @@ import { type FocusEventHandler, type FormEventHandler, type MutableRefObject, - type ReactElement, type ReactNode, } from 'react' @@ -72,7 +71,7 @@ export interface OnPathFocusPayload { * @hidden * @public */ export interface BaseInputProps { - renderDefault: (props: InputProps) => ReactElement + renderDefault: (props: InputProps) => React.JSX.Element } /** @@ -579,7 +578,7 @@ export interface PortableTextInputProps * @hidden * @beta */ - renderEditable?: (props: RenderPortableTextInputEditableProps) => JSX.Element + renderEditable?: (props: RenderPortableTextInputEditableProps) => React.JSX.Element /** * Array of {@link RangeDecoration} that can be used to decorate the content. */ diff --git a/packages/sanity/src/core/form/types/itemProps.ts b/packages/sanity/src/core/form/types/itemProps.ts index 7496a2d7d4a..7e0e486abd6 100644 --- a/packages/sanity/src/core/form/types/itemProps.ts +++ b/packages/sanity/src/core/form/types/itemProps.ts @@ -14,7 +14,7 @@ import { type SlugValue, type StringSchemaType, } from '@sanity/types' -import {type FocusEvent, type ReactElement, type ReactNode} from 'react' +import {type FocusEvent, type ReactNode} from 'react' import {type FormNodePresence} from '../../presence' import {type ArrayInputCopyEvent, type ArrayInputInsertEvent} from './event' @@ -87,7 +87,7 @@ export interface BaseItemProps<T> { presence: FormNodePresence[] /** The function to call to render the default item. See {@link ItemProps} */ - renderDefault: (props: ItemProps) => ReactElement + renderDefault: (props: ItemProps) => React.JSX.Element } /** diff --git a/packages/sanity/src/core/hooks/__tests__/useFormattedDuration.test.tsx b/packages/sanity/src/core/hooks/__tests__/useFormattedDuration.test.tsx index 7eec8508648..1ba70423485 100644 --- a/packages/sanity/src/core/hooks/__tests__/useFormattedDuration.test.tsx +++ b/packages/sanity/src/core/hooks/__tests__/useFormattedDuration.test.tsx @@ -1,6 +1,5 @@ import {studioTheme, ThemeProvider} from '@sanity/ui' import {renderHook} from '@testing-library/react' -import {type ReactElement} from 'react' import {beforeAll, describe, expect, it} from 'vitest' import {LocaleProviderBase, usEnglishLocale} from '../../i18n' @@ -16,7 +15,7 @@ describe('useFormattedDuration', () => { i18n: {bundles: [studioDefaultLocaleResources]}, }) - const wrapper = ({children}: {children: ReactElement}) => ( + const wrapper = ({children}: {children: React.ReactNode}) => ( <ThemeProvider theme={studioTheme}> <LocaleProviderBase locales={[usEnglishLocale]} diff --git a/packages/sanity/src/core/hooks/__tests__/useRelativeTime.test.tsx b/packages/sanity/src/core/hooks/__tests__/useRelativeTime.test.tsx index bf2172ececa..4e65937a420 100644 --- a/packages/sanity/src/core/hooks/__tests__/useRelativeTime.test.tsx +++ b/packages/sanity/src/core/hooks/__tests__/useRelativeTime.test.tsx @@ -1,6 +1,5 @@ import {studioTheme, ThemeProvider} from '@sanity/ui' import {renderHook} from '@testing-library/react' -import {type ReactElement} from 'react' import {beforeAll, describe, expect, it} from 'vitest' import {LocaleProviderBase, usEnglishLocale} from '../../i18n' @@ -17,7 +16,7 @@ describe('useRelativeTime', () => { i18n: {bundles: [studioDefaultLocaleResources]}, }) - const wrapper = ({children}: {children: ReactElement}) => ( + const wrapper = ({children}: {children: React.ReactNode}) => ( <ThemeProvider theme={studioTheme}> <LocaleProviderBase locales={[usEnglishLocale]} diff --git a/packages/sanity/src/core/hooks/__tests__/useUnitFormatter.test.tsx b/packages/sanity/src/core/hooks/__tests__/useUnitFormatter.test.tsx index e7027869a6a..f43de5edee7 100644 --- a/packages/sanity/src/core/hooks/__tests__/useUnitFormatter.test.tsx +++ b/packages/sanity/src/core/hooks/__tests__/useUnitFormatter.test.tsx @@ -1,6 +1,5 @@ import {studioTheme, ThemeProvider} from '@sanity/ui' import {renderHook} from '@testing-library/react' -import {type ReactElement} from 'react' import {beforeAll, beforeEach, describe, expect, it} from 'vitest' import {LocaleProviderBase, usEnglishLocale} from '../../i18n' @@ -16,7 +15,7 @@ describe('useUnitFormatter', () => { i18n: {bundles: [studioDefaultLocaleResources]}, }) - const wrapper = ({children}: {children: ReactElement}) => ( + const wrapper = ({children}: {children: React.ReactNode}) => ( <ThemeProvider theme={studioTheme}> <LocaleProviderBase locales={[ diff --git a/packages/sanity/src/core/i18n/Translate.tsx b/packages/sanity/src/core/i18n/Translate.tsx index 218d312f32e..efe5316622e 100644 --- a/packages/sanity/src/core/i18n/Translate.tsx +++ b/packages/sanity/src/core/i18n/Translate.tsx @@ -34,7 +34,7 @@ type FormatterFns = {list: (value: Iterable<string>) => string} */ export type TranslateComponentMap = Record< string, - ComponentType<{children?: ReactNode}> | keyof JSX.IntrinsicElements + ComponentType<{children?: ReactNode}> | keyof React.JSX.IntrinsicElements > /** diff --git a/packages/sanity/src/core/presence/PresenceTooltip.tsx b/packages/sanity/src/core/presence/PresenceTooltip.tsx index 9a5b6ec00e0..45b90d2e6b2 100644 --- a/packages/sanity/src/core/presence/PresenceTooltip.tsx +++ b/packages/sanity/src/core/presence/PresenceTooltip.tsx @@ -1,12 +1,12 @@ import {Flex, Stack, Text} from '@sanity/ui' -import {type ReactElement, useMemo} from 'react' +import {useMemo} from 'react' import {Tooltip} from '../../ui-components' import {UserAvatar} from '../components/userAvatar' import {type FormNodePresence} from './types' interface PresenceTooltipProps { - children?: ReactElement + children?: React.JSX.Element items: FormNodePresence[] } diff --git a/packages/sanity/src/core/presence/overlay/StickyOverlay.tsx b/packages/sanity/src/core/presence/overlay/StickyOverlay.tsx index fadb413937c..8ae800dcaa3 100644 --- a/packages/sanity/src/core/presence/overlay/StickyOverlay.tsx +++ b/packages/sanity/src/core/presence/overlay/StickyOverlay.tsx @@ -5,7 +5,6 @@ import { type CSSProperties, Fragment, memo, - type ReactElement, type ReactNode, useCallback, useMemo, @@ -327,7 +326,7 @@ function PresenceInside(props: { ) } -const PassThrough = (props: {children: ReactElement; [prop: string]: any}) => props.children +const PassThrough = (props: {children: React.JSX.Element; [prop: string]: any}) => props.children const DebugValue = DEBUG ? function DebugValue(props: any) { diff --git a/packages/sanity/src/core/preview/components/PreviewLoader.tsx b/packages/sanity/src/core/preview/components/PreviewLoader.tsx index e4689fa83c0..5771f25cbeb 100644 --- a/packages/sanity/src/core/preview/components/PreviewLoader.tsx +++ b/packages/sanity/src/core/preview/components/PreviewLoader.tsx @@ -1,4 +1,4 @@ -import {type ComponentType, type CSSProperties, type ReactElement, useMemo, useState} from 'react' +import {type ComponentType, type CSSProperties, useMemo, useState} from 'react' import {type PreviewProps} from '../../components' import {type RenderPreviewCallbackProps} from '../../form' @@ -20,7 +20,7 @@ export function PreviewLoader( props: RenderPreviewCallbackProps & { component: ComponentType<Omit<PreviewProps, 'renderDefault'>> }, -): ReactElement { +): React.JSX.Element { const { layout, value, diff --git a/packages/sanity/src/core/preview/components/SanityDefaultPreview.tsx b/packages/sanity/src/core/preview/components/SanityDefaultPreview.tsx index fede5fcce5c..2c2121e91ef 100644 --- a/packages/sanity/src/core/preview/components/SanityDefaultPreview.tsx +++ b/packages/sanity/src/core/preview/components/SanityDefaultPreview.tsx @@ -8,7 +8,6 @@ import { type ElementType, isValidElement, memo, - type ReactElement, type ReactNode, useCallback, useMemo, @@ -39,7 +38,7 @@ export interface SanityDefaultPreviewProps extends Omit<PreviewProps, 'renderDef * */ export const SanityDefaultPreview = memo(function SanityDefaultPreview( props: SanityDefaultPreviewProps, -): ReactElement { +): React.JSX.Element { const {icon: Icon, layout, media: mediaProp, imageUrl, title, tooltip, ...restProps} = props const client = useClient(DEFAULT_STUDIO_CLIENT_OPTIONS) diff --git a/packages/sanity/src/core/releases/components/ReleaseAvatar.tsx b/packages/sanity/src/core/releases/components/ReleaseAvatar.tsx index b075d194a40..65b1f811ef7 100644 --- a/packages/sanity/src/core/releases/components/ReleaseAvatar.tsx +++ b/packages/sanity/src/core/releases/components/ReleaseAvatar.tsx @@ -11,7 +11,7 @@ export function ReleaseAvatar({ fontSize?: number padding?: number tone: BadgeTone -}): JSX.Element { +}): React.JSX.Element { return ( <Box flex="none" padding={padding} style={{borderRadius: 3}}> <Text size={fontSize}> diff --git a/packages/sanity/src/core/releases/components/dialog/CreateReleaseDialog.tsx b/packages/sanity/src/core/releases/components/dialog/CreateReleaseDialog.tsx index d947453d068..727680f07f9 100644 --- a/packages/sanity/src/core/releases/components/dialog/CreateReleaseDialog.tsx +++ b/packages/sanity/src/core/releases/components/dialog/CreateReleaseDialog.tsx @@ -19,7 +19,7 @@ interface CreateReleaseDialogProps { origin?: OriginInfo['origin'] } -export function CreateReleaseDialog(props: CreateReleaseDialogProps): JSX.Element { +export function CreateReleaseDialog(props: CreateReleaseDialogProps): React.JSX.Element { const {onCancel, onSubmit, origin} = props const toast = useToast() const {createRelease} = useReleaseOperations() diff --git a/packages/sanity/src/core/releases/components/dialog/DiscardVersionDialog.tsx b/packages/sanity/src/core/releases/components/dialog/DiscardVersionDialog.tsx index 8a1b3d77cf4..140abddb2be 100644 --- a/packages/sanity/src/core/releases/components/dialog/DiscardVersionDialog.tsx +++ b/packages/sanity/src/core/releases/components/dialog/DiscardVersionDialog.tsx @@ -19,7 +19,7 @@ export function DiscardVersionDialog(props: { onClose: () => void documentId: string documentType: string -}): JSX.Element { +}): React.JSX.Element { const {onClose, documentId, documentType} = props const {t} = useTranslation(releasesLocaleNamespace) const {discardChanges} = useDocumentOperation(getPublishedId(documentId), documentType) diff --git a/packages/sanity/src/core/releases/components/dialog/ReleaseForm.tsx b/packages/sanity/src/core/releases/components/dialog/ReleaseForm.tsx index 6695c6c83d8..3b491ebf80f 100644 --- a/packages/sanity/src/core/releases/components/dialog/ReleaseForm.tsx +++ b/packages/sanity/src/core/releases/components/dialog/ReleaseForm.tsx @@ -20,7 +20,7 @@ const RELEASE_TYPES: ReleaseType[] = ['asap', 'scheduled', 'undecided'] export function ReleaseForm(props: { onChange: (params: EditableReleaseDocument) => void value: EditableReleaseDocument -}): JSX.Element { +}): React.JSX.Element { const {onChange, value} = props const {releaseType} = value.metadata || {} const publishAt = value.metadata.intendedPublishAt @@ -141,7 +141,7 @@ export function ReleaseForm(props: { inputValue={format(inputValue, 'PPp')} constrainSize={false} padding={0} - disableInput + readOnly /> <Button diff --git a/packages/sanity/src/core/releases/components/dialog/TitleDescriptionForm.tsx b/packages/sanity/src/core/releases/components/dialog/TitleDescriptionForm.tsx index 470cbe2328a..27737a34ae3 100644 --- a/packages/sanity/src/core/releases/components/dialog/TitleDescriptionForm.tsx +++ b/packages/sanity/src/core/releases/components/dialog/TitleDescriptionForm.tsx @@ -88,7 +88,7 @@ export function TitleDescriptionForm({ }: { release: EditableReleaseDocument onChange: (changedValue: EditableReleaseDocument) => void -}): JSX.Element { +}): React.JSX.Element { const descriptionRef = useRef<HTMLTextAreaElement | null>(null) const [scrollHeight, setScrollHeight] = useState(46) diff --git a/packages/sanity/src/core/releases/components/dialog/UnpublishVersionDialog.tsx b/packages/sanity/src/core/releases/components/dialog/UnpublishVersionDialog.tsx index 0b3bdb6e6f7..c779a3cb598 100644 --- a/packages/sanity/src/core/releases/components/dialog/UnpublishVersionDialog.tsx +++ b/packages/sanity/src/core/releases/components/dialog/UnpublishVersionDialog.tsx @@ -19,7 +19,7 @@ export function UnpublishVersionDialog(props: { onClose: () => void documentVersionId: string documentType: string -}): JSX.Element { +}): React.JSX.Element { const {onClose, documentVersionId, documentType} = props const {t} = useTranslation(releasesLocaleNamespace) const schema = useSchema() diff --git a/packages/sanity/src/core/releases/components/documentHeader/VersionChip.tsx b/packages/sanity/src/core/releases/components/documentHeader/VersionChip.tsx index c7cbb4ea57f..7335c3ed53f 100644 --- a/packages/sanity/src/core/releases/components/documentHeader/VersionChip.tsx +++ b/packages/sanity/src/core/releases/components/documentHeader/VersionChip.tsx @@ -186,7 +186,7 @@ export const VersionChip = memo(function VersionChip(props: { <> <Tooltip content={tooltipContent} fallbackPlacements={[]} portal placement="bottom"> <Chip - ref={(ref) => (chipRef.current = ref)} + ref={chipRef} disabled={disabled} mode="bleed" onClick={onClick} diff --git a/packages/sanity/src/core/releases/components/documentHeader/dialog/CopyToNewReleaseDialog.tsx b/packages/sanity/src/core/releases/components/documentHeader/dialog/CopyToNewReleaseDialog.tsx index 2798299014d..b031c9beac9 100644 --- a/packages/sanity/src/core/releases/components/documentHeader/dialog/CopyToNewReleaseDialog.tsx +++ b/packages/sanity/src/core/releases/components/documentHeader/dialog/CopyToNewReleaseDialog.tsx @@ -22,7 +22,7 @@ export function CopyToNewReleaseDialog(props: { tone: BadgeTone title: string onCreateVersion: (releaseId: string) => void -}): JSX.Element { +}): React.JSX.Element { const {onClose, documentId, documentType, tone, title, onCreateVersion} = props const {t} = useTranslation() const toast = useToast() diff --git a/packages/sanity/src/core/releases/navbar/GlobalPerspectiveMenu.tsx b/packages/sanity/src/core/releases/navbar/GlobalPerspectiveMenu.tsx index 90326e25f49..2289bd07081 100644 --- a/packages/sanity/src/core/releases/navbar/GlobalPerspectiveMenu.tsx +++ b/packages/sanity/src/core/releases/navbar/GlobalPerspectiveMenu.tsx @@ -44,7 +44,7 @@ const orderedReleaseTypes: ReleaseType[] = ['asap', 'scheduled', 'undecided'] const ASAP_RANGE_OFFSET = 2 -export function GlobalPerspectiveMenu(): JSX.Element { +export function GlobalPerspectiveMenu(): React.JSX.Element { const {loading, data: releases} = useReleases() const {selectedReleaseId} = usePerspective() const [createBundleDialogOpen, setCreateBundleDialogOpen] = useState(false) diff --git a/packages/sanity/src/core/releases/navbar/ReleaseTypeMenuSection.tsx b/packages/sanity/src/core/releases/navbar/ReleaseTypeMenuSection.tsx index 945e4c96864..51088a43ebc 100644 --- a/packages/sanity/src/core/releases/navbar/ReleaseTypeMenuSection.tsx +++ b/packages/sanity/src/core/releases/navbar/ReleaseTypeMenuSection.tsx @@ -30,7 +30,7 @@ export function ReleaseTypeMenuSection({ releases: ReleaseDocument[] range: LayerRange currentGlobalBundleMenuItemRef: React.RefObject<ScrollElement> -}): JSX.Element | null { +}): React.JSX.Element | null { const {t} = useTranslation() const {selectedReleaseId} = usePerspective() diff --git a/packages/sanity/src/core/releases/navbar/ReleasesNav.tsx b/packages/sanity/src/core/releases/navbar/ReleasesNav.tsx index 0ffb3238b01..7dc643323c5 100644 --- a/packages/sanity/src/core/releases/navbar/ReleasesNav.tsx +++ b/packages/sanity/src/core/releases/navbar/ReleasesNav.tsx @@ -29,7 +29,7 @@ const AnimatedMotionDiv = ({children, ...props}: PropsWithChildren<any>) => ( </motion.div> ) -export function ReleasesNav(): JSX.Element { +export function ReleasesNav(): React.JSX.Element { const activeToolName = useRouterState( useCallback( (routerState) => (typeof routerState.tool === 'string' ? routerState.tool : undefined), diff --git a/packages/sanity/src/core/releases/tool/components/Table/Table.tsx b/packages/sanity/src/core/releases/tool/components/Table/Table.tsx index ed196f6ed56..c02563c0dbd 100644 --- a/packages/sanity/src/core/releases/tool/components/Table/Table.tsx +++ b/packages/sanity/src/core/releases/tool/components/Table/Table.tsx @@ -15,8 +15,8 @@ import { Fragment, type HTMLProps, type MutableRefObject, - type ReactNode, type RefAttributes, + type RefObject, useMemo, useRef, } from 'react' @@ -41,7 +41,7 @@ export interface TableProps<TableData, AdditionalRowTableData> { columnDefs: Column<RowDatum<TableData, AdditionalRowTableData>>[] searchFilter?: (data: TableData[], searchTerm: string) => TableData[] data: TableData[] - emptyState: (() => JSX.Element) | string + emptyState: (() => React.JSX.Element) | string loading?: boolean /** * Should be the dot separated path to the unique identifier of the row. e.g. document._id @@ -51,9 +51,9 @@ export interface TableProps<TableData, AdditionalRowTableData> { datum, }: { datum: RowDatum<TableData, AdditionalRowTableData> | unknown - }) => ReactNode + }) => React.ReactNode rowProps?: (datum: TableData) => Partial<TableRowProps> - scrollContainerRef: MutableRefObject<HTMLDivElement | null> + scrollContainerRef: RefObject<HTMLDivElement | null> hideTableInlinePadding?: boolean } diff --git a/packages/sanity/src/core/releases/tool/components/Table/types.ts b/packages/sanity/src/core/releases/tool/components/Table/types.ts index 6f1e22b91d7..3dd1be4a661 100644 --- a/packages/sanity/src/core/releases/tool/components/Table/types.ts +++ b/packages/sanity/src/core/releases/tool/components/Table/types.ts @@ -1,13 +1,13 @@ import {type CSSProperties} from 'react' export interface InjectedTableProps { - as?: React.ElementType | keyof JSX.IntrinsicElements + as?: React.ElementType | keyof React.JSX.IntrinsicElements id: string style: {width?: number} } export interface Column<TableData = unknown> { - header: (props: HeaderProps) => JSX.Element + header: (props: HeaderProps) => React.JSX.Element cell: (props: { datum: TableData cellProps: InjectedTableProps diff --git a/packages/sanity/src/core/releases/tool/detail/AddDocumentSearch.tsx b/packages/sanity/src/core/releases/tool/detail/AddDocumentSearch.tsx index 952d927487f..c94a2979382 100644 --- a/packages/sanity/src/core/releases/tool/detail/AddDocumentSearch.tsx +++ b/packages/sanity/src/core/releases/tool/detail/AddDocumentSearch.tsx @@ -19,7 +19,7 @@ export function AddDocumentSearch({ open: boolean onClose: () => void releaseId: string -}): JSX.Element { +}): React.JSX.Element { const {createVersion} = useReleaseOperations() const toast = useToast() const telemetry = useTelemetry() diff --git a/packages/sanity/src/core/releases/tool/detail/ReleaseDetail.tsx b/packages/sanity/src/core/releases/tool/detail/ReleaseDetail.tsx index 840319b3ea3..1ac5d38ecc3 100644 --- a/packages/sanity/src/core/releases/tool/detail/ReleaseDetail.tsx +++ b/packages/sanity/src/core/releases/tool/detail/ReleaseDetail.tsx @@ -73,7 +73,7 @@ export const ReleaseDetail = () => { } }, [activeView, releaseInDetail?.publishAt, navigateToSummary]) - const scrollContainerRef = useRef(null) + const scrollContainerRef = useRef<HTMLDivElement | null>(null) const detailContent = useMemo(() => { if (documentsLoading) { diff --git a/packages/sanity/src/core/releases/tool/detail/ReleaseDetailsEditor.tsx b/packages/sanity/src/core/releases/tool/detail/ReleaseDetailsEditor.tsx index bd175acf220..614f62e4c01 100644 --- a/packages/sanity/src/core/releases/tool/detail/ReleaseDetailsEditor.tsx +++ b/packages/sanity/src/core/releases/tool/detail/ReleaseDetailsEditor.tsx @@ -3,7 +3,7 @@ import {useCallback, useState} from 'react' import {TitleDescriptionForm} from '../../components/dialog/TitleDescriptionForm' import {type EditableReleaseDocument, type ReleaseDocument, useReleaseOperations} from '../../index' -export function ReleaseDetailsEditor({release}: {release: ReleaseDocument}): JSX.Element { +export function ReleaseDetailsEditor({release}: {release: ReleaseDocument}): React.JSX.Element { const {updateRelease} = useReleaseOperations() const [timer, setTimer] = useState<NodeJS.Timeout | undefined>(undefined) diff --git a/packages/sanity/src/core/releases/tool/detail/ReleaseReview.tsx b/packages/sanity/src/core/releases/tool/detail/ReleaseReview.tsx index b46cc6abaf5..97d140de824 100644 --- a/packages/sanity/src/core/releases/tool/detail/ReleaseReview.tsx +++ b/packages/sanity/src/core/releases/tool/detail/ReleaseReview.tsx @@ -38,7 +38,7 @@ export function ReleaseReview({ documents: DocumentInRelease[] release: ReleaseDocument documentsHistory: Record<string, DocumentHistory> - scrollContainerRef: RefObject<HTMLDivElement> + scrollContainerRef: RefObject<HTMLDivElement | null> }) { const [searchTerm, setSearchTerm] = useState('') const [expandedItems, setIsExpandedItems] = useState<Record<string, boolean>>({}) diff --git a/packages/sanity/src/core/releases/tool/detail/ReleaseSummary.tsx b/packages/sanity/src/core/releases/tool/detail/ReleaseSummary.tsx index 28a0021d1d6..fdccf0c3e24 100644 --- a/packages/sanity/src/core/releases/tool/detail/ReleaseSummary.tsx +++ b/packages/sanity/src/core/releases/tool/detail/ReleaseSummary.tsx @@ -23,7 +23,7 @@ export type BundleDocumentRow = DocumentWithHistory export interface ReleaseSummaryProps { documents: DocumentInRelease[] documentsHistory: Record<string, DocumentHistory> - scrollContainerRef: RefObject<HTMLDivElement> + scrollContainerRef: RefObject<HTMLDivElement | null> release: ReleaseDocument } @@ -42,13 +42,17 @@ export function ReleaseSummary(props: ReleaseSummaryProps) { [documents, documentsHistory], ) - const renderRowActions: React.FC<{datum: BundleDocumentRow | unknown}> = useCallback( - ({datum}) => { + const renderRowActions = useCallback( + (rowProps: {datum: BundleDocumentRow | unknown}) => { if (release.state !== 'active') return null - const document = datum as BundleDocumentRow - - return <DocumentActions document={document} releaseTitle={release.metadata.title} /> + return ( + <DocumentActions + // TODO: Validate this with a proper asserter + document={rowProps.datum as BundleDocumentRow} + releaseTitle={release.metadata.title} + /> + ) }, [release.metadata.title, release.state], ) diff --git a/packages/sanity/src/core/releases/tool/detail/ReleaseTypePicker.tsx b/packages/sanity/src/core/releases/tool/detail/ReleaseTypePicker.tsx index 77ad23f985a..91f945d03a0 100644 --- a/packages/sanity/src/core/releases/tool/detail/ReleaseTypePicker.tsx +++ b/packages/sanity/src/core/releases/tool/detail/ReleaseTypePicker.tsx @@ -19,7 +19,7 @@ import {useReleaseOperations} from '../../store/useReleaseOperations' import {getReleaseTone} from '../../util/getReleaseTone' import {getPublishDateFromRelease, isReleaseScheduledOrScheduling} from '../../util/util' -export function ReleaseTypePicker(props: {release: ReleaseDocument}): JSX.Element { +export function ReleaseTypePicker(props: {release: ReleaseDocument}): React.JSX.Element { const {release} = props const popoverRef = useRef<HTMLDivElement | null>(null) diff --git a/packages/sanity/src/core/scheduledPublishing/components/scheduleItem/PreviewWrapper.tsx b/packages/sanity/src/core/scheduledPublishing/components/scheduleItem/PreviewWrapper.tsx index e9431a82b87..669611989e4 100644 --- a/packages/sanity/src/core/scheduledPublishing/components/scheduleItem/PreviewWrapper.tsx +++ b/packages/sanity/src/core/scheduledPublishing/components/scheduleItem/PreviewWrapper.tsx @@ -31,7 +31,7 @@ interface Props { children?: ReactNode contextMenu?: ReactNode // eslint-disable-next-line no-undef - linkComponent?: ElementType | keyof JSX.IntrinsicElements + linkComponent?: ElementType | keyof React.JSX.IntrinsicElements onClick?: () => void previewState?: PaneItemPreviewState publishedDocumentId?: string diff --git a/packages/sanity/src/core/scheduledPublishing/tool/Tool.tsx b/packages/sanity/src/core/scheduledPublishing/tool/Tool.tsx index cc0a5aaab15..1ca4f28e41b 100644 --- a/packages/sanity/src/core/scheduledPublishing/tool/Tool.tsx +++ b/packages/sanity/src/core/scheduledPublishing/tool/Tool.tsx @@ -35,7 +35,7 @@ export default function Tool() { const {error, isInitialLoading, schedules = NO_SCHEDULE} = usePollSchedules() const {enabled} = useScheduledPublishingEnabled() - const lastScheduleState = useRef<ScheduleState | undefined>() + const lastScheduleState = useRef<ScheduleState | undefined>(undefined) const scheduleState: ScheduleState = router.state.state as ScheduleState const selectedDate = router.state.date diff --git a/packages/sanity/src/core/store/_legacy/document/document-pair/checkoutPair.ts b/packages/sanity/src/core/store/_legacy/document/document-pair/checkoutPair.ts index a2e7de17539..4b3aaa07489 100644 --- a/packages/sanity/src/core/store/_legacy/document/document-pair/checkoutPair.ts +++ b/packages/sanity/src/core/store/_legacy/document/document-pair/checkoutPair.ts @@ -67,7 +67,6 @@ export type Pair = { published: DocumentVersion draft: DocumentVersion version?: DocumentVersion - _keepalive: Observable<never> } function setVersion<T>(version: 'draft' | 'published' | 'version') { @@ -273,8 +272,5 @@ export function checkoutPair( events: merge(commits$, reconnect$, published.events).pipe(map(setVersion('published'))), remoteSnapshot$: published.remoteSnapshot$.pipe(map(setVersion('published'))), }, - // Use this to keep the mutation pipeline active. - // It won't ever emit any events, but it will prevent the eventsource connection from completing for as long as it is subscribed to - _keepalive: merge(listenerEvents$, commits$).pipe(mergeMap(() => EMPTY)), } } diff --git a/packages/sanity/src/core/store/_legacy/document/document-pair/memoizedPair.ts b/packages/sanity/src/core/store/_legacy/document/document-pair/memoizedPair.ts index f2d6dd1637e..dfeb7cf8d25 100644 --- a/packages/sanity/src/core/store/_legacy/document/document-pair/memoizedPair.ts +++ b/packages/sanity/src/core/store/_legacy/document/document-pair/memoizedPair.ts @@ -1,5 +1,6 @@ import {type SanityClient} from '@sanity/client' -import {merge, type Observable, of, ReplaySubject, share, timer} from 'rxjs' +import {EMPTY, merge, Observable, of, ReplaySubject, share, timer} from 'rxjs' +import {mergeMap} from 'rxjs/operators' import {type PairListenerOptions} from '../getPairListener' import {type IdPair} from '../types' @@ -24,12 +25,16 @@ export const memoizedPair: ( serverActionsEnabled: Observable<boolean>, pairListenerOptions?: PairListenerOptions, ): Observable<Pair> => { - const pair = checkoutPair(client, idPair, serverActionsEnabled, pairListenerOptions) - return merge( - of(pair), - // makes sure the pair listener is kept alive for as long as there are subscribers - pair._keepalive, - ).pipe( + return new Observable<Pair>((subscriber) => { + const pair = checkoutPair(client, idPair, serverActionsEnabled, pairListenerOptions) + return merge( + of(pair), + // merge in draft events and published events to makes sure they receive + // the events they need for as long as the pair is subscribed to + pair.draft.events.pipe(mergeMap(() => EMPTY)), + pair.published.events.pipe(mergeMap(() => EMPTY)), + ).subscribe(subscriber) + }).pipe( share({ connector: () => new ReplaySubject(1), resetOnComplete: true, diff --git a/packages/sanity/src/core/studio/Studio.tsx b/packages/sanity/src/core/studio/Studio.tsx index aeff6e95668..475cc729cb9 100644 --- a/packages/sanity/src/core/studio/Studio.tsx +++ b/packages/sanity/src/core/studio/Studio.tsx @@ -1,6 +1,5 @@ /* eslint-disable simple-import-sort/imports */ /* disabling for now because the imports trigger side effects causing test snapshots to update */ -import {type ReactElement} from 'react' import {type Config} from '../config' import {type StudioThemeColorSchemeKey} from '../theme/types' import {GlobalStyle} from './GlobalStyle' @@ -93,7 +92,7 @@ export interface StudioProps { /** * @hidden * @beta */ -export function Studio(props: StudioProps): ReactElement { +export function Studio(props: StudioProps): React.JSX.Element { const { basePath, config, diff --git a/packages/sanity/src/core/studio/colorScheme.tsx b/packages/sanity/src/core/studio/colorScheme.tsx index c37fd87902d..8a9202ff6be 100644 --- a/packages/sanity/src/core/studio/colorScheme.tsx +++ b/packages/sanity/src/core/studio/colorScheme.tsx @@ -113,7 +113,7 @@ export function ColorSchemeCustomProvider({ scheme, }: Pick<ColorSchemeProviderProps, 'children' | 'onSchemeChange'> & { scheme: StudioThemeColorSchemeKey -}): JSX.Element { +}): React.JSX.Element { return ( <ColorSchemeSetValueContext.Provider value={typeof onSchemeChange === 'function' ? onSchemeChange : false} diff --git a/packages/sanity/src/core/studio/components/navbar/search/components/filters/addFilter/items/FilterTooltip.tsx b/packages/sanity/src/core/studio/components/navbar/search/components/filters/addFilter/items/FilterTooltip.tsx index 556aa711fe7..53638e7b0d8 100644 --- a/packages/sanity/src/core/studio/components/navbar/search/components/filters/addFilter/items/FilterTooltip.tsx +++ b/packages/sanity/src/core/studio/components/navbar/search/components/filters/addFilter/items/FilterTooltip.tsx @@ -1,6 +1,6 @@ import {Card, Flex, Stack, Text} from '@sanity/ui' import {startCase, uniq} from 'lodash' -import {type ReactElement, useMemo} from 'react' +import {useMemo} from 'react' import {Tooltip} from '../../../../../../../../../ui-components' import {TextWithTone} from '../../../../../../../../components' @@ -14,7 +14,7 @@ import {getSchemaField} from '../../../../utils/getSchemaField' import {sanitizeFieldValue} from '../../../../utils/sanitizeField' interface FilterTooltipProps { - children: ReactElement + children: React.JSX.Element fieldDefinition?: SearchFieldDefinition filterDefinition: SearchFilterDefinition visible?: boolean diff --git a/packages/sanity/src/core/studio/components/navbar/search/components/filters/filter/inputs/reference/ReferenceAutocomplete.tsx b/packages/sanity/src/core/studio/components/navbar/search/components/filters/filter/inputs/reference/ReferenceAutocomplete.tsx index f01caf53509..edb37c0309b 100644 --- a/packages/sanity/src/core/studio/components/navbar/search/components/filters/filter/inputs/reference/ReferenceAutocomplete.tsx +++ b/packages/sanity/src/core/studio/components/navbar/search/components/filters/filter/inputs/reference/ReferenceAutocomplete.tsx @@ -1,15 +1,6 @@ import {type ReferenceValue, type SchemaType} from '@sanity/types' import {Autocomplete, Box, Flex, Text} from '@sanity/ui' -import { - type ForwardedRef, - forwardRef, - type ReactElement, - useCallback, - useId, - useMemo, - useRef, - useState, -} from 'react' +import {type ForwardedRef, forwardRef, useCallback, useId, useMemo, useRef, useState} from 'react' import {styled} from 'styled-components' import {Popover} from '../../../../../../../../../../ui-components' @@ -26,7 +17,7 @@ import {SearchResultItem} from '../../../../searchResults/item/SearchResultItem' type AutocompleteSearchHit = {value: string} & SearchHit interface PopoverContentProps { - content: ReactElement | null + content: React.JSX.Element | null hidden: boolean onMouseEnter: () => void onMouseLeave: () => void diff --git a/packages/sanity/src/core/studio/components/navbar/search/utils/sanitizeField.ts b/packages/sanity/src/core/studio/components/navbar/search/utils/sanitizeField.ts index 32f7185244f..66f384179e3 100644 --- a/packages/sanity/src/core/studio/components/navbar/search/utils/sanitizeField.ts +++ b/packages/sanity/src/core/studio/components/navbar/search/utils/sanitizeField.ts @@ -1,11 +1,11 @@ -import {isValidElement, type ReactElement} from 'react' +import {isValidElement} from 'react' import {renderToString} from 'react-dom/server' /** * Convert a field value to a string (if it's a React element) and remove HTML tags. * If the field value is a string, pass through as-is. */ -export function sanitizeFieldValue(name: string | ReactElement): string { +export function sanitizeFieldValue(name: string | React.JSX.Element): string { if (isValidElement(name)) { return stripHtmlTags(renderToString(name)) } diff --git a/packages/sanity/src/core/studio/studioAnnouncements/Divider.tsx b/packages/sanity/src/core/studio/studioAnnouncements/Divider.tsx index bf94a2fbd4c..7ae01bc3d1a 100644 --- a/packages/sanity/src/core/studio/studioAnnouncements/Divider.tsx +++ b/packages/sanity/src/core/studio/studioAnnouncements/Divider.tsx @@ -13,7 +13,7 @@ const Hr = styled.hr<{$show: boolean}>` ` interface DividerProps { - parentRef: React.RefObject<HTMLDivElement> + parentRef: React.RefObject<HTMLDivElement | null> } /** @@ -28,7 +28,7 @@ const DIVIDER_FADE_THRESHOLD = '-60px 0px 0px 0px' /** * A divider that fades when reaching the top of the parent. */ -export function Divider({parentRef}: DividerProps): JSX.Element { +export function Divider({parentRef}: DividerProps): React.JSX.Element { const itemRef = useRef<HTMLHRElement | null>(null) const [show, setShow] = useState(true) diff --git a/packages/sanity/src/core/studio/studioAnnouncements/StudioAnnouncementsDialog.tsx b/packages/sanity/src/core/studio/studioAnnouncements/StudioAnnouncementsDialog.tsx index 9ae088476bc..4c1313b7c8a 100644 --- a/packages/sanity/src/core/studio/studioAnnouncements/StudioAnnouncementsDialog.tsx +++ b/packages/sanity/src/core/studio/studioAnnouncements/StudioAnnouncementsDialog.tsx @@ -48,7 +48,7 @@ interface AnnouncementProps { announcement: StudioAnnouncementDocument mode: DialogMode isFirst: boolean - parentRef: React.RefObject<HTMLDivElement> + parentRef: React.RefObject<HTMLDivElement | null> } /** diff --git a/packages/sanity/src/core/studio/workspace.tsx b/packages/sanity/src/core/studio/workspace.tsx index 481c645205f..f15c0d72d78 100644 --- a/packages/sanity/src/core/studio/workspace.tsx +++ b/packages/sanity/src/core/studio/workspace.tsx @@ -1,4 +1,4 @@ -import {type ReactChild, useContext} from 'react' +import {useContext} from 'react' import {WorkspaceContext} from 'sanity/_singletons' import {type Workspace} from '../config' @@ -6,11 +6,14 @@ import {type Workspace} from '../config' /** @internal */ export interface WorkspaceProviderProps { workspace: Workspace - children?: ReactChild + children: React.ReactNode } /** @internal */ -export function WorkspaceProvider({children, workspace}: WorkspaceProviderProps) { +export function WorkspaceProvider({ + children, + workspace, +}: WorkspaceProviderProps): React.JSX.Element { return <WorkspaceContext.Provider value={workspace}>{children}</WorkspaceContext.Provider> } diff --git a/packages/sanity/src/core/tasks/components/activity/helpers/index.tsx b/packages/sanity/src/core/tasks/components/activity/helpers/index.tsx index e9438216fe6..7970e890cba 100644 --- a/packages/sanity/src/core/tasks/components/activity/helpers/index.tsx +++ b/packages/sanity/src/core/tasks/components/activity/helpers/index.tsx @@ -1,6 +1,5 @@ import {CalendarIcon, CircleIcon, EditIcon, LinkIcon, UserIcon} from '@sanity/icons' import {TextSkeleton} from '@sanity/ui' -import {type ReactElement} from 'react' import {IntentLink} from 'sanity/router' import {styled} from 'styled-components' @@ -105,8 +104,8 @@ function TargetContentChange({target}: {target: TaskTarget}) { export function getChangeDetails(activity: FieldChange): { text: string - icon: ReactElement - changeTo?: ReactElement + icon: React.JSX.Element + changeTo?: React.JSX.Element } { switch (activity.field) { case 'status': { diff --git a/packages/sanity/src/core/tasks/components/form/fields/assignee/AssigneeSelectionMenu.tsx b/packages/sanity/src/core/tasks/components/form/fields/assignee/AssigneeSelectionMenu.tsx index 2c3714be450..ef6a58e2ce8 100644 --- a/packages/sanity/src/core/tasks/components/form/fields/assignee/AssigneeSelectionMenu.tsx +++ b/packages/sanity/src/core/tasks/components/form/fields/assignee/AssigneeSelectionMenu.tsx @@ -182,7 +182,7 @@ function MentionsMenu({onSelect, value = ''}: {onSelect: SelectItemHandler; valu export function AssigneeSelectionMenu(props: { onSelect: (userId: string) => void - menuButton: React.ReactElement + menuButton: React.JSX.Element value?: string }) { const {onSelect, menuButton, value} = props diff --git a/packages/sanity/src/core/tasks/context/isLastPane/IsLastPaneProvider.tsx b/packages/sanity/src/core/tasks/context/isLastPane/IsLastPaneProvider.tsx index 2bdcc980123..c4cf9901000 100644 --- a/packages/sanity/src/core/tasks/context/isLastPane/IsLastPaneProvider.tsx +++ b/packages/sanity/src/core/tasks/context/isLastPane/IsLastPaneProvider.tsx @@ -9,6 +9,9 @@ interface IsLastPaneProviderProps { * @internal * @hidden */ -export function IsLastPaneProvider({children, isLastPane}: IsLastPaneProviderProps): JSX.Element { +export function IsLastPaneProvider({ + children, + isLastPane, +}: IsLastPaneProviderProps): React.JSX.Element { return <IsLastPaneContext.Provider value={isLastPane}>{children}</IsLastPaneContext.Provider> } diff --git a/packages/sanity/src/core/templates/types.ts b/packages/sanity/src/core/templates/types.ts index 91469f8a52f..ba1dafab034 100644 --- a/packages/sanity/src/core/templates/types.ts +++ b/packages/sanity/src/core/templates/types.ts @@ -1,5 +1,4 @@ import {type I18nTextRecord, type InitialValueProperty, type SchemaType} from '@sanity/types' -import {type ElementType, type ReactElement} from 'react' /** * An initial value template is a template that can be used to create a new documents. @@ -179,7 +178,7 @@ export interface TemplateItem { * React icon for the item, if any. * Defaults to the icon for the associated template. */ - icon?: ElementType | ReactElement + icon?: React.ElementType | React.JSX.Element /** * Experimental: not fully supported yet diff --git a/packages/sanity/src/core/user-color/provider.tsx b/packages/sanity/src/core/user-color/provider.tsx index f306b1dbe07..f7e9e6d1fd8 100644 --- a/packages/sanity/src/core/user-color/provider.tsx +++ b/packages/sanity/src/core/user-color/provider.tsx @@ -1,4 +1,4 @@ -import {type ReactElement, type ReactNode, useMemo} from 'react' +import {type ReactNode, useMemo} from 'react' import {UserColorManagerContext} from 'sanity/_singletons' import {useColorSchemeValue} from '../studio' @@ -15,7 +15,7 @@ export interface UserColorManagerProviderProps { export function UserColorManagerProvider({ children, manager: managerFromProps, -}: UserColorManagerProviderProps): ReactElement { +}: UserColorManagerProviderProps): React.JSX.Element { const scheme = useColorSchemeValue() const manager = useMemo(() => { diff --git a/packages/sanity/src/router/RouteScope.tsx b/packages/sanity/src/router/RouteScope.tsx index f9d9bece7d3..809ef629813 100644 --- a/packages/sanity/src/router/RouteScope.tsx +++ b/packages/sanity/src/router/RouteScope.tsx @@ -1,5 +1,5 @@ /* eslint-disable camelcase */ -import {type ReactElement, type ReactNode, useCallback, useEffect, useMemo, useRef} from 'react' +import {type ReactNode, useCallback, useEffect, useMemo, useRef} from 'react' import {RouterContext} from 'sanity/_singletons' import {type NavigateOptions, type RouterContextValue, type RouterState} from './types' @@ -63,7 +63,7 @@ export interface RouteScopeProps { * } * ``` */ -export const RouteScope = function RouteScope(props: RouteScopeProps): ReactElement { +export const RouteScope = function RouteScope(props: RouteScopeProps): React.JSX.Element { const {children, scope, __unsafe_disableScopedSearchParams} = props const parentRouter = useRouter() const {resolvePathFromState: parent_resolvePathFromState, navigate: parent_navigate} = diff --git a/packages/sanity/src/router/RouterProvider.tsx b/packages/sanity/src/router/RouterProvider.tsx index bc782525ced..f988e5d3045 100644 --- a/packages/sanity/src/router/RouterProvider.tsx +++ b/packages/sanity/src/router/RouterProvider.tsx @@ -1,5 +1,5 @@ import {fromPairs, partition, toPairs} from 'lodash' -import {type ReactElement, type ReactNode, useCallback, useMemo} from 'react' +import {type ReactNode, useCallback, useMemo} from 'react' import {RouterContext} from 'sanity/_singletons' import {STICKY_PARAMS} from './stickyParams' @@ -79,7 +79,7 @@ export interface RouterProviderProps { * * @public */ -export function RouterProvider(props: RouterProviderProps): ReactElement { +export function RouterProvider(props: RouterProviderProps): React.JSX.Element { const {onNavigate, router: routerProp, state} = props const resolveIntentLink = useCallback( diff --git a/packages/sanity/src/router/withRouter.tsx b/packages/sanity/src/router/withRouter.tsx index 628b7c3e1ac..c84b912a77e 100644 --- a/packages/sanity/src/router/withRouter.tsx +++ b/packages/sanity/src/router/withRouter.tsx @@ -1,4 +1,4 @@ -import {type ComponentType, type FunctionComponent, type ReactElement} from 'react' +import {type ComponentType, type FunctionComponent} from 'react' import {type RouterContextValue} from './types' import {useRouter} from './useRouter' @@ -50,7 +50,7 @@ export interface WithRouterProps { /** * A function that renders the wrapped component with the `router` object as a parameter. */ - children: (router: RouterContextValue) => ReactElement + children: (router: RouterContextValue) => React.JSX.Element } /** diff --git a/packages/sanity/src/structure/StructureToolProvider.tsx b/packages/sanity/src/structure/StructureToolProvider.tsx index 43b7667647c..f3b6699d7f4 100644 --- a/packages/sanity/src/structure/StructureToolProvider.tsx +++ b/packages/sanity/src/structure/StructureToolProvider.tsx @@ -1,4 +1,4 @@ -import {type ReactElement, type ReactNode, useMemo, useState} from 'react' +import {type ReactNode, useMemo, useState} from 'react' import {useConfigContextFromSource, useDocumentStore, useSource} from 'sanity' import {StructureToolContext} from 'sanity/_singletons' @@ -21,7 +21,7 @@ export function StructureToolProvider({ defaultDocumentNode, structure: resolveStructure, children, -}: StructureToolProviderProps): ReactElement { +}: StructureToolProviderProps): React.JSX.Element { const [layoutCollapsed, setLayoutCollapsed] = useState(false) const source = useSource() const configContext = useConfigContextFromSource(source) diff --git a/packages/sanity/src/structure/components/Delay.tsx b/packages/sanity/src/structure/components/Delay.tsx index dc06f2f9224..f6980ad666b 100644 --- a/packages/sanity/src/structure/components/Delay.tsx +++ b/packages/sanity/src/structure/components/Delay.tsx @@ -1,12 +1,12 @@ -import {type ReactElement, useEffect, useState} from 'react' +import {useEffect, useState} from 'react' export function Delay({ children, ms = 0, }: { - children?: ReactElement | (() => ReactElement) + children?: React.JSX.Element | (() => React.JSX.Element) ms?: number -}): ReactElement { +}): React.JSX.Element { const [ready, setReady] = useState(ms <= 0) useEffect(() => { diff --git a/packages/sanity/src/structure/components/pane/PaneContent.tsx b/packages/sanity/src/structure/components/pane/PaneContent.tsx index db7a0b2088b..19f262872e6 100644 --- a/packages/sanity/src/structure/components/pane/PaneContent.tsx +++ b/packages/sanity/src/structure/components/pane/PaneContent.tsx @@ -6,7 +6,7 @@ import {usePane} from './usePane' import {usePaneLayout} from './usePaneLayout' interface PaneContentProps { - as?: ElementType | keyof JSX.IntrinsicElements + as?: ElementType | keyof React.JSX.IntrinsicElements overflow?: BoxOverflow padding?: number | number[] } diff --git a/packages/sanity/src/structure/panes/document/DocumentPaneProvider.tsx b/packages/sanity/src/structure/panes/document/DocumentPaneProvider.tsx index 48f21c94cbc..d5b0ff3ed83 100644 --- a/packages/sanity/src/structure/panes/document/DocumentPaneProvider.tsx +++ b/packages/sanity/src/structure/panes/document/DocumentPaneProvider.tsx @@ -10,7 +10,7 @@ import { import {useToast} from '@sanity/ui' import {fromString as pathFromString, pathFor, resolveKeyedPath} from '@sanity/util/paths' import {omit, throttle} from 'lodash' -import {memo, useCallback, useEffect, useMemo, useRef, useState} from 'react' +import {memo, useCallback, useEffect, useInsertionEffect, useMemo, useRef, useState} from 'react' import deepEquals from 'react-fast-compare' import { type DocumentActionsContext, @@ -375,10 +375,13 @@ export const DocumentPaneProvider = memo((props: DocumentPaneProviderProps) => { const patchRef = useRef<(event: PatchEvent) => void>(() => { throw new Error( - 'Attempted to patch the Sanity document during initial render. Input components should only call `onChange()` in an effect or a callback.', + 'Attempted to patch the Sanity document during initial render or in an `useInsertionEffect`. Input components should only call `onChange()` in a useEffect or an event handler.', ) }) - useEffect(() => { + useInsertionEffect(() => { + // note: this needs to happen in an insertion effect to make sure we're ready to receive patches from child components when they run their effects initially + // in case they do e.g. `useEffect(() => props.onChange(set("foo")), [])` + // Note: although we discourage patch-on-mount, we still support it. patchRef.current = (event: PatchEvent) => { // when creating a new draft if (!editState.draft && !editState.published && !editState.version) { diff --git a/packages/sanity/src/structure/panes/document/document-layout/DocumentLayout.tsx b/packages/sanity/src/structure/panes/document/document-layout/DocumentLayout.tsx index 544c8365cf1..12b372314e4 100644 --- a/packages/sanity/src/structure/panes/document/document-layout/DocumentLayout.tsx +++ b/packages/sanity/src/structure/panes/document/document-layout/DocumentLayout.tsx @@ -171,6 +171,11 @@ export function DocumentLayout() { [onPathOpen, onFocus], ) + const portalElements = useMemo( + () => ({[DOCUMENT_PANEL_PORTAL_ELEMENT]: documentPanelPortalElement}), + [documentPanelPortalElement], + ) + if (!schemaType) { return ( <DocumentLayoutError @@ -252,9 +257,7 @@ export function DocumentLayout() { {/* These providers are added because we want the dialogs in `DocumentStatusBar` to be scoped to the document pane. */} {/* The portal element comes from `DocumentPanel`. */} - <PortalProvider - __unstable_elements={{[DOCUMENT_PANEL_PORTAL_ELEMENT]: documentPanelPortalElement}} - > + <PortalProvider __unstable_elements={portalElements}> <DialogProvider position={DIALOG_PROVIDER_POSITION} zOffset={zOffsets.portal}> {StartInCreateBanner && ( <ShowWhenPaneOpen> diff --git a/packages/sanity/src/structure/panes/document/documentInspector/DocumentInspectorPanel.tsx b/packages/sanity/src/structure/panes/document/documentInspector/DocumentInspectorPanel.tsx index 8dec4b1cbb7..e3075eb95d5 100644 --- a/packages/sanity/src/structure/panes/document/documentInspector/DocumentInspectorPanel.tsx +++ b/packages/sanity/src/structure/panes/document/documentInspector/DocumentInspectorPanel.tsx @@ -1,5 +1,5 @@ import {Box} from '@sanity/ui' -import {type ReactElement, useCallback} from 'react' +import {useCallback} from 'react' import {usePane} from '../../../components' import {useStructureTool} from '../../../useStructureTool' @@ -13,7 +13,9 @@ interface DocumentInspectorPanelProps { flex?: number | number[] } -export function DocumentInspectorPanel(props: DocumentInspectorPanelProps): ReactElement | null { +export function DocumentInspectorPanel( + props: DocumentInspectorPanelProps, +): React.JSX.Element | null { const {documentId, documentType, flex} = props const {collapsed} = usePane() const {closeInspector, inspector} = useDocumentPane() diff --git a/packages/sanity/src/structure/panes/document/documentInspector/Resizable.tsx b/packages/sanity/src/structure/panes/document/documentInspector/Resizable.tsx index 07834447396..d6edcd2b3fc 100644 --- a/packages/sanity/src/structure/panes/document/documentInspector/Resizable.tsx +++ b/packages/sanity/src/structure/panes/document/documentInspector/Resizable.tsx @@ -20,7 +20,7 @@ export function Resizable( ) { const {as: forwardedAs, children, minWidth, maxWidth, ...restProps} = props const [element, setElement] = useState<HTMLDivElement | null>(null) - const elementWidthRef = useRef<number>() + const elementWidthRef = useRef<number>(undefined) const [targetWidth, setTargetWidth] = useState<number>() const handleResizeStart = useCallback(() => { diff --git a/packages/sanity/src/structure/panes/document/documentPanel/banners/AddToReleaseBanner.tsx b/packages/sanity/src/structure/panes/document/documentPanel/banners/AddToReleaseBanner.tsx index 11911541f20..4c5b4e98b48 100644 --- a/packages/sanity/src/structure/panes/document/documentPanel/banners/AddToReleaseBanner.tsx +++ b/packages/sanity/src/structure/panes/document/documentPanel/banners/AddToReleaseBanner.tsx @@ -25,7 +25,7 @@ export function AddToReleaseBanner({ documentId: string currentRelease: ReleaseDocument value?: Record<string, unknown> -}): JSX.Element { +}): React.JSX.Element { const tone = getReleaseTone(currentRelease ?? LATEST) const {t} = useTranslation(structureLocaleNamespace) const {t: tCore} = useTranslation() diff --git a/packages/sanity/src/structure/panes/document/documentPanel/banners/ArchivedReleaseDocumentBanner.tsx b/packages/sanity/src/structure/panes/document/documentPanel/banners/ArchivedReleaseDocumentBanner.tsx index 4bed1b3d870..a7f5e6cf85b 100644 --- a/packages/sanity/src/structure/panes/document/documentPanel/banners/ArchivedReleaseDocumentBanner.tsx +++ b/packages/sanity/src/structure/panes/document/documentPanel/banners/ArchivedReleaseDocumentBanner.tsx @@ -12,7 +12,7 @@ import {structureLocaleNamespace, usePaneRouter} from 'sanity/structure' import {Banner} from './Banner' -export function ArchivedReleaseDocumentBanner(): JSX.Element { +export function ArchivedReleaseDocumentBanner(): React.JSX.Element { const {t} = useTranslation(structureLocaleNamespace) const {archivedReleases} = useReleases() diff --git a/packages/sanity/src/structure/panes/document/documentPanel/banners/Banner.tsx b/packages/sanity/src/structure/panes/document/documentPanel/banners/Banner.tsx index b6f1a3d4ce0..bda4f183c8d 100644 --- a/packages/sanity/src/structure/panes/document/documentPanel/banners/Banner.tsx +++ b/packages/sanity/src/structure/panes/document/documentPanel/banners/Banner.tsx @@ -1,11 +1,11 @@ import {type ButtonMode, type ButtonTone, Card, type CardTone, Flex, Text} from '@sanity/ui' -import {type ComponentType, type ElementType, type JSX, type ReactNode} from 'react' +import {type ComponentType, type ElementType, type ReactNode} from 'react' import {Button} from '../../../../../ui-components' interface BannerProps { action?: { - as?: ElementType | keyof JSX.IntrinsicElements + as?: ElementType | keyof React.JSX.IntrinsicElements icon?: ComponentType onClick?: () => void text: string diff --git a/packages/sanity/src/structure/panes/document/documentPanel/banners/DraftLiveEditBanner.tsx b/packages/sanity/src/structure/panes/document/documentPanel/banners/DraftLiveEditBanner.tsx index d1d8dd40a11..ed44735edc6 100644 --- a/packages/sanity/src/structure/panes/document/documentPanel/banners/DraftLiveEditBanner.tsx +++ b/packages/sanity/src/structure/panes/document/documentPanel/banners/DraftLiveEditBanner.tsx @@ -27,7 +27,7 @@ export function DraftLiveEditBanner({ displayed, documentId, schemaType, -}: DraftLiveEditBannerProps): JSX.Element | null { +}: DraftLiveEditBannerProps): React.JSX.Element | null { const {t} = useTranslation(structureLocaleNamespace) const [isPublishing, setPublishing] = useState(false) const [isDiscarding, setDiscarding] = useState(false) diff --git a/packages/sanity/src/structure/panes/document/documentPanel/header/DocumentHeaderTitle.tsx b/packages/sanity/src/structure/panes/document/documentPanel/header/DocumentHeaderTitle.tsx index 39ce0019d34..9f2b6a05416 100644 --- a/packages/sanity/src/structure/panes/document/documentPanel/header/DocumentHeaderTitle.tsx +++ b/packages/sanity/src/structure/panes/document/documentPanel/header/DocumentHeaderTitle.tsx @@ -1,6 +1,5 @@ import {DocumentIcon} from '@sanity/icons' import {Flex, Text} from '@sanity/ui' -import {memo, type ReactElement} from 'react' import {unstable_useValuePreview as useValuePreview, useTranslation} from 'sanity' import {styled} from 'styled-components' @@ -12,11 +11,7 @@ const TitleContainer = styled(Text)` max-width: 100%; min-width: 0; ` - -export const DocumentHeaderTitle = memo(function DocumentHeaderTitle(props: { - collapsed?: boolean -}): ReactElement { - const {collapsed = false} = props +export function DocumentHeaderTitle({collapsed = false}: {collapsed?: boolean}): React.JSX.Element { const {connectionState, schemaType, title, value: documentValue} = useDocumentPane() const subscribed = Boolean(documentValue) @@ -77,4 +72,4 @@ export const DocumentHeaderTitle = memo(function DocumentHeaderTitle(props: { )} </Flex> ) -}) +} diff --git a/packages/sanity/src/structure/panes/document/documentPanel/header/DocumentPanelHeader.tsx b/packages/sanity/src/structure/panes/document/documentPanel/header/DocumentPanelHeader.tsx index ea360ff0d60..cb19ad8aae0 100644 --- a/packages/sanity/src/structure/panes/document/documentPanel/header/DocumentPanelHeader.tsx +++ b/packages/sanity/src/structure/panes/document/documentPanel/header/DocumentPanelHeader.tsx @@ -123,89 +123,113 @@ export const DocumentPanelHeader = memo( [contextMenuNodes, referenceElement], ) + const title = useMemo(() => <DocumentHeaderTitle />, []) + const tabs = useMemo(() => showTabs && <DocumentHeaderTabs />, [showTabs]) + const backButton = useMemo( + () => + showBackButton && ( + <Button + as={BackLink} + data-as="a" + icon={ArrowLeftIcon} + mode="bleed" + tooltipProps={{content: t('pane-header.back-button.text')}} + /> + ), + [BackLink, showBackButton, t], + ) + const renderedActions = useMemo( + () => ( + <Flex align="center" gap={1}> + {unstable_languageFilter.length > 0 && ( + <> + {unstable_languageFilter.map((LanguageFilterComponent, idx) => { + return ( + <LanguageFilterComponent + // eslint-disable-next-line react/no-array-index-key + key={`language-filter-${idx}`} + schemaType={schemaType} + /> + ) + })} + </> + )} + + {menuButtonNodes.map((item) => ( + <PaneHeaderActionButton key={item.key} node={item} /> + ))} + {editState && ( + <> + <RenderActionCollectionState + actions={actions} + actionProps={editState} + group="paneActions" + > + {renderPaneActions} + </RenderActionCollectionState> + </> + )} + + {showSplitPaneButton && ( + <Button + aria-label={t('buttons.split-pane-button.aria-label')} + icon={SplitVerticalIcon} + key="split-pane-button" + mode="bleed" + onClick={onPaneSplit} + tooltipProps={{content: t('buttons.split-pane-button.tooltip')}} + /> + )} + + {showSplitPaneCloseButton && ( + <Button + icon={CloseIcon} + key="close-view-button" + mode="bleed" + onClick={onPaneClose} + tooltipProps={{content: t('buttons.split-pane-close-button.title')}} + /> + )} + + {showPaneGroupCloseButton && ( + <Button + icon={CloseIcon} + key="close-view-button" + mode="bleed" + tooltipProps={{content: t('buttons.split-pane-close-group-button.title')}} + as={BackLink} + /> + )} + </Flex> + ), + [ + BackLink, + actions, + editState, + menuButtonNodes, + onPaneClose, + onPaneSplit, + renderPaneActions, + schemaType, + showPaneGroupCloseButton, + showSplitPaneButton, + showSplitPaneCloseButton, + t, + unstable_languageFilter, + ], + ) + return ( <TooltipDelayGroupProvider> <PaneHeader border ref={ref} loading={connectionState === 'connecting' && !editState?.draft && !editState?.published} - title={documentPaneHeaderTitle} - tabs={showTabs && <DocumentHeaderTabs />} + title={title} + tabs={tabs} tabIndex={tabIndex} - backButton={ - showBackButton && ( - <Button - as={BackLink} - data-as="a" - icon={ArrowLeftIcon} - mode="bleed" - tooltipProps={{content: t('pane-header.back-button.text')}} - /> - ) - } - actions={ - <Flex align="center" gap={1}> - {unstable_languageFilter.length > 0 && ( - <> - {unstable_languageFilter.map((LanguageFilterComponent, idx) => { - return ( - <LanguageFilterComponent - // eslint-disable-next-line react/no-array-index-key - key={`language-filter-${idx}`} - schemaType={schemaType} - /> - ) - })} - </> - )} - - {menuButtonNodes.map((item) => ( - <PaneHeaderActionButton key={item.key} node={item} /> - ))} - {editState && ( - <> - <RenderActionCollectionState - actions={actions} - actionProps={editState} - group="paneActions" - > - {renderPaneActions} - </RenderActionCollectionState> - </> - )} - - {showSplitPaneButton && ( - <Button - aria-label={t('buttons.split-pane-button.aria-label')} - icon={SplitVerticalIcon} - key="split-pane-button" - mode="bleed" - onClick={onPaneSplit} - tooltipProps={{content: t('buttons.split-pane-button.tooltip')}} - /> - )} - - {showSplitPaneCloseButton && ( - <Button - icon={CloseIcon} - key="close-view-button" - mode="bleed" - onClick={onPaneClose} - tooltipProps={{content: t('buttons.split-pane-close-button.title')}} - /> - )} - - {showPaneGroupCloseButton && ( - <Button - icon={CloseIcon} - key="close-view-button" - mode="bleed" - tooltipProps={{content: t('buttons.split-pane-close-group-button.title')}} - as={BackLink} - /> - )} - </Flex> - } + backButton={backButton} + actions={renderedActions} /> </TooltipDelayGroupProvider> ) diff --git a/packages/sanity/src/structure/panes/document/inspectors/changes/ChangesInspector.tsx b/packages/sanity/src/structure/panes/document/inspectors/changes/ChangesInspector.tsx index 8eb38d8c7d6..ccc4043fe20 100644 --- a/packages/sanity/src/structure/panes/document/inspectors/changes/ChangesInspector.tsx +++ b/packages/sanity/src/structure/panes/document/inspectors/changes/ChangesInspector.tsx @@ -1,6 +1,6 @@ import {type ObjectDiff} from '@sanity/diff' import {BoundaryElementProvider, Box, Card, Flex, Text} from '@sanity/ui' -import {type ReactElement, useMemo, useState} from 'react' +import {useMemo, useState} from 'react' import { ChangeFieldWrapper, ChangeList, @@ -35,7 +35,7 @@ const Grid = styled(Box)` gap: 0.25em; ` -export function ChangesInspector({showChanges}: {showChanges: boolean}): ReactElement { +export function ChangesInspector({showChanges}: {showChanges: boolean}): React.JSX.Element { const {documentId, schemaType, timelineError, timelineStore, value} = useDocumentPane() const [scrollRef, setScrollRef] = useState<HTMLDivElement | null>(null) diff --git a/packages/sanity/src/structure/panes/document/statusBar/DocumentStatusBar.tsx b/packages/sanity/src/structure/panes/document/statusBar/DocumentStatusBar.tsx index f3f94d416d5..d0f02da9e69 100644 --- a/packages/sanity/src/structure/panes/document/statusBar/DocumentStatusBar.tsx +++ b/packages/sanity/src/structure/panes/document/statusBar/DocumentStatusBar.tsx @@ -49,7 +49,7 @@ export function DocumentStatusBar(props: DocumentStatusBarProps) { const shouldRender = editState?.ready && typeof collapsed === 'boolean' - let actions: JSX.Element | null = null + let actions: React.JSX.Element | null = null if (createLinkMetadata && isSanityCreateLinked(createLinkMetadata) && CreateLinkedActions) { actions = ( <CreateLinkedActions diff --git a/packages/sanity/src/structure/panes/document/statusBar/RevisionStatusLine.tsx b/packages/sanity/src/structure/panes/document/statusBar/RevisionStatusLine.tsx index 18a586bbd05..84682b965f6 100644 --- a/packages/sanity/src/structure/panes/document/statusBar/RevisionStatusLine.tsx +++ b/packages/sanity/src/structure/panes/document/statusBar/RevisionStatusLine.tsx @@ -16,7 +16,7 @@ export const StatusText = styled(Text)` } ` -export function RevisionStatusLine(): JSX.Element { +export function RevisionStatusLine(): React.JSX.Element { const {displayed} = useDocumentPane() const {t} = useTranslation() const date = displayed?._updatedAt || displayed?._createdAt diff --git a/packages/sanity/src/structure/panes/documentList/sheetList/SheetListCell.tsx b/packages/sanity/src/structure/panes/documentList/sheetList/SheetListCell.tsx index 6db364f71ad..7c9fd9f4b34 100644 --- a/packages/sanity/src/structure/panes/documentList/sheetList/SheetListCell.tsx +++ b/packages/sanity/src/structure/panes/documentList/sheetList/SheetListCell.tsx @@ -157,7 +157,9 @@ export function SheetListCellInner(props: SheetListCellInnerProps) { 'aria-selected': !!cellState, 'data-testid': cellId, 'id': cellId, - 'ref': (ref: InputRef) => (inputRef.current = ref), + 'ref': (ref: InputRef) => { + inputRef.current = ref + }, } if (fieldType.name === 'boolean') { diff --git a/packages/sanity/src/structure/panes/userComponent/UserComponentPane.tsx b/packages/sanity/src/structure/panes/userComponent/UserComponentPane.tsx index 62cb29aa4bc..0b05469eb06 100644 --- a/packages/sanity/src/structure/panes/userComponent/UserComponentPane.tsx +++ b/packages/sanity/src/structure/panes/userComponent/UserComponentPane.tsx @@ -47,7 +47,6 @@ export function UserComponentPane(props: UserComponentPaneProps) { // NOTE: here we're utilizing the function form of refs so setting // the ref causes a re-render for `UserComponentPaneHeader` ref={setRef as any} - // @ts-expect-error - @TODO Fix typings child={child} paneKey={paneKey} /> diff --git a/packages/sanity/src/ui-components/errorBoundary/ErrorBoundary.tsx b/packages/sanity/src/ui-components/errorBoundary/ErrorBoundary.tsx index 09c0583f66f..ad95f625c3e 100644 --- a/packages/sanity/src/ui-components/errorBoundary/ErrorBoundary.tsx +++ b/packages/sanity/src/ui-components/errorBoundary/ErrorBoundary.tsx @@ -13,7 +13,7 @@ export type ErrorBoundaryProps = UIErrorBoundaryProps * ErrorBoundary component that catches errors and uses onUncaughtError config property * It also calls the onCatch prop if it exists. */ -export function ErrorBoundary({onCatch, ...rest}: ErrorBoundaryProps): JSX.Element { +export function ErrorBoundary({onCatch, ...rest}: ErrorBoundaryProps): React.JSX.Element { // Use context, because source could be undefined and we don't want to throw in that case const source = useContext(SourceContext) diff --git a/packages/sanity/src/ui-components/inputs/DateInputs/DateTimeInput.tsx b/packages/sanity/src/ui-components/inputs/DateInputs/DateTimeInput.tsx index ffbc0296514..1dd152e2b82 100644 --- a/packages/sanity/src/ui-components/inputs/DateInputs/DateTimeInput.tsx +++ b/packages/sanity/src/ui-components/inputs/DateInputs/DateTimeInput.tsx @@ -49,10 +49,10 @@ export const DateTimeInput = forwardRef(function DateTimeInput( selectTime, timeStep, calendarLabels, + readOnly, constrainSize = true, monthPickerVariant, padding, - disableInput, ...rest } = props const popoverRef = useRef<HTMLDivElement | null>(null) @@ -84,10 +84,10 @@ export const DateTimeInput = forwardRef(function DateTimeInput( const handleClick = useCallback(() => setPickerOpen(true), []) - const suffix = ( + const suffix = readOnly ? null : ( <Flex style={{padding: '5px'}}> <Button - disabled={rest.readOnly} + disabled={readOnly} aria-label={calendarLabels.ariaLabel} ref={buttonRef} icon={CalendarIcon} @@ -104,8 +104,8 @@ export const DateTimeInput = forwardRef(function DateTimeInput( <LazyTextInput ref={ref} {...rest} + readOnly={readOnly} value={inputValue} - readOnly={disableInput} onChange={onInputChange} suffix={ isPickerOpen ? ( @@ -137,7 +137,7 @@ export const DateTimeInput = forwardRef(function DateTimeInput( placement="bottom" ref={popoverRef} > - {suffix} + <>{suffix}</> </Popover> </LayerProvider> ) : ( diff --git a/packages/sanity/src/ui-components/menuGroup/MenuGroup.tsx b/packages/sanity/src/ui-components/menuGroup/MenuGroup.tsx index b1516f20b93..a9299afe823 100644 --- a/packages/sanity/src/ui-components/menuGroup/MenuGroup.tsx +++ b/packages/sanity/src/ui-components/menuGroup/MenuGroup.tsx @@ -11,7 +11,8 @@ export type MenuGroupProps = Pick<UIMenuGroupProps, 'icon' | 'popover' | 'text' * @internal */ export const MenuGroup = ( - props: MenuGroupProps & Omit<HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'tabIndex'>, + props: MenuGroupProps & + Omit<HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'tabIndex' | 'popover'>, ) => { return <UIMenuGroup {...props} fontSize={1} padding={3} /> } diff --git a/packages/sanity/src/ui-components/menuItem/MenuItem.tsx b/packages/sanity/src/ui-components/menuItem/MenuItem.tsx index 952ba655302..33e7e2cacfc 100644 --- a/packages/sanity/src/ui-components/menuItem/MenuItem.tsx +++ b/packages/sanity/src/ui-components/menuItem/MenuItem.tsx @@ -12,7 +12,6 @@ import { forwardRef, type HTMLProps, isValidElement, - type JSX, type ReactNode, type Ref, useCallback, @@ -53,7 +52,7 @@ export type MenuItemProps = Pick< /** * Optional render callback which receives menu item content. */ - renderMenuItem?: (menuItemContent: JSX.Element) => ReactNode + renderMenuItem?: (menuItemContent: React.JSX.Element) => ReactNode text?: string tooltipProps?: TooltipProps | null /** diff --git a/packages/sanity/test/cli/graphql/__snapshots__/extract.test.ts.snap b/packages/sanity/test/cli/graphql/__snapshots__/extract.test.ts.snap index 7a86f80d5f0..504f2fb7f3c 100644 --- a/packages/sanity/test/cli/graphql/__snapshots__/extract.test.ts.snap +++ b/packages/sanity/test/cli/graphql/__snapshots__/extract.test.ts.snap @@ -1,6 +1,6 @@ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html -exports[`GraphQL - Schema extraction > Should be able to extract schema 1`] = ` +exports[`GraphQL - Schema extraction > Should be able to extract a simple schema 1`] = ` { "interfaces": [ { @@ -1649,3 +1649,983 @@ exports[`GraphQL - Schema extraction > Should be able to extract schema 1`] = ` ], } `; + +exports[`GraphQL - Schema extraction > Should be able to extract schema with union refs 1`] = ` +{ + "interfaces": [ + { + "description": "A Sanity document", + "fields": [ + { + "description": "Date the document was created", + "fieldName": "_createdAt", + "isNullable": true, + "type": "Datetime", + }, + { + "description": "Document ID", + "fieldName": "_id", + "isNullable": true, + "type": "ID", + }, + { + "description": "Current document revision", + "fieldName": "_rev", + "isNullable": true, + "type": "String", + }, + { + "description": "Document type", + "fieldName": "_type", + "isNullable": true, + "type": "String", + }, + { + "description": "Date the document was last modified", + "fieldName": "_updatedAt", + "isNullable": true, + "type": "Datetime", + }, + ], + "kind": "Interface", + "name": "Document", + }, + ], + "types": [ + { + "description": undefined, + "fields": [ + { + "description": "Date the document was created", + "fieldName": "_createdAt", + "isNullable": true, + "type": "Datetime", + }, + { + "description": "Document ID", + "fieldName": "_id", + "isNullable": true, + "type": "ID", + }, + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": "Current document revision", + "fieldName": "_rev", + "isNullable": true, + "type": "String", + }, + { + "description": "Document type", + "fieldName": "_type", + "isNullable": true, + "type": "String", + }, + { + "description": "Date the document was last modified", + "fieldName": "_updatedAt", + "isNullable": true, + "type": "Datetime", + }, + { + "description": undefined, + "fieldName": "title", + "type": "String", + }, + ], + "interfaces": [ + "Document", + ], + "kind": "Type", + "name": "A", + "originalName": "a", + "type": "Object", + Symbol(internal): {}, + }, + { + "fields": [], + "interfaces": undefined, + "kind": "Union", + "name": "AOrB", + "types": [ + "A", + "B", + ], + }, + { + "fields": [], + "interfaces": undefined, + "kind": "Union", + "name": "AOrUnion", + "types": [ + "A", + "Union", + ], + }, + { + "description": undefined, + "fields": [ + { + "description": "Date the document was created", + "fieldName": "_createdAt", + "isNullable": true, + "type": "Datetime", + }, + { + "description": "Document ID", + "fieldName": "_id", + "isNullable": true, + "type": "ID", + }, + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": "Current document revision", + "fieldName": "_rev", + "isNullable": true, + "type": "String", + }, + { + "description": "Document type", + "fieldName": "_type", + "isNullable": true, + "type": "String", + }, + { + "description": "Date the document was last modified", + "fieldName": "_updatedAt", + "isNullable": true, + "type": "Datetime", + }, + { + "description": undefined, + "fieldName": "title", + "type": "String", + }, + ], + "interfaces": [ + "Document", + ], + "kind": "Type", + "name": "B", + "originalName": "b", + "type": "Object", + Symbol(internal): {}, + }, + { + "description": undefined, + "fields": [ + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_type", + "type": "String", + }, + { + "children": { + "type": "Span", + }, + "description": undefined, + "fieldName": "children", + "kind": "List", + }, + { + "description": undefined, + "fieldName": "level", + "type": "Float", + }, + { + "description": undefined, + "fieldName": "listItem", + "type": "String", + }, + { + "description": undefined, + "fieldName": "style", + "type": "String", + }, + ], + "kind": "Type", + "name": "Block", + "originalName": "block", + "type": "Object", + Symbol(internal): {}, + }, + { + "description": undefined, + "fields": [ + { + "description": undefined, + "fieldName": "_dataset", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_projectId", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_ref", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_type", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_weak", + "type": "Boolean", + }, + ], + "kind": "Type", + "name": "CrossDatasetReference", + "originalName": "crossDatasetReference", + "type": "Object", + Symbol(internal): {}, + }, + { + "description": undefined, + "fields": [ + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_type", + "type": "String", + }, + { + "description": undefined, + "fieldName": "asset", + "isReference": true, + "type": "SanityFileAsset", + }, + ], + "kind": "Type", + "name": "File", + "originalName": "file", + "type": "Object", + Symbol(internal): {}, + }, + { + "description": undefined, + "fields": [ + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_type", + "type": "String", + }, + { + "description": undefined, + "fieldName": "alt", + "type": "Float", + }, + { + "description": undefined, + "fieldName": "lat", + "type": "Float", + }, + { + "description": undefined, + "fieldName": "lng", + "type": "Float", + }, + ], + "kind": "Type", + "name": "Geopoint", + "originalName": "geopoint", + "type": "Object", + Symbol(internal): {}, + }, + { + "description": undefined, + "fields": [ + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_type", + "type": "String", + }, + { + "description": undefined, + "fieldName": "asset", + "isReference": true, + "type": "SanityImageAsset", + }, + { + "fieldName": "crop", + "type": "SanityImageCrop", + }, + { + "fieldName": "hotspot", + "type": "SanityImageHotspot", + }, + ], + "kind": "Type", + "name": "Image", + "originalName": "image", + "type": "Object", + Symbol(internal): {}, + }, + { + "description": undefined, + "fields": [ + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_type", + "type": "String", + }, + { + "description": "The unique ID for the asset within the originating source so you can programatically find back to it", + "fieldName": "id", + "type": "String", + }, + { + "description": "A canonical name for the source this asset is originating from", + "fieldName": "name", + "type": "String", + }, + { + "description": "A URL to find more information about this asset in the originating source", + "fieldName": "url", + "type": "String", + }, + ], + "kind": "Type", + "name": "SanityAssetSourceData", + "originalName": "sanity.assetSourceData", + "type": "Object", + Symbol(internal): {}, + }, + { + "description": undefined, + "fields": [ + { + "description": "Date the document was created", + "fieldName": "_createdAt", + "isNullable": true, + "type": "Datetime", + }, + { + "description": "Document ID", + "fieldName": "_id", + "isNullable": true, + "type": "ID", + }, + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": "Current document revision", + "fieldName": "_rev", + "isNullable": true, + "type": "String", + }, + { + "description": "Document type", + "fieldName": "_type", + "isNullable": true, + "type": "String", + }, + { + "description": "Date the document was last modified", + "fieldName": "_updatedAt", + "isNullable": true, + "type": "Datetime", + }, + { + "description": undefined, + "fieldName": "altText", + "type": "String", + }, + { + "description": undefined, + "fieldName": "assetId", + "type": "String", + }, + { + "description": undefined, + "fieldName": "description", + "type": "String", + }, + { + "description": undefined, + "fieldName": "extension", + "type": "String", + }, + { + "description": undefined, + "fieldName": "label", + "type": "String", + }, + { + "description": undefined, + "fieldName": "mimeType", + "type": "String", + }, + { + "description": undefined, + "fieldName": "originalFilename", + "type": "String", + }, + { + "description": undefined, + "fieldName": "path", + "type": "String", + }, + { + "description": undefined, + "fieldName": "sha1hash", + "type": "String", + }, + { + "description": undefined, + "fieldName": "size", + "type": "Float", + }, + { + "fieldName": "source", + "type": "SanityAssetSourceData", + }, + { + "description": undefined, + "fieldName": "title", + "type": "String", + }, + { + "description": undefined, + "fieldName": "url", + "type": "String", + }, + ], + "interfaces": [ + "Document", + ], + "kind": "Type", + "name": "SanityFileAsset", + "originalName": "sanity.fileAsset", + "type": "Object", + Symbol(internal): {}, + }, + { + "description": undefined, + "fields": [ + { + "description": "Date the document was created", + "fieldName": "_createdAt", + "isNullable": true, + "type": "Datetime", + }, + { + "description": "Document ID", + "fieldName": "_id", + "isNullable": true, + "type": "ID", + }, + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": "Current document revision", + "fieldName": "_rev", + "isNullable": true, + "type": "String", + }, + { + "description": "Document type", + "fieldName": "_type", + "isNullable": true, + "type": "String", + }, + { + "description": "Date the document was last modified", + "fieldName": "_updatedAt", + "isNullable": true, + "type": "Datetime", + }, + { + "description": undefined, + "fieldName": "altText", + "type": "String", + }, + { + "description": undefined, + "fieldName": "assetId", + "type": "String", + }, + { + "description": undefined, + "fieldName": "description", + "type": "String", + }, + { + "description": undefined, + "fieldName": "extension", + "type": "String", + }, + { + "description": undefined, + "fieldName": "label", + "type": "String", + }, + { + "fieldName": "metadata", + "type": "SanityImageMetadata", + }, + { + "description": undefined, + "fieldName": "mimeType", + "type": "String", + }, + { + "description": undefined, + "fieldName": "originalFilename", + "type": "String", + }, + { + "description": undefined, + "fieldName": "path", + "type": "String", + }, + { + "description": undefined, + "fieldName": "sha1hash", + "type": "String", + }, + { + "description": undefined, + "fieldName": "size", + "type": "Float", + }, + { + "fieldName": "source", + "type": "SanityAssetSourceData", + }, + { + "description": undefined, + "fieldName": "title", + "type": "String", + }, + { + "description": undefined, + "fieldName": "uploadId", + "type": "String", + }, + { + "description": undefined, + "fieldName": "url", + "type": "String", + }, + ], + "interfaces": [ + "Document", + ], + "kind": "Type", + "name": "SanityImageAsset", + "originalName": "sanity.imageAsset", + "type": "Object", + Symbol(internal): {}, + }, + { + "description": undefined, + "fields": [ + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_type", + "type": "String", + }, + { + "description": undefined, + "fieldName": "bottom", + "type": "Float", + }, + { + "description": undefined, + "fieldName": "left", + "type": "Float", + }, + { + "description": undefined, + "fieldName": "right", + "type": "Float", + }, + { + "description": undefined, + "fieldName": "top", + "type": "Float", + }, + ], + "kind": "Type", + "name": "SanityImageCrop", + "originalName": "sanity.imageCrop", + "type": "Object", + Symbol(internal): {}, + }, + { + "description": undefined, + "fields": [ + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_type", + "type": "String", + }, + { + "description": undefined, + "fieldName": "aspectRatio", + "type": "Float", + }, + { + "description": undefined, + "fieldName": "height", + "type": "Float", + }, + { + "description": undefined, + "fieldName": "width", + "type": "Float", + }, + ], + "kind": "Type", + "name": "SanityImageDimensions", + "originalName": "sanity.imageDimensions", + "type": "Object", + Symbol(internal): {}, + }, + { + "description": undefined, + "fields": [ + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_type", + "type": "String", + }, + { + "description": undefined, + "fieldName": "height", + "type": "Float", + }, + { + "description": undefined, + "fieldName": "width", + "type": "Float", + }, + { + "description": undefined, + "fieldName": "x", + "type": "Float", + }, + { + "description": undefined, + "fieldName": "y", + "type": "Float", + }, + ], + "kind": "Type", + "name": "SanityImageHotspot", + "originalName": "sanity.imageHotspot", + "type": "Object", + Symbol(internal): {}, + }, + { + "description": undefined, + "fields": [ + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_type", + "type": "String", + }, + { + "description": undefined, + "fieldName": "blurHash", + "type": "String", + }, + { + "fieldName": "dimensions", + "type": "SanityImageDimensions", + }, + { + "description": undefined, + "fieldName": "hasAlpha", + "type": "Boolean", + }, + { + "description": undefined, + "fieldName": "isOpaque", + "type": "Boolean", + }, + { + "fieldName": "location", + "type": "Geopoint", + }, + { + "description": undefined, + "fieldName": "lqip", + "type": "String", + }, + { + "fieldName": "palette", + "type": "SanityImagePalette", + }, + ], + "kind": "Type", + "name": "SanityImageMetadata", + "originalName": "sanity.imageMetadata", + "type": "Object", + Symbol(internal): {}, + }, + { + "description": undefined, + "fields": [ + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_type", + "type": "String", + }, + { + "fieldName": "darkMuted", + "type": "SanityImagePaletteSwatch", + }, + { + "fieldName": "darkVibrant", + "type": "SanityImagePaletteSwatch", + }, + { + "fieldName": "dominant", + "type": "SanityImagePaletteSwatch", + }, + { + "fieldName": "lightMuted", + "type": "SanityImagePaletteSwatch", + }, + { + "fieldName": "lightVibrant", + "type": "SanityImagePaletteSwatch", + }, + { + "fieldName": "muted", + "type": "SanityImagePaletteSwatch", + }, + { + "fieldName": "vibrant", + "type": "SanityImagePaletteSwatch", + }, + ], + "kind": "Type", + "name": "SanityImagePalette", + "originalName": "sanity.imagePalette", + "type": "Object", + Symbol(internal): {}, + }, + { + "description": undefined, + "fields": [ + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_type", + "type": "String", + }, + { + "description": undefined, + "fieldName": "background", + "type": "String", + }, + { + "description": undefined, + "fieldName": "foreground", + "type": "String", + }, + { + "description": undefined, + "fieldName": "population", + "type": "Float", + }, + { + "description": undefined, + "fieldName": "title", + "type": "String", + }, + ], + "kind": "Type", + "name": "SanityImagePaletteSwatch", + "originalName": "sanity.imagePaletteSwatch", + "type": "Object", + Symbol(internal): {}, + }, + { + "description": undefined, + "fields": [ + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_type", + "type": "String", + }, + { + "children": { + "type": "String", + }, + "description": undefined, + "fieldName": "marks", + "kind": "List", + }, + { + "description": undefined, + "fieldName": "text", + "type": "String", + }, + ], + "kind": "Type", + "name": "Span", + "originalName": "span", + "type": "Object", + Symbol(internal): {}, + }, + { + "children": { + "description": undefined, + "isReference": true, + "references": undefined, + "type": "AOrUnion", + }, + "description": undefined, + "fields": [], + "kind": "List", + "name": "Title", + "originalName": "title", + }, + { + "description": undefined, + "fields": [ + { + "description": "Date the document was created", + "fieldName": "_createdAt", + "isNullable": true, + "type": "Datetime", + }, + { + "description": "Document ID", + "fieldName": "_id", + "isNullable": true, + "type": "ID", + }, + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": "Current document revision", + "fieldName": "_rev", + "isNullable": true, + "type": "String", + }, + { + "description": "Document type", + "fieldName": "_type", + "isNullable": true, + "type": "String", + }, + { + "description": "Date the document was last modified", + "fieldName": "_updatedAt", + "isNullable": true, + "type": "Datetime", + }, + { + "children": { + "inlineObjects": undefined, + "references": [ + "A", + "B", + ], + "type": "AOrB", + }, + "description": undefined, + "fieldName": "body", + "kind": "List", + }, + ], + "interfaces": [ + "Document", + ], + "kind": "Type", + "name": "Union", + "originalName": "union", + "type": "Object", + Symbol(internal): {}, + }, + ], +} +`; diff --git a/packages/sanity/test/cli/graphql/__snapshots__/gen3.test.ts.snap b/packages/sanity/test/cli/graphql/__snapshots__/gen3.test.ts.snap index 62aa26df54e..191a887cd0c 100644 --- a/packages/sanity/test/cli/graphql/__snapshots__/gen3.test.ts.snap +++ b/packages/sanity/test/cli/graphql/__snapshots__/gen3.test.ts.snap @@ -39693,3 +39693,6147 @@ exports[`GraphQL - Generation 3 > Union cache: sanitySchema: 'testStudioSchema' ], } `; + +exports[`GraphQL - Generation 3 > Union cache: sanitySchema: 'unionRefsSchema' > Should be able to generate graphql schema, withUnionCache: %p false 1`] = ` +{ + "generation": "gen3", + "interfaces": [ + { + "description": "A Sanity document", + "fields": [ + { + "description": "Date the document was created", + "fieldName": "_createdAt", + "isNullable": true, + "type": "Datetime", + }, + { + "description": "Document ID", + "fieldName": "_id", + "isNullable": true, + "type": "ID", + }, + { + "description": "Current document revision", + "fieldName": "_rev", + "isNullable": true, + "type": "String", + }, + { + "description": "Document type", + "fieldName": "_type", + "isNullable": true, + "type": "String", + }, + { + "description": "Date the document was last modified", + "fieldName": "_updatedAt", + "isNullable": true, + "type": "Datetime", + }, + ], + "kind": "Interface", + "name": "Document", + }, + ], + "queries": [ + { + "args": [ + { + "description": "A document ID", + "isNullable": false, + "name": "id", + "type": "ID", + }, + ], + "constraints": [ + { + "comparator": "eq", + "field": "_id", + "value": { + "argName": "id", + "kind": "argumentValue", + }, + }, + ], + "fieldName": "A", + "type": "A", + }, + { + "args": [ + { + "description": "B document ID", + "isNullable": false, + "name": "id", + "type": "ID", + }, + ], + "constraints": [ + { + "comparator": "eq", + "field": "_id", + "value": { + "argName": "id", + "kind": "argumentValue", + }, + }, + ], + "fieldName": "B", + "type": "B", + }, + { + "args": [ + { + "description": "Document document ID", + "isNullable": false, + "name": "id", + "type": "ID", + }, + ], + "constraints": [ + { + "comparator": "eq", + "field": "_id", + "value": { + "argName": "id", + "kind": "argumentValue", + }, + }, + ], + "fieldName": "Document", + "type": "Document", + }, + { + "args": [ + { + "description": "SanityFileAsset document ID", + "isNullable": false, + "name": "id", + "type": "ID", + }, + ], + "constraints": [ + { + "comparator": "eq", + "field": "_id", + "value": { + "argName": "id", + "kind": "argumentValue", + }, + }, + ], + "fieldName": "SanityFileAsset", + "type": "SanityFileAsset", + }, + { + "args": [ + { + "description": "SanityImageAsset document ID", + "isNullable": false, + "name": "id", + "type": "ID", + }, + ], + "constraints": [ + { + "comparator": "eq", + "field": "_id", + "value": { + "argName": "id", + "kind": "argumentValue", + }, + }, + ], + "fieldName": "SanityImageAsset", + "type": "SanityImageAsset", + }, + { + "args": [ + { + "description": "Union document ID", + "isNullable": false, + "name": "id", + "type": "ID", + }, + ], + "constraints": [ + { + "comparator": "eq", + "field": "_id", + "value": { + "argName": "id", + "kind": "argumentValue", + }, + }, + ], + "fieldName": "Union", + "type": "Union", + }, + { + "args": [ + { + "description": "Max documents to return", + "isFieldFilter": false, + "name": "limit", + "type": "Int", + }, + { + "description": "Offset at which to start returning documents from", + "isFieldFilter": false, + "name": "offset", + "type": "Int", + }, + { + "name": "sort", + "type": { + "children": { + "isNullable": false, + "type": "ASorting", + }, + "isNullable": true, + "kind": "List", + }, + }, + { + "isFieldFilter": true, + "name": "where", + "type": "AFilter", + }, + ], + "fieldName": "allA", + "filter": "_type == "a"", + "type": { + "children": { + "isNullable": false, + "type": "A", + }, + "isNullable": false, + "kind": "List", + }, + }, + { + "args": [ + { + "description": "Max documents to return", + "isFieldFilter": false, + "name": "limit", + "type": "Int", + }, + { + "description": "Offset at which to start returning documents from", + "isFieldFilter": false, + "name": "offset", + "type": "Int", + }, + { + "name": "sort", + "type": { + "children": { + "isNullable": false, + "type": "BSorting", + }, + "isNullable": true, + "kind": "List", + }, + }, + { + "isFieldFilter": true, + "name": "where", + "type": "BFilter", + }, + ], + "fieldName": "allB", + "filter": "_type == "b"", + "type": { + "children": { + "isNullable": false, + "type": "B", + }, + "isNullable": false, + "kind": "List", + }, + }, + { + "args": [ + { + "description": "Max documents to return", + "isFieldFilter": false, + "name": "limit", + "type": "Int", + }, + { + "description": "Offset at which to start returning documents from", + "isFieldFilter": false, + "name": "offset", + "type": "Int", + }, + { + "name": "sort", + "type": { + "children": { + "isNullable": false, + "type": "DocumentSorting", + }, + "isNullable": true, + "kind": "List", + }, + }, + { + "isFieldFilter": true, + "name": "where", + "type": "DocumentFilter", + }, + ], + "fieldName": "allDocument", + "filter": "_type in ["union", "a", "b", "sanity.fileAsset", "sanity.imageAsset"]", + "type": { + "children": { + "isNullable": false, + "type": "Document", + }, + "isNullable": false, + "kind": "List", + }, + }, + { + "args": [ + { + "description": "Max documents to return", + "isFieldFilter": false, + "name": "limit", + "type": "Int", + }, + { + "description": "Offset at which to start returning documents from", + "isFieldFilter": false, + "name": "offset", + "type": "Int", + }, + { + "name": "sort", + "type": { + "children": { + "isNullable": false, + "type": "SanityFileAssetSorting", + }, + "isNullable": true, + "kind": "List", + }, + }, + { + "isFieldFilter": true, + "name": "where", + "type": "SanityFileAssetFilter", + }, + ], + "fieldName": "allSanityFileAsset", + "filter": "_type == "sanity.fileAsset"", + "type": { + "children": { + "isNullable": false, + "type": "SanityFileAsset", + }, + "isNullable": false, + "kind": "List", + }, + }, + { + "args": [ + { + "description": "Max documents to return", + "isFieldFilter": false, + "name": "limit", + "type": "Int", + }, + { + "description": "Offset at which to start returning documents from", + "isFieldFilter": false, + "name": "offset", + "type": "Int", + }, + { + "name": "sort", + "type": { + "children": { + "isNullable": false, + "type": "SanityImageAssetSorting", + }, + "isNullable": true, + "kind": "List", + }, + }, + { + "isFieldFilter": true, + "name": "where", + "type": "SanityImageAssetFilter", + }, + ], + "fieldName": "allSanityImageAsset", + "filter": "_type == "sanity.imageAsset"", + "type": { + "children": { + "isNullable": false, + "type": "SanityImageAsset", + }, + "isNullable": false, + "kind": "List", + }, + }, + { + "args": [ + { + "description": "Max documents to return", + "isFieldFilter": false, + "name": "limit", + "type": "Int", + }, + { + "description": "Offset at which to start returning documents from", + "isFieldFilter": false, + "name": "offset", + "type": "Int", + }, + { + "name": "sort", + "type": { + "children": { + "isNullable": false, + "type": "UnionSorting", + }, + "isNullable": true, + "kind": "List", + }, + }, + { + "isFieldFilter": true, + "name": "where", + "type": "UnionFilter", + }, + ], + "fieldName": "allUnion", + "filter": "_type == "union"", + "type": { + "children": { + "isNullable": false, + "type": "Union", + }, + "isNullable": false, + "kind": "List", + }, + }, + ], + "types": [ + { + "description": undefined, + "fields": [ + { + "description": "Date the document was created", + "fieldName": "_createdAt", + "isNullable": true, + "type": "Datetime", + }, + { + "description": "Document ID", + "fieldName": "_id", + "isNullable": true, + "type": "ID", + }, + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": "Current document revision", + "fieldName": "_rev", + "isNullable": true, + "type": "String", + }, + { + "description": "Document type", + "fieldName": "_type", + "isNullable": true, + "type": "String", + }, + { + "description": "Date the document was last modified", + "fieldName": "_updatedAt", + "isNullable": true, + "type": "Datetime", + }, + { + "description": undefined, + "fieldName": "title", + "type": "String", + }, + ], + "interfaces": [ + "Document", + ], + "kind": "Type", + "name": "A", + "originalName": "a", + "type": "Object", + Symbol(internal): {}, + }, + { + "fields": [ + { + "description": "Apply filters on document level", + "fieldName": "_", + "type": "Sanity_DocumentFilter", + }, + { + "fieldName": "_createdAt", + "isReference": undefined, + "type": "DatetimeFilter", + }, + { + "fieldName": "_id", + "isReference": undefined, + "type": "IDFilter", + }, + { + "fieldName": "_key", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_rev", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_type", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_updatedAt", + "isReference": undefined, + "type": "DatetimeFilter", + }, + { + "fieldName": "title", + "isReference": undefined, + "type": "StringFilter", + }, + ], + "kind": "InputObject", + "name": "AFilter", + }, + { + "fields": [], + "interfaces": undefined, + "kind": "Union", + "name": "AOrB", + "types": [ + "A", + "B", + ], + }, + { + "fields": [], + "interfaces": undefined, + "kind": "Union", + "name": "AOrUnion", + "types": [ + "A", + "Union", + ], + }, + { + "fields": [ + { + "fieldName": "_createdAt", + "type": "SortOrder", + }, + { + "fieldName": "_id", + "type": "SortOrder", + }, + { + "fieldName": "_key", + "type": "SortOrder", + }, + { + "fieldName": "_rev", + "type": "SortOrder", + }, + { + "fieldName": "_type", + "type": "SortOrder", + }, + { + "fieldName": "_updatedAt", + "type": "SortOrder", + }, + { + "fieldName": "title", + "type": "SortOrder", + }, + ], + "kind": "InputObject", + "name": "ASorting", + }, + { + "description": undefined, + "fields": [ + { + "description": "Date the document was created", + "fieldName": "_createdAt", + "isNullable": true, + "type": "Datetime", + }, + { + "description": "Document ID", + "fieldName": "_id", + "isNullable": true, + "type": "ID", + }, + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": "Current document revision", + "fieldName": "_rev", + "isNullable": true, + "type": "String", + }, + { + "description": "Document type", + "fieldName": "_type", + "isNullable": true, + "type": "String", + }, + { + "description": "Date the document was last modified", + "fieldName": "_updatedAt", + "isNullable": true, + "type": "Datetime", + }, + { + "description": undefined, + "fieldName": "title", + "type": "String", + }, + ], + "interfaces": [ + "Document", + ], + "kind": "Type", + "name": "B", + "originalName": "b", + "type": "Object", + Symbol(internal): {}, + }, + { + "fields": [ + { + "description": "Apply filters on document level", + "fieldName": "_", + "type": "Sanity_DocumentFilter", + }, + { + "fieldName": "_createdAt", + "isReference": undefined, + "type": "DatetimeFilter", + }, + { + "fieldName": "_id", + "isReference": undefined, + "type": "IDFilter", + }, + { + "fieldName": "_key", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_rev", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_type", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_updatedAt", + "isReference": undefined, + "type": "DatetimeFilter", + }, + { + "fieldName": "title", + "isReference": undefined, + "type": "StringFilter", + }, + ], + "kind": "InputObject", + "name": "BFilter", + }, + { + "fields": [ + { + "fieldName": "_createdAt", + "type": "SortOrder", + }, + { + "fieldName": "_id", + "type": "SortOrder", + }, + { + "fieldName": "_key", + "type": "SortOrder", + }, + { + "fieldName": "_rev", + "type": "SortOrder", + }, + { + "fieldName": "_type", + "type": "SortOrder", + }, + { + "fieldName": "_updatedAt", + "type": "SortOrder", + }, + { + "fieldName": "title", + "type": "SortOrder", + }, + ], + "kind": "InputObject", + "name": "BSorting", + }, + { + "description": undefined, + "fields": [ + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_type", + "type": "String", + }, + { + "children": { + "type": "Span", + }, + "description": undefined, + "fieldName": "children", + "kind": "List", + }, + { + "description": undefined, + "fieldName": "level", + "type": "Float", + }, + { + "description": undefined, + "fieldName": "listItem", + "type": "String", + }, + { + "description": undefined, + "fieldName": "style", + "type": "String", + }, + ], + "kind": "Type", + "name": "Block", + "originalName": "block", + "type": "Object", + Symbol(internal): {}, + }, + { + "fields": [ + { + "description": "Checks if the value is equal to the given input.", + "fieldName": "eq", + "type": "Boolean", + }, + { + "description": "Checks if the value is defined.", + "fieldName": "is_defined", + "type": "Boolean", + }, + { + "description": "Checks if the value is not equal to the given input.", + "fieldName": "neq", + "type": "Boolean", + }, + ], + "isConstraintFilter": true, + "kind": "InputObject", + "name": "BooleanFilter", + }, + { + "description": undefined, + "fields": [ + { + "description": undefined, + "fieldName": "_dataset", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_projectId", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_ref", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_type", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_weak", + "type": "Boolean", + }, + ], + "kind": "Type", + "name": "CrossDatasetReference", + "originalName": "crossDatasetReference", + "type": "Object", + Symbol(internal): {}, + }, + { + "fields": [ + { + "fieldName": "_dataset", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_key", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_projectId", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_ref", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_type", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_weak", + "isReference": undefined, + "type": "BooleanFilter", + }, + ], + "kind": "InputObject", + "name": "CrossDatasetReferenceFilter", + }, + { + "fields": [ + { + "fieldName": "_dataset", + "type": "SortOrder", + }, + { + "fieldName": "_key", + "type": "SortOrder", + }, + { + "fieldName": "_projectId", + "type": "SortOrder", + }, + { + "fieldName": "_ref", + "type": "SortOrder", + }, + { + "fieldName": "_type", + "type": "SortOrder", + }, + { + "fieldName": "_weak", + "type": "SortOrder", + }, + ], + "kind": "InputObject", + "name": "CrossDatasetReferenceSorting", + }, + { + "fields": [ + { + "description": "Checks if the value is equal to the given input.", + "fieldName": "eq", + "type": "Date", + }, + { + "description": "Checks if the value is greater than the given input.", + "fieldName": "gt", + "type": "Date", + }, + { + "description": "Checks if the value is greater than or equal to the given input.", + "fieldName": "gte", + "type": "Date", + }, + { + "description": "Checks if the value is defined.", + "fieldName": "is_defined", + "type": "Boolean", + }, + { + "description": "Checks if the value is lesser than the given input.", + "fieldName": "lt", + "type": "Date", + }, + { + "description": "Checks if the value is lesser than or equal to the given input.", + "fieldName": "lte", + "type": "Date", + }, + { + "description": "Checks if the value is not equal to the given input.", + "fieldName": "neq", + "type": "Date", + }, + ], + "isConstraintFilter": true, + "kind": "InputObject", + "name": "DateFilter", + }, + { + "fields": [ + { + "description": "Checks if the value is equal to the given input.", + "fieldName": "eq", + "type": "Datetime", + }, + { + "description": "Checks if the value is greater than the given input.", + "fieldName": "gt", + "type": "Datetime", + }, + { + "description": "Checks if the value is greater than or equal to the given input.", + "fieldName": "gte", + "type": "Datetime", + }, + { + "description": "Checks if the value is defined.", + "fieldName": "is_defined", + "type": "Boolean", + }, + { + "description": "Checks if the value is lesser than the given input.", + "fieldName": "lt", + "type": "Datetime", + }, + { + "description": "Checks if the value is lesser than or equal to the given input.", + "fieldName": "lte", + "type": "Datetime", + }, + { + "description": "Checks if the value is not equal to the given input.", + "fieldName": "neq", + "type": "Datetime", + }, + ], + "isConstraintFilter": true, + "kind": "InputObject", + "name": "DatetimeFilter", + }, + { + "fields": [ + { + "description": "Apply filters on document level", + "fieldName": "_", + "type": "Sanity_DocumentFilter", + }, + { + "fieldName": "_createdAt", + "isReference": undefined, + "type": "DatetimeFilter", + }, + { + "fieldName": "_id", + "isReference": undefined, + "type": "IDFilter", + }, + { + "fieldName": "_rev", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_type", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_updatedAt", + "isReference": undefined, + "type": "DatetimeFilter", + }, + ], + "kind": "InputObject", + "name": "DocumentFilter", + }, + { + "fields": [ + { + "fieldName": "_createdAt", + "type": "SortOrder", + }, + { + "fieldName": "_id", + "type": "SortOrder", + }, + { + "fieldName": "_rev", + "type": "SortOrder", + }, + { + "fieldName": "_type", + "type": "SortOrder", + }, + { + "fieldName": "_updatedAt", + "type": "SortOrder", + }, + ], + "kind": "InputObject", + "name": "DocumentSorting", + }, + { + "description": undefined, + "fields": [ + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_type", + "type": "String", + }, + { + "description": undefined, + "fieldName": "asset", + "isReference": true, + "type": "SanityFileAsset", + }, + ], + "kind": "Type", + "name": "File", + "originalName": "file", + "type": "Object", + Symbol(internal): {}, + }, + { + "fields": [ + { + "fieldName": "_key", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_type", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "asset", + "isReference": true, + "type": "SanityFileAssetFilter", + }, + ], + "kind": "InputObject", + "name": "FileFilter", + }, + { + "fields": [ + { + "fieldName": "_key", + "type": "SortOrder", + }, + { + "fieldName": "_type", + "type": "SortOrder", + }, + ], + "kind": "InputObject", + "name": "FileSorting", + }, + { + "fields": [ + { + "description": "Checks if the value is equal to the given input.", + "fieldName": "eq", + "type": "Float", + }, + { + "description": "Checks if the value is greater than the given input.", + "fieldName": "gt", + "type": "Float", + }, + { + "description": "Checks if the value is greater than or equal to the given input.", + "fieldName": "gte", + "type": "Float", + }, + { + "description": "Checks if the value is defined.", + "fieldName": "is_defined", + "type": "Boolean", + }, + { + "description": "Checks if the value is lesser than the given input.", + "fieldName": "lt", + "type": "Float", + }, + { + "description": "Checks if the value is lesser than or equal to the given input.", + "fieldName": "lte", + "type": "Float", + }, + { + "description": "Checks if the value is not equal to the given input.", + "fieldName": "neq", + "type": "Float", + }, + ], + "isConstraintFilter": true, + "kind": "InputObject", + "name": "FloatFilter", + }, + { + "description": undefined, + "fields": [ + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_type", + "type": "String", + }, + { + "description": undefined, + "fieldName": "alt", + "type": "Float", + }, + { + "description": undefined, + "fieldName": "lat", + "type": "Float", + }, + { + "description": undefined, + "fieldName": "lng", + "type": "Float", + }, + ], + "kind": "Type", + "name": "Geopoint", + "originalName": "geopoint", + "type": "Object", + Symbol(internal): {}, + }, + { + "fields": [ + { + "fieldName": "_key", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_type", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "alt", + "isReference": undefined, + "type": "FloatFilter", + }, + { + "fieldName": "lat", + "isReference": undefined, + "type": "FloatFilter", + }, + { + "fieldName": "lng", + "isReference": undefined, + "type": "FloatFilter", + }, + ], + "kind": "InputObject", + "name": "GeopointFilter", + }, + { + "fields": [ + { + "fieldName": "_key", + "type": "SortOrder", + }, + { + "fieldName": "_type", + "type": "SortOrder", + }, + { + "fieldName": "alt", + "type": "SortOrder", + }, + { + "fieldName": "lat", + "type": "SortOrder", + }, + { + "fieldName": "lng", + "type": "SortOrder", + }, + ], + "kind": "InputObject", + "name": "GeopointSorting", + }, + { + "fields": [ + { + "description": "Checks if the value is equal to the given input.", + "fieldName": "eq", + "type": "ID", + }, + { + "children": { + "isNullable": false, + "type": "ID", + }, + "description": "Checks if the value is equal to one of the given values.", + "fieldName": "in", + "kind": "List", + }, + { + "description": "Checks if the value matches the given word/words.", + "fieldName": "matches", + "type": "ID", + }, + { + "description": "Checks if the value is not equal to the given input.", + "fieldName": "neq", + "type": "ID", + }, + { + "children": { + "isNullable": false, + "type": "ID", + }, + "description": "Checks if the value is not equal to one of the given values.", + "fieldName": "nin", + "kind": "List", + }, + ], + "isConstraintFilter": true, + "kind": "InputObject", + "name": "IDFilter", + }, + { + "description": undefined, + "fields": [ + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_type", + "type": "String", + }, + { + "description": undefined, + "fieldName": "asset", + "isReference": true, + "type": "SanityImageAsset", + }, + { + "fieldName": "crop", + "type": "SanityImageCrop", + }, + { + "fieldName": "hotspot", + "type": "SanityImageHotspot", + }, + ], + "kind": "Type", + "name": "Image", + "originalName": "image", + "type": "Object", + Symbol(internal): {}, + }, + { + "fields": [ + { + "fieldName": "_key", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_type", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "asset", + "isReference": true, + "type": "SanityImageAssetFilter", + }, + { + "fieldName": "crop", + "isReference": undefined, + "type": "SanityImageCropFilter", + }, + { + "fieldName": "hotspot", + "isReference": undefined, + "type": "SanityImageHotspotFilter", + }, + ], + "kind": "InputObject", + "name": "ImageFilter", + }, + { + "fields": [ + { + "fieldName": "_key", + "type": "SortOrder", + }, + { + "fieldName": "_type", + "type": "SortOrder", + }, + { + "fieldName": "crop", + "type": "SanityImageCropSorting", + }, + { + "fieldName": "hotspot", + "type": "SanityImageHotspotSorting", + }, + ], + "kind": "InputObject", + "name": "ImageSorting", + }, + { + "fields": [ + { + "description": "Checks if the value is equal to the given input.", + "fieldName": "eq", + "type": "Int", + }, + { + "description": "Checks if the value is greater than the given input.", + "fieldName": "gt", + "type": "Int", + }, + { + "description": "Checks if the value is greater than or equal to the given input.", + "fieldName": "gte", + "type": "Int", + }, + { + "description": "Checks if the value is defined.", + "fieldName": "is_defined", + "type": "Boolean", + }, + { + "description": "Checks if the value is lesser than the given input.", + "fieldName": "lt", + "type": "Int", + }, + { + "description": "Checks if the value is lesser than or equal to the given input.", + "fieldName": "lte", + "type": "Int", + }, + { + "description": "Checks if the value is not equal to the given input.", + "fieldName": "neq", + "type": "Int", + }, + ], + "isConstraintFilter": true, + "kind": "InputObject", + "name": "IntFilter", + }, + { + "description": undefined, + "fields": [ + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_type", + "type": "String", + }, + { + "description": "The unique ID for the asset within the originating source so you can programatically find back to it", + "fieldName": "id", + "type": "String", + }, + { + "description": "A canonical name for the source this asset is originating from", + "fieldName": "name", + "type": "String", + }, + { + "description": "A URL to find more information about this asset in the originating source", + "fieldName": "url", + "type": "String", + }, + ], + "kind": "Type", + "name": "SanityAssetSourceData", + "originalName": "sanity.assetSourceData", + "type": "Object", + Symbol(internal): {}, + }, + { + "fields": [ + { + "fieldName": "_key", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_type", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "id", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "name", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "url", + "isReference": undefined, + "type": "StringFilter", + }, + ], + "kind": "InputObject", + "name": "SanityAssetSourceDataFilter", + }, + { + "fields": [ + { + "fieldName": "_key", + "type": "SortOrder", + }, + { + "fieldName": "_type", + "type": "SortOrder", + }, + { + "fieldName": "id", + "type": "SortOrder", + }, + { + "fieldName": "name", + "type": "SortOrder", + }, + { + "fieldName": "url", + "type": "SortOrder", + }, + ], + "kind": "InputObject", + "name": "SanityAssetSourceDataSorting", + }, + { + "description": undefined, + "fields": [ + { + "description": "Date the document was created", + "fieldName": "_createdAt", + "isNullable": true, + "type": "Datetime", + }, + { + "description": "Document ID", + "fieldName": "_id", + "isNullable": true, + "type": "ID", + }, + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": "Current document revision", + "fieldName": "_rev", + "isNullable": true, + "type": "String", + }, + { + "description": "Document type", + "fieldName": "_type", + "isNullable": true, + "type": "String", + }, + { + "description": "Date the document was last modified", + "fieldName": "_updatedAt", + "isNullable": true, + "type": "Datetime", + }, + { + "description": undefined, + "fieldName": "altText", + "type": "String", + }, + { + "description": undefined, + "fieldName": "assetId", + "type": "String", + }, + { + "description": undefined, + "fieldName": "description", + "type": "String", + }, + { + "description": undefined, + "fieldName": "extension", + "type": "String", + }, + { + "description": undefined, + "fieldName": "label", + "type": "String", + }, + { + "description": undefined, + "fieldName": "mimeType", + "type": "String", + }, + { + "description": undefined, + "fieldName": "originalFilename", + "type": "String", + }, + { + "description": undefined, + "fieldName": "path", + "type": "String", + }, + { + "description": undefined, + "fieldName": "sha1hash", + "type": "String", + }, + { + "description": undefined, + "fieldName": "size", + "type": "Float", + }, + { + "fieldName": "source", + "type": "SanityAssetSourceData", + }, + { + "description": undefined, + "fieldName": "title", + "type": "String", + }, + { + "description": undefined, + "fieldName": "url", + "type": "String", + }, + ], + "interfaces": [ + "Document", + ], + "kind": "Type", + "name": "SanityFileAsset", + "originalName": "sanity.fileAsset", + "type": "Object", + Symbol(internal): {}, + }, + { + "fields": [ + { + "description": "Apply filters on document level", + "fieldName": "_", + "type": "Sanity_DocumentFilter", + }, + { + "fieldName": "_createdAt", + "isReference": undefined, + "type": "DatetimeFilter", + }, + { + "fieldName": "_id", + "isReference": undefined, + "type": "IDFilter", + }, + { + "fieldName": "_key", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_rev", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_type", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_updatedAt", + "isReference": undefined, + "type": "DatetimeFilter", + }, + { + "fieldName": "altText", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "assetId", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "description", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "extension", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "label", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "mimeType", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "originalFilename", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "path", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "sha1hash", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "size", + "isReference": undefined, + "type": "FloatFilter", + }, + { + "fieldName": "source", + "isReference": undefined, + "type": "SanityAssetSourceDataFilter", + }, + { + "fieldName": "title", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "url", + "isReference": undefined, + "type": "StringFilter", + }, + ], + "kind": "InputObject", + "name": "SanityFileAssetFilter", + }, + { + "fields": [ + { + "fieldName": "_createdAt", + "type": "SortOrder", + }, + { + "fieldName": "_id", + "type": "SortOrder", + }, + { + "fieldName": "_key", + "type": "SortOrder", + }, + { + "fieldName": "_rev", + "type": "SortOrder", + }, + { + "fieldName": "_type", + "type": "SortOrder", + }, + { + "fieldName": "_updatedAt", + "type": "SortOrder", + }, + { + "fieldName": "altText", + "type": "SortOrder", + }, + { + "fieldName": "assetId", + "type": "SortOrder", + }, + { + "fieldName": "description", + "type": "SortOrder", + }, + { + "fieldName": "extension", + "type": "SortOrder", + }, + { + "fieldName": "label", + "type": "SortOrder", + }, + { + "fieldName": "mimeType", + "type": "SortOrder", + }, + { + "fieldName": "originalFilename", + "type": "SortOrder", + }, + { + "fieldName": "path", + "type": "SortOrder", + }, + { + "fieldName": "sha1hash", + "type": "SortOrder", + }, + { + "fieldName": "size", + "type": "SortOrder", + }, + { + "fieldName": "source", + "type": "SanityAssetSourceDataSorting", + }, + { + "fieldName": "title", + "type": "SortOrder", + }, + { + "fieldName": "url", + "type": "SortOrder", + }, + ], + "kind": "InputObject", + "name": "SanityFileAssetSorting", + }, + { + "description": undefined, + "fields": [ + { + "description": "Date the document was created", + "fieldName": "_createdAt", + "isNullable": true, + "type": "Datetime", + }, + { + "description": "Document ID", + "fieldName": "_id", + "isNullable": true, + "type": "ID", + }, + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": "Current document revision", + "fieldName": "_rev", + "isNullable": true, + "type": "String", + }, + { + "description": "Document type", + "fieldName": "_type", + "isNullable": true, + "type": "String", + }, + { + "description": "Date the document was last modified", + "fieldName": "_updatedAt", + "isNullable": true, + "type": "Datetime", + }, + { + "description": undefined, + "fieldName": "altText", + "type": "String", + }, + { + "description": undefined, + "fieldName": "assetId", + "type": "String", + }, + { + "description": undefined, + "fieldName": "description", + "type": "String", + }, + { + "description": undefined, + "fieldName": "extension", + "type": "String", + }, + { + "description": undefined, + "fieldName": "label", + "type": "String", + }, + { + "fieldName": "metadata", + "type": "SanityImageMetadata", + }, + { + "description": undefined, + "fieldName": "mimeType", + "type": "String", + }, + { + "description": undefined, + "fieldName": "originalFilename", + "type": "String", + }, + { + "description": undefined, + "fieldName": "path", + "type": "String", + }, + { + "description": undefined, + "fieldName": "sha1hash", + "type": "String", + }, + { + "description": undefined, + "fieldName": "size", + "type": "Float", + }, + { + "fieldName": "source", + "type": "SanityAssetSourceData", + }, + { + "description": undefined, + "fieldName": "title", + "type": "String", + }, + { + "description": undefined, + "fieldName": "uploadId", + "type": "String", + }, + { + "description": undefined, + "fieldName": "url", + "type": "String", + }, + ], + "interfaces": [ + "Document", + ], + "kind": "Type", + "name": "SanityImageAsset", + "originalName": "sanity.imageAsset", + "type": "Object", + Symbol(internal): {}, + }, + { + "fields": [ + { + "description": "Apply filters on document level", + "fieldName": "_", + "type": "Sanity_DocumentFilter", + }, + { + "fieldName": "_createdAt", + "isReference": undefined, + "type": "DatetimeFilter", + }, + { + "fieldName": "_id", + "isReference": undefined, + "type": "IDFilter", + }, + { + "fieldName": "_key", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_rev", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_type", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_updatedAt", + "isReference": undefined, + "type": "DatetimeFilter", + }, + { + "fieldName": "altText", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "assetId", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "description", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "extension", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "label", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "metadata", + "isReference": undefined, + "type": "SanityImageMetadataFilter", + }, + { + "fieldName": "mimeType", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "originalFilename", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "path", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "sha1hash", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "size", + "isReference": undefined, + "type": "FloatFilter", + }, + { + "fieldName": "source", + "isReference": undefined, + "type": "SanityAssetSourceDataFilter", + }, + { + "fieldName": "title", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "uploadId", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "url", + "isReference": undefined, + "type": "StringFilter", + }, + ], + "kind": "InputObject", + "name": "SanityImageAssetFilter", + }, + { + "fields": [ + { + "fieldName": "_createdAt", + "type": "SortOrder", + }, + { + "fieldName": "_id", + "type": "SortOrder", + }, + { + "fieldName": "_key", + "type": "SortOrder", + }, + { + "fieldName": "_rev", + "type": "SortOrder", + }, + { + "fieldName": "_type", + "type": "SortOrder", + }, + { + "fieldName": "_updatedAt", + "type": "SortOrder", + }, + { + "fieldName": "altText", + "type": "SortOrder", + }, + { + "fieldName": "assetId", + "type": "SortOrder", + }, + { + "fieldName": "description", + "type": "SortOrder", + }, + { + "fieldName": "extension", + "type": "SortOrder", + }, + { + "fieldName": "label", + "type": "SortOrder", + }, + { + "fieldName": "metadata", + "type": "SanityImageMetadataSorting", + }, + { + "fieldName": "mimeType", + "type": "SortOrder", + }, + { + "fieldName": "originalFilename", + "type": "SortOrder", + }, + { + "fieldName": "path", + "type": "SortOrder", + }, + { + "fieldName": "sha1hash", + "type": "SortOrder", + }, + { + "fieldName": "size", + "type": "SortOrder", + }, + { + "fieldName": "source", + "type": "SanityAssetSourceDataSorting", + }, + { + "fieldName": "title", + "type": "SortOrder", + }, + { + "fieldName": "uploadId", + "type": "SortOrder", + }, + { + "fieldName": "url", + "type": "SortOrder", + }, + ], + "kind": "InputObject", + "name": "SanityImageAssetSorting", + }, + { + "description": undefined, + "fields": [ + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_type", + "type": "String", + }, + { + "description": undefined, + "fieldName": "bottom", + "type": "Float", + }, + { + "description": undefined, + "fieldName": "left", + "type": "Float", + }, + { + "description": undefined, + "fieldName": "right", + "type": "Float", + }, + { + "description": undefined, + "fieldName": "top", + "type": "Float", + }, + ], + "kind": "Type", + "name": "SanityImageCrop", + "originalName": "sanity.imageCrop", + "type": "Object", + Symbol(internal): {}, + }, + { + "fields": [ + { + "fieldName": "_key", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_type", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "bottom", + "isReference": undefined, + "type": "FloatFilter", + }, + { + "fieldName": "left", + "isReference": undefined, + "type": "FloatFilter", + }, + { + "fieldName": "right", + "isReference": undefined, + "type": "FloatFilter", + }, + { + "fieldName": "top", + "isReference": undefined, + "type": "FloatFilter", + }, + ], + "kind": "InputObject", + "name": "SanityImageCropFilter", + }, + { + "fields": [ + { + "fieldName": "_key", + "type": "SortOrder", + }, + { + "fieldName": "_type", + "type": "SortOrder", + }, + { + "fieldName": "bottom", + "type": "SortOrder", + }, + { + "fieldName": "left", + "type": "SortOrder", + }, + { + "fieldName": "right", + "type": "SortOrder", + }, + { + "fieldName": "top", + "type": "SortOrder", + }, + ], + "kind": "InputObject", + "name": "SanityImageCropSorting", + }, + { + "description": undefined, + "fields": [ + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_type", + "type": "String", + }, + { + "description": undefined, + "fieldName": "aspectRatio", + "type": "Float", + }, + { + "description": undefined, + "fieldName": "height", + "type": "Float", + }, + { + "description": undefined, + "fieldName": "width", + "type": "Float", + }, + ], + "kind": "Type", + "name": "SanityImageDimensions", + "originalName": "sanity.imageDimensions", + "type": "Object", + Symbol(internal): {}, + }, + { + "fields": [ + { + "fieldName": "_key", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_type", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "aspectRatio", + "isReference": undefined, + "type": "FloatFilter", + }, + { + "fieldName": "height", + "isReference": undefined, + "type": "FloatFilter", + }, + { + "fieldName": "width", + "isReference": undefined, + "type": "FloatFilter", + }, + ], + "kind": "InputObject", + "name": "SanityImageDimensionsFilter", + }, + { + "fields": [ + { + "fieldName": "_key", + "type": "SortOrder", + }, + { + "fieldName": "_type", + "type": "SortOrder", + }, + { + "fieldName": "aspectRatio", + "type": "SortOrder", + }, + { + "fieldName": "height", + "type": "SortOrder", + }, + { + "fieldName": "width", + "type": "SortOrder", + }, + ], + "kind": "InputObject", + "name": "SanityImageDimensionsSorting", + }, + { + "description": undefined, + "fields": [ + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_type", + "type": "String", + }, + { + "description": undefined, + "fieldName": "height", + "type": "Float", + }, + { + "description": undefined, + "fieldName": "width", + "type": "Float", + }, + { + "description": undefined, + "fieldName": "x", + "type": "Float", + }, + { + "description": undefined, + "fieldName": "y", + "type": "Float", + }, + ], + "kind": "Type", + "name": "SanityImageHotspot", + "originalName": "sanity.imageHotspot", + "type": "Object", + Symbol(internal): {}, + }, + { + "fields": [ + { + "fieldName": "_key", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_type", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "height", + "isReference": undefined, + "type": "FloatFilter", + }, + { + "fieldName": "width", + "isReference": undefined, + "type": "FloatFilter", + }, + { + "fieldName": "x", + "isReference": undefined, + "type": "FloatFilter", + }, + { + "fieldName": "y", + "isReference": undefined, + "type": "FloatFilter", + }, + ], + "kind": "InputObject", + "name": "SanityImageHotspotFilter", + }, + { + "fields": [ + { + "fieldName": "_key", + "type": "SortOrder", + }, + { + "fieldName": "_type", + "type": "SortOrder", + }, + { + "fieldName": "height", + "type": "SortOrder", + }, + { + "fieldName": "width", + "type": "SortOrder", + }, + { + "fieldName": "x", + "type": "SortOrder", + }, + { + "fieldName": "y", + "type": "SortOrder", + }, + ], + "kind": "InputObject", + "name": "SanityImageHotspotSorting", + }, + { + "description": undefined, + "fields": [ + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_type", + "type": "String", + }, + { + "description": undefined, + "fieldName": "blurHash", + "type": "String", + }, + { + "fieldName": "dimensions", + "type": "SanityImageDimensions", + }, + { + "description": undefined, + "fieldName": "hasAlpha", + "type": "Boolean", + }, + { + "description": undefined, + "fieldName": "isOpaque", + "type": "Boolean", + }, + { + "fieldName": "location", + "type": "Geopoint", + }, + { + "description": undefined, + "fieldName": "lqip", + "type": "String", + }, + { + "fieldName": "palette", + "type": "SanityImagePalette", + }, + ], + "kind": "Type", + "name": "SanityImageMetadata", + "originalName": "sanity.imageMetadata", + "type": "Object", + Symbol(internal): {}, + }, + { + "fields": [ + { + "fieldName": "_key", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_type", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "blurHash", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "dimensions", + "isReference": undefined, + "type": "SanityImageDimensionsFilter", + }, + { + "fieldName": "hasAlpha", + "isReference": undefined, + "type": "BooleanFilter", + }, + { + "fieldName": "isOpaque", + "isReference": undefined, + "type": "BooleanFilter", + }, + { + "fieldName": "location", + "isReference": undefined, + "type": "GeopointFilter", + }, + { + "fieldName": "lqip", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "palette", + "isReference": undefined, + "type": "SanityImagePaletteFilter", + }, + ], + "kind": "InputObject", + "name": "SanityImageMetadataFilter", + }, + { + "fields": [ + { + "fieldName": "_key", + "type": "SortOrder", + }, + { + "fieldName": "_type", + "type": "SortOrder", + }, + { + "fieldName": "blurHash", + "type": "SortOrder", + }, + { + "fieldName": "dimensions", + "type": "SanityImageDimensionsSorting", + }, + { + "fieldName": "hasAlpha", + "type": "SortOrder", + }, + { + "fieldName": "isOpaque", + "type": "SortOrder", + }, + { + "fieldName": "location", + "type": "GeopointSorting", + }, + { + "fieldName": "lqip", + "type": "SortOrder", + }, + { + "fieldName": "palette", + "type": "SanityImagePaletteSorting", + }, + ], + "kind": "InputObject", + "name": "SanityImageMetadataSorting", + }, + { + "description": undefined, + "fields": [ + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_type", + "type": "String", + }, + { + "fieldName": "darkMuted", + "type": "SanityImagePaletteSwatch", + }, + { + "fieldName": "darkVibrant", + "type": "SanityImagePaletteSwatch", + }, + { + "fieldName": "dominant", + "type": "SanityImagePaletteSwatch", + }, + { + "fieldName": "lightMuted", + "type": "SanityImagePaletteSwatch", + }, + { + "fieldName": "lightVibrant", + "type": "SanityImagePaletteSwatch", + }, + { + "fieldName": "muted", + "type": "SanityImagePaletteSwatch", + }, + { + "fieldName": "vibrant", + "type": "SanityImagePaletteSwatch", + }, + ], + "kind": "Type", + "name": "SanityImagePalette", + "originalName": "sanity.imagePalette", + "type": "Object", + Symbol(internal): {}, + }, + { + "fields": [ + { + "fieldName": "_key", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_type", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "darkMuted", + "isReference": undefined, + "type": "SanityImagePaletteSwatchFilter", + }, + { + "fieldName": "darkVibrant", + "isReference": undefined, + "type": "SanityImagePaletteSwatchFilter", + }, + { + "fieldName": "dominant", + "isReference": undefined, + "type": "SanityImagePaletteSwatchFilter", + }, + { + "fieldName": "lightMuted", + "isReference": undefined, + "type": "SanityImagePaletteSwatchFilter", + }, + { + "fieldName": "lightVibrant", + "isReference": undefined, + "type": "SanityImagePaletteSwatchFilter", + }, + { + "fieldName": "muted", + "isReference": undefined, + "type": "SanityImagePaletteSwatchFilter", + }, + { + "fieldName": "vibrant", + "isReference": undefined, + "type": "SanityImagePaletteSwatchFilter", + }, + ], + "kind": "InputObject", + "name": "SanityImagePaletteFilter", + }, + { + "fields": [ + { + "fieldName": "_key", + "type": "SortOrder", + }, + { + "fieldName": "_type", + "type": "SortOrder", + }, + { + "fieldName": "darkMuted", + "type": "SanityImagePaletteSwatchSorting", + }, + { + "fieldName": "darkVibrant", + "type": "SanityImagePaletteSwatchSorting", + }, + { + "fieldName": "dominant", + "type": "SanityImagePaletteSwatchSorting", + }, + { + "fieldName": "lightMuted", + "type": "SanityImagePaletteSwatchSorting", + }, + { + "fieldName": "lightVibrant", + "type": "SanityImagePaletteSwatchSorting", + }, + { + "fieldName": "muted", + "type": "SanityImagePaletteSwatchSorting", + }, + { + "fieldName": "vibrant", + "type": "SanityImagePaletteSwatchSorting", + }, + ], + "kind": "InputObject", + "name": "SanityImagePaletteSorting", + }, + { + "description": undefined, + "fields": [ + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_type", + "type": "String", + }, + { + "description": undefined, + "fieldName": "background", + "type": "String", + }, + { + "description": undefined, + "fieldName": "foreground", + "type": "String", + }, + { + "description": undefined, + "fieldName": "population", + "type": "Float", + }, + { + "description": undefined, + "fieldName": "title", + "type": "String", + }, + ], + "kind": "Type", + "name": "SanityImagePaletteSwatch", + "originalName": "sanity.imagePaletteSwatch", + "type": "Object", + Symbol(internal): {}, + }, + { + "fields": [ + { + "fieldName": "_key", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_type", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "background", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "foreground", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "population", + "isReference": undefined, + "type": "FloatFilter", + }, + { + "fieldName": "title", + "isReference": undefined, + "type": "StringFilter", + }, + ], + "kind": "InputObject", + "name": "SanityImagePaletteSwatchFilter", + }, + { + "fields": [ + { + "fieldName": "_key", + "type": "SortOrder", + }, + { + "fieldName": "_type", + "type": "SortOrder", + }, + { + "fieldName": "background", + "type": "SortOrder", + }, + { + "fieldName": "foreground", + "type": "SortOrder", + }, + { + "fieldName": "population", + "type": "SortOrder", + }, + { + "fieldName": "title", + "type": "SortOrder", + }, + ], + "kind": "InputObject", + "name": "SanityImagePaletteSwatchSorting", + }, + { + "fields": [ + { + "description": "All documents that are drafts.", + "fieldName": "is_draft", + "type": "Boolean", + }, + { + "description": "All documents referencing the given document ID.", + "fieldName": "references", + "type": "ID", + }, + ], + "isConstraintFilter": true, + "kind": "InputObject", + "name": "Sanity_DocumentFilter", + }, + { + "fields": [], + "kind": "Enum", + "name": "SortOrder", + "values": [ + { + "description": "Sorts on the value in ascending order.", + "name": "ASC", + "value": 1, + }, + { + "description": "Sorts on the value in descending order.", + "name": "DESC", + "value": 2, + }, + ], + }, + { + "description": undefined, + "fields": [ + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_type", + "type": "String", + }, + { + "children": { + "type": "String", + }, + "description": undefined, + "fieldName": "marks", + "kind": "List", + }, + { + "description": undefined, + "fieldName": "text", + "type": "String", + }, + ], + "kind": "Type", + "name": "Span", + "originalName": "span", + "type": "Object", + Symbol(internal): {}, + }, + { + "fields": [ + { + "description": "Checks if the value is equal to the given input.", + "fieldName": "eq", + "type": "String", + }, + { + "children": { + "isNullable": false, + "type": "String", + }, + "description": "Checks if the value is equal to one of the given values.", + "fieldName": "in", + "kind": "List", + }, + { + "description": "Checks if the value is defined.", + "fieldName": "is_defined", + "type": "Boolean", + }, + { + "description": "Checks if the value matches the given word/words.", + "fieldName": "matches", + "type": "String", + }, + { + "description": "Checks if the value is not equal to the given input.", + "fieldName": "neq", + "type": "String", + }, + { + "children": { + "isNullable": false, + "type": "String", + }, + "description": "Checks if the value is not equal to one of the given values.", + "fieldName": "nin", + "kind": "List", + }, + ], + "isConstraintFilter": true, + "kind": "InputObject", + "name": "StringFilter", + }, + { + "children": { + "description": undefined, + "isReference": true, + "references": undefined, + "type": "AOrUnion", + }, + "description": undefined, + "fields": [], + "kind": "List", + "name": "Title", + "originalName": "title", + }, + { + "description": undefined, + "fields": [ + { + "description": "Date the document was created", + "fieldName": "_createdAt", + "isNullable": true, + "type": "Datetime", + }, + { + "description": "Document ID", + "fieldName": "_id", + "isNullable": true, + "type": "ID", + }, + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": "Current document revision", + "fieldName": "_rev", + "isNullable": true, + "type": "String", + }, + { + "description": "Document type", + "fieldName": "_type", + "isNullable": true, + "type": "String", + }, + { + "description": "Date the document was last modified", + "fieldName": "_updatedAt", + "isNullable": true, + "type": "Datetime", + }, + { + "children": { + "inlineObjects": undefined, + "references": [ + "A", + "B", + ], + "type": "AOrB", + }, + "description": undefined, + "fieldName": "body", + "kind": "List", + }, + ], + "interfaces": [ + "Document", + ], + "kind": "Type", + "name": "Union", + "originalName": "union", + "type": "Object", + Symbol(internal): {}, + }, + { + "fields": [ + { + "description": "Apply filters on document level", + "fieldName": "_", + "type": "Sanity_DocumentFilter", + }, + { + "fieldName": "_createdAt", + "isReference": undefined, + "type": "DatetimeFilter", + }, + { + "fieldName": "_id", + "isReference": undefined, + "type": "IDFilter", + }, + { + "fieldName": "_key", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_rev", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_type", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_updatedAt", + "isReference": undefined, + "type": "DatetimeFilter", + }, + ], + "kind": "InputObject", + "name": "UnionFilter", + }, + { + "fields": [ + { + "fieldName": "_createdAt", + "type": "SortOrder", + }, + { + "fieldName": "_id", + "type": "SortOrder", + }, + { + "fieldName": "_key", + "type": "SortOrder", + }, + { + "fieldName": "_rev", + "type": "SortOrder", + }, + { + "fieldName": "_type", + "type": "SortOrder", + }, + { + "fieldName": "_updatedAt", + "type": "SortOrder", + }, + ], + "kind": "InputObject", + "name": "UnionSorting", + }, + ], +} +`; + +exports[`GraphQL - Generation 3 > Union cache: sanitySchema: 'unionRefsSchema' > Should be able to generate graphql schema, withUnionCache: %p true 1`] = ` +{ + "generation": "gen3", + "interfaces": [ + { + "description": "A Sanity document", + "fields": [ + { + "description": "Date the document was created", + "fieldName": "_createdAt", + "isNullable": true, + "type": "Datetime", + }, + { + "description": "Document ID", + "fieldName": "_id", + "isNullable": true, + "type": "ID", + }, + { + "description": "Current document revision", + "fieldName": "_rev", + "isNullable": true, + "type": "String", + }, + { + "description": "Document type", + "fieldName": "_type", + "isNullable": true, + "type": "String", + }, + { + "description": "Date the document was last modified", + "fieldName": "_updatedAt", + "isNullable": true, + "type": "Datetime", + }, + ], + "kind": "Interface", + "name": "Document", + }, + ], + "queries": [ + { + "args": [ + { + "description": "A document ID", + "isNullable": false, + "name": "id", + "type": "ID", + }, + ], + "constraints": [ + { + "comparator": "eq", + "field": "_id", + "value": { + "argName": "id", + "kind": "argumentValue", + }, + }, + ], + "fieldName": "A", + "type": "A", + }, + { + "args": [ + { + "description": "B document ID", + "isNullable": false, + "name": "id", + "type": "ID", + }, + ], + "constraints": [ + { + "comparator": "eq", + "field": "_id", + "value": { + "argName": "id", + "kind": "argumentValue", + }, + }, + ], + "fieldName": "B", + "type": "B", + }, + { + "args": [ + { + "description": "Document document ID", + "isNullable": false, + "name": "id", + "type": "ID", + }, + ], + "constraints": [ + { + "comparator": "eq", + "field": "_id", + "value": { + "argName": "id", + "kind": "argumentValue", + }, + }, + ], + "fieldName": "Document", + "type": "Document", + }, + { + "args": [ + { + "description": "SanityFileAsset document ID", + "isNullable": false, + "name": "id", + "type": "ID", + }, + ], + "constraints": [ + { + "comparator": "eq", + "field": "_id", + "value": { + "argName": "id", + "kind": "argumentValue", + }, + }, + ], + "fieldName": "SanityFileAsset", + "type": "SanityFileAsset", + }, + { + "args": [ + { + "description": "SanityImageAsset document ID", + "isNullable": false, + "name": "id", + "type": "ID", + }, + ], + "constraints": [ + { + "comparator": "eq", + "field": "_id", + "value": { + "argName": "id", + "kind": "argumentValue", + }, + }, + ], + "fieldName": "SanityImageAsset", + "type": "SanityImageAsset", + }, + { + "args": [ + { + "description": "Union document ID", + "isNullable": false, + "name": "id", + "type": "ID", + }, + ], + "constraints": [ + { + "comparator": "eq", + "field": "_id", + "value": { + "argName": "id", + "kind": "argumentValue", + }, + }, + ], + "fieldName": "Union", + "type": "Union", + }, + { + "args": [ + { + "description": "Max documents to return", + "isFieldFilter": false, + "name": "limit", + "type": "Int", + }, + { + "description": "Offset at which to start returning documents from", + "isFieldFilter": false, + "name": "offset", + "type": "Int", + }, + { + "name": "sort", + "type": { + "children": { + "isNullable": false, + "type": "ASorting", + }, + "isNullable": true, + "kind": "List", + }, + }, + { + "isFieldFilter": true, + "name": "where", + "type": "AFilter", + }, + ], + "fieldName": "allA", + "filter": "_type == "a"", + "type": { + "children": { + "isNullable": false, + "type": "A", + }, + "isNullable": false, + "kind": "List", + }, + }, + { + "args": [ + { + "description": "Max documents to return", + "isFieldFilter": false, + "name": "limit", + "type": "Int", + }, + { + "description": "Offset at which to start returning documents from", + "isFieldFilter": false, + "name": "offset", + "type": "Int", + }, + { + "name": "sort", + "type": { + "children": { + "isNullable": false, + "type": "BSorting", + }, + "isNullable": true, + "kind": "List", + }, + }, + { + "isFieldFilter": true, + "name": "where", + "type": "BFilter", + }, + ], + "fieldName": "allB", + "filter": "_type == "b"", + "type": { + "children": { + "isNullable": false, + "type": "B", + }, + "isNullable": false, + "kind": "List", + }, + }, + { + "args": [ + { + "description": "Max documents to return", + "isFieldFilter": false, + "name": "limit", + "type": "Int", + }, + { + "description": "Offset at which to start returning documents from", + "isFieldFilter": false, + "name": "offset", + "type": "Int", + }, + { + "name": "sort", + "type": { + "children": { + "isNullable": false, + "type": "DocumentSorting", + }, + "isNullable": true, + "kind": "List", + }, + }, + { + "isFieldFilter": true, + "name": "where", + "type": "DocumentFilter", + }, + ], + "fieldName": "allDocument", + "filter": "_type in ["union", "a", "b", "sanity.fileAsset", "sanity.imageAsset"]", + "type": { + "children": { + "isNullable": false, + "type": "Document", + }, + "isNullable": false, + "kind": "List", + }, + }, + { + "args": [ + { + "description": "Max documents to return", + "isFieldFilter": false, + "name": "limit", + "type": "Int", + }, + { + "description": "Offset at which to start returning documents from", + "isFieldFilter": false, + "name": "offset", + "type": "Int", + }, + { + "name": "sort", + "type": { + "children": { + "isNullable": false, + "type": "SanityFileAssetSorting", + }, + "isNullable": true, + "kind": "List", + }, + }, + { + "isFieldFilter": true, + "name": "where", + "type": "SanityFileAssetFilter", + }, + ], + "fieldName": "allSanityFileAsset", + "filter": "_type == "sanity.fileAsset"", + "type": { + "children": { + "isNullable": false, + "type": "SanityFileAsset", + }, + "isNullable": false, + "kind": "List", + }, + }, + { + "args": [ + { + "description": "Max documents to return", + "isFieldFilter": false, + "name": "limit", + "type": "Int", + }, + { + "description": "Offset at which to start returning documents from", + "isFieldFilter": false, + "name": "offset", + "type": "Int", + }, + { + "name": "sort", + "type": { + "children": { + "isNullable": false, + "type": "SanityImageAssetSorting", + }, + "isNullable": true, + "kind": "List", + }, + }, + { + "isFieldFilter": true, + "name": "where", + "type": "SanityImageAssetFilter", + }, + ], + "fieldName": "allSanityImageAsset", + "filter": "_type == "sanity.imageAsset"", + "type": { + "children": { + "isNullable": false, + "type": "SanityImageAsset", + }, + "isNullable": false, + "kind": "List", + }, + }, + { + "args": [ + { + "description": "Max documents to return", + "isFieldFilter": false, + "name": "limit", + "type": "Int", + }, + { + "description": "Offset at which to start returning documents from", + "isFieldFilter": false, + "name": "offset", + "type": "Int", + }, + { + "name": "sort", + "type": { + "children": { + "isNullable": false, + "type": "UnionSorting", + }, + "isNullable": true, + "kind": "List", + }, + }, + { + "isFieldFilter": true, + "name": "where", + "type": "UnionFilter", + }, + ], + "fieldName": "allUnion", + "filter": "_type == "union"", + "type": { + "children": { + "isNullable": false, + "type": "Union", + }, + "isNullable": false, + "kind": "List", + }, + }, + ], + "types": [ + { + "description": undefined, + "fields": [ + { + "description": "Date the document was created", + "fieldName": "_createdAt", + "isNullable": true, + "type": "Datetime", + }, + { + "description": "Document ID", + "fieldName": "_id", + "isNullable": true, + "type": "ID", + }, + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": "Current document revision", + "fieldName": "_rev", + "isNullable": true, + "type": "String", + }, + { + "description": "Document type", + "fieldName": "_type", + "isNullable": true, + "type": "String", + }, + { + "description": "Date the document was last modified", + "fieldName": "_updatedAt", + "isNullable": true, + "type": "Datetime", + }, + { + "description": undefined, + "fieldName": "title", + "type": "String", + }, + ], + "interfaces": [ + "Document", + ], + "kind": "Type", + "name": "A", + "originalName": "a", + "type": "Object", + Symbol(internal): {}, + }, + { + "fields": [ + { + "description": "Apply filters on document level", + "fieldName": "_", + "type": "Sanity_DocumentFilter", + }, + { + "fieldName": "_createdAt", + "isReference": undefined, + "type": "DatetimeFilter", + }, + { + "fieldName": "_id", + "isReference": undefined, + "type": "IDFilter", + }, + { + "fieldName": "_key", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_rev", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_type", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_updatedAt", + "isReference": undefined, + "type": "DatetimeFilter", + }, + { + "fieldName": "title", + "isReference": undefined, + "type": "StringFilter", + }, + ], + "kind": "InputObject", + "name": "AFilter", + }, + { + "fields": [], + "interfaces": undefined, + "kind": "Union", + "name": "AOrB", + "types": [ + "A", + "B", + ], + }, + { + "fields": [], + "interfaces": undefined, + "kind": "Union", + "name": "AOrUnion", + "types": [ + "A", + "Union", + ], + }, + { + "fields": [ + { + "fieldName": "_createdAt", + "type": "SortOrder", + }, + { + "fieldName": "_id", + "type": "SortOrder", + }, + { + "fieldName": "_key", + "type": "SortOrder", + }, + { + "fieldName": "_rev", + "type": "SortOrder", + }, + { + "fieldName": "_type", + "type": "SortOrder", + }, + { + "fieldName": "_updatedAt", + "type": "SortOrder", + }, + { + "fieldName": "title", + "type": "SortOrder", + }, + ], + "kind": "InputObject", + "name": "ASorting", + }, + { + "description": undefined, + "fields": [ + { + "description": "Date the document was created", + "fieldName": "_createdAt", + "isNullable": true, + "type": "Datetime", + }, + { + "description": "Document ID", + "fieldName": "_id", + "isNullable": true, + "type": "ID", + }, + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": "Current document revision", + "fieldName": "_rev", + "isNullable": true, + "type": "String", + }, + { + "description": "Document type", + "fieldName": "_type", + "isNullable": true, + "type": "String", + }, + { + "description": "Date the document was last modified", + "fieldName": "_updatedAt", + "isNullable": true, + "type": "Datetime", + }, + { + "description": undefined, + "fieldName": "title", + "type": "String", + }, + ], + "interfaces": [ + "Document", + ], + "kind": "Type", + "name": "B", + "originalName": "b", + "type": "Object", + Symbol(internal): {}, + }, + { + "fields": [ + { + "description": "Apply filters on document level", + "fieldName": "_", + "type": "Sanity_DocumentFilter", + }, + { + "fieldName": "_createdAt", + "isReference": undefined, + "type": "DatetimeFilter", + }, + { + "fieldName": "_id", + "isReference": undefined, + "type": "IDFilter", + }, + { + "fieldName": "_key", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_rev", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_type", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_updatedAt", + "isReference": undefined, + "type": "DatetimeFilter", + }, + { + "fieldName": "title", + "isReference": undefined, + "type": "StringFilter", + }, + ], + "kind": "InputObject", + "name": "BFilter", + }, + { + "fields": [ + { + "fieldName": "_createdAt", + "type": "SortOrder", + }, + { + "fieldName": "_id", + "type": "SortOrder", + }, + { + "fieldName": "_key", + "type": "SortOrder", + }, + { + "fieldName": "_rev", + "type": "SortOrder", + }, + { + "fieldName": "_type", + "type": "SortOrder", + }, + { + "fieldName": "_updatedAt", + "type": "SortOrder", + }, + { + "fieldName": "title", + "type": "SortOrder", + }, + ], + "kind": "InputObject", + "name": "BSorting", + }, + { + "description": undefined, + "fields": [ + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_type", + "type": "String", + }, + { + "children": { + "type": "Span", + }, + "description": undefined, + "fieldName": "children", + "kind": "List", + }, + { + "description": undefined, + "fieldName": "level", + "type": "Float", + }, + { + "description": undefined, + "fieldName": "listItem", + "type": "String", + }, + { + "description": undefined, + "fieldName": "style", + "type": "String", + }, + ], + "kind": "Type", + "name": "Block", + "originalName": "block", + "type": "Object", + Symbol(internal): {}, + }, + { + "fields": [ + { + "description": "Checks if the value is equal to the given input.", + "fieldName": "eq", + "type": "Boolean", + }, + { + "description": "Checks if the value is defined.", + "fieldName": "is_defined", + "type": "Boolean", + }, + { + "description": "Checks if the value is not equal to the given input.", + "fieldName": "neq", + "type": "Boolean", + }, + ], + "isConstraintFilter": true, + "kind": "InputObject", + "name": "BooleanFilter", + }, + { + "description": undefined, + "fields": [ + { + "description": undefined, + "fieldName": "_dataset", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_projectId", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_ref", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_type", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_weak", + "type": "Boolean", + }, + ], + "kind": "Type", + "name": "CrossDatasetReference", + "originalName": "crossDatasetReference", + "type": "Object", + Symbol(internal): {}, + }, + { + "fields": [ + { + "fieldName": "_dataset", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_key", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_projectId", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_ref", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_type", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_weak", + "isReference": undefined, + "type": "BooleanFilter", + }, + ], + "kind": "InputObject", + "name": "CrossDatasetReferenceFilter", + }, + { + "fields": [ + { + "fieldName": "_dataset", + "type": "SortOrder", + }, + { + "fieldName": "_key", + "type": "SortOrder", + }, + { + "fieldName": "_projectId", + "type": "SortOrder", + }, + { + "fieldName": "_ref", + "type": "SortOrder", + }, + { + "fieldName": "_type", + "type": "SortOrder", + }, + { + "fieldName": "_weak", + "type": "SortOrder", + }, + ], + "kind": "InputObject", + "name": "CrossDatasetReferenceSorting", + }, + { + "fields": [ + { + "description": "Checks if the value is equal to the given input.", + "fieldName": "eq", + "type": "Date", + }, + { + "description": "Checks if the value is greater than the given input.", + "fieldName": "gt", + "type": "Date", + }, + { + "description": "Checks if the value is greater than or equal to the given input.", + "fieldName": "gte", + "type": "Date", + }, + { + "description": "Checks if the value is defined.", + "fieldName": "is_defined", + "type": "Boolean", + }, + { + "description": "Checks if the value is lesser than the given input.", + "fieldName": "lt", + "type": "Date", + }, + { + "description": "Checks if the value is lesser than or equal to the given input.", + "fieldName": "lte", + "type": "Date", + }, + { + "description": "Checks if the value is not equal to the given input.", + "fieldName": "neq", + "type": "Date", + }, + ], + "isConstraintFilter": true, + "kind": "InputObject", + "name": "DateFilter", + }, + { + "fields": [ + { + "description": "Checks if the value is equal to the given input.", + "fieldName": "eq", + "type": "Datetime", + }, + { + "description": "Checks if the value is greater than the given input.", + "fieldName": "gt", + "type": "Datetime", + }, + { + "description": "Checks if the value is greater than or equal to the given input.", + "fieldName": "gte", + "type": "Datetime", + }, + { + "description": "Checks if the value is defined.", + "fieldName": "is_defined", + "type": "Boolean", + }, + { + "description": "Checks if the value is lesser than the given input.", + "fieldName": "lt", + "type": "Datetime", + }, + { + "description": "Checks if the value is lesser than or equal to the given input.", + "fieldName": "lte", + "type": "Datetime", + }, + { + "description": "Checks if the value is not equal to the given input.", + "fieldName": "neq", + "type": "Datetime", + }, + ], + "isConstraintFilter": true, + "kind": "InputObject", + "name": "DatetimeFilter", + }, + { + "fields": [ + { + "description": "Apply filters on document level", + "fieldName": "_", + "type": "Sanity_DocumentFilter", + }, + { + "fieldName": "_createdAt", + "isReference": undefined, + "type": "DatetimeFilter", + }, + { + "fieldName": "_id", + "isReference": undefined, + "type": "IDFilter", + }, + { + "fieldName": "_rev", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_type", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_updatedAt", + "isReference": undefined, + "type": "DatetimeFilter", + }, + ], + "kind": "InputObject", + "name": "DocumentFilter", + }, + { + "fields": [ + { + "fieldName": "_createdAt", + "type": "SortOrder", + }, + { + "fieldName": "_id", + "type": "SortOrder", + }, + { + "fieldName": "_rev", + "type": "SortOrder", + }, + { + "fieldName": "_type", + "type": "SortOrder", + }, + { + "fieldName": "_updatedAt", + "type": "SortOrder", + }, + ], + "kind": "InputObject", + "name": "DocumentSorting", + }, + { + "description": undefined, + "fields": [ + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_type", + "type": "String", + }, + { + "description": undefined, + "fieldName": "asset", + "isReference": true, + "type": "SanityFileAsset", + }, + ], + "kind": "Type", + "name": "File", + "originalName": "file", + "type": "Object", + Symbol(internal): {}, + }, + { + "fields": [ + { + "fieldName": "_key", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_type", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "asset", + "isReference": true, + "type": "SanityFileAssetFilter", + }, + ], + "kind": "InputObject", + "name": "FileFilter", + }, + { + "fields": [ + { + "fieldName": "_key", + "type": "SortOrder", + }, + { + "fieldName": "_type", + "type": "SortOrder", + }, + ], + "kind": "InputObject", + "name": "FileSorting", + }, + { + "fields": [ + { + "description": "Checks if the value is equal to the given input.", + "fieldName": "eq", + "type": "Float", + }, + { + "description": "Checks if the value is greater than the given input.", + "fieldName": "gt", + "type": "Float", + }, + { + "description": "Checks if the value is greater than or equal to the given input.", + "fieldName": "gte", + "type": "Float", + }, + { + "description": "Checks if the value is defined.", + "fieldName": "is_defined", + "type": "Boolean", + }, + { + "description": "Checks if the value is lesser than the given input.", + "fieldName": "lt", + "type": "Float", + }, + { + "description": "Checks if the value is lesser than or equal to the given input.", + "fieldName": "lte", + "type": "Float", + }, + { + "description": "Checks if the value is not equal to the given input.", + "fieldName": "neq", + "type": "Float", + }, + ], + "isConstraintFilter": true, + "kind": "InputObject", + "name": "FloatFilter", + }, + { + "description": undefined, + "fields": [ + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_type", + "type": "String", + }, + { + "description": undefined, + "fieldName": "alt", + "type": "Float", + }, + { + "description": undefined, + "fieldName": "lat", + "type": "Float", + }, + { + "description": undefined, + "fieldName": "lng", + "type": "Float", + }, + ], + "kind": "Type", + "name": "Geopoint", + "originalName": "geopoint", + "type": "Object", + Symbol(internal): {}, + }, + { + "fields": [ + { + "fieldName": "_key", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_type", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "alt", + "isReference": undefined, + "type": "FloatFilter", + }, + { + "fieldName": "lat", + "isReference": undefined, + "type": "FloatFilter", + }, + { + "fieldName": "lng", + "isReference": undefined, + "type": "FloatFilter", + }, + ], + "kind": "InputObject", + "name": "GeopointFilter", + }, + { + "fields": [ + { + "fieldName": "_key", + "type": "SortOrder", + }, + { + "fieldName": "_type", + "type": "SortOrder", + }, + { + "fieldName": "alt", + "type": "SortOrder", + }, + { + "fieldName": "lat", + "type": "SortOrder", + }, + { + "fieldName": "lng", + "type": "SortOrder", + }, + ], + "kind": "InputObject", + "name": "GeopointSorting", + }, + { + "fields": [ + { + "description": "Checks if the value is equal to the given input.", + "fieldName": "eq", + "type": "ID", + }, + { + "children": { + "isNullable": false, + "type": "ID", + }, + "description": "Checks if the value is equal to one of the given values.", + "fieldName": "in", + "kind": "List", + }, + { + "description": "Checks if the value matches the given word/words.", + "fieldName": "matches", + "type": "ID", + }, + { + "description": "Checks if the value is not equal to the given input.", + "fieldName": "neq", + "type": "ID", + }, + { + "children": { + "isNullable": false, + "type": "ID", + }, + "description": "Checks if the value is not equal to one of the given values.", + "fieldName": "nin", + "kind": "List", + }, + ], + "isConstraintFilter": true, + "kind": "InputObject", + "name": "IDFilter", + }, + { + "description": undefined, + "fields": [ + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_type", + "type": "String", + }, + { + "description": undefined, + "fieldName": "asset", + "isReference": true, + "type": "SanityImageAsset", + }, + { + "fieldName": "crop", + "type": "SanityImageCrop", + }, + { + "fieldName": "hotspot", + "type": "SanityImageHotspot", + }, + ], + "kind": "Type", + "name": "Image", + "originalName": "image", + "type": "Object", + Symbol(internal): {}, + }, + { + "fields": [ + { + "fieldName": "_key", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_type", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "asset", + "isReference": true, + "type": "SanityImageAssetFilter", + }, + { + "fieldName": "crop", + "isReference": undefined, + "type": "SanityImageCropFilter", + }, + { + "fieldName": "hotspot", + "isReference": undefined, + "type": "SanityImageHotspotFilter", + }, + ], + "kind": "InputObject", + "name": "ImageFilter", + }, + { + "fields": [ + { + "fieldName": "_key", + "type": "SortOrder", + }, + { + "fieldName": "_type", + "type": "SortOrder", + }, + { + "fieldName": "crop", + "type": "SanityImageCropSorting", + }, + { + "fieldName": "hotspot", + "type": "SanityImageHotspotSorting", + }, + ], + "kind": "InputObject", + "name": "ImageSorting", + }, + { + "fields": [ + { + "description": "Checks if the value is equal to the given input.", + "fieldName": "eq", + "type": "Int", + }, + { + "description": "Checks if the value is greater than the given input.", + "fieldName": "gt", + "type": "Int", + }, + { + "description": "Checks if the value is greater than or equal to the given input.", + "fieldName": "gte", + "type": "Int", + }, + { + "description": "Checks if the value is defined.", + "fieldName": "is_defined", + "type": "Boolean", + }, + { + "description": "Checks if the value is lesser than the given input.", + "fieldName": "lt", + "type": "Int", + }, + { + "description": "Checks if the value is lesser than or equal to the given input.", + "fieldName": "lte", + "type": "Int", + }, + { + "description": "Checks if the value is not equal to the given input.", + "fieldName": "neq", + "type": "Int", + }, + ], + "isConstraintFilter": true, + "kind": "InputObject", + "name": "IntFilter", + }, + { + "description": undefined, + "fields": [ + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_type", + "type": "String", + }, + { + "description": "The unique ID for the asset within the originating source so you can programatically find back to it", + "fieldName": "id", + "type": "String", + }, + { + "description": "A canonical name for the source this asset is originating from", + "fieldName": "name", + "type": "String", + }, + { + "description": "A URL to find more information about this asset in the originating source", + "fieldName": "url", + "type": "String", + }, + ], + "kind": "Type", + "name": "SanityAssetSourceData", + "originalName": "sanity.assetSourceData", + "type": "Object", + Symbol(internal): {}, + }, + { + "fields": [ + { + "fieldName": "_key", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_type", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "id", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "name", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "url", + "isReference": undefined, + "type": "StringFilter", + }, + ], + "kind": "InputObject", + "name": "SanityAssetSourceDataFilter", + }, + { + "fields": [ + { + "fieldName": "_key", + "type": "SortOrder", + }, + { + "fieldName": "_type", + "type": "SortOrder", + }, + { + "fieldName": "id", + "type": "SortOrder", + }, + { + "fieldName": "name", + "type": "SortOrder", + }, + { + "fieldName": "url", + "type": "SortOrder", + }, + ], + "kind": "InputObject", + "name": "SanityAssetSourceDataSorting", + }, + { + "description": undefined, + "fields": [ + { + "description": "Date the document was created", + "fieldName": "_createdAt", + "isNullable": true, + "type": "Datetime", + }, + { + "description": "Document ID", + "fieldName": "_id", + "isNullable": true, + "type": "ID", + }, + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": "Current document revision", + "fieldName": "_rev", + "isNullable": true, + "type": "String", + }, + { + "description": "Document type", + "fieldName": "_type", + "isNullable": true, + "type": "String", + }, + { + "description": "Date the document was last modified", + "fieldName": "_updatedAt", + "isNullable": true, + "type": "Datetime", + }, + { + "description": undefined, + "fieldName": "altText", + "type": "String", + }, + { + "description": undefined, + "fieldName": "assetId", + "type": "String", + }, + { + "description": undefined, + "fieldName": "description", + "type": "String", + }, + { + "description": undefined, + "fieldName": "extension", + "type": "String", + }, + { + "description": undefined, + "fieldName": "label", + "type": "String", + }, + { + "description": undefined, + "fieldName": "mimeType", + "type": "String", + }, + { + "description": undefined, + "fieldName": "originalFilename", + "type": "String", + }, + { + "description": undefined, + "fieldName": "path", + "type": "String", + }, + { + "description": undefined, + "fieldName": "sha1hash", + "type": "String", + }, + { + "description": undefined, + "fieldName": "size", + "type": "Float", + }, + { + "fieldName": "source", + "type": "SanityAssetSourceData", + }, + { + "description": undefined, + "fieldName": "title", + "type": "String", + }, + { + "description": undefined, + "fieldName": "url", + "type": "String", + }, + ], + "interfaces": [ + "Document", + ], + "kind": "Type", + "name": "SanityFileAsset", + "originalName": "sanity.fileAsset", + "type": "Object", + Symbol(internal): {}, + }, + { + "fields": [ + { + "description": "Apply filters on document level", + "fieldName": "_", + "type": "Sanity_DocumentFilter", + }, + { + "fieldName": "_createdAt", + "isReference": undefined, + "type": "DatetimeFilter", + }, + { + "fieldName": "_id", + "isReference": undefined, + "type": "IDFilter", + }, + { + "fieldName": "_key", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_rev", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_type", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_updatedAt", + "isReference": undefined, + "type": "DatetimeFilter", + }, + { + "fieldName": "altText", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "assetId", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "description", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "extension", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "label", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "mimeType", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "originalFilename", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "path", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "sha1hash", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "size", + "isReference": undefined, + "type": "FloatFilter", + }, + { + "fieldName": "source", + "isReference": undefined, + "type": "SanityAssetSourceDataFilter", + }, + { + "fieldName": "title", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "url", + "isReference": undefined, + "type": "StringFilter", + }, + ], + "kind": "InputObject", + "name": "SanityFileAssetFilter", + }, + { + "fields": [ + { + "fieldName": "_createdAt", + "type": "SortOrder", + }, + { + "fieldName": "_id", + "type": "SortOrder", + }, + { + "fieldName": "_key", + "type": "SortOrder", + }, + { + "fieldName": "_rev", + "type": "SortOrder", + }, + { + "fieldName": "_type", + "type": "SortOrder", + }, + { + "fieldName": "_updatedAt", + "type": "SortOrder", + }, + { + "fieldName": "altText", + "type": "SortOrder", + }, + { + "fieldName": "assetId", + "type": "SortOrder", + }, + { + "fieldName": "description", + "type": "SortOrder", + }, + { + "fieldName": "extension", + "type": "SortOrder", + }, + { + "fieldName": "label", + "type": "SortOrder", + }, + { + "fieldName": "mimeType", + "type": "SortOrder", + }, + { + "fieldName": "originalFilename", + "type": "SortOrder", + }, + { + "fieldName": "path", + "type": "SortOrder", + }, + { + "fieldName": "sha1hash", + "type": "SortOrder", + }, + { + "fieldName": "size", + "type": "SortOrder", + }, + { + "fieldName": "source", + "type": "SanityAssetSourceDataSorting", + }, + { + "fieldName": "title", + "type": "SortOrder", + }, + { + "fieldName": "url", + "type": "SortOrder", + }, + ], + "kind": "InputObject", + "name": "SanityFileAssetSorting", + }, + { + "description": undefined, + "fields": [ + { + "description": "Date the document was created", + "fieldName": "_createdAt", + "isNullable": true, + "type": "Datetime", + }, + { + "description": "Document ID", + "fieldName": "_id", + "isNullable": true, + "type": "ID", + }, + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": "Current document revision", + "fieldName": "_rev", + "isNullable": true, + "type": "String", + }, + { + "description": "Document type", + "fieldName": "_type", + "isNullable": true, + "type": "String", + }, + { + "description": "Date the document was last modified", + "fieldName": "_updatedAt", + "isNullable": true, + "type": "Datetime", + }, + { + "description": undefined, + "fieldName": "altText", + "type": "String", + }, + { + "description": undefined, + "fieldName": "assetId", + "type": "String", + }, + { + "description": undefined, + "fieldName": "description", + "type": "String", + }, + { + "description": undefined, + "fieldName": "extension", + "type": "String", + }, + { + "description": undefined, + "fieldName": "label", + "type": "String", + }, + { + "fieldName": "metadata", + "type": "SanityImageMetadata", + }, + { + "description": undefined, + "fieldName": "mimeType", + "type": "String", + }, + { + "description": undefined, + "fieldName": "originalFilename", + "type": "String", + }, + { + "description": undefined, + "fieldName": "path", + "type": "String", + }, + { + "description": undefined, + "fieldName": "sha1hash", + "type": "String", + }, + { + "description": undefined, + "fieldName": "size", + "type": "Float", + }, + { + "fieldName": "source", + "type": "SanityAssetSourceData", + }, + { + "description": undefined, + "fieldName": "title", + "type": "String", + }, + { + "description": undefined, + "fieldName": "uploadId", + "type": "String", + }, + { + "description": undefined, + "fieldName": "url", + "type": "String", + }, + ], + "interfaces": [ + "Document", + ], + "kind": "Type", + "name": "SanityImageAsset", + "originalName": "sanity.imageAsset", + "type": "Object", + Symbol(internal): {}, + }, + { + "fields": [ + { + "description": "Apply filters on document level", + "fieldName": "_", + "type": "Sanity_DocumentFilter", + }, + { + "fieldName": "_createdAt", + "isReference": undefined, + "type": "DatetimeFilter", + }, + { + "fieldName": "_id", + "isReference": undefined, + "type": "IDFilter", + }, + { + "fieldName": "_key", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_rev", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_type", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_updatedAt", + "isReference": undefined, + "type": "DatetimeFilter", + }, + { + "fieldName": "altText", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "assetId", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "description", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "extension", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "label", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "metadata", + "isReference": undefined, + "type": "SanityImageMetadataFilter", + }, + { + "fieldName": "mimeType", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "originalFilename", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "path", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "sha1hash", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "size", + "isReference": undefined, + "type": "FloatFilter", + }, + { + "fieldName": "source", + "isReference": undefined, + "type": "SanityAssetSourceDataFilter", + }, + { + "fieldName": "title", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "uploadId", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "url", + "isReference": undefined, + "type": "StringFilter", + }, + ], + "kind": "InputObject", + "name": "SanityImageAssetFilter", + }, + { + "fields": [ + { + "fieldName": "_createdAt", + "type": "SortOrder", + }, + { + "fieldName": "_id", + "type": "SortOrder", + }, + { + "fieldName": "_key", + "type": "SortOrder", + }, + { + "fieldName": "_rev", + "type": "SortOrder", + }, + { + "fieldName": "_type", + "type": "SortOrder", + }, + { + "fieldName": "_updatedAt", + "type": "SortOrder", + }, + { + "fieldName": "altText", + "type": "SortOrder", + }, + { + "fieldName": "assetId", + "type": "SortOrder", + }, + { + "fieldName": "description", + "type": "SortOrder", + }, + { + "fieldName": "extension", + "type": "SortOrder", + }, + { + "fieldName": "label", + "type": "SortOrder", + }, + { + "fieldName": "metadata", + "type": "SanityImageMetadataSorting", + }, + { + "fieldName": "mimeType", + "type": "SortOrder", + }, + { + "fieldName": "originalFilename", + "type": "SortOrder", + }, + { + "fieldName": "path", + "type": "SortOrder", + }, + { + "fieldName": "sha1hash", + "type": "SortOrder", + }, + { + "fieldName": "size", + "type": "SortOrder", + }, + { + "fieldName": "source", + "type": "SanityAssetSourceDataSorting", + }, + { + "fieldName": "title", + "type": "SortOrder", + }, + { + "fieldName": "uploadId", + "type": "SortOrder", + }, + { + "fieldName": "url", + "type": "SortOrder", + }, + ], + "kind": "InputObject", + "name": "SanityImageAssetSorting", + }, + { + "description": undefined, + "fields": [ + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_type", + "type": "String", + }, + { + "description": undefined, + "fieldName": "bottom", + "type": "Float", + }, + { + "description": undefined, + "fieldName": "left", + "type": "Float", + }, + { + "description": undefined, + "fieldName": "right", + "type": "Float", + }, + { + "description": undefined, + "fieldName": "top", + "type": "Float", + }, + ], + "kind": "Type", + "name": "SanityImageCrop", + "originalName": "sanity.imageCrop", + "type": "Object", + Symbol(internal): {}, + }, + { + "fields": [ + { + "fieldName": "_key", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_type", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "bottom", + "isReference": undefined, + "type": "FloatFilter", + }, + { + "fieldName": "left", + "isReference": undefined, + "type": "FloatFilter", + }, + { + "fieldName": "right", + "isReference": undefined, + "type": "FloatFilter", + }, + { + "fieldName": "top", + "isReference": undefined, + "type": "FloatFilter", + }, + ], + "kind": "InputObject", + "name": "SanityImageCropFilter", + }, + { + "fields": [ + { + "fieldName": "_key", + "type": "SortOrder", + }, + { + "fieldName": "_type", + "type": "SortOrder", + }, + { + "fieldName": "bottom", + "type": "SortOrder", + }, + { + "fieldName": "left", + "type": "SortOrder", + }, + { + "fieldName": "right", + "type": "SortOrder", + }, + { + "fieldName": "top", + "type": "SortOrder", + }, + ], + "kind": "InputObject", + "name": "SanityImageCropSorting", + }, + { + "description": undefined, + "fields": [ + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_type", + "type": "String", + }, + { + "description": undefined, + "fieldName": "aspectRatio", + "type": "Float", + }, + { + "description": undefined, + "fieldName": "height", + "type": "Float", + }, + { + "description": undefined, + "fieldName": "width", + "type": "Float", + }, + ], + "kind": "Type", + "name": "SanityImageDimensions", + "originalName": "sanity.imageDimensions", + "type": "Object", + Symbol(internal): {}, + }, + { + "fields": [ + { + "fieldName": "_key", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_type", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "aspectRatio", + "isReference": undefined, + "type": "FloatFilter", + }, + { + "fieldName": "height", + "isReference": undefined, + "type": "FloatFilter", + }, + { + "fieldName": "width", + "isReference": undefined, + "type": "FloatFilter", + }, + ], + "kind": "InputObject", + "name": "SanityImageDimensionsFilter", + }, + { + "fields": [ + { + "fieldName": "_key", + "type": "SortOrder", + }, + { + "fieldName": "_type", + "type": "SortOrder", + }, + { + "fieldName": "aspectRatio", + "type": "SortOrder", + }, + { + "fieldName": "height", + "type": "SortOrder", + }, + { + "fieldName": "width", + "type": "SortOrder", + }, + ], + "kind": "InputObject", + "name": "SanityImageDimensionsSorting", + }, + { + "description": undefined, + "fields": [ + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_type", + "type": "String", + }, + { + "description": undefined, + "fieldName": "height", + "type": "Float", + }, + { + "description": undefined, + "fieldName": "width", + "type": "Float", + }, + { + "description": undefined, + "fieldName": "x", + "type": "Float", + }, + { + "description": undefined, + "fieldName": "y", + "type": "Float", + }, + ], + "kind": "Type", + "name": "SanityImageHotspot", + "originalName": "sanity.imageHotspot", + "type": "Object", + Symbol(internal): {}, + }, + { + "fields": [ + { + "fieldName": "_key", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_type", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "height", + "isReference": undefined, + "type": "FloatFilter", + }, + { + "fieldName": "width", + "isReference": undefined, + "type": "FloatFilter", + }, + { + "fieldName": "x", + "isReference": undefined, + "type": "FloatFilter", + }, + { + "fieldName": "y", + "isReference": undefined, + "type": "FloatFilter", + }, + ], + "kind": "InputObject", + "name": "SanityImageHotspotFilter", + }, + { + "fields": [ + { + "fieldName": "_key", + "type": "SortOrder", + }, + { + "fieldName": "_type", + "type": "SortOrder", + }, + { + "fieldName": "height", + "type": "SortOrder", + }, + { + "fieldName": "width", + "type": "SortOrder", + }, + { + "fieldName": "x", + "type": "SortOrder", + }, + { + "fieldName": "y", + "type": "SortOrder", + }, + ], + "kind": "InputObject", + "name": "SanityImageHotspotSorting", + }, + { + "description": undefined, + "fields": [ + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_type", + "type": "String", + }, + { + "description": undefined, + "fieldName": "blurHash", + "type": "String", + }, + { + "fieldName": "dimensions", + "type": "SanityImageDimensions", + }, + { + "description": undefined, + "fieldName": "hasAlpha", + "type": "Boolean", + }, + { + "description": undefined, + "fieldName": "isOpaque", + "type": "Boolean", + }, + { + "fieldName": "location", + "type": "Geopoint", + }, + { + "description": undefined, + "fieldName": "lqip", + "type": "String", + }, + { + "fieldName": "palette", + "type": "SanityImagePalette", + }, + ], + "kind": "Type", + "name": "SanityImageMetadata", + "originalName": "sanity.imageMetadata", + "type": "Object", + Symbol(internal): {}, + }, + { + "fields": [ + { + "fieldName": "_key", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_type", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "blurHash", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "dimensions", + "isReference": undefined, + "type": "SanityImageDimensionsFilter", + }, + { + "fieldName": "hasAlpha", + "isReference": undefined, + "type": "BooleanFilter", + }, + { + "fieldName": "isOpaque", + "isReference": undefined, + "type": "BooleanFilter", + }, + { + "fieldName": "location", + "isReference": undefined, + "type": "GeopointFilter", + }, + { + "fieldName": "lqip", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "palette", + "isReference": undefined, + "type": "SanityImagePaletteFilter", + }, + ], + "kind": "InputObject", + "name": "SanityImageMetadataFilter", + }, + { + "fields": [ + { + "fieldName": "_key", + "type": "SortOrder", + }, + { + "fieldName": "_type", + "type": "SortOrder", + }, + { + "fieldName": "blurHash", + "type": "SortOrder", + }, + { + "fieldName": "dimensions", + "type": "SanityImageDimensionsSorting", + }, + { + "fieldName": "hasAlpha", + "type": "SortOrder", + }, + { + "fieldName": "isOpaque", + "type": "SortOrder", + }, + { + "fieldName": "location", + "type": "GeopointSorting", + }, + { + "fieldName": "lqip", + "type": "SortOrder", + }, + { + "fieldName": "palette", + "type": "SanityImagePaletteSorting", + }, + ], + "kind": "InputObject", + "name": "SanityImageMetadataSorting", + }, + { + "description": undefined, + "fields": [ + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_type", + "type": "String", + }, + { + "fieldName": "darkMuted", + "type": "SanityImagePaletteSwatch", + }, + { + "fieldName": "darkVibrant", + "type": "SanityImagePaletteSwatch", + }, + { + "fieldName": "dominant", + "type": "SanityImagePaletteSwatch", + }, + { + "fieldName": "lightMuted", + "type": "SanityImagePaletteSwatch", + }, + { + "fieldName": "lightVibrant", + "type": "SanityImagePaletteSwatch", + }, + { + "fieldName": "muted", + "type": "SanityImagePaletteSwatch", + }, + { + "fieldName": "vibrant", + "type": "SanityImagePaletteSwatch", + }, + ], + "kind": "Type", + "name": "SanityImagePalette", + "originalName": "sanity.imagePalette", + "type": "Object", + Symbol(internal): {}, + }, + { + "fields": [ + { + "fieldName": "_key", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_type", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "darkMuted", + "isReference": undefined, + "type": "SanityImagePaletteSwatchFilter", + }, + { + "fieldName": "darkVibrant", + "isReference": undefined, + "type": "SanityImagePaletteSwatchFilter", + }, + { + "fieldName": "dominant", + "isReference": undefined, + "type": "SanityImagePaletteSwatchFilter", + }, + { + "fieldName": "lightMuted", + "isReference": undefined, + "type": "SanityImagePaletteSwatchFilter", + }, + { + "fieldName": "lightVibrant", + "isReference": undefined, + "type": "SanityImagePaletteSwatchFilter", + }, + { + "fieldName": "muted", + "isReference": undefined, + "type": "SanityImagePaletteSwatchFilter", + }, + { + "fieldName": "vibrant", + "isReference": undefined, + "type": "SanityImagePaletteSwatchFilter", + }, + ], + "kind": "InputObject", + "name": "SanityImagePaletteFilter", + }, + { + "fields": [ + { + "fieldName": "_key", + "type": "SortOrder", + }, + { + "fieldName": "_type", + "type": "SortOrder", + }, + { + "fieldName": "darkMuted", + "type": "SanityImagePaletteSwatchSorting", + }, + { + "fieldName": "darkVibrant", + "type": "SanityImagePaletteSwatchSorting", + }, + { + "fieldName": "dominant", + "type": "SanityImagePaletteSwatchSorting", + }, + { + "fieldName": "lightMuted", + "type": "SanityImagePaletteSwatchSorting", + }, + { + "fieldName": "lightVibrant", + "type": "SanityImagePaletteSwatchSorting", + }, + { + "fieldName": "muted", + "type": "SanityImagePaletteSwatchSorting", + }, + { + "fieldName": "vibrant", + "type": "SanityImagePaletteSwatchSorting", + }, + ], + "kind": "InputObject", + "name": "SanityImagePaletteSorting", + }, + { + "description": undefined, + "fields": [ + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_type", + "type": "String", + }, + { + "description": undefined, + "fieldName": "background", + "type": "String", + }, + { + "description": undefined, + "fieldName": "foreground", + "type": "String", + }, + { + "description": undefined, + "fieldName": "population", + "type": "Float", + }, + { + "description": undefined, + "fieldName": "title", + "type": "String", + }, + ], + "kind": "Type", + "name": "SanityImagePaletteSwatch", + "originalName": "sanity.imagePaletteSwatch", + "type": "Object", + Symbol(internal): {}, + }, + { + "fields": [ + { + "fieldName": "_key", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_type", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "background", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "foreground", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "population", + "isReference": undefined, + "type": "FloatFilter", + }, + { + "fieldName": "title", + "isReference": undefined, + "type": "StringFilter", + }, + ], + "kind": "InputObject", + "name": "SanityImagePaletteSwatchFilter", + }, + { + "fields": [ + { + "fieldName": "_key", + "type": "SortOrder", + }, + { + "fieldName": "_type", + "type": "SortOrder", + }, + { + "fieldName": "background", + "type": "SortOrder", + }, + { + "fieldName": "foreground", + "type": "SortOrder", + }, + { + "fieldName": "population", + "type": "SortOrder", + }, + { + "fieldName": "title", + "type": "SortOrder", + }, + ], + "kind": "InputObject", + "name": "SanityImagePaletteSwatchSorting", + }, + { + "fields": [ + { + "description": "All documents that are drafts.", + "fieldName": "is_draft", + "type": "Boolean", + }, + { + "description": "All documents referencing the given document ID.", + "fieldName": "references", + "type": "ID", + }, + ], + "isConstraintFilter": true, + "kind": "InputObject", + "name": "Sanity_DocumentFilter", + }, + { + "fields": [], + "kind": "Enum", + "name": "SortOrder", + "values": [ + { + "description": "Sorts on the value in ascending order.", + "name": "ASC", + "value": 1, + }, + { + "description": "Sorts on the value in descending order.", + "name": "DESC", + "value": 2, + }, + ], + }, + { + "description": undefined, + "fields": [ + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": undefined, + "fieldName": "_type", + "type": "String", + }, + { + "children": { + "type": "String", + }, + "description": undefined, + "fieldName": "marks", + "kind": "List", + }, + { + "description": undefined, + "fieldName": "text", + "type": "String", + }, + ], + "kind": "Type", + "name": "Span", + "originalName": "span", + "type": "Object", + Symbol(internal): {}, + }, + { + "fields": [ + { + "description": "Checks if the value is equal to the given input.", + "fieldName": "eq", + "type": "String", + }, + { + "children": { + "isNullable": false, + "type": "String", + }, + "description": "Checks if the value is equal to one of the given values.", + "fieldName": "in", + "kind": "List", + }, + { + "description": "Checks if the value is defined.", + "fieldName": "is_defined", + "type": "Boolean", + }, + { + "description": "Checks if the value matches the given word/words.", + "fieldName": "matches", + "type": "String", + }, + { + "description": "Checks if the value is not equal to the given input.", + "fieldName": "neq", + "type": "String", + }, + { + "children": { + "isNullable": false, + "type": "String", + }, + "description": "Checks if the value is not equal to one of the given values.", + "fieldName": "nin", + "kind": "List", + }, + ], + "isConstraintFilter": true, + "kind": "InputObject", + "name": "StringFilter", + }, + { + "children": { + "description": undefined, + "isReference": true, + "references": undefined, + "type": "AOrUnion", + }, + "description": undefined, + "fields": [], + "kind": "List", + "name": "Title", + "originalName": "title", + }, + { + "description": undefined, + "fields": [ + { + "description": "Date the document was created", + "fieldName": "_createdAt", + "isNullable": true, + "type": "Datetime", + }, + { + "description": "Document ID", + "fieldName": "_id", + "isNullable": true, + "type": "ID", + }, + { + "description": undefined, + "fieldName": "_key", + "type": "String", + }, + { + "description": "Current document revision", + "fieldName": "_rev", + "isNullable": true, + "type": "String", + }, + { + "description": "Document type", + "fieldName": "_type", + "isNullable": true, + "type": "String", + }, + { + "description": "Date the document was last modified", + "fieldName": "_updatedAt", + "isNullable": true, + "type": "Datetime", + }, + { + "children": { + "inlineObjects": undefined, + "references": [ + "A", + "B", + ], + "type": "AOrB", + }, + "description": undefined, + "fieldName": "body", + "kind": "List", + }, + ], + "interfaces": [ + "Document", + ], + "kind": "Type", + "name": "Union", + "originalName": "union", + "type": "Object", + Symbol(internal): {}, + }, + { + "fields": [ + { + "description": "Apply filters on document level", + "fieldName": "_", + "type": "Sanity_DocumentFilter", + }, + { + "fieldName": "_createdAt", + "isReference": undefined, + "type": "DatetimeFilter", + }, + { + "fieldName": "_id", + "isReference": undefined, + "type": "IDFilter", + }, + { + "fieldName": "_key", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_rev", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_type", + "isReference": undefined, + "type": "StringFilter", + }, + { + "fieldName": "_updatedAt", + "isReference": undefined, + "type": "DatetimeFilter", + }, + ], + "kind": "InputObject", + "name": "UnionFilter", + }, + { + "fields": [ + { + "fieldName": "_createdAt", + "type": "SortOrder", + }, + { + "fieldName": "_id", + "type": "SortOrder", + }, + { + "fieldName": "_key", + "type": "SortOrder", + }, + { + "fieldName": "_rev", + "type": "SortOrder", + }, + { + "fieldName": "_type", + "type": "SortOrder", + }, + { + "fieldName": "_updatedAt", + "type": "SortOrder", + }, + ], + "kind": "InputObject", + "name": "UnionSorting", + }, + ], +} +`; diff --git a/packages/sanity/test/cli/graphql/extract.test.ts b/packages/sanity/test/cli/graphql/extract.test.ts index 1e189f611cb..cf970cb0630 100644 --- a/packages/sanity/test/cli/graphql/extract.test.ts +++ b/packages/sanity/test/cli/graphql/extract.test.ts @@ -4,6 +4,7 @@ import {afterEach, beforeEach, describe, expect, it, vi} from 'vitest' import {extractFromSanitySchema} from '../../../src/_internal/cli/actions/graphql/extractFromSanitySchema' import {type ApiSpecification} from '../../../src/_internal/cli/actions/graphql/types' import testStudioSchema from './fixtures/test-studio' +import unionRefsSchema from './fixtures/union-refs' describe('GraphQL - Schema extraction', () => { beforeEach(() => { @@ -15,13 +16,21 @@ describe('GraphQL - Schema extraction', () => { vi.runAllTimers() }) - it('Should be able to extract schema', () => { + it('Should be able to extract a simple schema', () => { const extracted = extractFromSanitySchema(testStudioSchema, { nonNullDocumentFields: false, }) expect(sortExtracted(extracted)).toMatchSnapshot() }) + + it('Should be able to extract schema with union refs', () => { + const extracted = extractFromSanitySchema(unionRefsSchema, { + nonNullDocumentFields: false, + }) + + expect(sortExtracted(extracted)).toMatchSnapshot() + }) }) function sortExtracted(schema: ApiSpecification) { diff --git a/packages/sanity/test/cli/graphql/fixtures/union-refs.ts b/packages/sanity/test/cli/graphql/fixtures/union-refs.ts new file mode 100644 index 00000000000..94cdf6d4b5a --- /dev/null +++ b/packages/sanity/test/cli/graphql/fixtures/union-refs.ts @@ -0,0 +1,483 @@ +import {Schema} from '@sanity/schema' +import {defineField, defineType} from 'sanity' + +export const root = defineType({ + name: 'title', + type: 'array', + of: [ + { + type: 'reference', + to: [{type: 'union'}, {type: 'a'}], + }, + ], +}) + +export const union = defineType({ + type: 'document', + name: 'union', + fields: [ + defineField({ + name: 'body', + type: 'array', + of: [ + { + type: 'reference', + to: [{type: 'a'}, {type: 'b'}], + }, + {type: 'a'}, + ], + }), + ], +}) + +export const a = defineType({ + type: 'document', + name: 'a', + fields: [defineField({name: 'title', type: 'string'})], +}) +export const b = defineType({ + type: 'document', + name: 'b', + fields: [defineField({name: 'title', type: 'string'})], +}) +//export const schemaTypes = [root, union, a, b] +export default Schema.compile({ + types: [ + root, + union, + a, + b, + { + title: 'Geographical Point', + name: 'geopoint', + type: 'object', + fields: [ + { + name: 'lat', + type: 'number', + title: 'Latitude', + }, + { + name: 'lng', + type: 'number', + title: 'Longitude', + }, + { + name: 'alt', + type: 'number', + title: 'Altitude', + }, + ], + }, + { + name: 'sanity.fileAsset', + title: 'File', + type: 'document', + fieldsets: [ + { + name: 'system', + title: 'System fields', + description: 'These fields are managed by the system and not editable', + }, + ], + fields: [ + { + name: 'originalFilename', + type: 'string', + title: 'Original file name', + readOnly: true, + }, + { + name: 'label', + type: 'string', + title: 'Label', + }, + { + name: 'title', + type: 'string', + title: 'Title', + }, + { + name: 'description', + type: 'string', + title: 'Description', + }, + { + name: 'altText', + type: 'string', + title: 'Alternative text', + }, + { + name: 'sha1hash', + type: 'string', + title: 'SHA1 hash', + readOnly: true, + fieldset: 'system', + }, + { + name: 'extension', + type: 'string', + title: 'File extension', + readOnly: true, + fieldset: 'system', + }, + { + name: 'mimeType', + type: 'string', + title: 'Mime type', + readOnly: true, + fieldset: 'system', + }, + { + name: 'size', + type: 'number', + title: 'File size in bytes', + readOnly: true, + fieldset: 'system', + }, + { + name: 'assetId', + type: 'string', + title: 'Asset ID', + readOnly: true, + fieldset: 'system', + }, + { + name: 'path', + type: 'string', + title: 'Path', + readOnly: true, + fieldset: 'system', + }, + { + name: 'url', + type: 'string', + title: 'Url', + readOnly: true, + fieldset: 'system', + }, + { + name: 'source', + type: 'sanity.assetSourceData', + title: 'Source', + readOnly: true, + fieldset: 'system', + }, + ], + preview: { + select: { + title: 'originalFilename', + path: 'path', + mimeType: 'mimeType', + size: 'size', + }, + prepare(doc: any) { + return { + title: doc.title || doc.path.split('/').slice(-1)[0], + subtitle: `${doc.mimeType} (${(doc.size / 1024 / 1024).toFixed(2)} MB)`, + } + }, + }, + orderings: [ + { + title: 'File size', + name: 'fileSizeDesc', + by: [{field: 'size', direction: 'desc'}], + }, + ], + }, + { + name: 'sanity.imageHotspot', + title: 'Image hotspot', + type: 'object', + fields: [ + { + name: 'x', + type: 'number', + }, + { + name: 'y', + type: 'number', + }, + { + name: 'height', + type: 'number', + }, + { + name: 'width', + type: 'number', + }, + ], + }, + { + name: 'sanity.imageMetadata', + title: 'Image metadata', + type: 'object', + fieldsets: [ + { + name: 'extra', + title: 'Extra metadata…', + options: { + collapsable: true, + }, + }, + ], + fields: [ + { + name: 'location', + type: 'geopoint', + }, + { + name: 'dimensions', + title: 'Dimensions', + type: 'sanity.imageDimensions', + fieldset: 'extra', + }, + { + name: 'palette', + type: 'sanity.imagePalette', + title: 'Palette', + fieldset: 'extra', + }, + { + name: 'lqip', + title: 'LQIP (Low-Quality Image Placeholder)', + type: 'string', + readOnly: true, + }, + { + name: 'blurHash', + title: 'BlurHash', + type: 'string', + readOnly: true, + }, + { + name: 'hasAlpha', + title: 'Has alpha channel', + type: 'boolean', + readOnly: true, + }, + { + name: 'isOpaque', + title: 'Is opaque', + type: 'boolean', + readOnly: true, + }, + ], + }, + { + name: 'sanity.assetSourceData', + title: 'Asset Source Data', + type: 'object', + fields: [ + { + name: 'name', + title: 'Source name', + description: 'A canonical name for the source this asset is originating from', + type: 'string', + }, + { + name: 'id', + title: 'Asset Source ID', + description: + 'The unique ID for the asset within the originating source so you can programatically find back to it', + type: 'string', + }, + { + name: 'url', + title: 'Asset information URL', + description: 'A URL to find more information about this asset in the originating source', + type: 'string', + }, + ], + }, + { + name: 'sanity.imageCrop', + title: 'Image crop', + type: 'object', + fields: [ + { + name: 'top', + type: 'number', + }, + { + name: 'bottom', + type: 'number', + }, + { + name: 'left', + type: 'number', + }, + { + name: 'right', + type: 'number', + }, + ], + }, + { + name: 'sanity.imageDimensions', + type: 'object', + title: 'Image dimensions', + fields: [ + {name: 'height', type: 'number', title: 'Height', readOnly: true}, + {name: 'width', type: 'number', title: 'Width', readOnly: true}, + {name: 'aspectRatio', type: 'number', title: 'Aspect ratio', readOnly: true}, + ], + }, + { + name: 'sanity.imagePalette', + title: 'Image palette', + type: 'object', + fields: [ + {name: 'darkMuted', type: 'sanity.imagePaletteSwatch', title: 'Dark Muted'}, + {name: 'lightVibrant', type: 'sanity.imagePaletteSwatch', title: 'Light Vibrant'}, + {name: 'darkVibrant', type: 'sanity.imagePaletteSwatch', title: 'Dark Vibrant'}, + {name: 'vibrant', type: 'sanity.imagePaletteSwatch', title: 'Vibrant'}, + {name: 'dominant', type: 'sanity.imagePaletteSwatch', title: 'Dominant'}, + {name: 'lightMuted', type: 'sanity.imagePaletteSwatch', title: 'Light Muted'}, + {name: 'muted', type: 'sanity.imagePaletteSwatch', title: 'Muted'}, + ], + }, + { + name: 'sanity.imagePaletteSwatch', + title: 'Image palette swatch', + type: 'object', + fields: [ + {name: 'background', type: 'string', title: 'Background', readOnly: true}, + {name: 'foreground', type: 'string', title: 'Foreground', readOnly: true}, + {name: 'population', type: 'number', title: 'Population', readOnly: true}, + {name: 'title', type: 'string', title: 'String', readOnly: true}, + ], + }, + { + name: 'sanity.imageAsset', + title: 'Image', + type: 'document', + fieldsets: [ + { + name: 'system', + title: 'System fields', + description: 'These fields are managed by the system and not editable', + }, + ], + fields: [ + { + name: 'originalFilename', + type: 'string', + title: 'Original file name', + readOnly: true, + }, + { + name: 'label', + type: 'string', + title: 'Label', + }, + { + name: 'title', + type: 'string', + title: 'Title', + }, + { + name: 'description', + type: 'string', + title: 'Description', + }, + { + name: 'altText', + type: 'string', + title: 'Alternative text', + }, + { + name: 'sha1hash', + type: 'string', + title: 'SHA1 hash', + readOnly: true, + fieldset: 'system', + }, + { + name: 'extension', + type: 'string', + readOnly: true, + title: 'File extension', + fieldset: 'system', + }, + { + name: 'mimeType', + type: 'string', + readOnly: true, + title: 'Mime type', + fieldset: 'system', + }, + { + name: 'size', + type: 'number', + title: 'File size in bytes', + readOnly: true, + fieldset: 'system', + }, + { + name: 'assetId', + type: 'string', + title: 'Asset ID', + readOnly: true, + fieldset: 'system', + }, + { + name: 'uploadId', + type: 'string', + readOnly: true, + hidden: true, + fieldset: 'system', + }, + { + name: 'path', + type: 'string', + title: 'Path', + readOnly: true, + fieldset: 'system', + }, + { + name: 'url', + type: 'string', + title: 'Url', + readOnly: true, + fieldset: 'system', + }, + { + name: 'metadata', + type: 'sanity.imageMetadata', + title: 'Metadata', + }, + { + name: 'source', + type: 'sanity.assetSourceData', + title: 'Source', + readOnly: true, + fieldset: 'system', + }, + ], + preview: { + select: { + id: '_id', + title: 'originalFilename', + mimeType: 'mimeType', + size: 'size', + }, + prepare(doc: any) { + return { + title: doc.title || doc.path.split('/').slice(-1)[0], + media: {asset: {_ref: doc.id}}, + subtitle: `${doc.mimeType} (${(doc.size / 1024 / 1024).toFixed(2)} MB)`, + } + }, + }, + orderings: [ + { + title: 'File size', + name: 'fileSizeDesc', + by: [{field: 'size', direction: 'desc'}], + }, + ], + }, + ], +}) diff --git a/packages/sanity/test/cli/graphql/gen3.test.ts b/packages/sanity/test/cli/graphql/gen3.test.ts index c57d7d7bb5f..4bf46215fc3 100644 --- a/packages/sanity/test/cli/graphql/gen3.test.ts +++ b/packages/sanity/test/cli/graphql/gen3.test.ts @@ -5,6 +5,7 @@ import {extractFromSanitySchema} from '../../../src/_internal/cli/actions/graphq import generateSchema from '../../../src/_internal/cli/actions/graphql/gen3' import manySelfRefsSchema from './fixtures/many-self-refs' import testStudioSchema from './fixtures/test-studio' +import unionRefsSchema from './fixtures/union-refs' describe('GraphQL - Generation 3', () => { beforeEach(() => { @@ -46,6 +47,7 @@ describe('GraphQL - Generation 3', () => { describe.each([ {name: 'testStudioSchema', sanitySchema: testStudioSchema}, {name: 'manySelfRefsSchema', sanitySchema: manySelfRefsSchema}, + {name: 'unionRefsSchema', sanitySchema: unionRefsSchema}, ])(`Union cache: sanitySchema: $name`, ({sanitySchema}) => { /** * @jest-environment jsdom diff --git a/packages/sanity/test/form/renderArrayOfObjectsInput.tsx b/packages/sanity/test/form/renderArrayOfObjectsInput.tsx index d57d3b4d3e7..53f78d73748 100644 --- a/packages/sanity/test/form/renderArrayOfObjectsInput.tsx +++ b/packages/sanity/test/form/renderArrayOfObjectsInput.tsx @@ -1,5 +1,4 @@ import {type ArraySchemaType, type FieldDefinition} from '@sanity/types' -import {type ReactElement} from 'react' import {vi} from 'vitest' import { @@ -22,7 +21,7 @@ const noopRenderDefault = () => <></> export type TestRenderArrayOfObjectInputCallback = ( inputProps: ArrayOfObjectsInputProps, -) => ReactElement +) => React.JSX.Element export async function renderArrayOfObjectsInput(options: { fieldDefinition: FieldDefinition<'array'> diff --git a/packages/sanity/test/form/renderBooleanInput.tsx b/packages/sanity/test/form/renderBooleanInput.tsx index ce72d7c9fc2..b073a35322f 100644 --- a/packages/sanity/test/form/renderBooleanInput.tsx +++ b/packages/sanity/test/form/renderBooleanInput.tsx @@ -1,5 +1,4 @@ import {type BooleanSchemaType, type FieldDefinition} from '@sanity/types' -import {type ReactElement} from 'react' import {type BooleanInputProps, type PrimitiveInputElementProps} from '../../src/core' import {renderInput, type RenderInputResult, type TestRenderInputProps} from './renderInput' @@ -7,7 +6,7 @@ import {type TestRenderProps} from './types' const noopRenderDefault = () => <></> -export type TestRenderBooleanInputCallback = (inputProps: BooleanInputProps) => ReactElement +export type TestRenderBooleanInputCallback = (inputProps: BooleanInputProps) => React.JSX.Element export async function renderBooleanInput(options: { fieldDefinition: FieldDefinition<'boolean'> diff --git a/packages/sanity/test/form/renderCrossDatasetReferenceInput.tsx b/packages/sanity/test/form/renderCrossDatasetReferenceInput.tsx index 7c8e3e2a615..d26f5771804 100644 --- a/packages/sanity/test/form/renderCrossDatasetReferenceInput.tsx +++ b/packages/sanity/test/form/renderCrossDatasetReferenceInput.tsx @@ -3,7 +3,6 @@ import { type FieldDefinition, type SchemaTypeDefinition, } from '@sanity/types' -import {type ReactElement} from 'react' import {of} from 'rxjs' import {type ObjectInputProps} from '../../src/core' @@ -17,7 +16,7 @@ const EMPTY_SEARCH = () => of([]) export type TestRenderCrossDatasetReferenceInputCallback = ( inputProps: CrossDatasetReferenceInputProps, context: TestRenderInputContext, -) => ReactElement +) => React.JSX.Element export async function renderCrossDatasetReferenceInput(options: { fieldDefinition: SchemaTypeDefinition<'reference'> diff --git a/packages/sanity/test/form/renderFileInput.tsx b/packages/sanity/test/form/renderFileInput.tsx index 667a0313bc9..b8f78066bab 100644 --- a/packages/sanity/test/form/renderFileInput.tsx +++ b/packages/sanity/test/form/renderFileInput.tsx @@ -4,7 +4,6 @@ import { type FileSchemaType, type SchemaTypeDefinition, } from '@sanity/types' -import {type ReactElement} from 'react' import {EMPTY} from 'rxjs' import {type ObjectInputProps} from '../../src/core' @@ -27,7 +26,7 @@ const STUB_RESOLVE_UPLOADER = () => ({ export type TestRenderFileInputCallback = ( inputProps: BaseFileInputProps, context: TestRenderInputContext, -) => ReactElement +) => React.JSX.Element export async function renderFileInput(options: { assetSources?: BaseFileInputProps['assetSources'] diff --git a/packages/sanity/test/form/renderImageInput.tsx b/packages/sanity/test/form/renderImageInput.tsx index 371a816dc53..9169cd44001 100644 --- a/packages/sanity/test/form/renderImageInput.tsx +++ b/packages/sanity/test/form/renderImageInput.tsx @@ -4,7 +4,6 @@ import { type ImageSchemaType, type SchemaTypeDefinition, } from '@sanity/types' -import {type ReactElement} from 'react' import {EMPTY} from 'rxjs' import {type ImageUrlBuilder, type ObjectInputProps} from '../../src/core' @@ -16,7 +15,7 @@ import {type TestRenderProps} from './types' export type TestRenderImageInputCallback = ( inputProps: BaseImageInputProps, context: TestRenderInputContext, -) => ReactElement +) => React.JSX.Element export async function renderImageInput(options: { fieldDefinition: SchemaTypeDefinition<'image'> diff --git a/packages/sanity/test/form/renderInput.tsx b/packages/sanity/test/form/renderInput.tsx index 096b046c4f0..1e411d472aa 100644 --- a/packages/sanity/test/form/renderInput.tsx +++ b/packages/sanity/test/form/renderInput.tsx @@ -8,7 +8,7 @@ import { type SchemaType, } from '@sanity/types' import {render} from '@testing-library/react' -import {type FocusEvent, type ReactElement, type RefObject} from 'react' +import {type FocusEvent, type RefObject} from 'react' import {type MockInstance, vi} from 'vitest' import { @@ -54,7 +54,7 @@ export interface TestRenderInputProps<ElementProps> { export type TestRenderInputCallback<ElementProps> = ( inputProps: TestRenderInputProps<ElementProps>, context: TestRenderInputContext, -) => ReactElement +) => React.JSX.Element export type RenderInputResult = { container: Element diff --git a/packages/sanity/test/form/renderNumberInput.tsx b/packages/sanity/test/form/renderNumberInput.tsx index 40bae8fa524..fae49ef4ea9 100644 --- a/packages/sanity/test/form/renderNumberInput.tsx +++ b/packages/sanity/test/form/renderNumberInput.tsx @@ -1,5 +1,4 @@ import {type FieldDefinition, type NumberSchemaType} from '@sanity/types' -import {type ReactElement} from 'react' import {type NumberInputProps, type PrimitiveInputElementProps} from '../../src/core' import {renderInput, type TestRenderInputContext, type TestRenderInputProps} from './renderInput' @@ -10,7 +9,7 @@ const noopRenderDefault = () => <></> export type TestRenderNumberInputCallback = ( inputProps: NumberInputProps, context: TestRenderInputContext, -) => ReactElement +) => React.JSX.Element export async function renderNumberInput(options: { fieldDefinition: FieldDefinition<'number'> diff --git a/packages/sanity/test/form/renderObjectInput.tsx b/packages/sanity/test/form/renderObjectInput.tsx index 0d6955b1d0a..a98db484631 100644 --- a/packages/sanity/test/form/renderObjectInput.tsx +++ b/packages/sanity/test/form/renderObjectInput.tsx @@ -1,5 +1,4 @@ import {type FieldDefinition, type ObjectSchemaType} from '@sanity/types' -import {type ReactElement} from 'react' import {vi} from 'vitest' import { @@ -23,7 +22,7 @@ const noopRenderDefault = () => <></> export type TestRenderObjectInputCallback = ( inputProps: ObjectInputProps, context: TestRenderInputContext, -) => ReactElement +) => React.JSX.Element export async function renderObjectInput(options: { fieldDefinition: FieldDefinition<'object'> diff --git a/packages/sanity/test/form/renderStringInput.tsx b/packages/sanity/test/form/renderStringInput.tsx index 82f60e88c0c..8b91394e07a 100644 --- a/packages/sanity/test/form/renderStringInput.tsx +++ b/packages/sanity/test/form/renderStringInput.tsx @@ -1,5 +1,4 @@ import {type FieldDefinition, type StringSchemaType} from '@sanity/types' -import {type ReactElement} from 'react' import {type PrimitiveInputElementProps, type StringInputProps} from '../../src/core' import {renderInput, type TestRenderInputContext, type TestRenderInputProps} from './renderInput' @@ -10,7 +9,7 @@ const noopRenderDefault = () => <></> export type TestRenderStringInputCallback = ( inputProps: StringInputProps, context: TestRenderInputContext, -) => ReactElement +) => React.JSX.Element export async function renderStringInput(options: { fieldDefinition: FieldDefinition<'date' | 'datetime' | 'string' | 'url'> diff --git a/perf/.depcheckrc.json b/perf/.depcheckrc.json index 175eeefafe6..4926fa91a06 100644 --- a/perf/.depcheckrc.json +++ b/perf/.depcheckrc.json @@ -1,3 +1,3 @@ { - "ignores": ["@repo/tsconfig", "sanity", "babel-plugin-react-compiler", "react-compiler-runtime"] + "ignores": ["@repo/tsconfig", "sanity", "babel-plugin-react-compiler"] } diff --git a/perf/efps/.depcheckrc.json b/perf/efps/.depcheckrc.json index 3c86d3e4081..e26d712357e 100644 --- a/perf/efps/.depcheckrc.json +++ b/perf/efps/.depcheckrc.json @@ -3,7 +3,6 @@ "@swc-node/register", "@types/react", "@types/react-dom", - "babel-plugin-react-compiler", - "react-compiler-runtime" + "babel-plugin-react-compiler" ] } diff --git a/perf/efps/package.json b/perf/efps/package.json index 02b34f46c55..853d92c297a 100644 --- a/perf/efps/package.json +++ b/perf/efps/package.json @@ -18,21 +18,20 @@ "devDependencies": { "@sanity/client": "^6.24.1", "@swc-node/register": "^1.10.9", - "@types/react": "^18.3.12", - "@types/react-dom": "^18.3.1", + "@types/react": "^19.0.3", + "@types/react-dom": "^19.0.2", "@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-55955c9-20241229", + "babel-plugin-react-compiler": "19.0.0-beta-63e3235-20250105", "chalk": "^4.1.2", "cli-table3": "^0.6.5", "dotenv": "^16.0.3", "globby": "^11.1.0", "ora": "^8.0.1", "playwright": "^1.46.1", - "react": "^18.3.1", - "react-compiler-runtime": "19.0.0-beta-55955c9-20241229", - "react-dom": "^18.3.1", + "react": "^19.0.0", + "react-dom": "^19.0.0", "rollup-plugin-sourcemaps": "^0.6.3", "sanity": "workspace:*", "serve-handler": "^6.1.5", diff --git a/perf/studio/package.json b/perf/studio/package.json index 5071e22b455..870c6233a52 100644 --- a/perf/studio/package.json +++ b/perf/studio/package.json @@ -1,6 +1,6 @@ { "name": "perf-studio", - "version": "3.68.3", + "version": "3.69.0", "private": true, "description": "Sanity Studio with various test cases for tracking performance", "license": "MIT", @@ -14,10 +14,9 @@ "start": "sanity start --port 3300" }, "dependencies": { - "babel-plugin-react-compiler": "19.0.0-beta-55955c9-20241229", - "react": "^18.3.1", - "react-compiler-runtime": "19.0.0-beta-55955c9-20241229", - "react-dom": "^18.3.1", + "babel-plugin-react-compiler": "19.0.0-beta-63e3235-20250105", + "react": "^19.0.0", + "react-dom": "^19.0.0", "sanity": "workspace:*", "styled-components": "^6.1.0" } diff --git a/perf/studio/sanity.cli.ts b/perf/studio/sanity.cli.ts index c0b0c04ed38..8cb813f8d91 100644 --- a/perf/studio/sanity.cli.ts +++ b/perf/studio/sanity.cli.ts @@ -7,5 +7,5 @@ export default defineCliConfig({ projectId: STUDIO_PROJECT_ID, dataset: STUDIO_DATASET, }, - reactCompiler: {target: '18'}, + reactCompiler: {target: '19'}, }) diff --git a/perf/tests/package.json b/perf/tests/package.json index 155cea27e29..6b8398c6751 100644 --- a/perf/tests/package.json +++ b/perf/tests/package.json @@ -1,6 +1,6 @@ { "name": "sanity-perf-tests", - "version": "3.68.3", + "version": "3.69.0", "private": true, "description": "Sanity Studio perf tests", "license": "MIT", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 32e5420737d..69d90d83950 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -48,8 +48,8 @@ importers: specifier: ^0.11.1 version: 0.11.1(debug@4.4.0) '@sanity/pkg-utils': - specifier: 6.12.3 - version: 6.12.3(@types/babel__core@7.20.5)(@types/node@22.10.2)(babel-plugin-react-compiler@19.0.0-beta-55955c9-20241229)(typescript@5.7.2) + specifier: 6.13.2 + version: 6.13.2(@types/babel__core@7.20.5)(@types/node@22.10.2)(typescript@5.7.2) '@sanity/prettier-config': specifier: ^1.0.3 version: 1.0.3(prettier@3.4.2) @@ -57,11 +57,11 @@ importers: specifier: 0.0.1-alpha.1 version: 0.0.1-alpha.1 '@sanity/tsdoc': - specifier: 1.0.157 - version: 1.0.157(@emotion/is-prop-valid@1.3.1)(@types/babel__core@7.20.5)(@types/node@22.10.2)(react-dom@19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522))(react-is@19.0.0-rc.1)(react@19.0.0-rc-f994737d14-20240522)(sanity@packages+sanity)(styled-components@6.1.13(react-dom@19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522))(react@19.0.0-rc-f994737d14-20240522))(terser@5.37.0)(yaml@2.6.1) + specifier: 1.0.164 + version: 1.0.164(@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/ui': - specifier: ^2.10.14 - version: 2.10.14(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522))(react-is@19.0.0-rc.1)(react@19.0.0-rc-f994737d14-20240522)(styled-components@6.1.13(react-dom@19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522))(react@19.0.0-rc-f994737d14-20240522)) + 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)) '@sanity/uuid': specifier: ^3.0.2 version: 3.0.2 @@ -75,8 +75,8 @@ importers: specifier: ^22.10.0 version: 22.10.2 '@types/react': - specifier: ^18.3.12 - version: 18.3.18 + specifier: ^19.0.3 + version: 19.0.3 '@types/semver': specifier: ^7.5.6 version: 7.5.8 @@ -141,8 +141,8 @@ importers: specifier: ^7.36.1 version: 7.37.2(eslint@8.57.1) eslint-plugin-react-compiler: - specifier: 19.0.0-beta-55955c9-20241229 - version: 19.0.0-beta-55955c9-20241229(eslint@8.57.1) + specifier: 19.0.0-beta-63e3235-20250105 + version: 19.0.0-beta-63e3235-20250105(eslint@8.57.1) eslint-plugin-react-hooks: specifier: ^4.6.2 version: 4.6.2(eslint@8.57.1) @@ -233,11 +233,11 @@ importers: dev/design-studio: dependencies: '@sanity/icons': - specifier: ^3.5.6 + specifier: ^3.5.7 version: 3.5.7(react@18.3.1) '@sanity/ui': - specifier: ^2.10.14 - version: 2.10.14(@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.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + 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)) react: specifier: ^18.3.1 version: 18.3.1 @@ -249,13 +249,13 @@ importers: version: link:../../packages/sanity styled-components: specifier: ^6.1.0 - version: 6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1) dev/embedded-studio: dependencies: '@sanity/ui': - specifier: ^2.10.14 - version: 2.10.14(@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.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + 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)) react: specifier: ^18.3.1 version: 18.3.1 @@ -267,14 +267,14 @@ importers: version: link:../../packages/sanity styled-components: specifier: ^6.1.0 - version: 6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: '@types/react': - specifier: ^18.3.18 - version: 18.3.18 + specifier: ^19.0.3 + version: 19.0.3 '@types/react-dom': - specifier: ^18.3.5 - version: 18.3.5(@types/react@18.3.18) + specifier: ^19.0.2 + version: 19.0.2(@types/react@19.0.3) '@vitejs/plugin-react': specifier: ^4.3.4 version: 4.3.4(vite@5.4.11(@types/node@22.10.2)(terser@5.37.0)) @@ -291,8 +291,8 @@ importers: specifier: workspace:* version: link:../../packages/@sanity/vision babel-plugin-react-compiler: - specifier: 19.0.0-beta-55955c9-20241229 - version: 19.0.0-beta-55955c9-20241229 + specifier: 19.0.0-beta-63e3235-20250105 + version: 19.0.0-beta-63e3235-20250105 react: specifier: ^18.2.0 version: 18.3.1 @@ -310,31 +310,13 @@ importers: version: link:../../packages/sanity styled-components: specifier: ^6.1.8 - version: 6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - - dev/starter-next-studio: - dependencies: - next: - specifier: ^14.0.0 - version: 14.2.21(@babel/core@7.26.0)(@playwright/test@1.49.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: - specifier: ^18.3.1 - version: 18.3.1 - react-dom: - specifier: ^18.3.1 - version: 18.3.1(react@18.3.1) - sanity: - specifier: workspace:* - version: link:../../packages/sanity - styled-components: - specifier: ^6.1.0 - version: 6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1) dev/starter-studio: dependencies: babel-plugin-react-compiler: - specifier: 19.0.0-beta-55955c9-20241229 - version: 19.0.0-beta-55955c9-20241229 + specifier: 19.0.0-beta-63e3235-20250105 + version: 19.0.0-beta-63e3235-20250105 react: specifier: ^18.3.1 version: 18.3.1 @@ -349,7 +331,7 @@ importers: version: link:../../packages/sanity styled-components: specifier: ^6.1.0 - version: 6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1) dev/strict-studio: dependencies: @@ -364,61 +346,58 @@ importers: version: link:../../packages/sanity styled-components: specifier: ^6.1.0 - version: 6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1) dev/studio-e2e-testing: dependencies: '@sanity/color-input': specifier: ^4.0.1 - version: 4.0.3(@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)(sanity@packages+sanity)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + version: 4.0.3(@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)(sanity@packages+sanity)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) '@sanity/google-maps-input': specifier: ^4.0.0 - version: 4.1.0(@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)(sanity@packages+sanity)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + version: 4.1.0(@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)(sanity@packages+sanity)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) '@sanity/icons': - specifier: ^3.5.6 - version: 3.5.7(react@18.3.1) + specifier: ^3.5.7 + version: 3.5.7(react@19.0.0) '@sanity/ui': - specifier: ^2.10.14 - version: 2.10.14(@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.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + 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)) '@sanity/vision': - specifier: 3.68.3 + specifier: 3.69.0 version: link:../../packages/@sanity/vision babel-plugin-react-compiler: - specifier: 19.0.0-beta-55955c9-20241229 - version: 19.0.0-beta-55955c9-20241229 + specifier: 19.0.0-beta-63e3235-20250105 + version: 19.0.0-beta-63e3235-20250105 react: - specifier: ^18.3.1 - version: 18.3.1 - react-compiler-runtime: - specifier: 19.0.0-beta-55955c9-20241229 - version: 19.0.0-beta-55955c9-20241229(react@18.3.1) + specifier: ^19.0.0 + version: 19.0.0 react-dom: - specifier: ^18.3.1 - version: 18.3.1(react@18.3.1) + specifier: ^19.0.0 + version: 19.0.0(react@19.0.0) sanity: specifier: workspace:* version: link:../../packages/sanity sanity-plugin-markdown: specifier: ^5.0.0 - version: 5.0.0(@emotion/is-prop-valid@1.3.1)(easymde@2.18.0)(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.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + 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.10.14(@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.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sanity@packages+sanity)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.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)) sanity-plugin-mux-input: specifier: ^2.2.1 - version: 2.4.0(@emotion/is-prop-valid@1.3.1)(@types/react@18.3.18)(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.13(react-dom@18.3.1(react@18.3.1))(react@18.3.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)) sanity-test-studio: specifier: workspace:* version: link:../test-studio styled-components: specifier: ^6.1.0 - version: 6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0) dev/test-create-integration-studio: dependencies: '@sanity/code-input': specifier: ^5.0.0 - version: 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.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + version: 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)) react: specifier: ^18.3.1 version: 18.3.1 @@ -430,54 +409,21 @@ importers: version: link:../../packages/sanity styled-components: specifier: ^6.1.0 - version: 6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - - dev/test-next-studio: - dependencies: - '@sanity/vision': - specifier: workspace:* - version: link:../../packages/@sanity/vision - babel-plugin-react-compiler: - specifier: 19.0.0-beta-55955c9-20241229 - version: 19.0.0-beta-55955c9-20241229 - next: - specifier: 15.1.2 - version: 15.1.2(@babel/core@7.26.0)(@playwright/test@1.49.1)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@19.0.0-beta-55955c9-20241229)(react-dom@19.0.0-rc.1(react@19.0.0-rc.1))(react@19.0.0-rc.1) - react: - specifier: rc - version: 19.0.0-rc.1 - react-dom: - specifier: rc - version: 19.0.0-rc.1(react@19.0.0-rc.1) - react-is: - specifier: rc - version: 19.0.0-rc.1 - sanity: - specifier: workspace:* - version: link:../../packages/sanity - sanity-test-studio: - specifier: workspace:* - version: link:../test-studio - styled-components: - specifier: ^6.1.12 - version: 6.1.13(react-dom@19.0.0-rc.1(react@19.0.0-rc.1))(react@19.0.0-rc.1) - typescript: - specifier: 5.7.2 - version: 5.7.2 + version: 6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1) dev/test-studio: dependencies: '@portabletext/editor': - specifier: ^1.18.7 - version: 1.18.7(@sanity/block-tools@packages+@sanity+block-tools)(@sanity/schema@packages+@sanity+schema)(@sanity/types@packages+@sanity+types)(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.1)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + specifier: ^1.20.0 + version: 1.20.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/react': specifier: ^3.0.0 - version: 3.2.0(react@18.3.1) + version: 3.2.0(react@19.0.0) '@sanity/assist': specifier: ^3.0.2 - version: 3.0.9(@emotion/is-prop-valid@1.3.1)(@sanity/mutator@packages+@sanity+mutator)(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.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + version: 3.0.9(@emotion/is-prop-valid@1.3.1)(@sanity/mutator@packages+@sanity+mutator)(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/block-tools': - specifier: 3.68.3 + specifier: 3.69.0 version: link:../../packages/@sanity/block-tools '@sanity/client': specifier: ^6.24.1 @@ -487,13 +433,13 @@ importers: version: 3.0.6 '@sanity/color-input': specifier: ^4.0.1 - version: 4.0.3(@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)(sanity@packages+sanity)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + version: 4.0.3(@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)(sanity@packages+sanity)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) '@sanity/google-maps-input': specifier: ^4.0.0 - version: 4.1.0(@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)(sanity@packages+sanity)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + version: 4.1.0(@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)(sanity@packages+sanity)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) '@sanity/icons': - specifier: ^3.5.6 - version: 3.5.7(react@18.3.1) + specifier: ^3.5.7 + version: 3.5.7(react@19.0.0) '@sanity/image-url': specifier: ^1.0.2 version: 1.1.0 @@ -514,7 +460,7 @@ importers: version: 1.2.15(sanity@packages+sanity) '@sanity/logos': specifier: ^2.1.2 - version: 2.1.13(@sanity/color@3.0.6)(react@18.3.1) + version: 2.1.13(@sanity/color@3.0.6)(react@19.0.0) '@sanity/migrate': specifier: workspace:* version: link:../../packages/@sanity/migrate @@ -523,19 +469,19 @@ importers: version: 2.0.5(@sanity/client@6.24.1) '@sanity/react-loader': specifier: ^1.8.3 - version: 1.10.31(react@18.3.1) + version: 1.10.32(react@19.0.0) '@sanity/tsdoc': - specifier: 1.0.157 - version: 1.0.157(@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-55955c9-20241229)(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.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(terser@5.37.0)(yaml@2.6.1) + specifier: 1.0.164 + version: 1.0.164(@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/types': specifier: workspace:* version: link:../../packages/@sanity/types '@sanity/ui': - specifier: ^2.10.14 - version: 2.10.14(@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.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + 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)) '@sanity/ui-workshop': specifier: ^1.0.0 - version: 1.2.11(@sanity/icons@3.5.7(react@18.3.1))(@sanity/ui@2.10.14(@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.13(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.13(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@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/util': specifier: workspace:* version: link:../../packages/@sanity/util @@ -546,8 +492,8 @@ importers: specifier: workspace:* version: link:../../packages/@sanity/vision '@sanity/visual-editing': - specifier: 2.11.3 - version: 2.11.3(@sanity/client@6.24.1)(next@15.1.2(@babel/core@7.26.0)(@playwright/test@1.49.1)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@19.0.0-beta-55955c9-20241229)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 2.11.5 + version: 2.11.5(@sanity/client@6.24.1)(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) '@turf/helpers': specifier: ^6.0.1 version: 6.5.0 @@ -573,17 +519,14 @@ importers: specifier: ^6.10.2 version: 6.13.1 react: - specifier: ^18.3.1 - version: 18.3.1 - react-compiler-runtime: - specifier: 19.0.0-beta-55955c9-20241229 - version: 19.0.0-beta-55955c9-20241229(react@18.3.1) + specifier: ^19.0.0 + version: 19.0.0 react-dom: - specifier: ^18.3.1 - version: 18.3.1(react@18.3.1) + specifier: ^19.0.0 + version: 19.0.0(react@19.0.0) react-refractor: specifier: ^2.1.6 - version: 2.2.0(react@18.3.1) + version: 2.2.0(react@19.0.0) refractor: specifier: ^3.6.0 version: 3.6.0 @@ -595,26 +538,26 @@ 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.10.14(@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.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sanity@packages+sanity)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + 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)) sanity-plugin-markdown: specifier: ^5.0.0 - version: 5.0.0(@emotion/is-prop-valid@1.3.1)(easymde@2.18.0)(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.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + 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.10.14(@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.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sanity@packages+sanity)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.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)) sanity-plugin-mux-input: specifier: ^2.2.1 - version: 2.4.0(@emotion/is-prop-valid@1.3.1)(@types/react@18.3.18)(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.13(react-dom@18.3.1(react@18.3.1))(react@18.3.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)) styled-components: specifier: ^6.1.11 - version: 6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0) devDependencies: '@million/lint': specifier: 1.0.14 - version: 1.0.14(encoding@0.1.13)(rollup@4.29.1) + version: 1.0.14(encoding@0.1.13)(rollup@4.30.1) babel-plugin-react-compiler: - specifier: 19.0.0-beta-55955c9-20241229 - version: 19.0.0-beta-55955c9-20241229 + specifier: 19.0.0-beta-63e3235-20250105 + version: 19.0.0-beta-63e3235-20250105 vite: specifier: ^5.4.11 version: 5.4.11(@types/node@22.10.2)(terser@5.37.0) @@ -632,7 +575,7 @@ importers: version: link:../../packages/sanity styled-components: specifier: ^6.1.0 - version: 6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1) examples/clean-studio: dependencies: @@ -647,16 +590,16 @@ importers: version: link:../../packages/sanity styled-components: specifier: ^6.1.0 - version: 6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1) examples/ecommerce-studio: dependencies: '@sanity/cli': - specifier: 3.68.3 + specifier: 3.69.0 version: link:../../packages/@sanity/cli '@sanity/ui': - specifier: ^2.10.14 - version: 2.10.14(@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.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + 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)) react: specifier: ^18.3.1 version: 18.3.1 @@ -671,13 +614,13 @@ importers: version: link:../../packages/sanity styled-components: specifier: ^6.1.0 - version: 6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1) examples/movies-studio: dependencies: '@sanity/google-maps-input': specifier: ^4.0.0 - version: 4.1.0(@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)(sanity@packages+sanity)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + version: 4.1.0(@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)(sanity@packages+sanity)(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 @@ -689,7 +632,7 @@ importers: version: link:../../packages/sanity styled-components: specifier: ^6.1.0 - version: 6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1) packages/@repo/dev-aliases: {} @@ -757,11 +700,8 @@ importers: packages/@sanity/block-tools: dependencies: '@sanity/types': - specifier: 3.68.3 + specifier: 3.69.0 version: link:../types - '@types/react': - specifier: ^18.3.5 - version: 18.3.18 get-random-values-esm: specifier: 1.0.2 version: 1.0.2 @@ -776,7 +716,7 @@ importers: specifier: workspace:* version: link:../../@repo/test-config '@sanity/schema': - specifier: 3.68.3 + specifier: 3.69.0 version: link:../schema '@types/jsdom': specifier: ^20.0.0 @@ -784,11 +724,14 @@ importers: '@types/lodash': specifier: ^4.17.7 version: 4.17.13 + '@types/react': + specifier: ^19.0.3 + version: 19.0.3 '@vercel/stega': specifier: 0.1.2 version: 0.1.2 '@vitest/coverage-v8': - specifier: ^2.1.1 + specifier: ^2.1.8 version: 2.1.8(vitest@2.1.8(@types/node@22.10.2)(jsdom@23.2.0)(terser@5.37.0)) jsdom: specifier: ^23.0.1 @@ -806,16 +749,16 @@ importers: specifier: ^6.24.1 version: 6.24.1(debug@4.4.0) '@sanity/codegen': - specifier: 3.68.3 + specifier: 3.69.0 version: link:../codegen '@sanity/telemetry': specifier: ^0.7.7 - version: 0.7.9(react@19.0.0-rc-f994737d14-20240522) + version: 0.7.9(react@19.0.0) '@sanity/template-validator': specifier: ^2.0.0 version: 2.0.0(@types/babel__core@7.20.5)(@types/node@22.10.2)(debug@4.4.0)(typescript@5.7.2) '@sanity/util': - specifier: 3.68.3 + specifier: 3.69.0 version: link:../util chalk: specifier: ^4.1.2 @@ -862,7 +805,7 @@ importers: version: 3.0.1 '@rollup/plugin-node-resolve': specifier: ^15.2.3 - version: 15.3.1(rollup@4.29.1) + version: 15.3.1(rollup@4.30.1) '@sanity/eslint-config-studio': specifier: ^4.0.0 version: 4.0.0(eslint@8.57.1)(typescript@5.7.2) @@ -1109,10 +1052,10 @@ importers: specifier: ^0.11.1 version: 0.11.1(debug@4.4.0) '@sanity/types': - specifier: 3.68.3 + specifier: 3.69.0 version: link:../types '@sanity/util': - specifier: 3.68.3 + specifier: 3.69.0 version: link:../util arrify: specifier: ^2.0.1 @@ -1152,7 +1095,7 @@ importers: specifier: ^3.1.1 version: 3.1.2 '@sanity/types': - specifier: 3.68.3 + specifier: 3.69.0 version: link:../types '@sanity/uuid': specifier: ^3.0.1 @@ -1189,7 +1132,7 @@ importers: specifier: ^3.0.0 version: 3.0.0 '@sanity/types': - specifier: 3.68.3 + specifier: 3.69.0 version: link:../types arrify: specifier: ^2.0.1 @@ -1218,7 +1161,7 @@ importers: version: link:../../@repo/test-config '@sanity/icons': specifier: ^3.5.7 - version: 3.5.7(react@19.0.0-rc-f994737d14-20240522) + version: 3.5.7(react@19.0.0) '@types/lodash': specifier: ^4.17.7 version: 4.17.13 @@ -1226,8 +1169,8 @@ importers: specifier: ^1.13.0 version: 1.13.0 '@types/react': - specifier: ^18.3.12 - version: 18.3.18 + specifier: ^19.0.3 + version: 19.0.3 rimraf: specifier: ^5.0.10 version: 5.0.10 @@ -1249,13 +1192,13 @@ importers: version: link:../../@repo/test-config '@sanity/insert-menu': specifier: 1.0.18 - version: 1.0.18(@emotion/is-prop-valid@1.3.1)(@sanity/types@packages+@sanity+types)(react-dom@19.0.0-rc-f994737d14-20240522(react@18.3.1))(react-is@19.0.0-rc.1)(react@18.3.1)(styled-components@6.1.13(react-dom@19.0.0-rc-f994737d14-20240522(react@18.3.1))(react@18.3.1)) + version: 1.0.18(@emotion/is-prop-valid@1.3.1)(@sanity/types@packages+@sanity+types)(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)) '@types/react': - specifier: ^18.3.5 - version: 18.3.18 + specifier: ^19.0.3 + version: 19.0.3 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.0.6(@types/node@22.10.2)(terser@5.37.0)(yaml@2.6.1)) + version: 4.3.4(vite@6.0.7(@types/node@22.10.2)(terser@5.37.0)(yaml@2.6.1)) react: specifier: ^18.3.1 version: 18.3.1 @@ -1272,7 +1215,7 @@ importers: specifier: ^6.24.1 version: 6.24.1(debug@4.4.0) '@sanity/types': - specifier: 3.68.3 + specifier: 3.69.0 version: link:../types get-random-values-esm: specifier: 1.0.2 @@ -1331,7 +1274,7 @@ importers: version: 9.0.1(react@18.3.1) '@rexxars/react-split-pane': specifier: ^1.0.0 - version: 1.0.0(react-dom@19.0.0-rc-f994737d14-20240522(react@18.3.1))(react@18.3.1) + version: 1.0.0(react-dom@19.0.0(react@18.3.1))(react@18.3.1) '@sanity/color': specifier: ^3.0.0 version: 3.0.6 @@ -1339,11 +1282,11 @@ importers: specifier: ^3.5.7 version: 3.5.7(react@18.3.1) '@sanity/ui': - specifier: ^2.10.14 - version: 2.10.14(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0-rc-f994737d14-20240522(react@18.3.1))(react-is@19.0.0-rc.1)(react@18.3.1)(styled-components@6.1.13(react-dom@19.0.0-rc-f994737d14-20240522(react@18.3.1))(react@18.3.1)) + 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)) '@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-rc-f994737d14-20240522(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.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) is-hotkey-esm: specifier: ^1.0.0 version: 1.0.0 @@ -1400,8 +1343,8 @@ importers: specifier: ^4.17.7 version: 4.17.13 babel-plugin-react-compiler: - specifier: 19.0.0-beta-55955c9-20241229 - version: 19.0.0-beta-55955c9-20241229 + specifier: 19.0.0-beta-63e3235-20250105 + version: 19.0.0-beta-63e3235-20250105 react: specifier: ^18.3.1 version: 18.3.1 @@ -1409,13 +1352,13 @@ importers: specifier: workspace:* version: link:../../sanity styled-components: - specifier: ^6.1.13 - version: 6.1.13(react-dom@19.0.0-rc-f994737d14-20240522(react@18.3.1))(react@18.3.1) + specifier: ^6.1.14 + version: 6.1.14(react-dom@19.0.0(react@18.3.1))(react@18.3.1) packages/create-sanity: dependencies: '@sanity/cli': - specifier: 3.68.3 + specifier: 3.69.0 version: link:../@sanity/cli resolve-pkg: specifier: ^2.0.0 @@ -1445,8 +1388,8 @@ importers: specifier: ^3.3.1 version: 3.4.0 '@portabletext/editor': - specifier: ^1.18.7 - version: 1.18.7(@sanity/block-tools@packages+@sanity+block-tools)(@sanity/schema@packages+@sanity+schema)(@sanity/types@packages+@sanity+types)(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.1)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + specifier: ^1.20.0 + version: 1.20.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/react': specifier: ^3.0.0 version: 3.2.0(react@18.3.1) @@ -1460,10 +1403,10 @@ importers: specifier: ^0.4.1 version: 0.4.1 '@sanity/block-tools': - specifier: 3.68.3 + specifier: 3.69.0 version: link:../@sanity/block-tools '@sanity/cli': - specifier: 3.68.3 + specifier: 3.69.0 version: link:../@sanity/cli '@sanity/client': specifier: ^6.24.1 @@ -1472,7 +1415,7 @@ importers: specifier: ^3.0.0 version: 3.0.6 '@sanity/diff': - specifier: 3.68.3 + specifier: 3.69.0 version: link:../@sanity/diff '@sanity/diff-match-patch': specifier: ^3.1.1 @@ -1481,8 +1424,8 @@ importers: specifier: ^5.0.0 version: 5.0.2 '@sanity/export': - specifier: ^3.42.1 - version: 3.42.1 + specifier: ^3.42.2 + version: 3.42.2(@types/react@19.0.3) '@sanity/icons': specifier: ^3.5.7 version: 3.5.7(react@18.3.1) @@ -1494,33 +1437,33 @@ importers: version: 3.37.9 '@sanity/insert-menu': specifier: 1.0.18 - version: 1.0.18(@emotion/is-prop-valid@1.3.1)(@sanity/types@packages+@sanity+types)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + version: 1.0.18(@emotion/is-prop-valid@1.3.1)(@sanity/types@packages+@sanity+types)(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/logos': specifier: ^2.1.4 version: 2.1.13(@sanity/color@3.0.6)(react@18.3.1) '@sanity/migrate': - specifier: 3.68.3 + specifier: 3.69.0 version: link:../@sanity/migrate '@sanity/mutator': - specifier: 3.68.3 + specifier: 3.69.0 version: link:../@sanity/mutator '@sanity/presentation': specifier: 1.19.14-release.0 - version: 1.19.14-release.0(@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.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + version: 1.19.14-release.0(@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.68.3 + specifier: 3.69.0 version: link:../@sanity/schema '@sanity/telemetry': specifier: ^0.7.7 version: 0.7.9(react@18.3.1) '@sanity/types': - specifier: 3.68.3 + specifier: 3.69.0 version: link:../@sanity/types '@sanity/ui': - specifier: ^2.10.14 - version: 2.10.14(@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.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + 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)) '@sanity/util': - specifier: 3.68.3 + specifier: 3.69.0 version: link:../@sanity/util '@sanity/uuid': specifier: ^3.0.1 @@ -1535,8 +1478,8 @@ importers: specifier: ^3.11.2 version: 3.11.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/react-is': - specifier: ^18.3.0 - version: 18.3.1 + specifier: ^19.0.0 + version: 19.0.0 '@types/shallow-equals': specifier: ^1.0.0 version: 1.0.3 @@ -1605,7 +1548,7 @@ importers: version: 4.0.1 framer-motion: specifier: ^11.15.0 - version: 11.15.0(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 11.16.0(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) get-it: specifier: ^8.6.5 version: 8.6.5(debug@4.4.0) @@ -1704,7 +1647,7 @@ importers: version: 3.2.2 react-focus-lock: specifier: ^2.13.5 - version: 2.13.5(@types/react@18.3.18)(react@18.3.1) + version: 2.13.5(@types/react@19.0.3)(react@18.3.1) react-i18next: specifier: 14.0.2 version: 14.0.2(i18next@23.16.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1715,8 +1658,8 @@ importers: specifier: ^2.1.6 version: 2.2.0(react@18.3.1) react-rx: - specifier: ^4.1.11 - version: 4.1.11(react@18.3.1)(rxjs@7.8.1) + specifier: ^4.1.12 + version: 4.1.12(react@18.3.1)(rxjs@7.8.1) read-pkg-up: specifier: ^7.0.1 version: 7.0.1 @@ -1797,20 +1740,20 @@ importers: specifier: workspace:* version: link:../@repo/test-config '@sanity/codegen': - specifier: 3.68.3 + specifier: 3.69.0 version: link:../@sanity/codegen '@sanity/generate-help-url': specifier: ^3.0.0 version: 3.0.0 '@sanity/pkg-utils': - specifier: 6.12.3 - version: 6.12.3(@types/babel__core@7.20.5)(@types/node@22.10.2)(babel-plugin-react-compiler@19.0.0-beta-55955c9-20241229)(debug@4.4.0)(typescript@5.7.2) + specifier: 6.13.2 + version: 6.13.2(@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.2) '@sanity/tsdoc': - specifier: 1.0.157 - version: 1.0.157(@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-55955c9-20241229)(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.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(terser@5.37.0)(yaml@2.6.1) + specifier: 1.0.164 + version: 1.0.164(@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/ui-workshop': specifier: ^1.2.11 - version: 1.2.11(@sanity/icons@3.5.7(react@18.3.1))(@sanity/ui@2.10.14(@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.13(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.13(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.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) '@sentry/types': specifier: ^8.12.0 version: 8.46.0 @@ -1819,7 +1762,7 @@ importers: version: 6.6.3 '@testing-library/react': specifier: ^16.1.0 - version: 16.1.0(@testing-library/dom@10.4.0)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 16.1.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.2(@types/react@19.0.3))(@types/react@19.0.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@testing-library/user-event': specifier: ^13.5.0 version: 13.5.0(@testing-library/dom@10.4.0) @@ -1848,11 +1791,11 @@ importers: specifier: ^3.4.0 version: 3.4.3 '@types/react': - specifier: ^18.3.12 - version: 18.3.18 + specifier: ^19.0.3 + version: 19.0.3 '@types/react-dom': - specifier: ^18.3.1 - version: 18.3.5(@types/react@18.3.18) + specifier: ^19.0.2 + version: 19.0.2(@types/react@19.0.3) '@types/refractor': specifier: ^3.0.0 version: 3.4.1 @@ -1869,8 +1812,8 @@ importers: specifier: 6.137.0 version: 6.137.0 babel-plugin-react-compiler: - specifier: 19.0.0-beta-55955c9-20241229 - version: 19.0.0-beta-55955c9-20241229 + specifier: 19.0.0-beta-63e3235-20250105 + version: 19.0.0-beta-63e3235-20250105 blob-polyfill: specifier: ^9.0.20240710 version: 9.0.20240710 @@ -1887,13 +1830,13 @@ importers: specifier: ^10.6.2 version: 10.6.2(rxjs@7.8.1) styled-components: - specifier: ^6.1.13 - version: 6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^6.1.14 + version: 6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1) swr: specifier: 2.2.5 version: 2.2.5(react@18.3.1) vitest: - specifier: ^2.1.8 + specifier: 2.1.8 version: 2.1.8(@types/node@22.10.2)(jsdom@23.2.0)(terser@5.37.0) packages/sanity/fixtures/examples/prj-with-react-18: @@ -1906,19 +1849,19 @@ importers: version: 18.3.1(react@18.3.1) styled-components: specifier: ^6.1.0 - version: 6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1) packages/sanity/fixtures/examples/prj-with-react-19: dependencies: react: - specifier: 19.0.0-rc-f994737d14-20240522 - version: 19.0.0-rc-f994737d14-20240522 + specifier: ^19.0.0 + version: 19.0.0 react-dom: - specifier: 19.0.0-rc-f994737d14-20240522 - version: 19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522) + specifier: ^19.0.0 + version: 19.0.0(react@19.0.0) styled-components: specifier: ^6.1.0 - version: 6.1.13(react-dom@19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522))(react@19.0.0-rc-f994737d14-20240522) + version: 6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0) packages/sanity/fixtures/examples/prj-with-styled-components-5: dependencies: @@ -1941,11 +1884,11 @@ importers: specifier: ^1.10.9 version: 1.10.9(@swc/core@1.10.1(@swc/helpers@0.5.15))(@swc/types@0.1.17)(typescript@5.7.2) '@types/react': - specifier: ^18.3.12 - version: 18.3.18 + specifier: ^19.0.3 + version: 19.0.3 '@types/react-dom': - specifier: ^18.3.1 - version: 18.3.5(@types/react@18.3.18) + specifier: ^19.0.2 + version: 19.0.2(@types/react@19.0.3) '@types/serve-handler': specifier: ^6.1.4 version: 6.1.4 @@ -1956,8 +1899,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-55955c9-20241229 - version: 19.0.0-beta-55955c9-20241229 + specifier: 19.0.0-beta-63e3235-20250105 + version: 19.0.0-beta-63e3235-20250105 chalk: specifier: ^4.1.2 version: 4.1.2 @@ -1977,17 +1920,14 @@ importers: specifier: ^1.46.1 version: 1.49.1 react: - specifier: ^18.3.1 - version: 18.3.1 - react-compiler-runtime: - specifier: 19.0.0-beta-55955c9-20241229 - version: 19.0.0-beta-55955c9-20241229(react@18.3.1) + specifier: ^19.0.0 + version: 19.0.0 react-dom: - specifier: ^18.3.1 - version: 18.3.1(react@18.3.1) + specifier: ^19.0.0 + version: 19.0.0(react@19.0.0) rollup-plugin-sourcemaps: specifier: ^0.6.3 - version: 0.6.3(@types/node@22.10.2)(rollup@4.29.1) + version: 0.6.3(@types/node@22.10.2)(rollup@4.30.1) sanity: specifier: workspace:* version: link:../../packages/sanity @@ -2007,23 +1947,20 @@ importers: perf/studio: dependencies: babel-plugin-react-compiler: - specifier: 19.0.0-beta-55955c9-20241229 - version: 19.0.0-beta-55955c9-20241229 + specifier: 19.0.0-beta-63e3235-20250105 + version: 19.0.0-beta-63e3235-20250105 react: - specifier: ^18.3.1 - version: 18.3.1 - react-compiler-runtime: - specifier: 19.0.0-beta-55955c9-20241229 - version: 19.0.0-beta-55955c9-20241229(react@18.3.1) + specifier: ^19.0.0 + version: 19.0.0 react-dom: - specifier: ^18.3.1 - version: 18.3.1(react@18.3.1) + specifier: ^19.0.0 + version: 19.0.0(react@19.0.0) sanity: specifier: workspace:* version: link:../../packages/sanity styled-components: specifier: ^6.1.0 - version: 6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0) perf/tests: dependencies: @@ -3987,110 +3924,53 @@ packages: '@napi-rs/wasm-runtime@0.2.5': resolution: {integrity: sha512-kwUxR7J9WLutBbulqg1dfOrMTwhMdXLdcGUhcbCcGwnPLt3gz19uHVdwH1syKVDbE022ZS2vZxOWflFLS0YTjw==} - '@next/env@14.2.21': - resolution: {integrity: sha512-lXcwcJd5oR01tggjWJ6SrNNYFGuOOMB9c251wUNkjCpkoXOPkDeF/15c3mnVlBqrW4JJXb2kVxDFhC4GduJt2A==} - - '@next/env@15.1.2': - resolution: {integrity: sha512-Hm3jIGsoUl6RLB1vzY+dZeqb+/kWPZ+h34yiWxW0dV87l8Im/eMOwpOA+a0L78U0HM04syEjXuRlCozqpwuojQ==} - - '@next/swc-darwin-arm64@14.2.21': - resolution: {integrity: sha512-HwEjcKsXtvszXz5q5Z7wCtrHeTTDSTgAbocz45PHMUjU3fBYInfvhR+ZhavDRUYLonm53aHZbB09QtJVJj8T7g==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] + '@next/env@15.1.3': + resolution: {integrity: sha512-Q1tXwQCGWyA3ehMph3VO+E6xFPHDKdHFYosadt0F78EObYxPio0S09H9UGYznDe6Wc8eLKLG89GqcFJJDiK5xw==} - '@next/swc-darwin-arm64@15.1.2': - resolution: {integrity: sha512-b9TN7q+j5/7+rGLhFAVZiKJGIASuo8tWvInGfAd8wsULjB1uNGRCj1z1WZwwPWzVQbIKWFYqc+9L7W09qwt52w==} + '@next/swc-darwin-arm64@15.1.3': + resolution: {integrity: sha512-aZtmIh8jU89DZahXQt1La0f2EMPt/i7W+rG1sLtYJERsP7GRnNFghsciFpQcKHcGh4dUiyTB5C1X3Dde/Gw8gg==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@14.2.21': - resolution: {integrity: sha512-TSAA2ROgNzm4FhKbTbyJOBrsREOMVdDIltZ6aZiKvCi/v0UwFmwigBGeqXDA97TFMpR3LNNpw52CbVelkoQBxA==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - - '@next/swc-darwin-x64@15.1.2': - resolution: {integrity: sha512-caR62jNDUCU+qobStO6YJ05p9E+LR0EoXh1EEmyU69cYydsAy7drMcOlUlRtQihM6K6QfvNwJuLhsHcCzNpqtA==} + '@next/swc-darwin-x64@15.1.3': + resolution: {integrity: sha512-aw8901rjkVBK5mbq5oV32IqkJg+CQa6aULNlN8zyCWSsePzEG3kpDkAFkkTOh3eJ0p95KbkLyWBzslQKamXsLA==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@14.2.21': - resolution: {integrity: sha512-0Dqjn0pEUz3JG+AImpnMMW/m8hRtl1GQCNbO66V1yp6RswSTiKmnHf3pTX6xMdJYSemf3O4Q9ykiL0jymu0TuA==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - - '@next/swc-linux-arm64-gnu@15.1.2': - resolution: {integrity: sha512-fHHXBusURjBmN6VBUtu6/5s7cCeEkuGAb/ZZiGHBLVBXMBy4D5QpM8P33Or8JD1nlOjm/ZT9sEE5HouQ0F+hUA==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - - '@next/swc-linux-arm64-musl@14.2.21': - resolution: {integrity: sha512-Ggfw5qnMXldscVntwnjfaQs5GbBbjioV4B4loP+bjqNEb42fzZlAaK+ldL0jm2CTJga9LynBMhekNfV8W4+HBw==} + '@next/swc-linux-arm64-gnu@15.1.3': + resolution: {integrity: sha512-YbdaYjyHa4fPK4GR4k2XgXV0p8vbU1SZh7vv6El4bl9N+ZSiMfbmqCuCuNU1Z4ebJMumafaz6UCC2zaJCsdzjw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@15.1.2': - resolution: {integrity: sha512-9CF1Pnivij7+M3G74lxr+e9h6o2YNIe7QtExWq1KUK4hsOLTBv6FJikEwCaC3NeYTflzrm69E5UfwEAbV2U9/g==} + '@next/swc-linux-arm64-musl@15.1.3': + resolution: {integrity: sha512-qgH/aRj2xcr4BouwKG3XdqNu33SDadqbkqB6KaZZkozar857upxKakbRllpqZgWl/NDeSCBYPmUAZPBHZpbA0w==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-x64-gnu@14.2.21': - resolution: {integrity: sha512-uokj0lubN1WoSa5KKdThVPRffGyiWlm/vCc/cMkWOQHw69Qt0X1o3b2PyLLx8ANqlefILZh1EdfLRz9gVpG6tg==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - - '@next/swc-linux-x64-gnu@15.1.2': - resolution: {integrity: sha512-tINV7WmcTUf4oM/eN3Yuu/f8jQ5C6AkueZPKeALs/qfdfX57eNv4Ij7rt0SA6iZ8+fMobVfcFVv664Op0caCCg==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - - '@next/swc-linux-x64-musl@14.2.21': - resolution: {integrity: sha512-iAEBPzWNbciah4+0yI4s7Pce6BIoxTQ0AGCkxn/UBuzJFkYyJt71MadYQkjPqCQCJAFQ26sYh7MOKdU+VQFgPg==} + '@next/swc-linux-x64-gnu@15.1.3': + resolution: {integrity: sha512-uzafnTFwZCPN499fNVnS2xFME8WLC9y7PLRs/yqz5lz1X/ySoxfaK2Hbz74zYUdEg+iDZPd8KlsWaw9HKkLEVw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@15.1.2': - resolution: {integrity: sha512-jf2IseC4WRsGkzeUw/cK3wci9pxR53GlLAt30+y+B+2qAQxMw6WAC3QrANIKxkcoPU3JFh/10uFfmoMDF9JXKg==} + '@next/swc-linux-x64-musl@15.1.3': + resolution: {integrity: sha512-el6GUFi4SiDYnMTTlJJFMU+GHvw0UIFnffP1qhurrN1qJV3BqaSRUjkDUgVV44T6zpw1Lc6u+yn0puDKHs+Sbw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-win32-arm64-msvc@14.2.21': - resolution: {integrity: sha512-plykgB3vL2hB4Z32W3ktsfqyuyGAPxqwiyrAi2Mr8LlEUhNn9VgkiAl5hODSBpzIfWweX3er1f5uNpGDygfQVQ==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - - '@next/swc-win32-arm64-msvc@15.1.2': - resolution: {integrity: sha512-wvg7MlfnaociP7k8lxLX4s2iBJm4BrNiNFhVUY+Yur5yhAJHfkS8qPPeDEUH8rQiY0PX3u/P7Q/wcg6Mv6GSAA==} + '@next/swc-win32-arm64-msvc@15.1.3': + resolution: {integrity: sha512-6RxKjvnvVMM89giYGI1qye9ODsBQpHSHVo8vqA8xGhmRPZHDQUE4jcDbhBwK0GnFMqBnu+XMg3nYukNkmLOLWw==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-ia32-msvc@14.2.21': - resolution: {integrity: sha512-w5bacz4Vxqrh06BjWgua3Yf7EMDb8iMcVhNrNx8KnJXt8t+Uu0Zg4JHLDL/T7DkTCEEfKXO/Er1fcfWxn2xfPA==} - engines: {node: '>= 10'} - cpu: [ia32] - os: [win32] - - '@next/swc-win32-x64-msvc@14.2.21': - resolution: {integrity: sha512-sT6+llIkzpsexGYZq8cjjthRyRGe5cJVhqh12FmlbxHqna6zsDDK8UNaV7g41T6atFHCJUPeLb3uyAwrBwy0NA==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - - '@next/swc-win32-x64-msvc@15.1.2': - resolution: {integrity: sha512-D3cNA8NoT3aWISWmo7HF5Eyko/0OdOO+VagkoJuiTk7pyX3P/b+n8XA/MYvyR+xSVcbKn68B1rY9fgqjNISqzQ==} + '@next/swc-win32-x64-msvc@15.1.3': + resolution: {integrity: sha512-VId/f5blObG7IodwC5Grf+aYP0O8Saz1/aeU3YcWqNdIUAmFQY3VEPKPaIzfv32F/clvanOb2K2BR5DtDs6XyQ==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -4444,8 +4324,8 @@ packages: resolution: {integrity: sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==} engines: {node: '>=12'} - '@portabletext/editor@1.18.7': - resolution: {integrity: sha512-WMDm2TQBXxu/c/GGYGl1Wkn9bm4CDBNmiKzxRUCbrk6gs5FQJt908Q+adYaA51zorvVHHXmNY8BUL2nqqP8pyQ==} + '@portabletext/editor@1.20.0': + resolution: {integrity: sha512-2Vq3AU1zHcMxa+ayqVokCd2714K9/TrGbU8R7xaioCj5VojuTmVHz8OfxbKJzjMiDSBd5Pk7KclIC80nQuyhlQ==} engines: {node: '>=18'} peerDependencies: '@sanity/block-tools': ^3.68.3 @@ -4453,7 +4333,6 @@ packages: '@sanity/types': ^3.68.3 react: ^16.9 || ^17 || ^18 || ^19 rxjs: ^7.8.1 - styled-components: ^6.1.13 '@portabletext/patches@1.1.1': resolution: {integrity: sha512-FXeVdLvSJ3JmZzS0dbxEFJZXplFo7K27/Twv0/dX/l86tfhhUkDSqaTlWcigxuibvohjdEYp2mB8Ucgao/JzIQ==} @@ -4589,98 +4468,98 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.29.1': - resolution: {integrity: sha512-ssKhA8RNltTZLpG6/QNkCSge+7mBQGUqJRisZ2MDQcEGaK93QESEgWK2iOpIDZ7k9zPVkG5AS3ksvD5ZWxmItw==} + '@rollup/rollup-android-arm-eabi@4.30.1': + resolution: {integrity: sha512-pSWY+EVt3rJ9fQ3IqlrEUtXh3cGqGtPDH1FQlNZehO2yYxCHEX1SPsz1M//NXwYfbTlcKr9WObLnJX9FsS9K1Q==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.29.1': - resolution: {integrity: sha512-CaRfrV0cd+NIIcVVN/jx+hVLN+VRqnuzLRmfmlzpOzB87ajixsN/+9L5xNmkaUUvEbI5BmIKS+XTwXsHEb65Ew==} + '@rollup/rollup-android-arm64@4.30.1': + resolution: {integrity: sha512-/NA2qXxE3D/BRjOJM8wQblmArQq1YoBVJjrjoTSBS09jgUisq7bqxNHJ8kjCHeV21W/9WDGwJEWSN0KQ2mtD/w==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.29.1': - resolution: {integrity: sha512-2ORr7T31Y0Mnk6qNuwtyNmy14MunTAMx06VAPI6/Ju52W10zk1i7i5U3vlDRWjhOI5quBcrvhkCHyF76bI7kEw==} + '@rollup/rollup-darwin-arm64@4.30.1': + resolution: {integrity: sha512-r7FQIXD7gB0WJ5mokTUgUWPl0eYIH0wnxqeSAhuIwvnnpjdVB8cRRClyKLQr7lgzjctkbp5KmswWszlwYln03Q==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.29.1': - resolution: {integrity: sha512-j/Ej1oanzPjmN0tirRd5K2/nncAhS9W6ICzgxV+9Y5ZsP0hiGhHJXZ2JQ53iSSjj8m6cRY6oB1GMzNn2EUt6Ng==} + '@rollup/rollup-darwin-x64@4.30.1': + resolution: {integrity: sha512-x78BavIwSH6sqfP2xeI1hd1GpHL8J4W2BXcVM/5KYKoAD3nNsfitQhvWSw+TFtQTLZ9OmlF+FEInEHyubut2OA==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.29.1': - resolution: {integrity: sha512-91C//G6Dm/cv724tpt7nTyP+JdN12iqeXGFM1SqnljCmi5yTXriH7B1r8AD9dAZByHpKAumqP1Qy2vVNIdLZqw==} + '@rollup/rollup-freebsd-arm64@4.30.1': + resolution: {integrity: sha512-HYTlUAjbO1z8ywxsDFWADfTRfTIIy/oUlfIDmlHYmjUP2QRDTzBuWXc9O4CXM+bo9qfiCclmHk1x4ogBjOUpUQ==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.29.1': - resolution: {integrity: sha512-hEioiEQ9Dec2nIRoeHUP6hr1PSkXzQaCUyqBDQ9I9ik4gCXQZjJMIVzoNLBRGet+hIUb3CISMh9KXuCcWVW/8w==} + '@rollup/rollup-freebsd-x64@4.30.1': + resolution: {integrity: sha512-1MEdGqogQLccphhX5myCJqeGNYTNcmTyaic9S7CG3JhwuIByJ7J05vGbZxsizQthP1xpVx7kd3o31eOogfEirw==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.29.1': - resolution: {integrity: sha512-Py5vFd5HWYN9zxBv3WMrLAXY3yYJ6Q/aVERoeUFwiDGiMOWsMs7FokXihSOaT/PMWUty/Pj60XDQndK3eAfE6A==} + '@rollup/rollup-linux-arm-gnueabihf@4.30.1': + resolution: {integrity: sha512-PaMRNBSqCx7K3Wc9QZkFx5+CX27WFpAMxJNiYGAXfmMIKC7jstlr32UhTgK6T07OtqR+wYlWm9IxzennjnvdJg==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.29.1': - resolution: {integrity: sha512-RiWpGgbayf7LUcuSNIbahr0ys2YnEERD4gYdISA06wa0i8RALrnzflh9Wxii7zQJEB2/Eh74dX4y/sHKLWp5uQ==} + '@rollup/rollup-linux-arm-musleabihf@4.30.1': + resolution: {integrity: sha512-B8Rcyj9AV7ZlEFqvB5BubG5iO6ANDsRKlhIxySXcF1axXYUyqwBok+XZPgIYGBgs7LDXfWfifxhw0Ik57T0Yug==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.29.1': - resolution: {integrity: sha512-Z80O+taYxTQITWMjm/YqNoe9d10OX6kDh8X5/rFCMuPqsKsSyDilvfg+vd3iXIqtfmp+cnfL1UrYirkaF8SBZA==} + '@rollup/rollup-linux-arm64-gnu@4.30.1': + resolution: {integrity: sha512-hqVyueGxAj3cBKrAI4aFHLV+h0Lv5VgWZs9CUGqr1z0fZtlADVV1YPOij6AhcK5An33EXaxnDLmJdQikcn5NEw==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.29.1': - resolution: {integrity: sha512-fOHRtF9gahwJk3QVp01a/GqS4hBEZCV1oKglVVq13kcK3NeVlS4BwIFzOHDbmKzt3i0OuHG4zfRP0YoG5OF/rA==} + '@rollup/rollup-linux-arm64-musl@4.30.1': + resolution: {integrity: sha512-i4Ab2vnvS1AE1PyOIGp2kXni69gU2DAUVt6FSXeIqUCPIR3ZlheMW3oP2JkukDfu3PsexYRbOiJrY+yVNSk9oA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.29.1': - resolution: {integrity: sha512-5a7q3tnlbcg0OodyxcAdrrCxFi0DgXJSoOuidFUzHZ2GixZXQs6Tc3CHmlvqKAmOs5eRde+JJxeIf9DonkmYkw==} + '@rollup/rollup-linux-loongarch64-gnu@4.30.1': + resolution: {integrity: sha512-fARcF5g296snX0oLGkVxPmysetwUk2zmHcca+e9ObOovBR++9ZPOhqFUM61UUZ2EYpXVPN1redgqVoBB34nTpQ==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.29.1': - resolution: {integrity: sha512-9b4Mg5Yfz6mRnlSPIdROcfw1BU22FQxmfjlp/CShWwO3LilKQuMISMTtAu/bxmmrE6A902W2cZJuzx8+gJ8e9w==} + '@rollup/rollup-linux-powerpc64le-gnu@4.30.1': + resolution: {integrity: sha512-GLrZraoO3wVT4uFXh67ElpwQY0DIygxdv0BNW9Hkm3X34wu+BkqrDrkcsIapAY+N2ATEbvak0XQ9gxZtCIA5Rw==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.29.1': - resolution: {integrity: sha512-G5pn0NChlbRM8OJWpJFMX4/i8OEU538uiSv0P6roZcbpe/WfhEO+AT8SHVKfp8qhDQzaz7Q+1/ixMy7hBRidnQ==} + '@rollup/rollup-linux-riscv64-gnu@4.30.1': + resolution: {integrity: sha512-0WKLaAUUHKBtll0wvOmh6yh3S0wSU9+yas923JIChfxOaaBarmb/lBKPF0w/+jTVozFnOXJeRGZ8NvOxvk/jcw==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.29.1': - resolution: {integrity: sha512-WM9lIkNdkhVwiArmLxFXpWndFGuOka4oJOZh8EP3Vb8q5lzdSCBuhjavJsw68Q9AKDGeOOIHYzYm4ZFvmWez5g==} + '@rollup/rollup-linux-s390x-gnu@4.30.1': + resolution: {integrity: sha512-GWFs97Ruxo5Bt+cvVTQkOJ6TIx0xJDD/bMAOXWJg8TCSTEK8RnFeOeiFTxKniTc4vMIaWvCplMAFBt9miGxgkA==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.29.1': - resolution: {integrity: sha512-87xYCwb0cPGZFoGiErT1eDcssByaLX4fc0z2nRM6eMtV9njAfEE6OW3UniAoDhX4Iq5xQVpE6qO9aJbCFumKYQ==} + '@rollup/rollup-linux-x64-gnu@4.30.1': + resolution: {integrity: sha512-UtgGb7QGgXDIO+tqqJ5oZRGHsDLO8SlpE4MhqpY9Llpzi5rJMvrK6ZGhsRCST2abZdBqIBeXW6WPD5fGK5SDwg==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.29.1': - resolution: {integrity: sha512-xufkSNppNOdVRCEC4WKvlR1FBDyqCSCpQeMMgv9ZyXqqtKBfkw1yfGMTUTs9Qsl6WQbJnsGboWCp7pJGkeMhKA==} + '@rollup/rollup-linux-x64-musl@4.30.1': + resolution: {integrity: sha512-V9U8Ey2UqmQsBT+xTOeMzPzwDzyXmnAoO4edZhL7INkwQcaW1Ckv3WJX3qrrp/VHaDkEWIBWhRwP47r8cdrOow==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.29.1': - resolution: {integrity: sha512-F2OiJ42m77lSkizZQLuC+jiZ2cgueWQL5YC9tjo3AgaEw+KJmVxHGSyQfDUoYR9cci0lAywv2Clmckzulcq6ig==} + '@rollup/rollup-win32-arm64-msvc@4.30.1': + resolution: {integrity: sha512-WabtHWiPaFF47W3PkHnjbmWawnX/aE57K47ZDT1BXTS5GgrBUEpvOzq0FI0V/UYzQJgdb8XlhVNH8/fwV8xDjw==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.29.1': - resolution: {integrity: sha512-rYRe5S0FcjlOBZQHgbTKNrqxCBUmgDJem/VQTCcTnA2KCabYSWQDrytOzX7avb79cAAweNmMUb/Zw18RNd4mng==} + '@rollup/rollup-win32-ia32-msvc@4.30.1': + resolution: {integrity: sha512-pxHAU+Zv39hLUTdQQHUVHf4P+0C47y/ZloorHpzs2SXMRqeAWmGghzAhfOlzFHHwjvgokdFAhC4V+6kC1lRRfw==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.29.1': - resolution: {integrity: sha512-+10CMg9vt1MoHj6x1pxyjPSMjHTIlqs8/tBztXvPAx24SKs9jwVnKqHJumlH/IzhaPUaj3T6T6wfZr8okdXaIg==} + '@rollup/rollup-win32-x64-msvc@4.30.1': + resolution: {integrity: sha512-D6qjsXGcvhTjv0kI4fU8tUuBDF/Ueee4SVX79VfNDXZa64TfCW1Slkb6Z7O1p7vflqZjcmOVdZlqf8gvJxc6og==} cpu: [x64] os: [win32] @@ -4759,16 +4638,16 @@ packages: resolution: {integrity: sha512-2TjYEvOftD0v7ukx3Csdh9QIu44P2z7NDJtlC3qITJRYV36J7R6Vfd3trVhFnN77/7CZrGjqngrtohv8VqO5nw==} engines: {node: '>=18.0.0'} - '@sanity/comlink@2.0.3': - resolution: {integrity: sha512-ibYxXGlAssMZUHgL958W28rOetHuXSJjzhfj3T+ipI+scDhsGOZ9AjN5Gd3XENk2RdAE9hhzBJPttJKLpTw5YQ==} - engines: {node: '>=18'} - '@sanity/comlink@2.0.3-release.0': resolution: {integrity: sha512-0sZMCR1wpIJ1QBPhkl1ppe+vqntfMDod6sCv4+qOPDzMbqYdYXmOHLF1b+ycpgrEgmtIORg07IydmgqeGwBnJw==} engines: {node: '>=18'} - '@sanity/core-loader@1.7.22': - resolution: {integrity: sha512-O5gUZAMVemqIcLzlQdAyb0ZrqIrl4o73hDInmVbHXzw/dmL7NWuTYYKEblKpAR85putmDCgOm2uMj1NCDczKaA==} + '@sanity/comlink@2.0.4': + resolution: {integrity: sha512-ODjmZZJ4a4hiSK4TaQk2ysppIweIj6UNZ7o+fAkh7hotwcLxh+qTo8Rpb5yW2UfqGSAWTQDMcta9/4HAMWGfUA==} + engines: {node: '>=18'} + + '@sanity/core-loader@1.7.23': + resolution: {integrity: sha512-vHZCy7uXboMk8PP1Vu3wRcrqFBnTHoiL1jUym70TNvwk+RtD/Hgmu6TnL5JT72DFL2h7NpXpFDx+KtOgdPGAjA==} engines: {node: '>=18'} '@sanity/diff-match-patch@3.1.2': @@ -4787,8 +4666,8 @@ packages: '@sanity/eventsource@5.0.2': resolution: {integrity: sha512-/B9PMkUvAlUrpRq0y+NzXgRv5lYCLxZNsBJD2WXVnqZYOfByL9oQBV7KiTaARuObp5hcQYuPfOAVjgXe3hrixA==} - '@sanity/export@3.42.1': - resolution: {integrity: sha512-KGG2V6eEdNtXY/ElYopXiXxv35FRzMQwCIh8jdY43eOWKTkuSGda0kptGmHDJk+QJY8qOA3PqzG2GVu/CDeEvg==} + '@sanity/export@3.42.2': + resolution: {integrity: sha512-3dpGwzyhMXFPdGkS28rv7nBAnCKgW+OGTVM+tO31YO9AIZJ9M016WZcYKEYhX+wCLNiGTNrqWXfac9L4Unh8fQ==} engines: {node: '>=18'} '@sanity/generate-help-url@3.0.0': @@ -4877,8 +4756,19 @@ packages: resolution: {integrity: sha512-72chdEK8s9h1BLE/n7tOkCOGnrfFV/cH1fpvH/PpcxhpUY7wg6vvL7/durpXLEchWCO1ToS5DcFrCfmy1iKOrw==} engines: {node: '>=18'} - '@sanity/pkg-utils@6.12.3': - resolution: {integrity: sha512-8vxnk0RNG5+VYbi7ooMW28i8PlkMp8BJcCe258pWd+OYctjmA/L4cdIwXr2hr+NxTYmO8KUJqxHZ84z1nFv7ZQ==} + '@sanity/pkg-utils@6.13.1': + resolution: {integrity: sha512-GpNDSuEeywpL/utOMxxE6e5lEv2HMyosaAnyomJ+x9yMgR2NqUu2VG+Ji1bHEl+QPYWSwRxSWa7HUNCitRK9og==} + engines: {node: '>=18.17.0'} + hasBin: true + peerDependencies: + babel-plugin-react-compiler: '*' + typescript: 5.4.x || 5.5.x || 5.6.x || 5.7.x + peerDependenciesMeta: + babel-plugin-react-compiler: + optional: true + + '@sanity/pkg-utils@6.13.2': + resolution: {integrity: sha512-lCDfNGfPX40DsmO9wpKyT+L3wklDakcWIJcSIRCv3Y+yRyuTKRw75u8ERIk4Cdr2WJ0xoqsV2oWIqiUpVQQfyQ==} engines: {node: '>=18.17.0'} hasBin: true peerDependencies: @@ -4909,8 +4799,8 @@ packages: peerDependencies: '@sanity/client': ^6.24.1 - '@sanity/react-loader@1.10.31': - resolution: {integrity: sha512-hxJ/6psjyozee9O0iKEYSctgC1wbxEV1d+4XzVj3I7EvDuL0paKL6K8G70voP54nW+hh25VpxYQlhk+KEQBnmQ==} + '@sanity/react-loader@1.10.32': + resolution: {integrity: sha512-gBbb0gCr0dWDTdCulok9QGijBS67J8x3/On9IX3bD0xT7G/Pe/Fan8YuJ0KSe18g5IVI6d7Gbh//XtB+dy1qDg==} engines: {node: '>=18'} peerDependencies: react: ^18.3 || >=19.0.0-rc @@ -4930,8 +4820,8 @@ packages: resolution: {integrity: sha512-o2X2Veh9YWyVK/Iou/cToSS6ufcTLREoCVMcvBQbSqCFUIGaN1Ko3zxChJMWdf39dyaJ/ixMKtc8pciF/tL6Sw==} hasBin: true - '@sanity/tsdoc@1.0.157': - resolution: {integrity: sha512-WOj4ASF/xBGtZQSxygIXIA1ZVxHpVy/w18Y/+LZOc0XssRFrZX9u6gdq22fI5b7eOvY3gFdeFZ/8yk82cPDT9w==} + '@sanity/tsdoc@1.0.164': + resolution: {integrity: sha512-HcFsjSBZkcDZd/rIKaO5/PmzFpXRpuznIKDmdc0bd2HI2vavHyy4FtSd2GrzMIYFv0/6P71XAwKv70SUSmtv6A==} engines: {node: '>=14.0.0'} hasBin: true peerDependencies: @@ -4940,6 +4830,11 @@ packages: sanity: ^3 styled-components: ^5.2 || ^6 + '@sanity/types@3.68.3': + resolution: {integrity: sha512-JemibQXC08rHIXgjUH/p2TCiiD9wq6+dDkCvVHOooCvaYZNhAe2S9FAEkaA6qwWtPzyY2r6/tj1eDgNeLgXN1Q==} + peerDependencies: + '@types/react': 18 || 19 + '@sanity/ui-workshop@1.2.11': resolution: {integrity: sha512-vzj7upIF7wq2W1HEA0D5VSkR8axaH4Rt07yNTAaas7CLgjSE9r2d+Gnkrq4FIbIuN1GYhhCD+D3/s60GaZrpQw==} hasBin: true @@ -4950,8 +4845,8 @@ packages: react-dom: ^18 styled-components: ^5.2 || ^6 - '@sanity/ui@2.10.14': - resolution: {integrity: sha512-WLGsX6D1bCjmRa5PYQkVcUjVH9udN6EZ2l6+r2JJuhBkbNXT1R2vDz1lRAvlUS/tDhbf25/w+lbdbyGGaherng==} + '@sanity/ui@2.11.1': + resolution: {integrity: sha512-aO9+dIlwua6QuQfE5O8WF5gb4BUUyunzK2jmT1g/EVovxhkdBOHbmx2bNfw/xNOcSoL0X7ETnKUW4qdR+Hn2TQ==} engines: {node: '>=14.0.0'} peerDependencies: react: ^18 || >=19.0.0-0 @@ -4959,11 +4854,15 @@ packages: react-is: ^18 || >=19.0.0-0 styled-components: ^5.2 || ^6 + '@sanity/util@3.68.3': + resolution: {integrity: sha512-J4Ov75oUvMqx221VEJkKNSibzF0D8VyCzejtwftW+jP80XguYFqBz7bAcTmwJ5vnxNUoAUCeAdZBoOYVpgew4g==} + engines: {node: '>=18'} + '@sanity/uuid@3.0.2': resolution: {integrity: sha512-vzdhqOrX7JGbMyK40KuIwwyXHm7GMLOGuYgn3xlC09e4ZVNofUO5mgezQqnRv0JAMthIRhofqs9f6ufUjMKOvw==} - '@sanity/visual-editing@2.11.3': - resolution: {integrity: sha512-o5nInL/8f8RFHf0XXv0XfLFgy4Jqs6fwpw6vMUXfofG4LOknklsrvBS5RbHvVLcbYJp5vVzdxj3dQbCnVr7PDw==} + '@sanity/visual-editing@2.11.5': + resolution: {integrity: sha512-9rBp20dW5VxYB+5k/BPoJKS7yWV4vM8WXA1hG0MR7B1e4eRxhpZGbUWTV9Zqym3u4FcH8AUh+lnEf1yPJc35jw==} engines: {node: '>=18'} peerDependencies: '@remix-run/react': '>= 2' @@ -5143,9 +5042,6 @@ packages: '@swc/helpers@0.5.15': resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} - '@swc/helpers@0.5.5': - resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==} - '@swc/types@0.1.17': resolution: {integrity: sha512-V5gRru+aD8YVyCOMAjMpWR1Ui577DD5KSJsHP8RAxopAH22jFz6GZd/qxqjO6MJHQhcsjvjOFXyDhyLQUnMveQ==} @@ -5384,19 +5280,16 @@ packages: '@types/progress-stream@2.0.5': resolution: {integrity: sha512-5YNriuEZkHlFHHepLIaxzq3atGeav1qCTGzB74HKWpo66qjfostF+rHc785YYYHeBytve8ZG3ejg42jEIfXNiQ==} - '@types/prop-types@15.7.14': - resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==} - '@types/raf@3.4.3': resolution: {integrity: sha512-c4YAvMedbPZ5tEyxzQdMoOhhJ4RD3rngZIdwC2/qDN3d7JpEhB6fiBRKVY1lg5B7Wk+uPBjn5f39j1/2MY1oOw==} - '@types/react-dom@18.3.5': - resolution: {integrity: sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==} + '@types/react-dom@19.0.2': + resolution: {integrity: sha512-c1s+7TKFaDRRxr1TxccIX2u7sfCnc3RxkVyBIUA2lCpyqCF+QoAwQ/CBg7bsMdVwP120HEH143VQezKtef5nCg==} peerDependencies: - '@types/react': ^18.0.0 + '@types/react': ^19.0.0 - '@types/react-is@18.3.1': - resolution: {integrity: sha512-zts4lhQn5ia0cF/y2+3V6Riu0MAfez9/LJYavdM8TvcVl+S91A/7VWxyBT8hbRuWspmuCaiGI0F41OJYGrKhRA==} + '@types/react-is@19.0.0': + resolution: {integrity: sha512-71dSZeeJ0t3aoPyY9x6i+JNSvg5m9EF2i2OlSZI5QoJuI8Ocgor610i+4A10TQmURR+0vLwcVCEYFpXdzM1Biw==} '@types/react-redux@7.1.34': resolution: {integrity: sha512-GdFaVjEbYv4Fthm2ZLvj1VSCedV7TqE5y1kNwnjSdBOTXuRSgowux6J8TAct15T3CKBr63UMk+2CO7ilRhyrAQ==} @@ -5406,8 +5299,8 @@ packages: peerDependencies: '@types/react': '*' - '@types/react@18.3.18': - resolution: {integrity: sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==} + '@types/react@19.0.3': + resolution: {integrity: sha512-UavfHguIjnnuq9O67uXfgy/h3SRJbidAYvNjLceB+2RIKVRBzVsh0QO+Pw6BCSQqFS9xwzKfwstXx0m6AbAREA==} '@types/readdir-glob@1.1.5': resolution: {integrity: sha512-raiuEPUYqXu+nvtY2Pe8s8FEmZ3x5yAH4VkLdihcPdalvsHltomrRC9BzuStrJ9yk06470hS0Crw0f1pXqD+Hg==} @@ -5990,8 +5883,8 @@ packages: peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-plugin-react-compiler@19.0.0-beta-55955c9-20241229: - resolution: {integrity: sha512-APpa9fRiG5UN5kxnB/vznaSBKbXwAWZs6QshN3MLntzWa4cUhOxzUSd7Ohmr5sLQaM0ZHjjOg07pw1ZoR7+Oog==} + babel-plugin-react-compiler@19.0.0-beta-63e3235-20250105: + resolution: {integrity: sha512-38qEX4e1nNOZ9K7rVAF4VVijcjTHBbRHd+ftYpfim2Oabitd1NGjvrL0bnwFymDTBB4MqswqIHTYjYfuy1OeTQ==} babel-plugin-styled-components@2.1.4: resolution: {integrity: sha512-Xgp9g+A/cG47sUyRwwYxGM4bR/jDRg5N6it/8+HxCnbT5XNKSKDT9xm4oag/osgqjC2It/vH0yXsomOG6k558g==} @@ -6973,8 +6866,8 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - effect@3.12.0: - resolution: {integrity: sha512-b/u9s3b9HfTo0qygVouegP0hkbiuxRIeaCe1ppf8P88hPyl6lKCbErtn7Az4jG7LuU7f0Wgm4c8WXbMcL2j8+g==} + effect@3.12.1: + resolution: {integrity: sha512-aAZdh56Yp1ehOFYeMcHHctTtxfqm6kkOdZFTXK6Zf0QoaKKc1hPG6ocjrKOc0axE8JbG4eZw351ogNLrM4vo9w==} ejs@3.1.10: resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} @@ -7266,8 +7159,8 @@ packages: eslint-config-prettier: optional: true - eslint-plugin-react-compiler@19.0.0-beta-55955c9-20241229: - resolution: {integrity: sha512-KsE6bQrNvtPDbMb9EolZ2C+Z2/uv2Y5cAUgN+pzbriXjKlf1FkbgiyE153m2mIT6gEZq2OrtFvX7uJj5IrNQlg==} + eslint-plugin-react-compiler@19.0.0-beta-63e3235-20250105: + resolution: {integrity: sha512-Smts5x+u+rRopr0926jCXFPkS8D8hFJexDvTW41V0Xu/xHgd4pnGWiJQRBsvTEARzOdJ6NdlmYs4n+O4Thn2iA==} engines: {node: ^14.17.0 || ^16.0.0 || >= 18.0.0} peerDependencies: eslint: '>=7' @@ -7682,8 +7575,8 @@ packages: resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} engines: {node: '>=0.10.0'} - framer-motion@11.15.0: - resolution: {integrity: sha512-MLk8IvZntxOMg7lDBLw2qgTHHv664bYoYmnFTmE0Gm/FW67aOJk0WM3ctMcG+Xhcv+vh5uyyXwxvxhSeJzSe+w==} + framer-motion@11.16.0: + resolution: {integrity: sha512-oL2AWqLQuw0+CNEUa0sz3mWC/n3i147CckvpQn8bLRs30b+HxTxlRi0YR2FpHHhAbWV7DKjNdHU42KHLfBWh/g==} peerDependencies: '@emotion/is-prop-valid': '*' react: ^18.0.0 || ^19.0.0 @@ -9309,11 +9202,11 @@ packages: moment@2.30.1: resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==} - motion-dom@11.14.3: - resolution: {integrity: sha512-lW+D2wBy5vxLJi6aCP0xyxTxlTfiu+b+zcpVbGVFUxotwThqhdpPRSmX8xztAgtZMPMeU0WGVn/k1w4I+TbPqA==} + motion-dom@11.16.0: + resolution: {integrity: sha512-4bmEwajSdrljzDAYpu6ceEdtI4J5PH25fmN8YSx7Qxk6OMrC10CXM0D5y+VO/pFZjhmCvm2bGf7Rus482kwhzA==} - motion-utils@11.14.3: - resolution: {integrity: sha512-Xg+8xnqIJTpr0L/cidfTTBFkvRw26ZtGGuIhA94J9PQ2p4mEa06Xx7QVYZH0BP+EpMSaDlu+q0I0mmvwADPsaQ==} + motion-utils@11.16.0: + resolution: {integrity: sha512-ngdWPjg31rD4WGXFi0eZ00DQQqKKu04QExyv/ymlC+3k+WIgYVFbt6gS5JsFPbJODTF/r8XiE/X+SsoT9c0ocw==} mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} @@ -9377,26 +9270,8 @@ packages: neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - next@14.2.21: - resolution: {integrity: sha512-rZmLwucLHr3/zfDMYbJXbw0ZeoBpirxkXuvsJbk7UPorvPYZhP7vq7aHbKnU7dQNCYIimRrbB2pp3xmf+wsYUg==} - engines: {node: '>=18.17.0'} - hasBin: true - peerDependencies: - '@opentelemetry/api': ^1.1.0 - '@playwright/test': ^1.41.2 - react: ^18.2.0 - react-dom: ^18.2.0 - sass: ^1.3.0 - peerDependenciesMeta: - '@opentelemetry/api': - optional: true - '@playwright/test': - optional: true - sass: - optional: true - - next@15.1.2: - resolution: {integrity: sha512-nLJDV7peNy+0oHlmY2JZjzMfJ8Aj0/dd3jCwSZS8ZiO5nkQfcZRqDrRN3U5rJtqVTQneIOGZzb6LCNrk7trMCQ==} + next@15.1.3: + resolution: {integrity: sha512-5igmb8N8AEhWDYzogcJvtcRDU6n4cMGtBklxKD4biYv4LXN8+awc/bbQ2IM2NQHdVPgJ6XumYXfo3hBtErg1DA==} engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} hasBin: true peerDependencies: @@ -10268,15 +10143,10 @@ packages: peerDependencies: react: ^18.3.1 - react-dom@19.0.0-rc-f994737d14-20240522: - resolution: {integrity: sha512-J4CsfTSptPKkhaPbaR6n/KohQiHZTrRZ8GL4H8rbAqN/Qpy69g2MIoLBr5/PUX21ye6JxC1ZRWJFna7Xdg1pdA==} - peerDependencies: - react: 19.0.0-rc-f994737d14-20240522 - - react-dom@19.0.0-rc.1: - resolution: {integrity: sha512-k8MfDX+4G+eaa1cXXI9QF4d+pQtYol3nx8vauqRWUEOPqC7NQn2qmEqUsLoSd28rrZUL+R3T2VC+kZ2Hyx1geQ==} + react-dom@19.0.0: + resolution: {integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==} peerDependencies: - react: 19.0.0-rc.1 + react: ^19.0.0 react-dropzone@11.7.1: resolution: {integrity: sha512-zxCMwhfPy1olUEbw3FLNPLhAm/HnaYH5aELIEglRbqabizKAdHs0h+WuyOpmA+v1JXn0++fpQDdNfUagWt5hJQ==} @@ -10359,8 +10229,8 @@ packages: resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} engines: {node: '>=0.10.0'} - react-rx@4.1.11: - resolution: {integrity: sha512-wYhVrxnZ4b1SoyDauTWVZ5VW1cV25h3p9nDHpzQrAPiEQVhpPZNxdXFBEfNBHI+JHIl0jAlxEzRiyytHJr7beQ==} + react-rx@4.1.12: + resolution: {integrity: sha512-rX8WaVq+YkW9AcfKrEIXg8X15dR9pLHU7JZh4K1Ffc2k8zM4YuR7xh0Fi5EkranqcTAFGKoN2Z+q5QY8k+lHxA==} peerDependencies: react: ^18.3 || >=19.0.0-0 rxjs: ^7 @@ -10399,12 +10269,8 @@ packages: resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} engines: {node: '>=0.10.0'} - react@19.0.0-rc-f994737d14-20240522: - resolution: {integrity: sha512-SeU2v5Xy6FotVhKz0pMS2gvYP7HlkF0qgTskj3JzA1vlxcb3dQjxlm9t0ZlJqcgoyI3VFAw7bomuDMdgy1nBuw==} - engines: {node: '>=0.10.0'} - - react@19.0.0-rc.1: - resolution: {integrity: sha512-NZKln+uyPuyHchzP07I6GGYFxdAoaKhehgpCa3ltJGzwE31OYumLeshGaitA1R/fS5d9D2qpZVwTFAr6zCLM9w==} + react@19.0.0: + resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==} engines: {node: '>=0.10.0'} reactcss@1.2.3: @@ -10707,8 +10573,8 @@ packages: engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true - rollup@4.29.1: - resolution: {integrity: sha512-RaJ45M/kmJUzSWDs1Nnd5DdV4eerC98idtUOVr6FfKcgxqvjwHmxc5upLF9qZU9EpsVzzhleFahrT3shLuJzIw==} + rollup@4.30.1: + resolution: {integrity: sha512-mlJ4glW020fPuLi7DkM/lN97mYEZGWeqBnrljzN0gs7GLctqX3lNWxKQ7Gl712UAX+6fog/L3jh4gb7R6aVi3w==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -10831,11 +10697,8 @@ packages: scheduler@0.23.2: resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} - scheduler@0.25.0-rc-f994737d14-20240522: - resolution: {integrity: sha512-qS+xGFF7AljP2APO2iJe8zESNsK20k25MACz+WGOXPybUsRdi1ssvaoF93im2nSX2q/XT3wKkjdz6RQfbmaxdw==} - - scheduler@0.25.0-rc.1: - resolution: {integrity: sha512-fVinv2lXqYpKConAMdergOl5owd0rY1O4P/QTe0aWKCqGtu7VsCt1iqQFxSJtqK4Lci/upVSBpGwVC7eWcuS9Q==} + scheduler@0.25.0: + resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==} scroll-into-view-if-needed@3.1.0: resolution: {integrity: sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==} @@ -11315,26 +11178,13 @@ packages: react-dom: '>= 16.8.0' react-is: '>= 16.8.0' - styled-components@6.1.13: - resolution: {integrity: sha512-M0+N2xSnAtwcVAQeFEsGWFFxXDftHUD7XrKla06QbpUMmbmtFBMMTcKWvFXtWxuD5qQkB8iU5gk6QASlx2ZRMw==} + styled-components@6.1.14: + resolution: {integrity: sha512-KtfwhU5jw7UoxdM0g6XU9VZQFV4do+KrM8idiVCH5h4v49W+3p3yMe0icYwJgZQZepa5DbH04Qv8P0/RdcLcgg==} engines: {node: '>= 16'} peerDependencies: react: '>= 16.8.0' react-dom: '>= 16.8.0' - styled-jsx@5.1.1: - resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} - engines: {node: '>= 12.0.0'} - peerDependencies: - '@babel/core': '*' - babel-plugin-macros: '*' - react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' - peerDependenciesMeta: - '@babel/core': - optional: true - babel-plugin-macros: - optional: true - styled-jsx@5.1.6: resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==} engines: {node: '>= 12.0.0'} @@ -11928,8 +11778,8 @@ packages: resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} hasBin: true - uuid@11.0.3: - resolution: {integrity: sha512-d0z310fCWv5dJwnX1Y/MncBAqGMKEzlBb1AOf7z9K8ALnd0utBX/msg/fA0+sbyN1ihbMsLhrBlnl1ak7Wa0rg==} + uuid@11.0.4: + resolution: {integrity: sha512-IzL6VtTTYcAhA/oghbFJ1Dkmqev+FpQWnCBaKq/gUluLxliWvO8DPFWfIviRmYbtaavtSQe4WBL++rFjdcGWEg==} hasBin: true uuid@8.3.2: @@ -12036,8 +11886,8 @@ packages: terser: optional: true - vite@6.0.6: - resolution: {integrity: sha512-NSjmUuckPmDU18bHz7QZ+bTYhRR0iA72cs2QAxCqDpafJ0S6qetco0LB3WW2OxlMHS0JmAv+yZ/R3uPmMyGTjQ==} + vite@6.0.7: + resolution: {integrity: sha512-RDt8r/7qx9940f8FcOIAH9PTViRrghKaK2K1jY3RaAURrEUbm9Du1mJ72G+jlhtG3WwodnfzY8ORQZbBavZEAQ==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: @@ -13407,19 +13257,19 @@ snapshots: '@emotion/memoize@0.9.0': {} - '@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1)': + '@emotion/react@11.14.0(@types/react@19.0.3)(react@19.0.0)': dependencies: '@babel/runtime': 7.26.0 '@emotion/babel-plugin': 11.13.5 '@emotion/cache': 11.14.0 '@emotion/serialize': 1.3.3 - '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@18.3.1) + '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.0.0) '@emotion/utils': 1.4.2 '@emotion/weak-memoize': 0.4.0 hoist-non-react-statics: 3.3.2 - react: 18.3.1 + react: 19.0.0 optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 19.0.3 transitivePeerDependencies: - supports-color @@ -13441,9 +13291,9 @@ snapshots: '@emotion/unitless@0.8.1': {} - '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@18.3.1)': + '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@19.0.0)': dependencies: - react: 18.3.1 + react: 19.0.0 '@emotion/utils@1.4.2': {} @@ -13837,17 +13687,17 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@floating-ui/react-dom@2.1.2(react-dom@19.0.0-rc-f994737d14-20240522(react@18.3.1))(react@18.3.1)': + '@floating-ui/react-dom@2.1.2(react-dom@19.0.0(react@18.3.1))(react@18.3.1)': dependencies: '@floating-ui/dom': 1.6.12 react: 18.3.1 - react-dom: 19.0.0-rc-f994737d14-20240522(react@18.3.1) + react-dom: 19.0.0(react@18.3.1) - '@floating-ui/react-dom@2.1.2(react-dom@19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522))(react@19.0.0-rc-f994737d14-20240522)': + '@floating-ui/react-dom@2.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@floating-ui/dom': 1.6.12 - react: 19.0.0-rc-f994737d14-20240522 - react-dom: 19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) '@floating-ui/utils@0.2.8': {} @@ -13885,9 +13735,9 @@ snapshots: dependencies: hono: 4.6.14 - '@hookform/resolvers@3.9.1(react-hook-form@7.54.1(react@18.3.1))': + '@hookform/resolvers@3.9.1(react-hook-form@7.54.1(react@19.0.0))': dependencies: - react-hook-form: 7.54.1(react@18.3.1) + react-hook-form: 7.54.1(react@19.0.0) '@humanwhocodes/config-array@0.13.0': dependencies: @@ -13905,9 +13755,9 @@ snapshots: '@iarna/toml@2.2.3': {} - '@icons/material@0.2.4(react@18.3.1)': + '@icons/material@0.2.4(react@19.0.0)': dependencies: - react: 18.3.1 + react: 19.0.0 '@img/sharp-darwin-arm64@0.33.5': optionalDependencies: @@ -14224,19 +14074,19 @@ snapshots: ast-types: 0.14.2 cli-high: 0.4.3 diff: 5.2.0 - effect: 3.12.0 + effect: 3.12.1 nanoid: 5.0.9 recast: 0.23.9 xycolors: 0.1.2 - '@million/lint@1.0.14(encoding@0.1.13)(rollup@4.29.1)': + '@million/lint@1.0.14(encoding@0.1.13)(rollup@4.30.1)': dependencies: '@axiomhq/js': 1.0.0-rc.3 '@babel/core': 7.26.0 '@babel/types': 7.26.0 '@hono/node-server': 1.13.7(hono@4.6.14) '@million/install': 1.0.14 - '@rollup/pluginutils': 5.1.4(rollup@4.29.1) + '@rollup/pluginutils': 5.1.4(rollup@4.30.1) '@rrweb/types': 2.0.0-alpha.16 babel-plugin-syntax-hermes-parser: 0.21.1 ci-info: 4.1.0 @@ -14266,15 +14116,15 @@ snapshots: - supports-color - utf-8-validate - '@mux/mux-player-react@2.9.1(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mux/mux-player-react@2.9.1(@types/react@19.0.3)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@mux/mux-player': 2.9.1 '@mux/playback-core': 0.25.2 prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 19.0.3 '@mux/mux-player@2.9.1': dependencies: @@ -14380,59 +14230,31 @@ snapshots: '@tybys/wasm-util': 0.9.0 optional: true - '@next/env@14.2.21': {} - - '@next/env@15.1.2': {} - - '@next/swc-darwin-arm64@14.2.21': - optional: true - - '@next/swc-darwin-arm64@15.1.2': - optional: true - - '@next/swc-darwin-x64@14.2.21': - optional: true - - '@next/swc-darwin-x64@15.1.2': - optional: true - - '@next/swc-linux-arm64-gnu@14.2.21': - optional: true - - '@next/swc-linux-arm64-gnu@15.1.2': - optional: true - - '@next/swc-linux-arm64-musl@14.2.21': - optional: true - - '@next/swc-linux-arm64-musl@15.1.2': - optional: true - - '@next/swc-linux-x64-gnu@14.2.21': + '@next/env@15.1.3': optional: true - '@next/swc-linux-x64-gnu@15.1.2': + '@next/swc-darwin-arm64@15.1.3': optional: true - '@next/swc-linux-x64-musl@14.2.21': + '@next/swc-darwin-x64@15.1.3': optional: true - '@next/swc-linux-x64-musl@15.1.2': + '@next/swc-linux-arm64-gnu@15.1.3': optional: true - '@next/swc-win32-arm64-msvc@14.2.21': + '@next/swc-linux-arm64-musl@15.1.3': optional: true - '@next/swc-win32-arm64-msvc@15.1.2': + '@next/swc-linux-x64-gnu@15.1.3': optional: true - '@next/swc-win32-ia32-msvc@14.2.21': + '@next/swc-linux-x64-musl@15.1.3': optional: true - '@next/swc-win32-x64-msvc@14.2.21': + '@next/swc-win32-arm64-msvc@15.1.3': optional: true - '@next/swc-win32-x64-msvc@15.1.2': + '@next/swc-win32-x64-msvc@15.1.3': optional: true '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': @@ -14766,11 +14588,11 @@ snapshots: dependencies: '@octokit/openapi-types': 18.1.1 - '@optimize-lodash/rollup-plugin@5.0.0(rollup@4.29.1)': + '@optimize-lodash/rollup-plugin@5.0.0(rollup@4.30.1)': dependencies: '@optimize-lodash/transform': 3.0.4 - '@rollup/pluginutils': 5.1.4(rollup@4.29.1) - rollup: 4.29.1 + '@rollup/pluginutils': 5.1.4(rollup@4.30.1) + rollup: 4.30.1 '@optimize-lodash/transform@3.0.4': dependencies: @@ -14864,13 +14686,13 @@ snapshots: '@pnpm/network.ca-file': 1.0.2 config-chain: 1.1.13 - '@portabletext/editor@1.18.7(@sanity/block-tools@packages+@sanity+block-tools)(@sanity/schema@packages+@sanity+schema)(@sanity/types@packages+@sanity+types)(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.1)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': + '@portabletext/editor@1.20.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)': dependencies: '@portabletext/patches': 1.1.1 '@sanity/block-tools': link:packages/@sanity/block-tools '@sanity/schema': link:packages/@sanity/schema '@sanity/types': link:packages/@sanity/types - '@xstate/react': 5.0.1(@types/react@18.3.18)(react@18.3.1)(xstate@5.19.1) + '@xstate/react': 5.0.1(@types/react@19.0.3)(react@18.3.1)(xstate@5.19.1) debug: 4.4.0(supports-color@9.4.0) get-random-values-esm: 1.0.2 lodash: 4.17.21 @@ -14881,7 +14703,6 @@ snapshots: slate: 0.112.0 slate-dom: 0.111.0(slate@0.112.0) slate-react: 0.112.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(slate-dom@0.111.0(slate@0.112.0))(slate@0.112.0) - styled-components: 6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) use-effect-event: 1.0.2(react@18.3.1) xstate: 5.19.1 transitivePeerDependencies: @@ -14889,6 +14710,30 @@ snapshots: - react-dom - supports-color + '@portabletext/editor@1.20.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)': + dependencies: + '@portabletext/patches': 1.1.1 + '@sanity/block-tools': link:packages/@sanity/block-tools + '@sanity/schema': link:packages/@sanity/schema + '@sanity/types': link:packages/@sanity/types + '@xstate/react': 5.0.1(@types/react@19.0.3)(react@19.0.0)(xstate@5.19.1) + debug: 4.4.0(supports-color@9.4.0) + get-random-values-esm: 1.0.2 + lodash: 4.17.21 + lodash.startcase: 4.4.0 + react: 19.0.0 + react-compiler-runtime: 19.0.0-beta-55955c9-20241229(react@19.0.0) + rxjs: 7.8.1 + slate: 0.112.0 + slate-dom: 0.111.0(slate@0.112.0) + slate-react: 0.112.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(slate-dom@0.111.0(slate@0.112.0))(slate@0.112.0) + use-effect-event: 1.0.2(react@19.0.0) + xstate: 5.19.1 + transitivePeerDependencies: + - '@types/react' + - react-dom + - supports-color + '@portabletext/patches@1.1.1': dependencies: '@sanity/diff-match-patch': 3.1.2 @@ -14900,11 +14745,11 @@ snapshots: '@portabletext/types': 2.0.13 react: 18.3.1 - '@portabletext/react@3.2.0(react@19.0.0-rc-f994737d14-20240522)': + '@portabletext/react@3.2.0(react@19.0.0)': dependencies: '@portabletext/toolkit': 2.0.16 '@portabletext/types': 2.0.13 - react: 19.0.0-rc-f994737d14-20240522 + react: 19.0.0 '@portabletext/toolkit@2.0.16': dependencies: @@ -14912,15 +14757,15 @@ snapshots: '@portabletext/types@2.0.13': {} - '@reduxjs/toolkit@1.9.7(react-redux@7.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': + '@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)': dependencies: immer: 9.0.21 redux: 4.2.1 redux-thunk: 2.4.2(redux@4.2.1) reselect: 4.1.8 optionalDependencies: - react: 18.3.1 - react-redux: 7.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 19.0.0 + react-redux: 7.2.9(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@rexxars/gitconfiglocal@3.0.1': dependencies: @@ -14932,29 +14777,29 @@ snapshots: md5-o-matic: 0.1.1 react: 18.3.1 - '@rexxars/react-split-pane@1.0.0(react-dom@19.0.0-rc-f994737d14-20240522(react@18.3.1))(react@18.3.1)': + '@rexxars/react-split-pane@1.0.0(react-dom@19.0.0(react@18.3.1))(react@18.3.1)': dependencies: react: 18.3.1 - react-dom: 19.0.0-rc-f994737d14-20240522(react@18.3.1) + react-dom: 19.0.0(react@18.3.1) - '@rollup/plugin-alias@5.1.1(rollup@4.29.1)': + '@rollup/plugin-alias@5.1.1(rollup@4.30.1)': optionalDependencies: - rollup: 4.29.1 + rollup: 4.30.1 - '@rollup/plugin-babel@6.0.4(@babel/core@7.26.0)(@types/babel__core@7.20.5)(rollup@4.29.1)': + '@rollup/plugin-babel@6.0.4(@babel/core@7.26.0)(@types/babel__core@7.20.5)(rollup@4.30.1)': dependencies: '@babel/core': 7.26.0 '@babel/helper-module-imports': 7.25.9 - '@rollup/pluginutils': 5.1.4(rollup@4.29.1) + '@rollup/pluginutils': 5.1.4(rollup@4.30.1) optionalDependencies: '@types/babel__core': 7.20.5 - rollup: 4.29.1 + rollup: 4.30.1 transitivePeerDependencies: - supports-color - '@rollup/plugin-commonjs@28.0.2(rollup@4.29.1)': + '@rollup/plugin-commonjs@28.0.2(rollup@4.30.1)': dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.29.1) + '@rollup/pluginutils': 5.1.4(rollup@4.30.1) commondir: 1.0.1 estree-walker: 2.0.2 fdir: 6.4.2(picomatch@4.0.2) @@ -14962,119 +14807,119 @@ snapshots: magic-string: 0.30.17 picomatch: 4.0.2 optionalDependencies: - rollup: 4.29.1 + rollup: 4.30.1 - '@rollup/plugin-json@6.1.0(rollup@4.29.1)': + '@rollup/plugin-json@6.1.0(rollup@4.30.1)': dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.29.1) + '@rollup/pluginutils': 5.1.4(rollup@4.30.1) optionalDependencies: - rollup: 4.29.1 + rollup: 4.30.1 - '@rollup/plugin-node-resolve@15.3.1(rollup@4.29.1)': + '@rollup/plugin-node-resolve@15.3.1(rollup@4.30.1)': dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.29.1) + '@rollup/pluginutils': 5.1.4(rollup@4.30.1) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-module: 1.0.0 resolve: 1.22.9 optionalDependencies: - rollup: 4.29.1 + rollup: 4.30.1 - '@rollup/plugin-node-resolve@16.0.0(rollup@4.29.1)': + '@rollup/plugin-node-resolve@16.0.0(rollup@4.30.1)': dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.29.1) + '@rollup/pluginutils': 5.1.4(rollup@4.30.1) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-module: 1.0.0 resolve: 1.22.9 optionalDependencies: - rollup: 4.29.1 + rollup: 4.30.1 - '@rollup/plugin-replace@6.0.2(rollup@4.29.1)': + '@rollup/plugin-replace@6.0.2(rollup@4.30.1)': dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.29.1) + '@rollup/pluginutils': 5.1.4(rollup@4.30.1) magic-string: 0.30.17 optionalDependencies: - rollup: 4.29.1 + rollup: 4.30.1 - '@rollup/plugin-terser@0.4.4(rollup@4.29.1)': + '@rollup/plugin-terser@0.4.4(rollup@4.30.1)': dependencies: serialize-javascript: 6.0.2 smob: 1.5.0 terser: 5.37.0 optionalDependencies: - rollup: 4.29.1 + rollup: 4.30.1 - '@rollup/pluginutils@3.1.0(rollup@4.29.1)': + '@rollup/pluginutils@3.1.0(rollup@4.30.1)': dependencies: '@types/estree': 0.0.39 estree-walker: 1.0.1 picomatch: 2.3.1 - rollup: 4.29.1 + rollup: 4.30.1 - '@rollup/pluginutils@5.1.4(rollup@4.29.1)': + '@rollup/pluginutils@5.1.4(rollup@4.30.1)': dependencies: '@types/estree': 1.0.6 estree-walker: 2.0.2 picomatch: 4.0.2 optionalDependencies: - rollup: 4.29.1 + rollup: 4.30.1 - '@rollup/rollup-android-arm-eabi@4.29.1': + '@rollup/rollup-android-arm-eabi@4.30.1': optional: true - '@rollup/rollup-android-arm64@4.29.1': + '@rollup/rollup-android-arm64@4.30.1': optional: true - '@rollup/rollup-darwin-arm64@4.29.1': + '@rollup/rollup-darwin-arm64@4.30.1': optional: true - '@rollup/rollup-darwin-x64@4.29.1': + '@rollup/rollup-darwin-x64@4.30.1': optional: true - '@rollup/rollup-freebsd-arm64@4.29.1': + '@rollup/rollup-freebsd-arm64@4.30.1': optional: true - '@rollup/rollup-freebsd-x64@4.29.1': + '@rollup/rollup-freebsd-x64@4.30.1': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.29.1': + '@rollup/rollup-linux-arm-gnueabihf@4.30.1': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.29.1': + '@rollup/rollup-linux-arm-musleabihf@4.30.1': optional: true - '@rollup/rollup-linux-arm64-gnu@4.29.1': + '@rollup/rollup-linux-arm64-gnu@4.30.1': optional: true - '@rollup/rollup-linux-arm64-musl@4.29.1': + '@rollup/rollup-linux-arm64-musl@4.30.1': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.29.1': + '@rollup/rollup-linux-loongarch64-gnu@4.30.1': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.29.1': + '@rollup/rollup-linux-powerpc64le-gnu@4.30.1': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.29.1': + '@rollup/rollup-linux-riscv64-gnu@4.30.1': optional: true - '@rollup/rollup-linux-s390x-gnu@4.29.1': + '@rollup/rollup-linux-s390x-gnu@4.30.1': optional: true - '@rollup/rollup-linux-x64-gnu@4.29.1': + '@rollup/rollup-linux-x64-gnu@4.30.1': optional: true - '@rollup/rollup-linux-x64-musl@4.29.1': + '@rollup/rollup-linux-x64-musl@4.30.1': optional: true - '@rollup/rollup-win32-arm64-msvc@4.29.1': + '@rollup/rollup-win32-arm64-msvc@4.30.1': optional: true - '@rollup/rollup-win32-ia32-msvc@4.29.1': + '@rollup/rollup-win32-ia32-msvc@4.30.1': optional: true - '@rollup/rollup-win32-x64-msvc@4.29.1': + '@rollup/rollup-win32-x64-msvc@4.30.1': optional: true '@rrweb/types@2.0.0-alpha.16': @@ -15121,21 +14966,21 @@ snapshots: '@sanity/asset-utils@2.2.1': {} - '@sanity/assist@3.0.9(@emotion/is-prop-valid@1.3.1)(@sanity/mutator@packages+@sanity+mutator)(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.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': + '@sanity/assist@3.0.9(@emotion/is-prop-valid@1.3.1)(@sanity/mutator@packages+@sanity+mutator)(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/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/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.10.14(@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.13(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@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 - react: 18.3.1 + react: 19.0.0 react-fast-compare: 3.2.2 rxjs: 7.8.1 rxjs-exhaustmap-with-trailing: 2.1.1(rxjs@7.8.1) sanity: link:packages/sanity - styled-components: 6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + styled-components: 6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - '@emotion/is-prop-valid' - react-dom @@ -15156,7 +15001,7 @@ snapshots: transitivePeerDependencies: - debug - '@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.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': + '@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 @@ -15176,13 +15021,13 @@ snapshots: '@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.10.14(@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.13(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) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) sanity: link:packages/sanity - styled-components: 6.1.13(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) transitivePeerDependencies: - '@babel/runtime' - '@codemirror/lint' @@ -15191,16 +15036,16 @@ snapshots: - codemirror - react-is - '@sanity/color-input@4.0.3(@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)(sanity@packages+sanity)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': + '@sanity/color-input@4.0.3(@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)(sanity@packages+sanity)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0))': 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.10.14(@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.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) - react: 18.3.1 - react-color: 2.19.3(react@18.3.1) + '@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)) + react: 19.0.0 + react-color: 2.19.3(react@19.0.0) sanity: link:packages/sanity - styled-components: 6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - use-effect-event: 1.0.2(react@18.3.1) + styled-components: 6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + use-effect-event: 1.0.2(react@19.0.0) transitivePeerDependencies: - '@emotion/is-prop-valid' - react-dom @@ -15208,22 +15053,22 @@ snapshots: '@sanity/color@3.0.6': {} - '@sanity/comlink@2.0.3': + '@sanity/comlink@2.0.3-release.0': dependencies: rxjs: 7.8.1 - uuid: 11.0.3 + uuid: 11.0.4 xstate: 5.19.1 - '@sanity/comlink@2.0.3-release.0': + '@sanity/comlink@2.0.4': dependencies: rxjs: 7.8.1 - uuid: 11.0.3 + uuid: 11.0.4 xstate: 5.19.1 - '@sanity/core-loader@1.7.22': + '@sanity/core-loader@1.7.23': dependencies: '@sanity/client': 6.24.1(debug@4.4.0) - '@sanity/comlink': 2.0.3 + '@sanity/comlink': 2.0.4 transitivePeerDependencies: - debug @@ -15267,10 +15112,10 @@ snapshots: event-source-polyfill: 1.0.31 eventsource: 2.0.2 - '@sanity/export@3.42.1': + '@sanity/export@3.42.2(@types/react@19.0.3)': dependencies: '@sanity/client': 6.24.1(debug@4.4.0) - '@sanity/util': link:packages/@sanity/util + '@sanity/util': 3.68.3(@types/react@19.0.3)(debug@4.4.0) archiver: 7.0.1 debug: 4.4.0(supports-color@9.4.0) get-it: 8.6.5(debug@4.4.0) @@ -15283,18 +15128,32 @@ snapshots: tar: 7.4.3 yaml: 2.6.1 transitivePeerDependencies: + - '@types/react' - supports-color '@sanity/generate-help-url@3.0.0': {} - '@sanity/google-maps-input@4.1.0(@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)(sanity@packages+sanity)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': + '@sanity/google-maps-input@4.1.0(@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)(sanity@packages+sanity)(styled-components@6.1.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': 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.10.14(@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.13(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)) react: 18.3.1 sanity: link:packages/sanity - styled-components: 6.1.13(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) + transitivePeerDependencies: + - '@emotion/is-prop-valid' + - react-dom + - react-is + + '@sanity/google-maps-input@4.1.0(@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)(sanity@packages+sanity)(styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0))': + 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)) + 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) transitivePeerDependencies: - '@emotion/is-prop-valid' - react-dom @@ -15304,9 +15163,9 @@ snapshots: dependencies: react: 18.3.1 - '@sanity/icons@3.5.7(react@19.0.0-rc-f994737d14-20240522)': + '@sanity/icons@3.5.7(react@19.0.0)': dependencies: - react: 19.0.0-rc-f994737d14-20240522 + react: 19.0.0 '@sanity/image-url@1.1.0': {} @@ -15341,11 +15200,16 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@sanity/insert-menu@1.0.18(@emotion/is-prop-valid@1.3.1)(@sanity/types@packages+@sanity+types)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': + '@sanity/incompatible-plugin@1.0.5(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + + '@sanity/insert-menu@1.0.18(@emotion/is-prop-valid@1.3.1)(@sanity/types@packages+@sanity+types)(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/icons': 3.5.7(react@18.3.1) '@sanity/types': link:packages/@sanity/types - '@sanity/ui': 2.10.14(@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.13(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@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) @@ -15354,14 +15218,14 @@ snapshots: - '@emotion/is-prop-valid' - styled-components - '@sanity/insert-menu@1.0.18(@emotion/is-prop-valid@1.3.1)(@sanity/types@packages+@sanity+types)(react-dom@19.0.0-rc-f994737d14-20240522(react@18.3.1))(react-is@19.0.0-rc.1)(react@18.3.1)(styled-components@6.1.13(react-dom@19.0.0-rc-f994737d14-20240522(react@18.3.1))(react@18.3.1))': + '@sanity/insert-menu@1.0.18(@emotion/is-prop-valid@1.3.1)(@sanity/types@packages+@sanity+types)(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: '@sanity/icons': 3.5.7(react@18.3.1) '@sanity/types': link:packages/@sanity/types - '@sanity/ui': 2.10.14(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0-rc-f994737d14-20240522(react@18.3.1))(react-is@19.0.0-rc.1)(react@18.3.1)(styled-components@6.1.13(react-dom@19.0.0-rc-f994737d14-20240522(react@18.3.1))(react@18.3.1)) + '@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)) lodash: 4.17.21 react: 18.3.1 - react-dom: 19.0.0-rc-f994737d14-20240522(react@18.3.1) + react-dom: 19.0.0(react@18.3.1) react-is: 19.0.0-rc.1 transitivePeerDependencies: - '@emotion/is-prop-valid' @@ -15392,6 +15256,11 @@ snapshots: '@sanity/color': 3.0.6 react: 18.3.1 + '@sanity/logos@2.1.13(@sanity/color@3.0.6)(react@19.0.0)': + dependencies: + '@sanity/color': 3.0.6 + react: 19.0.0 + '@sanity/mutate@0.11.0-canary.4(xstate@5.19.1)': dependencies: '@sanity/client': 6.24.1(debug@4.4.0) @@ -15418,21 +15287,21 @@ snapshots: transitivePeerDependencies: - debug - '@sanity/pkg-utils@6.12.3(@types/babel__core@7.20.5)(@types/node@22.10.2)(babel-plugin-react-compiler@19.0.0-beta-55955c9-20241229)(debug@4.4.0)(typescript@5.7.2)': + '@sanity/pkg-utils@6.13.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)(typescript@5.7.2)': dependencies: '@babel/core': 7.26.0 '@babel/preset-typescript': 7.26.0(@babel/core@7.26.0) '@babel/types': 7.26.3 '@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.29.1) - '@rollup/plugin-alias': 5.1.1(rollup@4.29.1) - '@rollup/plugin-babel': 6.0.4(@babel/core@7.26.0)(@types/babel__core@7.20.5)(rollup@4.29.1) - '@rollup/plugin-commonjs': 28.0.2(rollup@4.29.1) - '@rollup/plugin-json': 6.1.0(rollup@4.29.1) - '@rollup/plugin-node-resolve': 16.0.0(rollup@4.29.1) - '@rollup/plugin-replace': 6.0.2(rollup@4.29.1) - '@rollup/plugin-terser': 0.4.4(rollup@4.29.1) + '@optimize-lodash/rollup-plugin': 5.0.0(rollup@4.30.1) + '@rollup/plugin-alias': 5.1.1(rollup@4.30.1) + '@rollup/plugin-babel': 6.0.4(@babel/core@7.26.0)(@types/babel__core@7.20.5)(rollup@4.30.1) + '@rollup/plugin-commonjs': 28.0.2(rollup@4.30.1) + '@rollup/plugin-json': 6.1.0(rollup@4.30.1) + '@rollup/plugin-node-resolve': 16.0.0(rollup@4.30.1) + '@rollup/plugin-replace': 6.0.2(rollup@4.30.1) + '@rollup/plugin-terser': 0.4.4(rollup@4.30.1) '@sanity/browserslist-config': 1.0.5 browserslist: 4.24.3 cac: 6.7.14 @@ -15454,37 +15323,37 @@ snapshots: prompts: 2.4.2 recast: 0.23.9 rimraf: 4.4.1 - rollup: 4.29.1 - rollup-plugin-esbuild: 6.1.1(esbuild@0.24.2)(rollup@4.29.1) + rollup: 4.30.1 + rollup-plugin-esbuild: 6.1.1(esbuild@0.24.2)(rollup@4.30.1) rxjs: 7.8.1 treeify: 1.1.0 typescript: 5.7.2 - uuid: 11.0.3 + uuid: 11.0.4 zod: 3.24.1 zod-validation-error: 3.4.0(zod@3.24.1) optionalDependencies: - babel-plugin-react-compiler: 19.0.0-beta-55955c9-20241229 + babel-plugin-react-compiler: 19.0.0-beta-63e3235-20250105 transitivePeerDependencies: - '@types/babel__core' - '@types/node' - debug - supports-color - '@sanity/pkg-utils@6.12.3(@types/babel__core@7.20.5)(@types/node@22.10.2)(babel-plugin-react-compiler@19.0.0-beta-55955c9-20241229)(typescript@5.7.2)': + '@sanity/pkg-utils@6.13.1(@types/babel__core@7.20.5)(@types/node@22.10.2)(babel-plugin-react-compiler@19.0.0-beta-63e3235-20250105)(typescript@5.7.2)': dependencies: '@babel/core': 7.26.0 '@babel/preset-typescript': 7.26.0(@babel/core@7.26.0) '@babel/types': 7.26.3 '@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.29.1) - '@rollup/plugin-alias': 5.1.1(rollup@4.29.1) - '@rollup/plugin-babel': 6.0.4(@babel/core@7.26.0)(@types/babel__core@7.20.5)(rollup@4.29.1) - '@rollup/plugin-commonjs': 28.0.2(rollup@4.29.1) - '@rollup/plugin-json': 6.1.0(rollup@4.29.1) - '@rollup/plugin-node-resolve': 16.0.0(rollup@4.29.1) - '@rollup/plugin-replace': 6.0.2(rollup@4.29.1) - '@rollup/plugin-terser': 0.4.4(rollup@4.29.1) + '@optimize-lodash/rollup-plugin': 5.0.0(rollup@4.30.1) + '@rollup/plugin-alias': 5.1.1(rollup@4.30.1) + '@rollup/plugin-babel': 6.0.4(@babel/core@7.26.0)(@types/babel__core@7.20.5)(rollup@4.30.1) + '@rollup/plugin-commonjs': 28.0.2(rollup@4.30.1) + '@rollup/plugin-json': 6.1.0(rollup@4.30.1) + '@rollup/plugin-node-resolve': 16.0.0(rollup@4.30.1) + '@rollup/plugin-replace': 6.0.2(rollup@4.30.1) + '@rollup/plugin-terser': 0.4.4(rollup@4.30.1) '@sanity/browserslist-config': 1.0.5 browserslist: 4.24.3 cac: 6.7.14 @@ -15506,33 +15375,135 @@ snapshots: prompts: 2.4.2 recast: 0.23.9 rimraf: 4.4.1 - rollup: 4.29.1 - rollup-plugin-esbuild: 6.1.1(esbuild@0.24.2)(rollup@4.29.1) + rollup: 4.30.1 + rollup-plugin-esbuild: 6.1.1(esbuild@0.24.2)(rollup@4.30.1) rxjs: 7.8.1 treeify: 1.1.0 typescript: 5.7.2 - uuid: 11.0.3 + uuid: 11.0.4 zod: 3.24.1 zod-validation-error: 3.4.0(zod@3.24.1) optionalDependencies: - babel-plugin-react-compiler: 19.0.0-beta-55955c9-20241229 + babel-plugin-react-compiler: 19.0.0-beta-63e3235-20250105 transitivePeerDependencies: - '@types/babel__core' - '@types/node' - debug - supports-color - '@sanity/presentation@1.19.14-release.0(@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.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': + '@sanity/pkg-utils@6.13.2(@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.2)': dependencies: - '@sanity/client': 6.24.1(debug@4.4.0) - '@sanity/comlink': 2.0.3-release.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.6-release.1(@sanity/client@6.24.1(debug@4.4.0)) - '@sanity/ui': 2.10.14(@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.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) - '@sanity/uuid': 3.0.2 + '@babel/core': 7.26.0 + '@babel/preset-typescript': 7.26.0(@babel/core@7.26.0) + '@babel/types': 7.26.3 + '@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) + '@rollup/plugin-alias': 5.1.1(rollup@4.30.1) + '@rollup/plugin-babel': 6.0.4(@babel/core@7.26.0)(@types/babel__core@7.20.5)(rollup@4.30.1) + '@rollup/plugin-commonjs': 28.0.2(rollup@4.30.1) + '@rollup/plugin-json': 6.1.0(rollup@4.30.1) + '@rollup/plugin-node-resolve': 16.0.0(rollup@4.30.1) + '@rollup/plugin-replace': 6.0.2(rollup@4.30.1) + '@rollup/plugin-terser': 0.4.4(rollup@4.30.1) + '@sanity/browserslist-config': 1.0.5 + browserslist: 4.24.3 + cac: 6.7.14 + chalk: 4.1.2 + chokidar: 4.0.3 + esbuild: 0.24.2 + esbuild-register: 3.6.0(esbuild@0.24.2) + find-config: 1.0.0 + get-latest-version: 5.1.0(debug@4.4.0) + git-url-parse: 16.0.0 + globby: 11.1.0 + jsonc-parser: 3.3.1 + mkdirp: 3.0.1 + outdent: 0.8.0 + parse-git-config: 3.0.0 + pkg-up: 3.1.0 + prettier: 3.4.2 + pretty-bytes: 5.6.0 + prompts: 2.4.2 + recast: 0.23.9 + rimraf: 4.4.1 + rollup: 4.30.1 + rollup-plugin-esbuild: 6.1.1(esbuild@0.24.2)(rollup@4.30.1) + rxjs: 7.8.1 + treeify: 1.1.0 + typescript: 5.7.2 + uuid: 11.0.4 + 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 + transitivePeerDependencies: + - '@types/babel__core' + - '@types/node' + - debug + - supports-color + + '@sanity/pkg-utils@6.13.2(@types/babel__core@7.20.5)(@types/node@22.10.2)(typescript@5.7.2)': + dependencies: + '@babel/core': 7.26.0 + '@babel/preset-typescript': 7.26.0(@babel/core@7.26.0) + '@babel/types': 7.26.3 + '@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) + '@rollup/plugin-alias': 5.1.1(rollup@4.30.1) + '@rollup/plugin-babel': 6.0.4(@babel/core@7.26.0)(@types/babel__core@7.20.5)(rollup@4.30.1) + '@rollup/plugin-commonjs': 28.0.2(rollup@4.30.1) + '@rollup/plugin-json': 6.1.0(rollup@4.30.1) + '@rollup/plugin-node-resolve': 16.0.0(rollup@4.30.1) + '@rollup/plugin-replace': 6.0.2(rollup@4.30.1) + '@rollup/plugin-terser': 0.4.4(rollup@4.30.1) + '@sanity/browserslist-config': 1.0.5 + browserslist: 4.24.3 + cac: 6.7.14 + chalk: 4.1.2 + chokidar: 4.0.3 + esbuild: 0.24.2 + esbuild-register: 3.6.0(esbuild@0.24.2) + find-config: 1.0.0 + get-latest-version: 5.1.0(debug@4.4.0) + git-url-parse: 16.0.0 + globby: 11.1.0 + jsonc-parser: 3.3.1 + mkdirp: 3.0.1 + outdent: 0.8.0 + parse-git-config: 3.0.0 + pkg-up: 3.1.0 + prettier: 3.4.2 + pretty-bytes: 5.6.0 + prompts: 2.4.2 + recast: 0.23.9 + rimraf: 4.4.1 + rollup: 4.30.1 + rollup-plugin-esbuild: 6.1.1(esbuild@0.24.2)(rollup@4.30.1) + rxjs: 7.8.1 + treeify: 1.1.0 + typescript: 5.7.2 + uuid: 11.0.4 + zod: 3.24.1 + zod-validation-error: 3.4.0(zod@3.24.1) + transitivePeerDependencies: + - '@types/babel__core' + - '@types/node' + - debug + - supports-color + + '@sanity/presentation@1.19.14-release.0(@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.1(debug@4.4.0) + '@sanity/comlink': 2.0.3-release.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.6-release.1(@sanity/client@6.24.1(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/uuid': 3.0.2 fast-deep-equal: 3.1.3 - framer-motion: 11.15.0(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + framer-motion: 11.16.0(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) lodash: 4.17.21 mendoza: 3.0.8 mnemonist: 0.39.8 @@ -15565,11 +15536,11 @@ snapshots: '@sanity/client': 6.24.1(debug@4.4.0) '@sanity/uuid': 3.0.2 - '@sanity/react-loader@1.10.31(react@18.3.1)': + '@sanity/react-loader@1.10.32(react@19.0.0)': dependencies: '@sanity/client': 6.24.1(debug@4.4.0) - '@sanity/core-loader': 1.7.22 - react: 18.3.1 + '@sanity/core-loader': 1.7.23 + react: 19.0.0 transitivePeerDependencies: - debug @@ -15580,10 +15551,10 @@ snapshots: rxjs: 7.8.1 typeid-js: 0.3.0 - '@sanity/telemetry@0.7.9(react@19.0.0-rc-f994737d14-20240522)': + '@sanity/telemetry@0.7.9(react@19.0.0)': dependencies: lodash: 4.17.21 - react: 19.0.0-rc-f994737d14-20240522 + react: 19.0.0 rxjs: 7.8.1 typeid-js: 0.3.0 @@ -15591,7 +15562,7 @@ snapshots: dependencies: '@actions/core': 1.11.1 '@actions/github': 6.0.0 - '@sanity/pkg-utils': 6.12.3(@types/babel__core@7.20.5)(@types/node@22.10.2)(babel-plugin-react-compiler@19.0.0-beta-55955c9-20241229)(debug@4.4.0)(typescript@5.7.2) + '@sanity/pkg-utils': 6.13.2(@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.2) yaml: 2.6.1 transitivePeerDependencies: - '@types/babel__core' @@ -15610,7 +15581,7 @@ snapshots: transitivePeerDependencies: - debug - '@sanity/tsdoc@1.0.157(@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-55955c9-20241229)(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.13(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.164(@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)': dependencies: '@microsoft/api-extractor': 7.48.1(@types/node@22.10.2) '@microsoft/api-extractor-model': 7.30.1(@types/node@22.10.2) @@ -15621,10 +15592,10 @@ snapshots: '@sanity/client': 6.24.1(debug@4.4.0) '@sanity/color': 3.0.6 '@sanity/icons': 3.5.7(react@18.3.1) - '@sanity/pkg-utils': 6.12.3(@types/babel__core@7.20.5)(@types/node@22.10.2)(babel-plugin-react-compiler@19.0.0-beta-55955c9-20241229)(debug@4.4.0)(typescript@5.7.2) - '@sanity/ui': 2.10.14(@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.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@sanity/pkg-utils': 6.13.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)(typescript@5.7.2) + '@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/cpx': 1.5.5 - '@vitejs/plugin-react': 4.3.4(vite@6.0.6(@types/node@22.10.2)(terser@5.37.0)(yaml@2.6.1)) + '@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 chalk: 4.1.2 chokidar: 4.0.3 @@ -15645,10 +15616,10 @@ snapshots: react-refractor: 2.2.0(react@18.3.1) sanity: link:packages/sanity slugify: 1.6.6 - styled-components: 6.1.13(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) tmp: 0.2.3 typescript: 5.7.2 - vite: 6.0.6(@types/node@22.10.2)(terser@5.37.0)(yaml@2.6.1) + vite: 6.0.7(@types/node@22.10.2)(terser@5.37.0)(yaml@2.6.1) transitivePeerDependencies: - '@emotion/is-prop-valid' - '@types/babel__core' @@ -15668,21 +15639,21 @@ snapshots: - tsx - yaml - '@sanity/tsdoc@1.0.157(@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-55955c9-20241229)(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.13(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.164(@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)': dependencies: '@microsoft/api-extractor': 7.48.1(@types/node@22.10.2) '@microsoft/api-extractor-model': 7.30.1(@types/node@22.10.2) '@microsoft/tsdoc': 0.15.1 '@microsoft/tsdoc-config': 0.17.1 - '@portabletext/react': 3.2.0(react@18.3.1) + '@portabletext/react': 3.2.0(react@19.0.0) '@portabletext/toolkit': 2.0.16 '@sanity/client': 6.24.1(debug@4.4.0) '@sanity/color': 3.0.6 - '@sanity/icons': 3.5.7(react@18.3.1) - '@sanity/pkg-utils': 6.12.3(@types/babel__core@7.20.5)(@types/node@22.10.2)(babel-plugin-react-compiler@19.0.0-beta-55955c9-20241229)(typescript@5.7.2) - '@sanity/ui': 2.10.14(@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.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@sanity/icons': 3.5.7(react@19.0.0) + '@sanity/pkg-utils': 6.13.1(@types/babel__core@7.20.5)(@types/node@22.10.2)(babel-plugin-react-compiler@19.0.0-beta-63e3235-20250105)(typescript@5.7.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/cpx': 1.5.5 - '@vitejs/plugin-react': 4.3.4(vite@6.0.6(@types/node@22.10.2)(terser@5.37.0)(yaml@2.6.1)) + '@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 chalk: 4.1.2 chokidar: 4.0.3 @@ -15698,15 +15669,15 @@ snapshots: jsonc-parser: 3.3.1 mkdirp: 1.0.4 pkg-up: 3.1.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-refractor: 2.2.0(react@18.3.1) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + react-refractor: 2.2.0(react@19.0.0) sanity: link:packages/sanity slugify: 1.6.6 - styled-components: 6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + styled-components: 6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0) tmp: 0.2.3 typescript: 5.7.2 - vite: 6.0.6(@types/node@22.10.2)(terser@5.37.0)(yaml@2.6.1) + vite: 6.0.7(@types/node@22.10.2)(terser@5.37.0)(yaml@2.6.1) transitivePeerDependencies: - '@emotion/is-prop-valid' - '@types/babel__core' @@ -15726,68 +15697,17 @@ snapshots: - tsx - yaml - '@sanity/tsdoc@1.0.157(@emotion/is-prop-valid@1.3.1)(@types/babel__core@7.20.5)(@types/node@22.10.2)(react-dom@19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522))(react-is@19.0.0-rc.1)(react@19.0.0-rc-f994737d14-20240522)(sanity@packages+sanity)(styled-components@6.1.13(react-dom@19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522))(react@19.0.0-rc-f994737d14-20240522))(terser@5.37.0)(yaml@2.6.1)': + '@sanity/types@3.68.3(@types/react@19.0.3)(debug@4.4.0)': dependencies: - '@microsoft/api-extractor': 7.48.1(@types/node@22.10.2) - '@microsoft/api-extractor-model': 7.30.1(@types/node@22.10.2) - '@microsoft/tsdoc': 0.15.1 - '@microsoft/tsdoc-config': 0.17.1 - '@portabletext/react': 3.2.0(react@19.0.0-rc-f994737d14-20240522) - '@portabletext/toolkit': 2.0.16 '@sanity/client': 6.24.1(debug@4.4.0) - '@sanity/color': 3.0.6 - '@sanity/icons': 3.5.7(react@19.0.0-rc-f994737d14-20240522) - '@sanity/pkg-utils': 6.12.3(@types/babel__core@7.20.5)(@types/node@22.10.2)(babel-plugin-react-compiler@19.0.0-beta-55955c9-20241229)(typescript@5.7.2) - '@sanity/ui': 2.10.14(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522))(react-is@19.0.0-rc.1)(react@19.0.0-rc-f994737d14-20240522)(styled-components@6.1.13(react-dom@19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522))(react@19.0.0-rc-f994737d14-20240522)) - '@types/cpx': 1.5.5 - '@vitejs/plugin-react': 4.3.4(vite@6.0.6(@types/node@22.10.2)(terser@5.37.0)(yaml@2.6.1)) - cac: 6.7.14 - chalk: 4.1.2 - chokidar: 4.0.3 - cors: 2.8.5 - dotenv-flow: 3.3.0 - esbuild: 0.24.2 - esbuild-register: 3.6.0(esbuild@0.24.2) - express: 4.21.2 - globby: 11.1.0 - groq: link:packages/groq - groq-js: 1.14.2 - history: 5.3.0 - jsonc-parser: 3.3.1 - mkdirp: 1.0.4 - pkg-up: 3.1.0 - react: 19.0.0-rc-f994737d14-20240522 - react-dom: 19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522) - react-refractor: 2.2.0(react@19.0.0-rc-f994737d14-20240522) - sanity: link:packages/sanity - slugify: 1.6.6 - styled-components: 6.1.13(react-dom@19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522))(react@19.0.0-rc-f994737d14-20240522) - tmp: 0.2.3 - typescript: 5.7.2 - vite: 6.0.6(@types/node@22.10.2)(terser@5.37.0)(yaml@2.6.1) + '@types/react': 19.0.3 transitivePeerDependencies: - - '@emotion/is-prop-valid' - - '@types/babel__core' - - '@types/node' - - babel-plugin-react-compiler - debug - - jiti - - less - - lightningcss - - react-is - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - yaml - '@sanity/ui-workshop@1.2.11(@sanity/icons@3.5.7(react@18.3.1))(@sanity/ui@2.10.14(@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.13(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.13(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.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)': dependencies: '@sanity/icons': 3.5.7(react@18.3.1) - '@sanity/ui': 2.10.14(@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.13(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@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 @@ -15803,7 +15723,7 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) segmented-property: 3.0.3 - styled-components: 6.1.13(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) vite: 4.5.5(@types/node@22.10.2)(terser@5.37.0) transitivePeerDependencies: - '@types/node' @@ -15815,10 +15735,10 @@ snapshots: - supports-color - terser - '@sanity/ui-workshop@1.2.11(@sanity/icons@3.5.7(react@18.3.1))(@sanity/ui@2.10.14(@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.13(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.13(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@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)': dependencies: - '@sanity/icons': 3.5.7(react@18.3.1) - '@sanity/ui': 2.10.14(@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.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@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)) '@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 @@ -15831,10 +15751,10 @@ snapshots: lodash: 4.17.21 mkdirp: 2.1.6 pako: 2.1.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) segmented-property: 3.0.3 - styled-components: 6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + styled-components: 6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0) vite: 4.5.5(@types/node@22.10.2)(terser@5.37.0) transitivePeerDependencies: - '@types/node' @@ -15846,97 +15766,107 @@ snapshots: - supports-color - terser - '@sanity/ui@2.10.14(@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.13(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@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 '@sanity/icons': 3.5.7(react@18.3.1) csstype: 3.1.3 - framer-motion: 11.15.0(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + framer-motion: 11.16.0(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-compiler-runtime: 19.0.0-beta-55955c9-20241229(react@18.3.1) react-dom: 18.3.1(react@18.3.1) react-is: 18.3.1 react-refractor: 2.2.0(react@18.3.1) - styled-components: 6.1.13(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) use-effect-event: 1.0.2(react@18.3.1) transitivePeerDependencies: - '@emotion/is-prop-valid' - '@sanity/ui@2.10.14(@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.13(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))': 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 '@sanity/icons': 3.5.7(react@18.3.1) csstype: 3.1.3 - framer-motion: 11.15.0(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + framer-motion: 11.16.0(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-compiler-runtime: 19.0.0-beta-55955c9-20241229(react@18.3.1) react-dom: 18.3.1(react@18.3.1) react-is: 19.0.0-rc.1 react-refractor: 2.2.0(react@18.3.1) - styled-components: 6.1.13(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) use-effect-event: 1.0.2(react@18.3.1) transitivePeerDependencies: - '@emotion/is-prop-valid' - '@sanity/ui@2.10.14(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0-rc-f994737d14-20240522(react@18.3.1))(react-is@19.0.0-rc.1)(react@18.3.1)(styled-components@6.1.13(react-dom@19.0.0-rc-f994737d14-20240522(react@18.3.1))(react@18.3.1))': + '@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))': dependencies: - '@floating-ui/react-dom': 2.1.2(react-dom@19.0.0-rc-f994737d14-20240522(react@18.3.1))(react@18.3.1) + '@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 '@sanity/icons': 3.5.7(react@18.3.1) csstype: 3.1.3 - framer-motion: 11.15.0(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0-rc-f994737d14-20240522(react@18.3.1))(react@18.3.1) + framer-motion: 11.16.0(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@18.3.1))(react@18.3.1) react: 18.3.1 react-compiler-runtime: 19.0.0-beta-55955c9-20241229(react@18.3.1) - react-dom: 19.0.0-rc-f994737d14-20240522(react@18.3.1) + react-dom: 19.0.0(react@18.3.1) react-is: 19.0.0-rc.1 react-refractor: 2.2.0(react@18.3.1) - styled-components: 6.1.13(react-dom@19.0.0-rc-f994737d14-20240522(react@18.3.1))(react@18.3.1) + styled-components: 6.1.14(react-dom@19.0.0(react@18.3.1))(react@18.3.1) use-effect-event: 1.0.2(react@18.3.1) transitivePeerDependencies: - '@emotion/is-prop-valid' - '@sanity/ui@2.10.14(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522))(react-is@19.0.0-rc.1)(react@19.0.0-rc-f994737d14-20240522)(styled-components@6.1.13(react-dom@19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522))(react@19.0.0-rc-f994737d14-20240522))': + '@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))': dependencies: - '@floating-ui/react-dom': 2.1.2(react-dom@19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522))(react@19.0.0-rc-f994737d14-20240522) + '@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 - '@sanity/icons': 3.5.7(react@19.0.0-rc-f994737d14-20240522) + '@sanity/icons': 3.5.7(react@19.0.0) csstype: 3.1.3 - framer-motion: 11.15.0(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522))(react@19.0.0-rc-f994737d14-20240522) - react: 19.0.0-rc-f994737d14-20240522 - react-compiler-runtime: 19.0.0-beta-55955c9-20241229(react@19.0.0-rc-f994737d14-20240522) - react-dom: 19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522) + framer-motion: 11.16.0(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: 19.0.0 + react-compiler-runtime: 19.0.0-beta-55955c9-20241229(react@19.0.0) + react-dom: 19.0.0(react@19.0.0) react-is: 19.0.0-rc.1 - react-refractor: 2.2.0(react@19.0.0-rc-f994737d14-20240522) - styled-components: 6.1.13(react-dom@19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522))(react@19.0.0-rc-f994737d14-20240522) - use-effect-event: 1.0.2(react@19.0.0-rc-f994737d14-20240522) + react-refractor: 2.2.0(react@19.0.0) + styled-components: 6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + use-effect-event: 1.0.2(react@19.0.0) transitivePeerDependencies: - '@emotion/is-prop-valid' + '@sanity/util@3.68.3(@types/react@19.0.3)(debug@4.4.0)': + dependencies: + '@sanity/client': 6.24.1(debug@4.4.0) + '@sanity/types': 3.68.3(@types/react@19.0.3)(debug@4.4.0) + get-random-values-esm: 1.0.2 + moment: 2.30.1 + rxjs: 7.8.1 + transitivePeerDependencies: + - '@types/react' + - debug + '@sanity/uuid@3.0.2': dependencies: '@types/uuid': 8.3.4 uuid: 8.3.2 - '@sanity/visual-editing@2.11.3(@sanity/client@6.24.1)(next@15.1.2(@babel/core@7.26.0)(@playwright/test@1.49.1)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@19.0.0-beta-55955c9-20241229)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@sanity/visual-editing@2.11.5(@sanity/client@6.24.1)(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)': dependencies: - '@sanity/comlink': 2.0.3 + '@sanity/comlink': 2.0.4 '@sanity/mutate': 0.11.0-canary.4(xstate@5.19.1) '@sanity/preview-url-secret': 2.0.5(@sanity/client@6.24.1) '@vercel/stega': 0.1.2 get-random-values-esm: 1.0.2 - react: 18.3.1 - react-compiler-runtime: 19.0.0-beta-201e55d-20241215(react@18.3.1) - react-dom: 18.3.1(react@18.3.1) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) rxjs: 7.8.1 scroll-into-view-if-needed: 3.1.0 - use-effect-event: 1.0.2(react@18.3.1) + use-effect-event: 1.0.2(react@19.0.0) valibot: 0.31.1 xstate: 5.19.1 optionalDependencies: '@sanity/client': 6.24.1(debug@4.4.0) - next: 15.1.2(@babel/core@7.26.0)(@playwright/test@1.49.1)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@19.0.0-beta-55955c9-20241229)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + 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) transitivePeerDependencies: - debug @@ -16092,22 +16022,18 @@ snapshots: '@swc/helpers@0.5.15': dependencies: tslib: 2.8.1 - - '@swc/helpers@0.5.5': - dependencies: - '@swc/counter': 0.1.3 - tslib: 2.8.1 + optional: true '@swc/types@0.1.17': dependencies: '@swc/counter': 0.1.3 - '@tanem/react-nprogress@5.0.53(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@tanem/react-nprogress@5.0.53(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@babel/runtime': 7.26.0 hoist-non-react-statics: 3.3.2 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) '@tanstack/react-table@8.20.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -16146,15 +16072,15 @@ snapshots: lodash: 4.17.21 redent: 3.0.0 - '@testing-library/react@16.1.0(@testing-library/dom@10.4.0)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@testing-library/react@16.1.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.2(@types/react@19.0.3))(@types/react@19.0.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.0 '@testing-library/dom': 10.4.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) + '@types/react': 19.0.3 + '@types/react-dom': 19.0.2(@types/react@19.0.3) '@testing-library/user-event@13.5.0(@testing-library/dom@10.4.0)': dependencies: @@ -16291,7 +16217,7 @@ snapshots: '@types/hoist-non-react-statics@3.3.6': dependencies: - '@types/react': 18.3.18 + '@types/react': 19.0.3 hoist-non-react-statics: 3.3.2 '@types/inquirer@6.5.0': @@ -16347,32 +16273,29 @@ snapshots: dependencies: '@types/node': 22.10.2 - '@types/prop-types@15.7.14': {} - '@types/raf@3.4.3': {} - '@types/react-dom@18.3.5(@types/react@18.3.18)': + '@types/react-dom@19.0.2(@types/react@19.0.3)': dependencies: - '@types/react': 18.3.18 + '@types/react': 19.0.3 - '@types/react-is@18.3.1': + '@types/react-is@19.0.0': dependencies: - '@types/react': 18.3.18 + '@types/react': 19.0.3 '@types/react-redux@7.1.34': dependencies: '@types/hoist-non-react-statics': 3.3.6 - '@types/react': 18.3.18 + '@types/react': 19.0.3 hoist-non-react-statics: 3.3.2 redux: 4.2.1 - '@types/react-transition-group@4.4.12(@types/react@18.3.18)': + '@types/react-transition-group@4.4.12(@types/react@19.0.3)': dependencies: - '@types/react': 18.3.18 + '@types/react': 19.0.3 - '@types/react@18.3.18': + '@types/react@19.0.3': dependencies: - '@types/prop-types': 15.7.14 csstype: 3.1.3 '@types/readdir-glob@1.1.5': @@ -16550,7 +16473,7 @@ snapshots: '@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/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-rc-f994737d14-20240522(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.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)': dependencies: '@babel/runtime': 7.26.0 '@codemirror/commands': 6.7.1 @@ -16560,7 +16483,7 @@ snapshots: '@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: 6.0.1 react: 18.3.1 - react-dom: 19.0.0-rc-f994737d14-20240522(react@18.3.1) + react-dom: 19.0.0(react@18.3.1) transitivePeerDependencies: - '@codemirror/autocomplete' - '@codemirror/language' @@ -16634,14 +16557,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@4.3.4(vite@6.0.6(@types/node@22.10.2)(terser@5.37.0)(yaml@2.6.1))': + '@vitejs/plugin-react@4.3.4(vite@6.0.7(@types/node@22.10.2)(terser@5.37.0)(yaml@2.6.1))': dependencies: '@babel/core': 7.26.0 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 6.0.6(@types/node@22.10.2)(terser@5.37.0)(yaml@2.6.1) + vite: 6.0.7(@types/node@22.10.2)(terser@5.37.0)(yaml@2.6.1) transitivePeerDependencies: - supports-color @@ -16747,16 +16670,26 @@ snapshots: '@xstate/fsm@1.6.5': {} - '@xstate/react@5.0.1(@types/react@18.3.18)(react@18.3.1)(xstate@5.19.1)': + '@xstate/react@5.0.1(@types/react@19.0.3)(react@18.3.1)(xstate@5.19.1)': dependencies: react: 18.3.1 - use-isomorphic-layout-effect: 1.2.0(@types/react@18.3.18)(react@18.3.1) + use-isomorphic-layout-effect: 1.2.0(@types/react@19.0.3)(react@18.3.1) use-sync-external-store: 1.4.0(react@18.3.1) optionalDependencies: xstate: 5.19.1 transitivePeerDependencies: - '@types/react' + '@xstate/react@5.0.1(@types/react@19.0.3)(react@19.0.0)(xstate@5.19.1)': + dependencies: + react: 19.0.0 + use-isomorphic-layout-effect: 1.2.0(@types/react@19.0.3)(react@19.0.0) + use-sync-external-store: 1.4.0(react@19.0.0) + optionalDependencies: + xstate: 5.19.1 + transitivePeerDependencies: + - '@types/react' + '@yarnpkg/lockfile@1.1.0': {} '@yarnpkg/parsers@3.0.2': @@ -17088,7 +17021,7 @@ snapshots: transitivePeerDependencies: - supports-color - babel-plugin-react-compiler@19.0.0-beta-55955c9-20241229: + babel-plugin-react-compiler@19.0.0-beta-63e3235-20250105: dependencies: '@babel/types': 7.26.3 @@ -17291,6 +17224,7 @@ snapshots: busboy@1.6.0: dependencies: streamsearch: 1.1.0 + optional: true byte-size@8.1.1: {} @@ -18181,7 +18115,7 @@ snapshots: ee-first@1.1.1: {} - effect@3.12.0: + effect@3.12.1: dependencies: fast-check: 3.23.2 @@ -18666,7 +18600,7 @@ snapshots: optionalDependencies: eslint-config-prettier: 9.1.0(eslint@8.57.1) - eslint-plugin-react-compiler@19.0.0-beta-55955c9-20241229(eslint@8.57.1): + eslint-plugin-react-compiler@19.0.0-beta-63e3235-20250105(eslint@8.57.1): dependencies: '@babel/core': 7.26.0 '@babel/parser': 7.26.3 @@ -19200,35 +19134,35 @@ snapshots: dependencies: map-cache: 0.2.2 - framer-motion@11.15.0(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + framer-motion@11.16.0(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - motion-dom: 11.14.3 - motion-utils: 11.14.3 + motion-dom: 11.16.0 + motion-utils: 11.16.0 tslib: 2.8.1 optionalDependencies: '@emotion/is-prop-valid': 1.3.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - framer-motion@11.15.0(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0-rc-f994737d14-20240522(react@18.3.1))(react@18.3.1): + framer-motion@11.16.0(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@18.3.1))(react@18.3.1): dependencies: - motion-dom: 11.14.3 - motion-utils: 11.14.3 + motion-dom: 11.16.0 + motion-utils: 11.16.0 tslib: 2.8.1 optionalDependencies: '@emotion/is-prop-valid': 1.3.1 react: 18.3.1 - react-dom: 19.0.0-rc-f994737d14-20240522(react@18.3.1) + react-dom: 19.0.0(react@18.3.1) - framer-motion@11.15.0(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522))(react@19.0.0-rc-f994737d14-20240522): + framer-motion@11.16.0(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: - motion-dom: 11.14.3 - motion-utils: 11.14.3 + motion-dom: 11.16.0 + motion-utils: 11.16.0 tslib: 2.8.1 optionalDependencies: '@emotion/is-prop-valid': 1.3.1 - react: 19.0.0-rc-f994737d14-20240522 - react-dom: 19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) fresh@0.5.2: {} @@ -21043,9 +20977,11 @@ snapshots: moment@2.30.1: {} - motion-dom@11.14.3: {} + motion-dom@11.16.0: + dependencies: + motion-utils: 11.16.0 - motion-utils@11.14.3: {} + motion-utils@11.16.0: {} mri@1.2.0: {} @@ -21102,87 +21038,34 @@ snapshots: neo-async@2.6.2: {} - next@14.2.21(@babel/core@7.26.0)(@playwright/test@1.49.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + 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): dependencies: - '@next/env': 14.2.21 - '@swc/helpers': 0.5.5 - busboy: 1.6.0 - caniuse-lite: 1.0.30001690 - graceful-fs: 4.2.11 - postcss: 8.4.31 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - styled-jsx: 5.1.1(@babel/core@7.26.0)(babel-plugin-macros@3.1.0)(react@18.3.1) - optionalDependencies: - '@next/swc-darwin-arm64': 14.2.21 - '@next/swc-darwin-x64': 14.2.21 - '@next/swc-linux-arm64-gnu': 14.2.21 - '@next/swc-linux-arm64-musl': 14.2.21 - '@next/swc-linux-x64-gnu': 14.2.21 - '@next/swc-linux-x64-musl': 14.2.21 - '@next/swc-win32-arm64-msvc': 14.2.21 - '@next/swc-win32-ia32-msvc': 14.2.21 - '@next/swc-win32-x64-msvc': 14.2.21 - '@playwright/test': 1.49.1 - transitivePeerDependencies: - - '@babel/core' - - babel-plugin-macros - - next@15.1.2(@babel/core@7.26.0)(@playwright/test@1.49.1)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@19.0.0-beta-55955c9-20241229)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@next/env': 15.1.2 + '@next/env': 15.1.3 '@swc/counter': 0.1.3 '@swc/helpers': 0.5.15 busboy: 1.6.0 caniuse-lite: 1.0.30001690 postcss: 8.4.31 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - styled-jsx: 5.1.6(@babel/core@7.26.0)(babel-plugin-macros@3.1.0)(react@18.3.1) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + styled-jsx: 5.1.6(@babel/core@7.26.0)(babel-plugin-macros@3.1.0)(react@19.0.0) optionalDependencies: - '@next/swc-darwin-arm64': 15.1.2 - '@next/swc-darwin-x64': 15.1.2 - '@next/swc-linux-arm64-gnu': 15.1.2 - '@next/swc-linux-arm64-musl': 15.1.2 - '@next/swc-linux-x64-gnu': 15.1.2 - '@next/swc-linux-x64-musl': 15.1.2 - '@next/swc-win32-arm64-msvc': 15.1.2 - '@next/swc-win32-x64-msvc': 15.1.2 + '@next/swc-darwin-arm64': 15.1.3 + '@next/swc-darwin-x64': 15.1.3 + '@next/swc-linux-arm64-gnu': 15.1.3 + '@next/swc-linux-arm64-musl': 15.1.3 + '@next/swc-linux-x64-gnu': 15.1.3 + '@next/swc-linux-x64-musl': 15.1.3 + '@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-55955c9-20241229 + babel-plugin-react-compiler: 19.0.0-beta-63e3235-20250105 sharp: 0.33.5 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros optional: true - next@15.1.2(@babel/core@7.26.0)(@playwright/test@1.49.1)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@19.0.0-beta-55955c9-20241229)(react-dom@19.0.0-rc.1(react@19.0.0-rc.1))(react@19.0.0-rc.1): - dependencies: - '@next/env': 15.1.2 - '@swc/counter': 0.1.3 - '@swc/helpers': 0.5.15 - busboy: 1.6.0 - caniuse-lite: 1.0.30001690 - postcss: 8.4.31 - react: 19.0.0-rc.1 - react-dom: 19.0.0-rc.1(react@19.0.0-rc.1) - styled-jsx: 5.1.6(@babel/core@7.26.0)(babel-plugin-macros@3.1.0)(react@19.0.0-rc.1) - optionalDependencies: - '@next/swc-darwin-arm64': 15.1.2 - '@next/swc-darwin-x64': 15.1.2 - '@next/swc-linux-arm64-gnu': 15.1.2 - '@next/swc-linux-arm64-musl': 15.1.2 - '@next/swc-linux-x64-gnu': 15.1.2 - '@next/swc-linux-x64-musl': 15.1.2 - '@next/swc-win32-arm64-msvc': 15.1.2 - '@next/swc-win32-x64-msvc': 15.1.2 - '@playwright/test': 1.49.1 - babel-plugin-react-compiler: 19.0.0-beta-55955c9-20241229 - sharp: 0.33.5 - transitivePeerDependencies: - - '@babel/core' - - babel-plugin-macros - nice-try@1.0.5: {} node-fetch@2.6.7(encoding@0.1.13): @@ -21885,6 +21768,7 @@ snapshots: nanoid: 3.3.8 picocolors: 1.1.1 source-map-js: 1.2.1 + optional: true postcss@8.4.38: dependencies: @@ -22093,15 +21977,15 @@ snapshots: '@babel/runtime': 7.26.0 react: 18.3.1 - react-color@2.19.3(react@18.3.1): + react-color@2.19.3(react@19.0.0): dependencies: - '@icons/material': 0.2.4(react@18.3.1) + '@icons/material': 0.2.4(react@19.0.0) lodash: 4.17.21 lodash-es: 4.17.21 material-colors: 1.2.6 prop-types: 15.8.1 - react: 18.3.1 - reactcss: 1.2.3(react@18.3.1) + react: 19.0.0 + reactcss: 1.2.3(react@19.0.0) tinycolor2: 1.6.0 react-compiler-runtime@19.0.0-beta-201e55d-20241215(react@18.3.1): @@ -22112,9 +21996,9 @@ snapshots: dependencies: react: 18.3.1 - react-compiler-runtime@19.0.0-beta-55955c9-20241229(react@19.0.0-rc-f994737d14-20240522): + react-compiler-runtime@19.0.0-beta-55955c9-20241229(react@19.0.0): dependencies: - react: 19.0.0-rc-f994737d14-20240522 + react: 19.0.0 react-dom@18.3.1(react@18.3.1): dependencies: @@ -22122,52 +22006,47 @@ snapshots: react: 18.3.1 scheduler: 0.23.2 - react-dom@19.0.0-rc-f994737d14-20240522(react@18.3.1): + react-dom@19.0.0(react@18.3.1): dependencies: react: 18.3.1 - scheduler: 0.25.0-rc-f994737d14-20240522 + scheduler: 0.25.0 - react-dom@19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522): + react-dom@19.0.0(react@19.0.0): dependencies: - react: 19.0.0-rc-f994737d14-20240522 - scheduler: 0.25.0-rc-f994737d14-20240522 + react: 19.0.0 + scheduler: 0.25.0 - react-dom@19.0.0-rc.1(react@19.0.0-rc.1): - dependencies: - react: 19.0.0-rc.1 - scheduler: 0.25.0-rc.1 - - react-dropzone@11.7.1(react@18.3.1): + react-dropzone@11.7.1(react@19.0.0): dependencies: attr-accept: 2.2.5 file-selector: 0.4.0 prop-types: 15.8.1 - react: 18.3.1 + react: 19.0.0 react-fast-compare@3.2.2: {} - react-file-icon@1.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + react-file-icon@1.5.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: colord: 2.9.3 prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) - react-focus-lock@2.13.5(@types/react@18.3.18)(react@18.3.1): + react-focus-lock@2.13.5(@types/react@19.0.3)(react@18.3.1): dependencies: '@babel/runtime': 7.26.0 focus-lock: 1.3.5 prop-types: 15.8.1 react: 18.3.1 react-clientside-effect: 1.2.7(react@18.3.1) - use-callback-ref: 1.3.3(@types/react@18.3.18)(react@18.3.1) - use-sidecar: 1.1.3(@types/react@18.3.18)(react@18.3.1) + use-callback-ref: 1.3.3(@types/react@19.0.3)(react@18.3.1) + use-sidecar: 1.1.3(@types/react@19.0.3)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 19.0.3 - react-hook-form@7.54.1(react@18.3.1): + react-hook-form@7.54.1(react@19.0.0): dependencies: - react: 18.3.1 + react: 19.0.0 react-i18next@14.0.2(i18next@23.16.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: @@ -22190,17 +22069,17 @@ snapshots: react-is@19.0.0-rc.1: {} - react-redux@7.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + react-redux@7.2.9(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: '@babel/runtime': 7.26.0 '@types/react-redux': 7.1.34 hoist-non-react-statics: 3.3.2 loose-envify: 1.4.0 prop-types: 15.8.1 - react: 18.3.1 + react: 19.0.0 react-is: 17.0.2 optionalDependencies: - react-dom: 18.3.1(react@18.3.1) + react-dom: 19.0.0(react@19.0.0) react-refractor@2.2.0(react@18.3.1): dependencies: @@ -22209,16 +22088,16 @@ snapshots: unist-util-filter: 2.0.3 unist-util-visit-parents: 3.1.1 - react-refractor@2.2.0(react@19.0.0-rc-f994737d14-20240522): + react-refractor@2.2.0(react@19.0.0): dependencies: - react: 19.0.0-rc-f994737d14-20240522 + react: 19.0.0 refractor: 3.6.0 unist-util-filter: 2.0.3 unist-util-visit-parents: 3.1.1 react-refresh@0.14.2: {} - react-rx@4.1.11(react@18.3.1)(rxjs@7.8.1): + react-rx@4.1.12(react@18.3.1)(rxjs@7.8.1): dependencies: observable-callback: 1.0.3(rxjs@7.8.1) react: 18.3.1 @@ -22226,6 +22105,14 @@ 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): + dependencies: + observable-callback: 1.0.3(rxjs@7.8.1) + react: 19.0.0 + react-compiler-runtime: 19.0.0-beta-55955c9-20241229(react@19.0.0) + rxjs: 7.8.1 + use-effect-event: 1.0.2(react@19.0.0) + react-scan@0.0.31: dependencies: '@clack/core': 0.3.5 @@ -22234,56 +22121,54 @@ snapshots: mri: 1.2.0 playwright: 1.49.1 - react-select@5.9.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + react-select@5.9.0(@types/react@19.0.3)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: '@babel/runtime': 7.26.0 '@emotion/cache': 11.14.0 - '@emotion/react': 11.14.0(@types/react@18.3.18)(react@18.3.1) + '@emotion/react': 11.14.0(@types/react@19.0.3)(react@19.0.0) '@floating-ui/dom': 1.6.12 - '@types/react-transition-group': 4.4.12(@types/react@18.3.18) + '@types/react-transition-group': 4.4.12(@types/react@19.0.3) memoize-one: 6.0.0 prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - use-isomorphic-layout-effect: 1.2.0(@types/react@18.3.18)(react@18.3.1) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + react-transition-group: 4.4.5(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + use-isomorphic-layout-effect: 1.2.0(@types/react@19.0.3)(react@19.0.0) transitivePeerDependencies: - '@types/react' - supports-color - react-simplemde-editor@5.2.0(easymde@2.18.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + react-simplemde-editor@5.2.0(easymde@2.18.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: '@types/codemirror': 5.60.15 easymde: 2.18.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) - react-transition-group@4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + react-transition-group@4.4.5(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: '@babel/runtime': 7.26.0 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) - react-virtuoso@4.12.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + react-virtuoso@4.12.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) react@18.3.1: dependencies: loose-envify: 1.4.0 - react@19.0.0-rc-f994737d14-20240522: {} + react@19.0.0: {} - react@19.0.0-rc.1: {} - - reactcss@1.2.3(react@18.3.1): + reactcss@1.2.3(react@19.0.0): dependencies: lodash: 4.17.21 - react: 18.3.1 + react: 19.0.0 read-cmd-shim@4.0.0: {} @@ -22590,21 +22475,21 @@ snapshots: glob: 11.0.0 package-json-from-dist: 1.0.1 - rollup-plugin-esbuild@6.1.1(esbuild@0.24.2)(rollup@4.29.1): + rollup-plugin-esbuild@6.1.1(esbuild@0.24.2)(rollup@4.30.1): dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.29.1) + '@rollup/pluginutils': 5.1.4(rollup@4.30.1) debug: 4.4.0(supports-color@9.4.0) es-module-lexer: 1.5.4 esbuild: 0.24.2 get-tsconfig: 4.8.1 - rollup: 4.29.1 + rollup: 4.30.1 transitivePeerDependencies: - supports-color - rollup-plugin-sourcemaps@0.6.3(@types/node@22.10.2)(rollup@4.29.1): + rollup-plugin-sourcemaps@0.6.3(@types/node@22.10.2)(rollup@4.30.1): dependencies: - '@rollup/pluginutils': 3.1.0(rollup@4.29.1) - rollup: 4.29.1 + '@rollup/pluginutils': 3.1.0(rollup@4.30.1) + rollup: 4.30.1 source-map-resolve: 0.6.0 optionalDependencies: '@types/node': 22.10.2 @@ -22613,29 +22498,29 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - rollup@4.29.1: + rollup@4.30.1: dependencies: '@types/estree': 1.0.6 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.29.1 - '@rollup/rollup-android-arm64': 4.29.1 - '@rollup/rollup-darwin-arm64': 4.29.1 - '@rollup/rollup-darwin-x64': 4.29.1 - '@rollup/rollup-freebsd-arm64': 4.29.1 - '@rollup/rollup-freebsd-x64': 4.29.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.29.1 - '@rollup/rollup-linux-arm-musleabihf': 4.29.1 - '@rollup/rollup-linux-arm64-gnu': 4.29.1 - '@rollup/rollup-linux-arm64-musl': 4.29.1 - '@rollup/rollup-linux-loongarch64-gnu': 4.29.1 - '@rollup/rollup-linux-powerpc64le-gnu': 4.29.1 - '@rollup/rollup-linux-riscv64-gnu': 4.29.1 - '@rollup/rollup-linux-s390x-gnu': 4.29.1 - '@rollup/rollup-linux-x64-gnu': 4.29.1 - '@rollup/rollup-linux-x64-musl': 4.29.1 - '@rollup/rollup-win32-arm64-msvc': 4.29.1 - '@rollup/rollup-win32-ia32-msvc': 4.29.1 - '@rollup/rollup-win32-x64-msvc': 4.29.1 + '@rollup/rollup-android-arm-eabi': 4.30.1 + '@rollup/rollup-android-arm64': 4.30.1 + '@rollup/rollup-darwin-arm64': 4.30.1 + '@rollup/rollup-darwin-x64': 4.30.1 + '@rollup/rollup-freebsd-arm64': 4.30.1 + '@rollup/rollup-freebsd-x64': 4.30.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.30.1 + '@rollup/rollup-linux-arm-musleabihf': 4.30.1 + '@rollup/rollup-linux-arm64-gnu': 4.30.1 + '@rollup/rollup-linux-arm64-musl': 4.30.1 + '@rollup/rollup-linux-loongarch64-gnu': 4.30.1 + '@rollup/rollup-linux-powerpc64le-gnu': 4.30.1 + '@rollup/rollup-linux-riscv64-gnu': 4.30.1 + '@rollup/rollup-linux-s390x-gnu': 4.30.1 + '@rollup/rollup-linux-x64-gnu': 4.30.1 + '@rollup/rollup-linux-x64-musl': 4.30.1 + '@rollup/rollup-win32-arm64-msvc': 4.30.1 + '@rollup/rollup-win32-ia32-msvc': 4.30.1 + '@rollup/rollup-win32-x64-msvc': 4.30.1 fsevents: 2.3.3 rrdom@0.1.7: @@ -22723,45 +22608,45 @@ 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.10.14(@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.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sanity@packages+sanity)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)): + 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)): dependencies: '@sanity/asset-utils': 2.2.1 '@sanity/image-url': 1.1.0 - '@sanity/incompatible-plugin': 1.0.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@sanity/ui': 2.10.14(@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.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@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/util': link:packages/@sanity/util '@types/lodash-es': 4.17.12 - framer-motion: 11.15.0(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + framer-motion: 11.16.0(@emotion/is-prop-valid@1.3.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) lodash-es: 4.17.21 - react: 18.3.1 + react: 19.0.0 sanity: link:packages/sanity - styled-components: 6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + styled-components: 6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - '@emotion/is-prop-valid' - react-dom - sanity-plugin-markdown@5.0.0(@emotion/is-prop-valid@1.3.1)(easymde@2.18.0)(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.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)): + 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@18.3.1(react@18.3.1))(react@18.3.1) - '@sanity/ui': 2.10.14(@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.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@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)) easymde: 2.18.0 - react: 18.3.1 - react-simplemde-editor: 5.2.0(easymde@2.18.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + 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) sanity: link:packages/sanity - styled-components: 6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + styled-components: 6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - '@emotion/is-prop-valid' - react-dom - react-is - sanity-plugin-media@2.3.2(@sanity/ui@2.10.14(@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.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sanity@packages+sanity)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)): + 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)): dependencies: - '@hookform/resolvers': 3.9.1(react-hook-form@7.54.1(react@18.3.1)) - '@reduxjs/toolkit': 1.9.7(react-redux@7.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(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.10.14(@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.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@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/uuid': 3.0.2 - '@tanem/react-nprogress': 5.0.53(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@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 date-fns: 2.30.0 filesize: 9.0.11 @@ -22770,47 +22655,47 @@ snapshots: nanoid: 3.3.8 npm-run-all: 4.1.5 pluralize: 8.0.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-dropzone: 11.7.1(react@18.3.1) - react-file-icon: 1.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react-hook-form: 7.54.1(react@18.3.1) - react-redux: 7.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react-select: 5.9.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react-virtuoso: 4.12.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + react-dropzone: 11.7.1(react@19.0.0) + react-file-icon: 1.5.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react-hook-form: 7.54.1(react@19.0.0) + react-redux: 7.2.9(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react-select: 5.9.0(@types/react@19.0.3)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react-virtuoso: 4.12.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0) redux: 4.2.1 redux-observable: 2.0.0(redux@4.2.1) rxjs: 7.8.1 sanity: link:packages/sanity - styled-components: 6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + styled-components: 6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0) zod: 3.24.1 transitivePeerDependencies: - '@types/react' - react-native - supports-color - sanity-plugin-mux-input@2.4.0(@emotion/is-prop-valid@1.3.1)(@types/react@18.3.18)(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.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)): + sanity-plugin-mux-input@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)): dependencies: - '@mux/mux-player-react': 2.9.1(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mux/mux-player-react': 2.9.1(@types/react@19.0.3)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@mux/upchunk': 3.4.0 - '@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.10.14(@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.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@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/uuid': 3.0.2 iso-639-1: 3.1.3 jsonwebtoken-esm: 1.0.5 lodash: 4.17.21 - react: 18.3.1 + react: 19.0.0 react-is: 19.0.0-rc.1 - react-rx: 4.1.11(react@18.3.1)(rxjs@7.8.1) + react-rx: 4.1.12(react@19.0.0)(rxjs@7.8.1) rxjs: 7.8.1 sanity: link:packages/sanity scroll-into-view-if-needed: 3.1.0 - styled-components: 6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - suspend-react: 0.1.3(react@18.3.1) - swr: 2.2.5(react@18.3.1) + styled-components: 6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + suspend-react: 0.1.3(react@19.0.0) + swr: 2.2.5(react@19.0.0) type-fest: 4.30.2 - use-error-boundary: 2.0.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + use-error-boundary: 2.0.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - '@emotion/is-prop-valid' - '@types/react' @@ -22825,9 +22710,7 @@ snapshots: dependencies: loose-envify: 1.4.0 - scheduler@0.25.0-rc-f994737d14-20240522: {} - - scheduler@0.25.0-rc.1: {} + scheduler@0.25.0: {} scroll-into-view-if-needed@3.1.0: dependencies: @@ -23058,6 +22941,20 @@ snapshots: slate-dom: 0.111.0(slate@0.112.0) tiny-invariant: 1.3.1 + slate-react@0.112.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(slate-dom@0.111.0(slate@0.112.0))(slate@0.112.0): + dependencies: + '@juggle/resize-observer': 3.4.0 + direction: 1.0.4 + is-hotkey: 0.2.0 + is-plain-object: 5.0.0 + lodash: 4.17.21 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + scroll-into-view-if-needed: 3.1.0 + slate: 0.112.0 + slate-dom: 0.111.0(slate@0.112.0) + tiny-invariant: 1.3.1 + slate@0.112.0: dependencies: immer: 10.1.1 @@ -23283,7 +23180,8 @@ snapshots: stream-shift@1.0.3: {} - streamsearch@1.1.0: {} + streamsearch@1.1.0: + optional: true streamx@2.21.1: dependencies: @@ -23448,7 +23346,7 @@ snapshots: transitivePeerDependencies: - '@babel/core' - styled-components@6.1.13(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): dependencies: '@emotion/is-prop-valid': 1.2.2 '@emotion/unitless': 0.8.1 @@ -23462,7 +23360,7 @@ snapshots: stylis: 4.3.2 tslib: 2.6.2 - styled-components@6.1.13(react-dom@19.0.0-rc-f994737d14-20240522(react@18.3.1))(react@18.3.1): + styled-components@6.1.14(react-dom@19.0.0(react@18.3.1))(react@18.3.1): dependencies: '@emotion/is-prop-valid': 1.2.2 '@emotion/unitless': 0.8.1 @@ -23471,12 +23369,12 @@ snapshots: csstype: 3.1.3 postcss: 8.4.38 react: 18.3.1 - react-dom: 19.0.0-rc-f994737d14-20240522(react@18.3.1) + react-dom: 19.0.0(react@18.3.1) shallowequal: 1.1.0 stylis: 4.3.2 tslib: 2.6.2 - styled-components@6.1.13(react-dom@19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522))(react@19.0.0-rc-f994737d14-20240522): + styled-components@6.1.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: '@emotion/is-prop-valid': 1.2.2 '@emotion/unitless': 0.8.1 @@ -23484,51 +23382,21 @@ snapshots: css-to-react-native: 3.2.0 csstype: 3.1.3 postcss: 8.4.38 - react: 19.0.0-rc-f994737d14-20240522 - react-dom: 19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) shallowequal: 1.1.0 stylis: 4.3.2 tslib: 2.6.2 - styled-components@6.1.13(react-dom@19.0.0-rc.1(react@19.0.0-rc.1))(react@19.0.0-rc.1): - dependencies: - '@emotion/is-prop-valid': 1.2.2 - '@emotion/unitless': 0.8.1 - '@types/stylis': 4.2.5 - css-to-react-native: 3.2.0 - csstype: 3.1.3 - postcss: 8.4.38 - react: 19.0.0-rc.1 - react-dom: 19.0.0-rc.1(react@19.0.0-rc.1) - shallowequal: 1.1.0 - stylis: 4.3.2 - tslib: 2.6.2 - - styled-jsx@5.1.1(@babel/core@7.26.0)(babel-plugin-macros@3.1.0)(react@18.3.1): + styled-jsx@5.1.6(@babel/core@7.26.0)(babel-plugin-macros@3.1.0)(react@19.0.0): dependencies: client-only: 0.0.1 - react: 18.3.1 - optionalDependencies: - '@babel/core': 7.26.0 - babel-plugin-macros: 3.1.0 - - styled-jsx@5.1.6(@babel/core@7.26.0)(babel-plugin-macros@3.1.0)(react@18.3.1): - dependencies: - client-only: 0.0.1 - react: 18.3.1 + react: 19.0.0 optionalDependencies: '@babel/core': 7.26.0 babel-plugin-macros: 3.1.0 optional: true - styled-jsx@5.1.6(@babel/core@7.26.0)(babel-plugin-macros@3.1.0)(react@19.0.0-rc.1): - dependencies: - client-only: 0.0.1 - react: 19.0.0-rc.1 - optionalDependencies: - '@babel/core': 7.26.0 - babel-plugin-macros: 3.1.0 - stylis@4.2.0: {} stylis@4.3.2: {} @@ -23559,12 +23427,22 @@ snapshots: dependencies: react: 18.3.1 + suspend-react@0.1.3(react@19.0.0): + dependencies: + react: 19.0.0 + swr@2.2.5(react@18.3.1): dependencies: client-only: 0.0.1 react: 18.3.1 use-sync-external-store: 1.4.0(react@18.3.1) + swr@2.2.5(react@19.0.0): + dependencies: + client-only: 0.0.1 + react: 19.0.0 + use-sync-external-store: 1.4.0(react@19.0.0) + symbol-tree@3.2.4: {} synckit@0.9.2: @@ -24043,12 +23921,12 @@ snapshots: querystringify: 2.2.0 requires-port: 1.0.0 - use-callback-ref@1.3.3(@types/react@18.3.18)(react@18.3.1): + use-callback-ref@1.3.3(@types/react@19.0.3)(react@18.3.1): dependencies: react: 18.3.1 tslib: 2.8.1 optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 19.0.3 use-device-pixel-ratio@1.1.2(react@18.3.1): dependencies: @@ -24058,38 +23936,48 @@ snapshots: dependencies: react: 18.3.1 - use-effect-event@1.0.2(react@19.0.0-rc-f994737d14-20240522): + use-effect-event@1.0.2(react@19.0.0): dependencies: - react: 19.0.0-rc-f994737d14-20240522 + react: 19.0.0 - use-error-boundary@2.0.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + use-error-boundary@2.0.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: - react: 18.3.1 + react: 19.0.0 optionalDependencies: - react-dom: 18.3.1(react@18.3.1) + react-dom: 19.0.0(react@19.0.0) use-hot-module-reload@2.0.0(react@18.3.1): dependencies: react: 18.3.1 - use-isomorphic-layout-effect@1.2.0(@types/react@18.3.18)(react@18.3.1): + use-isomorphic-layout-effect@1.2.0(@types/react@19.0.3)(react@18.3.1): dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 19.0.3 + + use-isomorphic-layout-effect@1.2.0(@types/react@19.0.3)(react@19.0.0): + dependencies: + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.3 - use-sidecar@1.1.3(@types/react@18.3.18)(react@18.3.1): + use-sidecar@1.1.3(@types/react@19.0.3)(react@18.3.1): dependencies: detect-node-es: 1.1.0 react: 18.3.1 tslib: 2.8.1 optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 19.0.3 use-sync-external-store@1.4.0(react@18.3.1): dependencies: react: 18.3.1 + use-sync-external-store@1.4.0(react@19.0.0): + dependencies: + react: 19.0.0 + use@3.1.1: {} user-home@2.0.0: @@ -24102,7 +23990,7 @@ snapshots: uuid@10.0.0: {} - uuid@11.0.3: {} + uuid@11.0.4: {} uuid@8.3.2: {} @@ -24188,7 +24076,7 @@ snapshots: dependencies: esbuild: 0.21.5 postcss: 8.4.49 - rollup: 4.29.1 + rollup: 4.30.1 optionalDependencies: '@types/node': 18.19.68 fsevents: 2.3.3 @@ -24198,17 +24086,17 @@ snapshots: dependencies: esbuild: 0.21.5 postcss: 8.4.49 - rollup: 4.29.1 + rollup: 4.30.1 optionalDependencies: '@types/node': 22.10.2 fsevents: 2.3.3 terser: 5.37.0 - vite@6.0.6(@types/node@22.10.2)(terser@5.37.0)(yaml@2.6.1): + vite@6.0.7(@types/node@22.10.2)(terser@5.37.0)(yaml@2.6.1): dependencies: esbuild: 0.24.2 postcss: 8.4.49 - rollup: 4.29.1 + rollup: 4.30.1 optionalDependencies: '@types/node': 22.10.2 fsevents: 2.3.3 diff --git a/turbo.json b/turbo.json index b6776b982d9..f50a91ea334 100644 --- a/turbo.json +++ b/turbo.json @@ -3,6 +3,7 @@ // All environment variables that should invalidate a cached build needs to be declared here "globalEnv": [ "CI", + "GITHUB_ACTIONS", "DEBUG", "NODE_ENV", "PKG_FORMAT",