diff --git a/sanityv3/actions/fieldActions/CustomCopyFieldAction.ts b/sanityv3/actions/fieldActions/CustomCopyFieldAction.ts index df21306ef..66c6e2426 100644 --- a/sanityv3/actions/fieldActions/CustomCopyFieldAction.ts +++ b/sanityv3/actions/fieldActions/CustomCopyFieldAction.ts @@ -26,12 +26,6 @@ export const copyAction = defineDocumentFieldAction({ description: 'Cannot copy document. Use duplicate instead.', }) return - } else if (path[0] === 'lang') { - toast.push({ - title: 'Cannot copy language', - description: 'Copying language is not allowed.', - }) - return } const value = getFormValue([]) as FormDocumentValue onCopy(path, value, { diff --git a/sanityv3/package.json b/sanityv3/package.json index 2fa38a935..249a1c76b 100644 --- a/sanityv3/package.json +++ b/sanityv3/package.json @@ -32,7 +32,7 @@ "react-dom": "^18.2.0", "react-is": "^18.2.0", "rxjs": "^7.8.0", - "sanity": "^3.52.4", + "sanity": "^3.62.0", "sanity-plugin-documents-pane": "^2.1.0", "sanity-plugin-iframe-pane": "^2.3.0", "sanity-plugin-media": "^2.2.5", diff --git a/sanityv3/pnpm-lock.yaml b/sanityv3/pnpm-lock.yaml index 3357531b8..85aee8fd1 100644 --- a/sanityv3/pnpm-lock.yaml +++ b/sanityv3/pnpm-lock.yaml @@ -1,9 +1,13 @@ lockfileVersion: '6.0' +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + dependencies: '@equinor/document-internationalization': specifier: ^3.0.0 - version: 3.0.0(@sanity/mutator@3.57.2)(@sanity/ui@2.1.3)(@sanity/util@3.57.2)(react-dom@18.2.0)(react-fast-compare@3.2.2)(react@18.2.0)(rxjs@7.8.0)(sanity@3.52.4)(styled-components@6.1.0) + version: 3.0.0(@sanity/mutator@3.57.2)(@sanity/ui@2.1.3)(@sanity/util@3.57.2)(react-dom@18.2.0)(react-fast-compare@3.2.2)(react@18.2.0)(rxjs@7.8.0)(sanity@3.65.1)(styled-components@6.1.0) '@equinor/eds-icons': specifier: ^0.17.0 version: 0.17.0 @@ -15,10 +19,10 @@ dependencies: version: 1.3.0 '@sanity/client': specifier: ^6.15.14 - version: 6.15.14(debug@4.3.7) + version: 6.15.14 '@sanity/cross-dataset-duplicator': specifier: ^1.3.0 - version: 1.3.0(@sanity/ui@2.1.3)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.52.4)(styled-components@6.1.0)(typescript@4.0.2) + version: 1.3.0(@sanity/ui@2.1.3)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.65.1)(styled-components@6.1.0)(typescript@4.0.2) '@sanity/icons': specifier: ^2.11.8 version: 2.11.8(react@18.2.0) @@ -50,20 +54,20 @@ dependencies: specifier: ^7.8.0 version: 7.8.0 sanity: - specifier: ^3.52.4 - version: 3.52.4(@types/react@18.0.9)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.0) + specifier: ^3.62.0 + version: 3.65.1(@types/react@18.0.9)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.0) sanity-plugin-documents-pane: specifier: ^2.1.0 - version: 2.1.0(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.52.4)(styled-components@6.1.0) + version: 2.1.0(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.65.1)(styled-components@6.1.0) sanity-plugin-iframe-pane: specifier: ^2.3.0 - version: 2.3.0(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.52.4)(styled-components@6.1.0) + version: 2.3.0(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.65.1)(styled-components@6.1.0) sanity-plugin-media: specifier: ^2.2.5 - version: 2.2.5(@sanity/ui@2.1.3)(@types/react@18.0.9)(react-dom@18.2.0)(react@18.2.0)(sanity@3.52.4)(styled-components@6.1.0) + version: 2.2.5(@sanity/ui@2.1.3)(@types/react@18.0.9)(react-dom@18.2.0)(react@18.2.0)(sanity@3.65.1)(styled-components@6.1.0) sanity-plugin-utils: specifier: ^1.6.4 - version: 1.6.4(@sanity/ui@2.1.3)(react-dom@18.2.0)(react-fast-compare@3.2.2)(react@18.2.0)(rxjs@7.8.0)(sanity@3.52.4)(styled-components@6.1.0) + version: 1.6.4(@sanity/ui@2.1.3)(react-dom@18.2.0)(react-fast-compare@3.2.2)(react@18.2.0)(rxjs@7.8.0)(sanity@3.65.1)(styled-components@6.1.0) slugify: specifier: ^1.6.5 version: 1.6.5 @@ -124,10 +128,24 @@ packages: '@babel/highlight': 7.24.7 picocolors: 1.1.0 + /@babel/code-frame@7.26.2: + resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.25.9 + js-tokens: 4.0.0 + picocolors: 1.1.0 + dev: false + /@babel/compat-data@7.25.4: resolution: {integrity: sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==} engines: {node: '>=6.9.0'} + /@babel/compat-data@7.26.2: + resolution: {integrity: sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==} + engines: {node: '>=6.9.0'} + dev: false + /@babel/core@7.25.2: resolution: {integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==} engines: {node: '>=6.9.0'} @@ -150,6 +168,29 @@ packages: transitivePeerDependencies: - supports-color + /@babel/core@7.26.0: + resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.2 + '@babel/helper-compilation-targets': 7.25.9 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) + '@babel/helpers': 7.26.0 + '@babel/parser': 7.26.2 + '@babel/template': 7.25.9 + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.0 + convert-source-map: 2.0.0 + debug: 4.3.7 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: false + /@babel/eslint-parser@7.25.1(@babel/core@7.25.2)(eslint@8.6.0): resolution: {integrity: sha512-Y956ghgTT4j7rKesabkh5WeqgSFZVFwaPR0IWFm7KFHFmmJ4afbG49SmfW4S+GyRPx0Dy5jxEWA5t0rpxfElWg==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} @@ -173,6 +214,17 @@ packages: '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 + /@babel/generator@7.26.2: + resolution: {integrity: sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/parser': 7.26.2 + '@babel/types': 7.26.0 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.0.2 + dev: false + /@babel/helper-annotate-as-pure@7.24.7: resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==} engines: {node: '>=6.9.0'} @@ -198,6 +250,17 @@ packages: lru-cache: 5.1.1 semver: 6.3.1 + /@babel/helper-compilation-targets@7.25.9: + resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/compat-data': 7.26.2 + '@babel/helper-validator-option': 7.25.9 + browserslist: 4.24.2 + lru-cache: 5.1.1 + semver: 6.3.1 + dev: false + /@babel/helper-create-class-features-plugin@7.25.4(@babel/core@7.25.2): resolution: {integrity: sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ==} engines: {node: '>=6.9.0'} @@ -258,6 +321,16 @@ packages: transitivePeerDependencies: - supports-color + /@babel/helper-module-imports@7.25.9: + resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.0 + transitivePeerDependencies: + - supports-color + dev: false + /@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2): resolution: {integrity: sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==} engines: {node: '>=6.9.0'} @@ -272,6 +345,20 @@ packages: transitivePeerDependencies: - supports-color + /@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0): + resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@babel/traverse': 7.25.9 + transitivePeerDependencies: + - supports-color + dev: false + /@babel/helper-optimise-call-expression@7.24.7: resolution: {integrity: sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==} engines: {node: '>=6.9.0'} @@ -282,6 +369,11 @@ packages: resolution: {integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==} engines: {node: '>=6.9.0'} + /@babel/helper-plugin-utils@7.25.9: + resolution: {integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==} + engines: {node: '>=6.9.0'} + dev: false + /@babel/helper-remap-async-to-generator@7.25.0(@babel/core@7.25.2): resolution: {integrity: sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==} engines: {node: '>=6.9.0'} @@ -330,14 +422,29 @@ packages: resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} engines: {node: '>=6.9.0'} + /@babel/helper-string-parser@7.25.9: + resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} + engines: {node: '>=6.9.0'} + dev: false + /@babel/helper-validator-identifier@7.24.7: resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} engines: {node: '>=6.9.0'} + /@babel/helper-validator-identifier@7.25.9: + resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} + engines: {node: '>=6.9.0'} + dev: false + /@babel/helper-validator-option@7.24.8: resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} engines: {node: '>=6.9.0'} + /@babel/helper-validator-option@7.25.9: + resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} + engines: {node: '>=6.9.0'} + dev: false + /@babel/helper-wrap-function@7.25.0: resolution: {integrity: sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==} engines: {node: '>=6.9.0'} @@ -355,6 +462,14 @@ packages: '@babel/template': 7.25.0 '@babel/types': 7.25.6 + /@babel/helpers@7.26.0: + resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.25.9 + '@babel/types': 7.26.0 + dev: false + /@babel/highlight@7.24.7: resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} engines: {node: '>=6.9.0'} @@ -371,6 +486,14 @@ packages: dependencies: '@babel/types': 7.25.6 + /@babel/parser@7.26.2: + resolution: {integrity: sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.26.0 + dev: false + /@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.3(@babel/core@7.25.2): resolution: {integrity: sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA==} engines: {node: '>=6.9.0'} @@ -1043,24 +1166,24 @@ packages: transitivePeerDependencies: - supports-color - /@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.25.2): - resolution: {integrity: sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==} + /@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.26.0): + resolution: {integrity: sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 dev: false - /@babel/plugin-transform-react-jsx-source@7.24.7(@babel/core@7.25.2): - resolution: {integrity: sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==} + /@babel/plugin-transform-react-jsx-source@7.25.9(@babel/core@7.26.0): + resolution: {integrity: sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 dev: false /@babel/plugin-transform-react-jsx@7.25.2(@babel/core@7.25.2): @@ -1376,6 +1499,15 @@ packages: '@babel/parser': 7.25.6 '@babel/types': 7.25.6 + /@babel/template@7.25.9: + resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/parser': 7.26.2 + '@babel/types': 7.26.0 + dev: false + /@babel/traverse@7.25.6: resolution: {integrity: sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==} engines: {node: '>=6.9.0'} @@ -1390,6 +1522,21 @@ packages: transitivePeerDependencies: - supports-color + /@babel/traverse@7.25.9: + resolution: {integrity: sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.2 + '@babel/parser': 7.26.2 + '@babel/template': 7.25.9 + '@babel/types': 7.26.0 + debug: 4.3.7 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: false + /@babel/types@7.25.6: resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==} engines: {node: '>=6.9.0'} @@ -1398,13 +1545,12 @@ packages: '@babel/helper-validator-identifier': 7.24.7 to-fast-properties: 2.0.0 - /@bjoerge/mutiny@0.5.3: - resolution: {integrity: sha512-QBEeUmc5K6kzut0uurwBtJhJW2fc/KEdKhST2/71Ln6V3j4b4qzK1/OeDsUHAt/RM2Dxe5TjWNn82r6WzmrAIQ==} - engines: {node: '>=18'} + /@babel/types@7.26.0: + resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} + engines: {node: '>=6.9.0'} dependencies: - diff-match-patch: 1.0.5 - hotscript: 1.0.13 - nanoid: 5.0.4 + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 dev: false /@codemirror/autocomplete@6.18.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1): @@ -1600,6 +1746,7 @@ packages: /@emotion/memoize@0.7.4: resolution: {integrity: sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==} + requiresBuild: true dev: false optional: true @@ -1668,7 +1815,7 @@ packages: resolution: {integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==} dev: false - /@equinor/document-internationalization@3.0.0(@sanity/mutator@3.57.2)(@sanity/ui@2.1.3)(@sanity/util@3.57.2)(react-dom@18.2.0)(react-fast-compare@3.2.2)(react@18.2.0)(rxjs@7.8.0)(sanity@3.52.4)(styled-components@6.1.0): + /@equinor/document-internationalization@3.0.0(@sanity/mutator@3.57.2)(@sanity/ui@2.1.3)(@sanity/util@3.57.2)(react-dom@18.2.0)(react-fast-compare@3.2.2)(react@18.2.0)(rxjs@7.8.0)(sanity@3.65.1)(styled-components@6.1.0): resolution: {integrity: sha512-sWsJtIB8fC0q0Wxjf43E+5d0c9szsKdOPNJ2971PwZmUSygL7zC+75jRQtfnoGKdRLmOXu/tXMlf9UHsCnNwLw==} engines: {node: '>=14'} peerDependencies: @@ -1686,9 +1833,9 @@ packages: '@sanity/uuid': 3.0.2 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - sanity: 3.52.4(@types/react@18.0.9)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.0) - sanity-plugin-internationalized-array: 2.1.0(@sanity/ui@2.1.3)(@sanity/util@3.57.2)(react-dom@18.2.0)(react@18.2.0)(sanity@3.52.4)(styled-components@6.1.0) - sanity-plugin-utils: 1.6.4(@sanity/ui@2.1.3)(react-dom@18.2.0)(react-fast-compare@3.2.2)(react@18.2.0)(rxjs@7.8.0)(sanity@3.52.4)(styled-components@6.1.0) + sanity: 3.65.1(@types/react@18.0.9)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.0) + sanity-plugin-internationalized-array: 2.1.0(@sanity/ui@2.1.3)(@sanity/util@3.57.2)(react-dom@18.2.0)(react@18.2.0)(sanity@3.65.1)(styled-components@6.1.0) + sanity-plugin-utils: 1.6.4(@sanity/ui@2.1.3)(react-dom@18.2.0)(react-fast-compare@3.2.2)(react@18.2.0)(rxjs@7.8.0)(sanity@3.65.1)(styled-components@6.1.0) styled-components: 6.1.0(react-dom@18.2.0)(react@18.2.0) transitivePeerDependencies: - '@sanity/util' @@ -2173,6 +2320,17 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false + /@floating-ui/react-dom@2.1.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + dependencies: + '@floating-ui/dom': 1.6.10 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + /@floating-ui/utils@0.2.7: resolution: {integrity: sha512-X8R8Oj771YRl/w+c1HqAC1szL8zWQRwFvgDwT129k9ACdBoud/+/rX9V0qiMl6LWUdP9voC2nDVZYPMQQsb6eA==} dev: false @@ -2433,32 +2591,37 @@ packages: config-chain: 1.1.13 dev: false - /@portabletext/editor@1.0.19(@sanity/block-tools@3.52.4)(@sanity/schema@3.52.4)(@sanity/types@3.52.4)(@sanity/util@3.52.4)(react-dom@18.2.0)(react@18.2.0)(rxjs@7.8.0)(styled-components@6.1.0): - resolution: {integrity: sha512-ZNOvErcy2OYchsHVpVtJdhGb12YI6m0vOSubKu8t1X6wllkJPNyduW6xxLbmJiv/Z/+Ua1gVEvczdkfsU2qvvQ==} + /@portabletext/editor@1.12.3(@sanity/block-tools@3.65.1)(@sanity/schema@3.65.1)(@sanity/types@3.65.1)(@types/react@18.0.9)(react-dom@18.2.0)(react@18.2.0)(rxjs@7.8.1)(styled-components@6.1.0): + resolution: {integrity: sha512-OIyL4OTZoVO6+5vKnHLE6NHzf4gjz76NblCieOvMD6sHLQakLjzsbI6I2QkSkqDqKuXGhSSJMtw3NPUSh/F1wA==} engines: {node: '>=18'} peerDependencies: - '@sanity/block-tools': ^3.47.1 - '@sanity/schema': ^3.47.1 - '@sanity/types': ^3.47.1 - '@sanity/util': ^3.47.1 + '@sanity/block-tools': ^3.65.1 + '@sanity/schema': ^3.65.1 + '@sanity/types': ^3.65.1 react: ^16.9 || ^17 || ^18 - rxjs: ^7 - styled-components: ^6.1 + rxjs: ^7.8.1 + styled-components: ^6.1.13 dependencies: '@portabletext/patches': 1.1.0 - '@sanity/block-tools': 3.52.4(debug@4.3.7) - '@sanity/schema': 3.52.4(debug@4.3.7) - '@sanity/types': 3.52.4(debug@4.3.7) - '@sanity/util': 3.52.4(debug@4.3.7) + '@sanity/block-tools': 3.65.1(debug@4.3.7) + '@sanity/schema': 3.65.1(debug@4.3.7) + '@sanity/types': 3.65.1(debug@4.3.7) + '@xstate/react': 5.0.0(@types/react@18.0.9)(react@18.2.0)(xstate@5.19.0) debug: 4.3.7 - is-hotkey-esm: 1.0.0 + get-random-values-esm: 1.0.2 lodash: 4.17.21 + lodash.startcase: 4.4.0 react: 18.2.0 - rxjs: 7.8.0 - slate: 0.103.0 - slate-react: 0.108.0(react-dom@18.2.0)(react@18.2.0)(slate@0.103.0) + react-compiler-runtime: 19.0.0-beta-df7b47d-20241124(react@18.2.0) + rxjs: 7.8.1 + slate: 0.110.2 + slate-dom: 0.111.0(slate@0.110.2) + slate-react: 0.111.0(react-dom@18.2.0)(react@18.2.0)(slate-dom@0.111.0)(slate@0.110.2) styled-components: 6.1.0(react-dom@18.2.0)(react@18.2.0) + use-effect-event: 1.0.2(react@18.2.0) + xstate: 5.19.0 transitivePeerDependencies: + - '@types/react' - react-dom - supports-color dev: false @@ -2566,17 +2729,22 @@ packages: engines: {node: '>=10'} dev: false + /@sanity/asset-utils@2.2.1: + resolution: {integrity: sha512-dBsZWH5X6ANcvclFRnQT9Y+NNvoWTJZIMKR5HT6hzoRpRb48p7+vWn+wi1V1wPvqgZg2ScsOQQcGXWXskbPbQQ==} + engines: {node: '>=18'} + dev: false + /@sanity/bifur-client@0.4.1: resolution: {integrity: sha512-mHM8WR7pujbIw2qxuV0lzinS1izOoyLza/ejWV6quITTLpBhUoPIQGPER3Ar0SON5JV0VEEqkJGa1kjiYYgx2w==} dependencies: nanoid: 3.3.7 - rxjs: 7.8.0 + rxjs: 7.8.1 dev: false - /@sanity/block-tools@3.52.4(debug@4.3.7): - resolution: {integrity: sha512-Ths/my2L1LjIqnfgPCREetUroj07m6+G+hcAfrmw3vIJiRB0gdpGTLFJ6T1GibK2x3UOpDzs0nb7gSClQQ9ihA==} + /@sanity/block-tools@3.65.1(debug@4.3.7): + resolution: {integrity: sha512-Jq1MXFCFhilxUZRrzhrJKsnYSZUrZuGJayouUD8sBe6ocAM2oTag8P8B3BCJSXQ4NPj+sJkqumgq8rHe5IIY8w==} dependencies: - '@sanity/types': 3.52.4(debug@4.3.7) + '@sanity/types': 3.65.1(debug@4.3.7) '@types/react': 18.3.5 get-random-values-esm: 1.0.2 lodash: 4.17.21 @@ -2584,24 +2752,23 @@ packages: - debug dev: false - /@sanity/cli@3.52.4(react@18.2.0): - resolution: {integrity: sha512-oXoH8uRf3WAPQeOX4NVLk3AgL6IWFZ2tZwutXwpvxsA/t5X74ewy5O5/tIWLL4TKstoCLY2jwnYzSOC+u35y3Q==} + /@sanity/cli@3.65.1(react@18.2.0): + resolution: {integrity: sha512-QSzUq1criKjZwFpmnQnjVe77bPAu9+828tni1zAG1mmDkTW1RYTsMQq73FEL5AZPqcUT8qogUG+M/xJNn2eI2w==} engines: {node: '>=18'} hasBin: true dependencies: '@babel/traverse': 7.25.6 - '@sanity/client': 6.21.3(debug@4.3.7) - '@sanity/codegen': 3.52.4 + '@sanity/client': 6.23.0(debug@4.3.7) + '@sanity/codegen': 3.65.1 '@sanity/telemetry': 0.7.9(react@18.2.0) - '@sanity/util': 3.52.4(debug@4.3.7) + '@sanity/util': 3.65.1(debug@4.3.7) chalk: 4.1.2 debug: 4.3.7 decompress: 4.2.1 esbuild: 0.21.5 esbuild-register: 3.6.0(esbuild@0.21.5) get-it: 8.6.5(debug@4.3.7) - groq-js: 1.13.0 - node-machine-id: 1.1.12 + groq-js: 1.14.1 pkg-dir: 5.0.0 prettier: 3.3.3 semver: 7.6.3 @@ -2612,7 +2779,7 @@ packages: - supports-color dev: false - /@sanity/client@6.15.14(debug@4.3.7): + /@sanity/client@6.15.14: resolution: {integrity: sha512-GusjgP57Xm/CVqHBAVjv4jLSFD9Pu6KliNpHAQVRRQRKVZ5grl0Rd85UDowXziLFGD3OjHH3ssdQWXR3jzKGkA==} engines: {node: '>=14.18'} dependencies: @@ -2635,8 +2802,19 @@ packages: - debug dev: false - /@sanity/codegen@3.52.4: - resolution: {integrity: sha512-MKDAZdwsXOnJNRLnRgtpl/k+hBUQrrKyOrXRTY7njX2eziqkwWNv3rLUQw3jULZUzQ108o1TsLuC9IjLR353vA==} + /@sanity/client@6.23.0(debug@4.3.7): + resolution: {integrity: sha512-83dwqW0HZxKSFaII2lAhuPzNbZVWv+HIUiWQhef4gytisqPo1WXt3s5B63nu3U9Y2TO1gHf96gIWGSBrmWV0sw==} + engines: {node: '>=14.18'} + dependencies: + '@sanity/eventsource': 5.0.2 + get-it: 8.6.5(debug@4.3.7) + rxjs: 7.8.1 + transitivePeerDependencies: + - debug + dev: false + + /@sanity/codegen@3.65.1: + resolution: {integrity: sha512-ig9gFDBr2D9LdAitmFav7WBl1/Xkdh1dUpJwk2RJzFhPZusLFjabw7+HTOfPFSTKex9JBU5yRv/maJ78UPmMeQ==} engines: {node: '>=18'} dependencies: '@babel/core': 7.25.2 @@ -2649,8 +2827,8 @@ packages: '@babel/types': 7.25.6 debug: 4.3.7 globby: 10.0.2 - groq: 3.52.4 - groq-js: 1.13.0 + groq: 3.65.1 + groq-js: 1.14.1 json5: 2.2.3 tsconfig-paths: 4.2.0 zod: 3.23.8 @@ -2667,7 +2845,16 @@ packages: engines: {node: '>=18.0.0'} dev: false - /@sanity/cross-dataset-duplicator@1.3.0(@sanity/ui@2.1.3)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.52.4)(styled-components@6.1.0)(typescript@4.0.2): + /@sanity/comlink@1.1.4: + resolution: {integrity: sha512-3Mi6jzLyZhA5luDznIdeurr6Bzr+D6Z1nrB2ayqUrcsjpndYrr6ny6UnBQybJFwXyynYZVhmHhLQlziEzH31lw==} + engines: {node: '>=18'} + dependencies: + rxjs: 7.8.1 + uuid: 10.0.0 + xstate: 5.19.0 + dev: false + + /@sanity/cross-dataset-duplicator@1.3.0(@sanity/ui@2.1.3)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.65.1)(styled-components@6.1.0)(typescript@4.0.2): resolution: {integrity: sha512-dep+0zzSip3h88kRK75dY5q1dRME0MMqQ9jPIe1uiOvifs3n3qpSUbCj8tZ3q3pcxHsDkdvlvnzf/akBtp90Gw==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2681,13 +2868,13 @@ packages: '@sanity/icons': 2.11.8(react@18.2.0) '@sanity/incompatible-plugin': 1.0.4(react-dom@18.2.0)(react@18.2.0) '@sanity/mutator': 3.57.2 - '@sanity/studio-secrets': 2.0.2(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.52.4)(styled-components@6.1.0) + '@sanity/studio-secrets': 2.0.2(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.65.1)(styled-components@6.1.0) '@sanity/ui': 2.1.3(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(styled-components@6.1.0) async: 3.2.6 dset: 3.1.4 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - sanity: 3.52.4(@types/react@18.0.9)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.0) + sanity: 3.65.1(@types/react@18.0.9)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.0) semantic-release: 22.0.12(typescript@4.0.2) styled-components: 6.1.0(react-dom@18.2.0)(react@18.2.0) transitivePeerDependencies: @@ -2701,8 +2888,8 @@ packages: engines: {node: '>=14.18'} dev: false - /@sanity/diff@3.52.4: - resolution: {integrity: sha512-sUtMJcs8LP2PS4WI1k/MMvGW/WGxt/wMO3ekNvVtGajqcP78C21YhhzfYr4jFX0BGeQN6ZZnFRmWMIroUKEmGA==} + /@sanity/diff@3.65.1: + resolution: {integrity: sha512-oNBIhkZQBUG4b/hPOfK1yC+RGC7O1qNIGTXaXnNW0f+qYt2hxkGHaxFxs34/PlZdCG0USkG4dVBUM7cU1yonlQ==} engines: {node: '>=18'} dependencies: '@sanity/diff-match-patch': 3.1.1 @@ -2741,7 +2928,7 @@ packages: resolution: {integrity: sha512-mqb6HvzjNGh3J4zjT4hOPh4ZTPOVwYsS5DJ3v24S5uETlIodMmDlY/DBmudlZmQxqoWqqX/hsVxKC0WskuPsYg==} engines: {node: '>=18'} dependencies: - '@sanity/client': 6.21.3(debug@4.3.7) + '@sanity/client': 6.23.0(debug@4.3.7) '@sanity/util': 3.37.2(debug@4.3.7) archiver: 7.0.1 debug: 4.3.7 @@ -2834,18 +3021,18 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /@sanity/insert-menu@1.0.7(@sanity/types@3.52.4)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(styled-components@6.1.0): - resolution: {integrity: sha512-KQTRl3T4nQSFDP2FEM85UBTaGdOEJVechSqChSmUohAoMiizRtLGP2CpeK8OMP0jE8Bjshs3Af+5LZ0NY7SVsA==} + /@sanity/insert-menu@1.0.14(@sanity/types@3.65.1)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(styled-components@6.1.0): + resolution: {integrity: sha512-NBSAbcvA5Mq4vhBCMpby9x9ZhFw3h5rh49o9yp8B38qj3RRxDv1fhV6r+LHcGpSuxaNq/6WfQVbiSdG64r40SA==} engines: {node: '>=18.0.0'} peerDependencies: - '@sanity/types': ^3.47.1 + '@sanity/types': ^3.65.0 react: ^18.3 || >=19.0.0-rc react-dom: ^18.3 || >=19.0.0-rc react-is: ^18.3 || >=19.0.0-rc dependencies: '@sanity/icons': 3.4.0(react@18.2.0) - '@sanity/types': 3.52.4(debug@4.3.7) - '@sanity/ui': 2.8.9(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(styled-components@6.1.0) + '@sanity/types': 3.65.1(debug@4.3.7) + '@sanity/ui': 2.9.0(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(styled-components@6.1.0) lodash.startcase: 4.4.0 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -2854,7 +3041,7 @@ packages: - styled-components dev: false - /@sanity/language-filter@4.0.2(@sanity/ui@2.1.3)(@sanity/util@3.57.2)(react-dom@18.2.0)(react@18.2.0)(sanity@3.52.4)(styled-components@6.1.0): + /@sanity/language-filter@4.0.2(@sanity/ui@2.1.3)(@sanity/util@3.57.2)(react-dom@18.2.0)(react@18.2.0)(sanity@3.65.1)(styled-components@6.1.0): resolution: {integrity: sha512-guL7vZv/QwDdbzVbCA8YqY8G0tH6KW2obyp5UCbFvFy9NqlmfuaHtle/VIO+UwqbCXck2Xpz0WihFeQHHjhCcw==} engines: {node: '>=14'} peerDependencies: @@ -2872,7 +3059,7 @@ packages: lodash: 4.17.21 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - sanity: 3.52.4(@types/react@18.0.9)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.0) + sanity: 3.65.1(@types/react@18.0.9)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.0) styled-components: 6.1.0(react-dom@18.2.0)(react@18.2.0) dev: false @@ -2887,23 +3074,38 @@ packages: react: 18.2.0 dev: false - /@sanity/migrate@3.52.4: - resolution: {integrity: sha512-vQYZ30Rh0gECVonbAxJbRXFkNtooLd3Jn+m7tOmLP8dx81mQ7NmENcA1Q/cCJjmrcRPaHaoMzJRw3PqTRTQ+UQ==} + /@sanity/migrate@3.65.1: + resolution: {integrity: sha512-7e8guKwmSASSadA5OtG4+IH3Qna8yqf01J/Ghf2ol8FJFWFm1WH8uMKKiuZhNnSRnBS5rA5WFkq8hgcxeuJGDg==} engines: {node: '>=18'} dependencies: - '@bjoerge/mutiny': 0.5.3 - '@sanity/client': 6.21.3(debug@4.3.7) - '@sanity/types': 3.52.4(debug@4.3.7) - '@sanity/util': 3.52.4(debug@4.3.7) + '@sanity/client': 6.23.0(debug@4.3.7) + '@sanity/mutate': 0.10.2(debug@4.3.7) + '@sanity/types': 3.65.1(debug@4.3.7) + '@sanity/util': 3.65.1(debug@4.3.7) arrify: 2.0.1 debug: 4.3.7 fast-fifo: 1.3.2 - groq-js: 1.13.0 + groq-js: 1.14.1 p-map: 7.0.2 transitivePeerDependencies: - supports-color dev: false + /@sanity/mutate@0.10.2(debug@4.3.7): + resolution: {integrity: sha512-ZkaB3Xkn3H0nBXcWKtyygUmTW/1aRI/XV0+wcfANtBWHQRWAwFQh5Xh6j5bYDduOA31N+XJdYaLcZsv1u5n3uw==} + engines: {node: '>=18'} + dependencies: + '@sanity/client': 6.23.0(debug@4.3.7) + '@sanity/diff-match-patch': 3.1.1 + hotscript: 1.0.13 + lodash: 4.17.21 + mendoza: 3.0.7 + nanoid: 5.0.9 + rxjs: 7.8.1 + transitivePeerDependencies: + - debug + dev: false + /@sanity/mutator@3.37.2: resolution: {integrity: sha512-F0MvseVtgPBaPxNZtSidF6BQeygviYThgmhRbjZ89AhlRhWiLODvLakdogFmwD1NEQ0tpKn+8m0pQIOHgt2C3w==} dependencies: @@ -2915,11 +3117,11 @@ packages: - supports-color dev: false - /@sanity/mutator@3.52.4: - resolution: {integrity: sha512-ggCKewrVqAMHQWEHTG4IQgIujN+tDCMLCcLsnZ5Z5KVo2q+6v03L/4yY9g2hPTLYCsKFWtIHC7fjSTL8WBkVvg==} + /@sanity/mutator@3.57.2: + resolution: {integrity: sha512-VIxuwBAWNi7OzaV1cxLFUPveSv/h/0QXnAqsoa25GSIMrPkxdQiMBQXdvh5a+SiH/nYrSY3z9CkyqtdrxBPJNw==} dependencies: '@sanity/diff-match-patch': 3.1.1 - '@sanity/types': 3.52.4(debug@4.3.7) + '@sanity/types': 3.57.2(debug@4.3.7) '@sanity/uuid': 3.0.2 debug: 4.3.7 lodash: 4.17.21 @@ -2927,11 +3129,11 @@ packages: - supports-color dev: false - /@sanity/mutator@3.57.2: - resolution: {integrity: sha512-VIxuwBAWNi7OzaV1cxLFUPveSv/h/0QXnAqsoa25GSIMrPkxdQiMBQXdvh5a+SiH/nYrSY3z9CkyqtdrxBPJNw==} + /@sanity/mutator@3.65.1: + resolution: {integrity: sha512-ZrOCiNDLmOJM6T4vd8hMIAYE5oQCMz2n9ZDQqo1JOOn7gK1FDa8sRuBcMxUc8XiUDpIwC3OIOGTz5RU2ma3NJw==} dependencies: '@sanity/diff-match-patch': 3.1.1 - '@sanity/types': 3.57.2(debug@4.3.7) + '@sanity/types': 3.65.1(debug@4.3.7) '@sanity/uuid': 3.0.2 debug: 4.3.7 lodash: 4.17.21 @@ -2939,16 +3141,18 @@ packages: - supports-color dev: false - /@sanity/presentation@1.16.2(@sanity/client@6.21.3)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(styled-components@6.1.0): - resolution: {integrity: sha512-mEMHpMNPLG8C5qyNmKir9/I3p9gvC7joYbRdwe0HxGVmFHU28aKhkEFCDJrDwp/Bm5Z7ps8fF1wi5mCt5cBymQ==} + /@sanity/presentation@1.19.1(@sanity/client@6.23.0)(@sanity/color@3.0.6)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(styled-components@6.1.0): + resolution: {integrity: sha512-i8guIFnWv48J6+qIpxZqDXuXOXeKPvrmHXvXXovF2uLqFXxjzkXbjpAYXM+rLX+cmbYKPmhSOxWKjf4kc/4iVQ==} engines: {node: '>=16.14'} peerDependencies: - '@sanity/client': ^6.20.1 + '@sanity/client': ^6.22.5 dependencies: - '@sanity/client': 6.21.3(debug@4.3.7) + '@sanity/client': 6.23.0(debug@4.3.7) + '@sanity/comlink': 1.1.4 '@sanity/icons': 3.4.0(react@18.2.0) - '@sanity/preview-url-secret': 1.6.21(@sanity/client@6.21.3) - '@sanity/ui': 2.8.9(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(styled-components@6.1.0) + '@sanity/logos': 2.1.13(@sanity/color@3.0.6)(react@18.2.0) + '@sanity/preview-url-secret': 2.0.4(@sanity/client@6.23.0) + '@sanity/ui': 2.9.0(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(styled-components@6.1.0) '@sanity/uuid': 3.0.2 '@types/lodash.isequal': 4.5.8 fast-deep-equal: 3.1.3 @@ -2958,32 +3162,35 @@ packages: mendoza: 3.0.7 mnemonist: 0.39.8 path-to-regexp: 6.3.0 + react-compiler-runtime: 19.0.0-beta-df7b47d-20241124(react@18.2.0) rxjs: 7.8.1 suspend-react: 0.1.3(react@18.2.0) + use-effect-event: 1.0.2(react@18.2.0) transitivePeerDependencies: + - '@sanity/color' - react - react-dom - react-is - styled-components dev: false - /@sanity/preview-url-secret@1.6.21(@sanity/client@6.21.3): - resolution: {integrity: sha512-ZAIT4I5Nrsax+RBQVhSBY4PnnHgaI+eybSd5aHhjZi97+ziMTtTLnL1Hsg+ViLtPqJWwX0GiB0l8nSfGAt7+QA==} + /@sanity/preview-url-secret@2.0.4(@sanity/client@6.23.0): + resolution: {integrity: sha512-II8MtIqXpwTsNe0MzhOtD2QbOSaD0mFCswJJRM0W4eyg4nT6/QDniDznV7/5XdqpssAnwl7JUEHFAzLle417hg==} engines: {node: '>=18'} peerDependencies: - '@sanity/client': ^6.21.3 + '@sanity/client': ^6.22.5 dependencies: - '@sanity/client': 6.21.3(debug@4.3.7) + '@sanity/client': 6.23.0(debug@4.3.7) '@sanity/uuid': 3.0.2 dev: false - /@sanity/schema@3.52.4(debug@4.3.7): - resolution: {integrity: sha512-OYwVPBRqGrf3U69lv278ZlDr58XtgTpDXtfuevtyVyKmXIzSuBdsPhiJI+KMIldc6xK7VNUpglbWSGtLbmbD/w==} + /@sanity/schema@3.65.1(debug@4.3.7): + resolution: {integrity: sha512-nDGEZru8IpKyy+gcSlxYq1VsUWLpMJ8YRmdDJ22f9m6BJi0EPdpKkblQ4xZu4V86iKxIP1xt6RM0k4yU36FRIA==} dependencies: '@sanity/generate-help-url': 3.0.0 - '@sanity/types': 3.52.4(debug@4.3.7) + '@sanity/types': 3.65.1(debug@4.3.7) arrify: 1.0.1 - groq-js: 1.13.0 + groq-js: 1.14.1 humanize-list: 1.0.1 leven: 3.1.0 lodash: 4.17.21 @@ -2993,7 +3200,7 @@ packages: - supports-color dev: false - /@sanity/studio-secrets@2.0.2(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.52.4)(styled-components@6.1.0): + /@sanity/studio-secrets@2.0.2(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.65.1)(styled-components@6.1.0): resolution: {integrity: sha512-XVA+08yGwgT4AB87KK6FpNMPfmbvW4VGJywGLQGwvG1WoxjZxnqoy3bKalGNqnMg1CuCKsVoLMtepcr8ylQ6HA==} engines: {node: '>=14'} peerDependencies: @@ -3004,7 +3211,7 @@ packages: '@sanity/incompatible-plugin': 1.0.4(react-dom@18.2.0)(react@18.2.0) '@sanity/ui': 1.9.3(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(styled-components@6.1.0) react: 18.2.0 - sanity: 3.52.4(@types/react@18.0.9)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.0) + sanity: 3.65.1(@types/react@18.0.9)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.0) styled-components: 6.1.0(react-dom@18.2.0)(react@18.2.0) transitivePeerDependencies: - react-dom @@ -3026,14 +3233,14 @@ packages: /@sanity/types@3.37.2(debug@4.3.7): resolution: {integrity: sha512-1EfKkNlJ86wIDtc7oFHb79JI8lKDOxKDYrkmwhvuHgJY83GpSABc1kFdbwAtWZfrWVWyqVXUv/KlNwA3b99y/g==} dependencies: - '@sanity/client': 6.15.14(debug@4.3.7) + '@sanity/client': 6.23.0(debug@4.3.7) '@types/react': 18.3.5 transitivePeerDependencies: - debug dev: false - /@sanity/types@3.52.4(debug@4.3.7): - resolution: {integrity: sha512-OUC+OuJo3G2zAIIf8znLoGMSe0U0cX/KeSBA+yNVkutBxOaRpaJbhFhiX+4zWfGUOMPwaMd8+4pATgRd2kD8jQ==} + /@sanity/types@3.57.2(debug@4.3.7): + resolution: {integrity: sha512-HczdMPHMX1AUinSPF589Awz1zrf8+So40wdWeC/tsdxVe1wtayh3Jm7XMtY9IKPN9wT6qk7bs7QunaH7rDHHpA==} dependencies: '@sanity/client': 6.21.3(debug@4.3.7) '@types/react': 18.3.5 @@ -3041,10 +3248,10 @@ packages: - debug dev: false - /@sanity/types@3.57.2(debug@4.3.7): - resolution: {integrity: sha512-HczdMPHMX1AUinSPF589Awz1zrf8+So40wdWeC/tsdxVe1wtayh3Jm7XMtY9IKPN9wT6qk7bs7QunaH7rDHHpA==} + /@sanity/types@3.65.1(debug@4.3.7): + resolution: {integrity: sha512-ize+s7zpk8v/RTqkhqJCq2Q+ph1ZSxypnVSKApn1nbdUZi32j2LAo3ziMciaz8re/uR42rt44wvYThnpCQZGuA==} dependencies: - '@sanity/client': 6.21.3(debug@4.3.7) + '@sanity/client': 6.23.0(debug@4.3.7) '@types/react': 18.3.5 transitivePeerDependencies: - debug @@ -3092,21 +3299,22 @@ packages: styled-components: 6.1.0(react-dom@18.2.0)(react@18.2.0) dev: false - /@sanity/ui@2.8.9(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(styled-components@6.1.0): - resolution: {integrity: sha512-ii5pa3HSA5DonhY+IRb5FHpS5rIM3gyMGTfX+HjaPqRy1itSNs1EqetI9oMVsheCYWEQTdZFzIpIX2mEsGVKKw==} + /@sanity/ui@2.9.0(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(styled-components@6.1.0): + resolution: {integrity: sha512-uuXji8a1myei3hUk67B36byHjZ/PEqnxgbEWACha4RCGptTIQJGZu005RUaQ7AQme0IuVmYPW9iJbpuyjcYT9w==} engines: {node: '>=14.0.0'} peerDependencies: - react: ^18 - react-dom: ^18 - react-is: ^18 + react: ^18 || >=19.0.0-0 + react-dom: ^18 || >=19.0.0-0 + react-is: ^18 || >=19.0.0-0 styled-components: ^5.2 || ^6 dependencies: - '@floating-ui/react-dom': 2.1.1(react-dom@18.2.0)(react@18.2.0) + '@floating-ui/react-dom': 2.1.2(react-dom@18.2.0)(react@18.2.0) '@sanity/color': 3.0.6 '@sanity/icons': 3.4.0(react@18.2.0) csstype: 3.1.3 framer-motion: 11.0.8(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 + react-compiler-runtime: 19.0.0-beta-df7b47d-20241124(react@18.2.0) react-dom: 18.2.0(react@18.2.0) react-is: 18.2.0 react-refractor: 2.2.0(react@18.2.0) @@ -3118,7 +3326,7 @@ packages: resolution: {integrity: sha512-hq0eLjyV2iaOm9ivtPw12YTQ4QsE3jnV/Ui0zhclEhu8Go5JiaEhFt2+WM2lLGRH6qcSA414QbsCNCcyhJL6rA==} engines: {node: '>=18'} dependencies: - '@sanity/client': 6.15.14(debug@4.3.7) + '@sanity/client': 6.23.0(debug@4.3.7) '@sanity/types': 3.37.2(debug@4.3.7) get-random-values-esm: 1.0.2 moment: 2.30.1 @@ -3127,12 +3335,12 @@ packages: - debug dev: false - /@sanity/util@3.52.4(debug@4.3.7): - resolution: {integrity: sha512-QdKok77e4ipizidBgRGqWWE7cK4CL3FrrVc+HPaN03R40xoPRej/ag6KprJ/7DAhLLzw7PdbG7yFsuMzlFrsfQ==} + /@sanity/util@3.57.2: + resolution: {integrity: sha512-YM78ONqjqZh+06lMhi83Bswm/hWtHw/KWhZF40CitS8mhYxjr3Bb7srJpfYu/qJWJdzzn/zz1xB37O3cAuy7Iw==} engines: {node: '>=18'} dependencies: '@sanity/client': 6.21.3(debug@4.3.7) - '@sanity/types': 3.52.4(debug@4.3.7) + '@sanity/types': 3.57.2(debug@4.3.7) get-random-values-esm: 1.0.2 moment: 2.30.1 rxjs: 7.8.1 @@ -3140,12 +3348,12 @@ packages: - debug dev: false - /@sanity/util@3.57.2: - resolution: {integrity: sha512-YM78ONqjqZh+06lMhi83Bswm/hWtHw/KWhZF40CitS8mhYxjr3Bb7srJpfYu/qJWJdzzn/zz1xB37O3cAuy7Iw==} + /@sanity/util@3.65.1(debug@4.3.7): + resolution: {integrity: sha512-wrKbIb7wDa74QLnxFU85aGvPEwB9blIxvFp3IYEtrixBVrjSJkfqgl5s7ty+Q4HMk4eUbER/ZIjWRy+Dmw90Rg==} engines: {node: '>=18'} dependencies: - '@sanity/client': 6.21.3(debug@4.3.7) - '@sanity/types': 3.57.2(debug@4.3.7) + '@sanity/client': 6.23.0(debug@4.3.7) + '@sanity/types': 3.65.1(debug@4.3.7) get-random-values-esm: 1.0.2 moment: 2.30.1 rxjs: 7.8.1 @@ -3537,7 +3745,7 @@ packages: /@types/react-copy-to-clipboard@5.0.7: resolution: {integrity: sha512-Gft19D+as4M+9Whq1oglhmK49vqPhcLzk8WfvfLvaYMIPYanyfLy0+CwFucMJfdKoSFyySPmkkWn8/E6voQXjQ==} dependencies: - '@types/react': 18.0.9 + '@types/react': 18.3.5 dev: false /@types/react-dom@18.0.5: @@ -3549,7 +3757,7 @@ packages: /@types/react-is@18.3.0: resolution: {integrity: sha512-KZJpHUkAdzyKj/kUHJDc6N7KyidftICufJfOFpiG6haL/BDQNQt5i4n1XDUL/nDZAtGLHDSWRYpLzKTAKSvX6w==} dependencies: - '@types/react': 18.0.9 + '@types/react': 18.3.5 dev: false /@types/react-redux@7.1.33: @@ -3807,15 +4015,15 @@ packages: resolution: {integrity: sha512-5b0PkOJsFBX5alChuIO3qpkt5vIZBevzLPhUQ1UP8UzVjL3F1VllnZxp/thfD8R5ol7D7WHkgZHIjdUBX4tDpQ==} dev: false - /@vitejs/plugin-react@4.3.1(vite@4.5.3): - resolution: {integrity: sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==} + /@vitejs/plugin-react@4.3.4(vite@4.5.3): + resolution: {integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - vite: ^4.2.0 || ^5.0.0 + vite: ^4.2.0 || ^5.0.0 || ^6.0.0 dependencies: - '@babel/core': 7.25.2 - '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.25.2) + '@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: 4.5.3 @@ -3823,6 +4031,23 @@ packages: - supports-color dev: false + /@xstate/react@5.0.0(@types/react@18.0.9)(react@18.2.0)(xstate@5.19.0): + resolution: {integrity: sha512-MkYMpmqqCdK43wSl/V/jSpsvumzV4RSG2ZOUEAIrg/w36BJpyufMrsR0rz7POX5ICF5s3xzP9q7Hd5TyM5SSyQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-0 + xstate: ^5.19.0 + peerDependenciesMeta: + xstate: + optional: true + dependencies: + react: 18.2.0 + use-isomorphic-layout-effect: 1.1.2(@types/react@18.0.9)(react@18.2.0) + use-sync-external-store: 1.2.2(react@18.2.0) + xstate: 5.19.0 + transitivePeerDependencies: + - '@types/react' + dev: false + /JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} hasBin: true @@ -4228,6 +4453,17 @@ packages: node-releases: 2.0.18 update-browserslist-db: 1.1.0(browserslist@4.23.3) + /browserslist@4.24.2: + resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001686 + electron-to-chromium: 1.5.68 + node-releases: 2.0.18 + update-browserslist-db: 1.1.1(browserslist@4.24.2) + dev: false + /buffer-alloc-unsafe@1.1.0: resolution: {integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==} dev: false @@ -4309,6 +4545,10 @@ packages: /caniuse-lite@1.0.30001660: resolution: {integrity: sha512-GacvNTTuATm26qC74pt+ad1fW15mlQ/zuTzzY1ZoIzECTP8HURDfF43kNxPgf7H1jmelCBQTTbBNxdSXOA7Bqg==} + /caniuse-lite@1.0.30001686: + resolution: {integrity: sha512-Y7deg0Aergpa24M3qLC5xjNklnKnhsmSyR/V89dLZ1n0ucJIFNs7PgR2Yfa/Zf6W79SbBicgtGxZr2juHkEUIA==} + dev: false + /cardinal@2.1.1: resolution: {integrity: sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==} hasBin: true @@ -4984,10 +5224,6 @@ packages: resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} dev: false - /diff-match-patch@1.0.5: - resolution: {integrity: sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==} - dev: false - /dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -5098,6 +5334,10 @@ packages: /electron-to-chromium@1.5.20: resolution: {integrity: sha512-74mdl6Fs1HHzK9SUX4CKFxAtAe3nUns48y79TskHNAG6fGOlLfyKA4j855x+0b5u8rWJIrlaG9tcTPstMlwjIw==} + /electron-to-chromium@1.5.68: + resolution: {integrity: sha512-FgMdJlma0OzUYlbrtZ4AeXjKxKPk6KT8WOP8BjcqxWtlg8qyJQjRzPJzUtUn5GBg1oQ26hFs7HOOHJMYiJRnvQ==} + dev: false + /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: false @@ -6132,8 +6372,8 @@ packages: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true - /groq-js@1.13.0: - resolution: {integrity: sha512-TfNyvCVDOEVZFFbeO6TbwwrslHTXpDNN4WwCYAcuSuORx4dLQU5Zn+cIsEFUQvLycU4lc0BqU1FIgldbhi4acQ==} + /groq-js@1.14.1: + resolution: {integrity: sha512-tUbxLKA2wDlcMGjTK/M3XizkvqPKIBL/Go+nbPVdw71zQtgWgftPXYi2CbmQ3TYvG+BDLIenlXn/xZDjVqbojw==} engines: {node: '>= 14'} dependencies: debug: 4.3.7 @@ -6141,13 +6381,13 @@ packages: - supports-color dev: false - /groq@3.52.4: - resolution: {integrity: sha512-EOwlT3oyp7kbBqfuPLedAvQUk4XLGGvjDzc3fBJjC2yjwQPivEbaZRslIU7WLUThy97GEpFWS7z1HKFGZTCd1A==} + /groq@3.57.2: + resolution: {integrity: sha512-P+5frH+jXlQzcQ6hqCe6u/cLqOVqn0G91V/DfqWbKhFC9ABtiQneQOx1nJPweaErE0PpipuNm49WCCB16p5PBg==} engines: {node: '>=18'} dev: false - /groq@3.57.2: - resolution: {integrity: sha512-P+5frH+jXlQzcQ6hqCe6u/cLqOVqn0G91V/DfqWbKhFC9ABtiQneQOx1nJPweaErE0PpipuNm49WCCB16p5PBg==} + /groq@3.65.1: + resolution: {integrity: sha512-5PgYZWL8j12LhTGjeRVYj7rpv4rGQX2LXrB8c6R5dx7frUo7+ZxQz11mHMr8tI7vfmVWUjReCyG23/xOMmmwug==} engines: {node: '>=18'} dev: false @@ -6841,6 +7081,12 @@ packages: engines: {node: '>=4'} hasBin: true + /jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} + hasBin: true + dev: false + /json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} dev: true @@ -7335,6 +7581,13 @@ packages: resolution: {integrity: sha512-vAjmBf13gsmhXSgBrtIclinISzFFy22WwCYoyilZlsrRXNIHSwgFQ1bEdjRwMT3aoadeIF6HMuDRlOxzfXV8ig==} engines: {node: ^18 || >=20} hasBin: true + dev: true + + /nanoid@5.0.9: + resolution: {integrity: sha512-Aooyr6MXU6HpvvWXKoVoXwKMs/KyVakWwg7xQfv5/S/RIgJMy0Ifa45H9qqYy7pTCszrHzP21Uk4PZq2HpEM8Q==} + engines: {node: ^18 || >=20} + hasBin: true + dev: false /natural-compare-lite@1.4.0: resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} @@ -7373,10 +7626,6 @@ packages: he: 1.2.0 dev: false - /node-machine-id@1.1.12: - resolution: {integrity: sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==} - dev: false - /node-releases@2.0.18: resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} @@ -7590,13 +7839,13 @@ packages: resolution: {integrity: sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==} dev: false - /observable-callback@1.0.3(rxjs@7.8.0): + /observable-callback@1.0.3(rxjs@7.8.1): resolution: {integrity: sha512-VlS275UyPnwdMtzxDgr/lCiOUyq9uXNll3vdwzDcJ6PB/LuO7gLmxAQopcCA3JoFwwujBwyA7/tP5TXZwWSXew==} engines: {node: '>=16'} peerDependencies: rxjs: ^6.5 || ^7 dependencies: - rxjs: 7.8.0 + rxjs: 7.8.1 dev: false /once@1.4.0: @@ -8150,6 +8399,14 @@ packages: react: 18.2.0 dev: false + /react-compiler-runtime@19.0.0-beta-df7b47d-20241124(react@18.2.0): + resolution: {integrity: sha512-HLFbEf5rEhynZNxI/f1y26Hw0SCvFWh9aS0gCaDndak202oOAvRhy0qsUhmVyaeuRYqIxvPeltMvqDfvO+9/Fw==} + peerDependencies: + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + dependencies: + react: 18.2.0 + dev: false + /react-copy-to-clipboard@5.1.0(react@18.2.0): resolution: {integrity: sha512-k61RsNgAayIJNoy9yDsYzDe/yAZAzEbEgcz3DZMhF686LEyukcE1hzurxe85JandPUG+yTfGVFzuEw3xt8WP/A==} peerDependencies: @@ -8226,8 +8483,8 @@ packages: react: 18.2.0 dev: false - /react-i18next@13.5.0(i18next@23.15.1)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-CFJ5NDGJ2MUyBohEHxljOq/39NQ972rh1ajnadG9BjTk+UXbHLq4z5DKEbEQBDoIhUmmbuS/fIMJKo6VOax1HA==} + /react-i18next@14.0.2(i18next@23.15.1)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-YOB/H1IgXveEWeTsCHez18QjDXImzVZOcF9/JroSbjYoN1LOfCoARFJUQQ8VNow0TnGOtHq9SwTmismm78CTTA==} peerDependencies: i18next: '>= 23.2.3' react: '>= 16.8.0' @@ -8299,15 +8556,16 @@ packages: engines: {node: '>=0.10.0'} dev: false - /react-rx@3.1.3(react@18.2.0)(rxjs@7.8.0): - resolution: {integrity: sha512-ITYuqiathSqLJjMvIO5kDDMSTDuvzpxebiDWNKIVMlGpvJxRXnnlwcQhlMcjV2Yr8+fNQHOHdf6fO/zS9+SMGw==} + /react-rx@4.1.7(react@18.2.0)(rxjs@7.8.1): + resolution: {integrity: sha512-dlvIJdDFb6hRvWLQpLxPmIJs6saVJBdxD3QnW+WCbJq7i/RH1ZdD9sW9LSaSwCf6MJdCD86+zjHv+1O4vAl0rg==} peerDependencies: - react: ^18.3 || >=19.0.0-rc + react: ^18.3 || >=19.0.0-0 rxjs: ^7 dependencies: - observable-callback: 1.0.3(rxjs@7.8.0) + observable-callback: 1.0.3(rxjs@7.8.1) react: 18.2.0 - rxjs: 7.8.0 + react-compiler-runtime: 19.0.0-beta-df7b47d-20241124(react@18.2.0) + rxjs: 7.8.1 use-effect-event: 1.0.2(react@18.2.0) dev: false @@ -8684,12 +8942,12 @@ packages: dependencies: queue-microtask: 1.2.3 - /rxjs-exhaustmap-with-trailing@2.1.1(rxjs@7.8.0): + /rxjs-exhaustmap-with-trailing@2.1.1(rxjs@7.8.1): resolution: {integrity: sha512-gK7nsKyPFsbjDeJ0NYTcZYGW5TbTFjT3iACa28Pwp3fIf9wT/JUR8vdlKYCjUOZKXYnXEk8eRZ4zcQyEURosIA==} peerDependencies: rxjs: 7.x dependencies: - rxjs: 7.8.0 + rxjs: 7.8.1 dev: false /rxjs@6.6.7: @@ -8740,14 +8998,14 @@ packages: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: false - /sanity-diff-patch@3.0.2: - resolution: {integrity: sha512-Vsx6IPuMepvfaX2/jOFuUrJaloHvSmXavS9SL3iJhhIPAu20VfumCtdH5kpKlXKL1pBgCAZhWHXfLC4Fyg7qFg==} - engines: {node: '>=14.18'} + /sanity-diff-patch@4.0.0: + resolution: {integrity: sha512-1OOTx/Uw0J3rwNkI4J/4XJfTGb2Rze/gl5jJGRw+M2hRGkp1QEu2wFHiC9adj83ABYthOczBCBpTHHeZluctdw==} + engines: {node: '>=18.2'} dependencies: '@sanity/diff-match-patch': 3.1.1 dev: false - /sanity-plugin-documents-pane@2.1.0(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.52.4)(styled-components@6.1.0): + /sanity-plugin-documents-pane@2.1.0(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.65.1)(styled-components@6.1.0): resolution: {integrity: sha512-teDyAyOB3CwiR1lNxcXUx9pfssmARuQ0h2yzk3ITBsBRgApkm1GHX8ZN3rJ8GThjctT+kJr2q0CCcJp34rj8jQ==} engines: {node: '>=14'} peerDependencies: @@ -8765,14 +9023,14 @@ packages: react-dom: 18.2.0(react@18.2.0) react-fast-compare: 3.2.2 rxjs: 6.6.7 - sanity: 3.52.4(@types/react@18.0.9)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.0) + sanity: 3.65.1(@types/react@18.0.9)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.0) transitivePeerDependencies: - debug - react-is - styled-components dev: false - /sanity-plugin-iframe-pane@2.3.0(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.52.4)(styled-components@6.1.0): + /sanity-plugin-iframe-pane@2.3.0(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.65.1)(styled-components@6.1.0): resolution: {integrity: sha512-bTq1Fnj1AQv5FXOE/88z41tSlJkfd7Ra/+19CvFOkOdopr7nnCWtztaG+phlqm8cndIs+CMnSxaBByLf/RGcPQ==} engines: {node: '>=14'} peerDependencies: @@ -8783,7 +9041,7 @@ packages: '@sanity/incompatible-plugin': 1.0.4(react-dom@18.2.0)(react@18.2.0) '@sanity/ui': 1.9.3(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(styled-components@6.1.0) react: 18.2.0 - sanity: 3.52.4(@types/react@18.0.9)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.0) + sanity: 3.65.1(@types/react@18.0.9)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.0) usehooks-ts: 2.16.0(react@18.2.0) transitivePeerDependencies: - react-dom @@ -8791,7 +9049,7 @@ packages: - styled-components dev: false - /sanity-plugin-internationalized-array@2.1.0(@sanity/ui@2.1.3)(@sanity/util@3.57.2)(react-dom@18.2.0)(react@18.2.0)(sanity@3.52.4)(styled-components@6.1.0): + /sanity-plugin-internationalized-array@2.1.0(@sanity/ui@2.1.3)(@sanity/util@3.57.2)(react-dom@18.2.0)(react@18.2.0)(sanity@3.65.1)(styled-components@6.1.0): resolution: {integrity: sha512-YpG8O3wdNbewsPNhSHZ13MYTPDqsf0Iz8eC6fB5hhDwttxcM6ftD40R1qXT73Ccl68X4DrbHi3bQzXC60E7D7g==} engines: {node: '>=14'} peerDependencies: @@ -8803,20 +9061,20 @@ packages: dependencies: '@sanity/icons': 2.11.8(react@18.2.0) '@sanity/incompatible-plugin': 1.0.4(react-dom@18.2.0)(react@18.2.0) - '@sanity/language-filter': 4.0.2(@sanity/ui@2.1.3)(@sanity/util@3.57.2)(react-dom@18.2.0)(react@18.2.0)(sanity@3.52.4)(styled-components@6.1.0) + '@sanity/language-filter': 4.0.2(@sanity/ui@2.1.3)(@sanity/util@3.57.2)(react-dom@18.2.0)(react@18.2.0)(sanity@3.65.1)(styled-components@6.1.0) '@sanity/ui': 2.1.3(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(styled-components@6.1.0) fast-deep-equal: 3.1.3 lodash: 4.17.21 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - sanity: 3.52.4(@types/react@18.0.9)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.0) + sanity: 3.65.1(@types/react@18.0.9)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.0) styled-components: 6.1.0(react-dom@18.2.0)(react@18.2.0) suspend-react: 0.1.3(react@18.2.0) transitivePeerDependencies: - '@sanity/util' dev: false - /sanity-plugin-media@2.2.5(@sanity/ui@2.1.3)(@types/react@18.0.9)(react-dom@18.2.0)(react@18.2.0)(sanity@3.52.4)(styled-components@6.1.0): + /sanity-plugin-media@2.2.5(@sanity/ui@2.1.3)(@types/react@18.0.9)(react-dom@18.2.0)(react@18.2.0)(sanity@3.65.1)(styled-components@6.1.0): resolution: {integrity: sha512-gKmzF+OZCmZ706M2QuvtaC9RaV/NXaMS3oQuuWArfA5zplkV5Q+k7K6ulU/g+3jRUZceZ4TKqROHDcKiM96CbA==} engines: {node: '>=14'} peerDependencies: @@ -8851,7 +9109,7 @@ packages: redux: 4.2.1 redux-observable: 2.0.0(redux@4.2.1) rxjs: 7.8.0 - sanity: 3.52.4(@types/react@18.0.9)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.0) + sanity: 3.65.1(@types/react@18.0.9)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.0) styled-components: 6.1.0(react-dom@18.2.0)(react@18.2.0) zod: 3.23.8 transitivePeerDependencies: @@ -8860,7 +9118,7 @@ packages: - supports-color dev: false - /sanity-plugin-utils@1.6.4(@sanity/ui@2.1.3)(react-dom@18.2.0)(react-fast-compare@3.2.2)(react@18.2.0)(rxjs@7.8.0)(sanity@3.52.4)(styled-components@6.1.0): + /sanity-plugin-utils@1.6.4(@sanity/ui@2.1.3)(react-dom@18.2.0)(react-fast-compare@3.2.2)(react@18.2.0)(rxjs@7.8.0)(sanity@3.65.1)(styled-components@6.1.0): resolution: {integrity: sha512-j4LdOlvvM/Utyrl8RWE4VbBwOUx8m+GUoel4CjsBl5h8K1Tgjvpw8J7ftULwCwpcl/yzVGwQutgNw3FXxFbYYg==} engines: {node: '>=18'} peerDependencies: @@ -8879,12 +9137,12 @@ packages: react-dom: 18.2.0(react@18.2.0) react-fast-compare: 3.2.2 rxjs: 7.8.0 - sanity: 3.52.4(@types/react@18.0.9)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.0) + sanity: 3.65.1(@types/react@18.0.9)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.0) styled-components: 6.1.0(react-dom@18.2.0)(react@18.2.0) dev: false - /sanity@3.52.4(@types/react@18.0.9)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.0): - resolution: {integrity: sha512-xnM850DkLjtefBni9MzLu/URYopa6ApTkYJjt8XHgWZEzDkdWHcAAvDXL5LnjRI/ZXDGG93HDW8rZaWeobkGaQ==} + /sanity@3.65.1(@types/react@18.0.9)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.0): + resolution: {integrity: sha512-7veEVR/Og8aiv7gcVoyqazbx4+oau4LyiF6MRrrwxbJ6iFbu3ybuQz8p1R/rWr2TNQmMLQ1btkCxtXj3aU01ow==} engines: {node: '>=18'} hasBin: true peerDependencies: @@ -8897,32 +9155,32 @@ packages: '@dnd-kit/sortable': 7.0.2(@dnd-kit/core@6.1.0)(react@18.2.0) '@dnd-kit/utilities': 3.2.2(react@18.2.0) '@juggle/resize-observer': 3.4.0 - '@portabletext/editor': 1.0.19(@sanity/block-tools@3.52.4)(@sanity/schema@3.52.4)(@sanity/types@3.52.4)(@sanity/util@3.52.4)(react-dom@18.2.0)(react@18.2.0)(rxjs@7.8.0)(styled-components@6.1.0) + '@portabletext/editor': 1.12.3(@sanity/block-tools@3.65.1)(@sanity/schema@3.65.1)(@sanity/types@3.65.1)(@types/react@18.0.9)(react-dom@18.2.0)(react@18.2.0)(rxjs@7.8.1)(styled-components@6.1.0) '@portabletext/react': 3.1.0(react@18.2.0) '@rexxars/react-json-inspector': 8.0.1(react@18.2.0) - '@sanity/asset-utils': 1.3.0 + '@sanity/asset-utils': 2.2.1 '@sanity/bifur-client': 0.4.1 - '@sanity/block-tools': 3.52.4(debug@4.3.7) - '@sanity/cli': 3.52.4(react@18.2.0) - '@sanity/client': 6.21.3(debug@4.3.7) + '@sanity/block-tools': 3.65.1(debug@4.3.7) + '@sanity/cli': 3.65.1(react@18.2.0) + '@sanity/client': 6.23.0(debug@4.3.7) '@sanity/color': 3.0.6 - '@sanity/diff': 3.52.4 + '@sanity/diff': 3.65.1 '@sanity/diff-match-patch': 3.1.1 '@sanity/eventsource': 5.0.2 '@sanity/export': 3.41.0 '@sanity/icons': 3.4.0(react@18.2.0) '@sanity/image-url': 1.0.2 '@sanity/import': 3.37.5 - '@sanity/insert-menu': 1.0.7(@sanity/types@3.52.4)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(styled-components@6.1.0) + '@sanity/insert-menu': 1.0.14(@sanity/types@3.65.1)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(styled-components@6.1.0) '@sanity/logos': 2.1.13(@sanity/color@3.0.6)(react@18.2.0) - '@sanity/migrate': 3.52.4 - '@sanity/mutator': 3.52.4 - '@sanity/presentation': 1.16.2(@sanity/client@6.21.3)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(styled-components@6.1.0) - '@sanity/schema': 3.52.4(debug@4.3.7) + '@sanity/migrate': 3.65.1 + '@sanity/mutator': 3.65.1 + '@sanity/presentation': 1.19.1(@sanity/client@6.23.0)(@sanity/color@3.0.6)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(styled-components@6.1.0) + '@sanity/schema': 3.65.1(debug@4.3.7) '@sanity/telemetry': 0.7.9(react@18.2.0) - '@sanity/types': 3.52.4(debug@4.3.7) - '@sanity/ui': 2.8.9(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(styled-components@6.1.0) - '@sanity/util': 3.52.4(debug@4.3.7) + '@sanity/types': 3.65.1(debug@4.3.7) + '@sanity/ui': 2.9.0(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(styled-components@6.1.0) + '@sanity/util': 3.65.1(debug@4.3.7) '@sanity/uuid': 3.0.2 '@sentry/react': 8.30.0(react@18.2.0) '@tanstack/react-table': 8.20.5(react-dom@18.2.0)(react@18.2.0) @@ -8933,7 +9191,7 @@ packages: '@types/speakingurl': 13.0.6 '@types/tar-stream': 3.1.3 '@types/use-sync-external-store': 0.0.6 - '@vitejs/plugin-react': 4.3.1(vite@4.5.3) + '@vitejs/plugin-react': 4.3.4(vite@4.5.3) archiver: 7.0.1 arrify: 1.0.1 async-mutex: 0.4.1 @@ -8951,10 +9209,11 @@ packages: esbuild-register: 3.6.0(esbuild@0.21.5) execa: 2.1.0 exif-component: 1.0.1 + form-data: 4.0.0 framer-motion: 11.0.8(react-dom@18.2.0)(react@18.2.0) get-it: 8.6.5(debug@4.3.7) get-random-values-esm: 1.0.2 - groq-js: 1.13.0 + groq-js: 1.14.1 history: 5.3.0 i18next: 23.15.1 import-fresh: 3.3.0 @@ -8971,7 +9230,7 @@ packages: nano-pubsub: 3.0.0 nanoid: 3.3.7 node-html-parser: 6.1.13 - observable-callback: 1.0.3(rxjs@7.8.0) + observable-callback: 1.0.3(rxjs@7.8.1) oneline: 1.0.3 open: 8.4.2 p-map: 7.0.2 @@ -8982,22 +9241,23 @@ packages: quick-lru: 5.1.1 raf: 3.4.1 react: 18.2.0 + react-compiler-runtime: 19.0.0-beta-df7b47d-20241124(react@18.2.0) react-copy-to-clipboard: 5.1.0(react@18.2.0) react-dom: 18.2.0(react@18.2.0) react-fast-compare: 3.2.2 react-focus-lock: 2.13.2(@types/react@18.0.9)(react@18.2.0) - react-i18next: 13.5.0(i18next@23.15.1)(react-dom@18.2.0)(react@18.2.0) + react-i18next: 14.0.2(i18next@23.15.1)(react-dom@18.2.0)(react@18.2.0) react-is: 18.2.0 react-refractor: 2.2.0(react@18.2.0) - react-rx: 3.1.3(react@18.2.0)(rxjs@7.8.0) + react-rx: 4.1.7(react@18.2.0)(rxjs@7.8.1) read-pkg-up: 7.0.1 refractor: 3.6.0 resolve-from: 5.0.0 resolve.exports: 2.0.2 rimraf: 3.0.2 - rxjs: 7.8.0 - rxjs-exhaustmap-with-trailing: 2.1.1(rxjs@7.8.0) - sanity-diff-patch: 3.0.2 + rxjs: 7.8.1 + rxjs-exhaustmap-with-trailing: 2.1.1(rxjs@7.8.1) + sanity-diff-patch: 4.0.0 scroll-into-view-if-needed: 3.1.0 semver: 7.6.3 shallow-equals: 1.0.0 @@ -9229,12 +9489,28 @@ packages: engines: {node: '>=14.16'} dev: false - /slate-react@0.108.0(react-dom@18.2.0)(react@18.2.0)(slate@0.103.0): - resolution: {integrity: sha512-vzQuQ1t/gR+1pJh9ABbU4rgckPK0A1AZV5iVKO3isBpJ9z5xPCXf6hqnCNIogMvLU0pZIjjyQJVSL2OtxrQ/xA==} + /slate-dom@0.111.0(slate@0.110.2): + resolution: {integrity: sha512-VjeBh2xIRvP6ToEhrO1TPahc5fPezxbeSUhsRTppBPtHfidEdyp/MTI9TjUrZnlznJiVZ7QKrORXilFq8hsbtQ==} + peerDependencies: + slate: '>=0.99.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 + scroll-into-view-if-needed: 3.1.0 + slate: 0.110.2 + tiny-invariant: 1.3.1 + dev: false + + /slate-react@0.111.0(react-dom@18.2.0)(react@18.2.0)(slate-dom@0.111.0)(slate@0.110.2): + resolution: {integrity: sha512-DiiVSYn+dilx0j40FjaaHiG2KbaX4lZfTdEnYvUJMnpc+d9evcuO2nV6KCDQOtS6xr4w0sBzQMxrpGlA5alKww==} peerDependencies: react: '>=18.2.0' react-dom: '>=18.2.0' slate: '>=0.99.0' + slate-dom: '>=0.110.2' dependencies: '@juggle/resize-observer': 3.4.0 direction: 1.0.4 @@ -9244,12 +9520,13 @@ packages: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) scroll-into-view-if-needed: 3.1.0 - slate: 0.103.0 + slate: 0.110.2 + slate-dom: 0.111.0(slate@0.110.2) tiny-invariant: 1.3.1 dev: false - /slate@0.103.0: - resolution: {integrity: sha512-eCUOVqUpADYMZ59O37QQvUdnFG+8rin0OGQAXNHvHbQeVJ67Bu0spQbcy621vtf8GQUXTEQBlk6OP9atwwob4w==} + /slate@0.110.2: + resolution: {integrity: sha512-4xGULnyMCiEQ0Ml7JAC1A6HVE6MNpPJU7Eq4cXh1LxlrR0dFXC3XC+rNfQtUJ7chHoPkws57x7DDiWiZAt+PBA==} dependencies: immer: 10.1.1 is-plain-object: 5.0.0 @@ -9991,6 +10268,17 @@ packages: escalade: 3.2.0 picocolors: 1.1.0 + /update-browserslist-db@1.1.1(browserslist@4.24.2): + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.24.2 + escalade: 3.2.0 + picocolors: 1.1.0 + dev: false + /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: @@ -10099,6 +10387,11 @@ packages: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} dev: false + /uuid@10.0.0: + resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} + hasBin: true + dev: false + /uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true @@ -10339,6 +10632,10 @@ packages: resolution: {integrity: sha512-xl/50/Cf32VsGq/1R8jJE5ajH1yMCQkpmoS10QbFZWl2Oor4H0Me64Pu2yxvsRWK3m6soJbmGfzSR7BYmDcWAA==} dev: false + /xstate@5.19.0: + resolution: {integrity: sha512-Juh1MjeRaVWr1IRxXYvQMMRFMrei6vq6+AfP6Zk9D9YV0ZuvubN0aM6s2ITwUrq+uWtP1NTO8kOZmsM/IqeOiQ==} + dev: false + /xtend@4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} diff --git a/sanityv3/schemas/components/Breadcrumbs/BreadcrumbsInput.tsx b/sanityv3/schemas/components/Breadcrumbs/BreadcrumbsInput.tsx index 2815fbbd5..5e7d482a9 100644 --- a/sanityv3/schemas/components/Breadcrumbs/BreadcrumbsInput.tsx +++ b/sanityv3/schemas/components/Breadcrumbs/BreadcrumbsInput.tsx @@ -6,13 +6,14 @@ import { BreadcrumbsPreview } from './BreadcrumbsPreview' import { getObjectMemberField } from '../utils/getObjectMemberField' import { constructBreadcrumbs } from './utils/constructBreadcrumbs' import { apiVersion } from '../../../sanity.client' +import { ReadOnlyWrapper } from '../common/ReadOnlyWrapper' type BreadCrumbsInputProps = { value?: Reference[] } & ObjectInputProps export const BreadcrumbsInput = (props: BreadCrumbsInputProps) => { - const { value, members, renderField, renderInput, renderItem, renderPreview } = props + const { value, members, renderField, renderInput, renderItem, renderPreview, readOnly } = props const client = useClient({ apiVersion: apiVersion }) const slug = useFormValue([`slug`]) as SlugValue @@ -76,42 +77,44 @@ export const BreadcrumbsInput = (props: BreadCrumbsInputProps) => { if (!enableBreadcrumbs || !useCustomBreadcrumbs || !customBreadcrumbs) return null return ( - - - Here you can control the breadcrumbs for this page. Breadcrumbs are disabled by default. - - - - - {value?.enableBreadcrumbs && ( + + + + Here you can control the breadcrumbs for this page. Breadcrumbs are disabled by default. + + + + + {value?.enableBreadcrumbs && ( + + )} + + + {value?.enableBreadcrumbs && } + + {value?.enableBreadcrumbs && value?.useCustomBreadcrumbs && ( )} - - - {value?.enableBreadcrumbs && } - - {value?.enableBreadcrumbs && value?.useCustomBreadcrumbs && ( - - )} - - + + + ) } diff --git a/sanityv3/schemas/components/ColorSelector/ColorSelector.tsx b/sanityv3/schemas/components/ColorSelector/ColorSelector.tsx index 61aa58c08..50fe5aa5b 100644 --- a/sanityv3/schemas/components/ColorSelector/ColorSelector.tsx +++ b/sanityv3/schemas/components/ColorSelector/ColorSelector.tsx @@ -4,6 +4,7 @@ import { set } from 'sanity' import type { ObjectInputProps } from 'sanity' import styled from 'styled-components' import { defaultColors } from '../../defaultColors' +import { ReadOnlyWrapper } from '../common/ReadOnlyWrapper' const Circle = styled.div<{ active: boolean }>` display: inline-block; @@ -57,7 +58,7 @@ const ColorCircle = ({ color, active, onClickHandler }: ColorCircleProps) => ( type ColorSelectorProps = ObjectInputProps -export const ColorSelector = ({ value, onChange, schemaType }: ColorSelectorProps) => { +export const ColorSelector = ({ value, onChange, schemaType, readOnly }: ColorSelectorProps) => { const { options } = schemaType const colors = (options?.colors as ColorSelectorValue[]) || defaultColors @@ -74,26 +75,28 @@ export const ColorSelector = ({ value, onChange, schemaType }: ColorSelectorProp ) return ( - - {colors && ( - - - {colors - .filter((colorItem: ColorSelectorValue) => !colorItem?.onlyTextColor) - .map((colorItem: ColorSelectorValue) => { - return ( - - ) - })} - - - )} - + + + {colors && ( + + + {colors + .filter((colorItem: ColorSelectorValue) => !colorItem?.onlyTextColor) + .map((colorItem: ColorSelectorValue) => { + return ( + + ) + })} + + + )} + + ) } diff --git a/sanityv3/schemas/components/EventPromotion/EventPromotionInput.tsx b/sanityv3/schemas/components/EventPromotion/EventPromotionInput.tsx index 13bb42b0e..97048a7b4 100644 --- a/sanityv3/schemas/components/EventPromotion/EventPromotionInput.tsx +++ b/sanityv3/schemas/components/EventPromotion/EventPromotionInput.tsx @@ -3,6 +3,7 @@ import { set, MemberField } from 'sanity' import { getObjectMemberField } from '../utils/getObjectMemberField' import type { ObjectInputProps } from 'sanity' import type { EventPromotion } from '../../objects/promotion/promoteEvents' +import { ReadOnlyWrapper } from '../common/ReadOnlyWrapper' type EventPromotionInputProps = { value?: EventPromotion @@ -26,7 +27,8 @@ const InlinePreview = ({ value }: { value: EventPromotion | undefined }) => { } export const EventPromotionInput = (props: EventPromotionInputProps) => { - const { value, members, renderField, renderInput, renderItem, renderPreview, onChange, renderDefault } = props + const { value, members, renderField, renderInput, renderItem, renderPreview, onChange, renderDefault, readOnly } = + props const useTags = getObjectMemberField(members, 'useTags') const promotePastEvents = getObjectMemberField(members, 'promotePastEvents') @@ -39,111 +41,113 @@ export const EventPromotionInput = (props: EventPromotionInputProps) => { return renderDefault(props) return ( - - How do you want to promote events? - - - - - Automatic - - onChange(set(false, ['manuallySelectEvents']))} - value="a" - > - - - - - - Manual - - onChange(set(true, ['manuallySelectEvents']))} - value="a" - /> - - - - - - - {value?.manuallySelectEvents && ( - - )} - - {!value?.manuallySelectEvents && ( - <> - - - - - {value?.promotePastEvents && ( - - )} - {!value?.promotePastEvents && ( - - )} + + + How do you want to promote events? + + + + + Automatic + + onChange(set(false, ['manuallySelectEvents']))} + value="a" + > + + - onChange(set(!value?.promoteSingleUpcomingEvent, ['promoteSingleUpcomingEvent']))} - /> - - Promote single upcoming event + + Manual + onChange(set(true, ['manuallySelectEvents']))} + value="a" + /> + - {value?.useTags && ( - - )} - > - )} - + + + {value?.manuallySelectEvents && ( + + )} + + {!value?.manuallySelectEvents && ( + <> + + + + + {value?.promotePastEvents && ( + + )} + {!value?.promotePastEvents && ( + + )} + + + onChange(set(!value?.promoteSingleUpcomingEvent, ['promoteSingleUpcomingEvent']))} + /> + + Promote single upcoming event + + + + + {value?.useTags && ( + + )} + > + )} + + ) } diff --git a/sanityv3/schemas/components/RadioIconSelector.tsx b/sanityv3/schemas/components/RadioIconSelector.tsx index dd70ec83f..681c185c4 100644 --- a/sanityv3/schemas/components/RadioIconSelector.tsx +++ b/sanityv3/schemas/components/RadioIconSelector.tsx @@ -1,7 +1,8 @@ -import { Box, Inline } from '@sanity/ui' +import { Box, Inline, Stack } from '@sanity/ui' import { ReactNode, useCallback, useState } from 'react' -import { PatchEvent, set } from 'sanity' +import { PatchEvent, set, StringInputProps } from 'sanity' import styled from 'styled-components' +import { ReadOnlyWrapper } from './common/ReadOnlyWrapper' type StyledBoxProps = { children: ReactNode @@ -38,9 +39,16 @@ type RadioIconSelectorProps = { currentValue: string defaultValue: string onChange: any -} +} & StringInputProps -export const RadioIconSelector = ({ name, options, currentValue, defaultValue, onChange }: RadioIconSelectorProps) => { +export const RadioIconSelector = ({ + name, + options, + currentValue, + defaultValue, + onChange, + readOnly, +}: RadioIconSelectorProps) => { const [value, setValue] = useState(currentValue || defaultValue) const handleChange = useCallback( @@ -53,22 +61,26 @@ export const RadioIconSelector = ({ name, options, currentValue, defaultValue, o ) return ( - - {options.map((option: RadioIconSelectorOption) => ( - - - - {option.icon()} - - - ))} - + + + + {options.map((option: RadioIconSelectorOption) => ( + + + + {option.icon()} + + + ))} + + + ) } diff --git a/sanityv3/schemas/components/ThemeSelector/ThemeSelector.tsx b/sanityv3/schemas/components/ThemeSelector/ThemeSelector.tsx index dcdce808b..8631b7afb 100644 --- a/sanityv3/schemas/components/ThemeSelector/ThemeSelector.tsx +++ b/sanityv3/schemas/components/ThemeSelector/ThemeSelector.tsx @@ -6,6 +6,7 @@ import styled from 'styled-components' import { themeColors, getColorForTheme } from './themeColors' import { EdsIcon } from '../../../icons' import { text_field } from '@equinor/eds-icons' +import { ReadOnlyWrapper } from '../common/ReadOnlyWrapper' const Circle = styled.div<{ active: boolean }>` display: inline-block; @@ -63,7 +64,7 @@ const ColorCircle = ({ color, active, onClickHandler }: ColorCircleProps) => { type ThemeSelectorProps = ObjectInputProps -export const ThemeSelector = ({ value, onChange, schemaType }: ThemeSelectorProps) => { +export const ThemeSelector = ({ value, onChange, schemaType, readOnly }: ThemeSelectorProps) => { const { options } = schemaType const colors = (options?.colors as ThemeSelectorValue[]) || themeColors const theSelectorUniqueId = useId() @@ -79,8 +80,8 @@ export const ThemeSelector = ({ value, onChange, schemaType }: ThemeSelectorProp ) return ( - - {colors && ( + + {colors.map((colorItem: ThemeSelectorValue) => { @@ -96,8 +97,8 @@ export const ThemeSelector = ({ value, onChange, schemaType }: ThemeSelectorProp })} - )} - + + ) } diff --git a/sanityv3/schemas/components/TimeInput.tsx b/sanityv3/schemas/components/TimeInput.tsx index d6bc8c898..e1df66762 100644 --- a/sanityv3/schemas/components/TimeInput.tsx +++ b/sanityv3/schemas/components/TimeInput.tsx @@ -46,7 +46,7 @@ type TimeType = { } const TimeInput = (props: ObjectInputProps) => { - const { value, onChange, elementProps } = props + const { value, onChange, elementProps, readOnly } = props const [time, setTime] = useState(formatTime(value)) const updateValue = useCallback( @@ -92,6 +92,7 @@ const TimeInput = (props: ObjectInputProps) => { aria-label="Select hour" value={value?.split(':')[0] ?? 'Pad'} onChange={handleHoursChange} + readOnly={readOnly} > {[EMPTY, ...HOURS_24].map((h) => ( @@ -109,6 +110,7 @@ const TimeInput = (props: ObjectInputProps) => { aria-label="Select minutes" value={value?.split(':')[1] ?? EMPTY} onChange={handleMinutesChange} + readOnly={readOnly} > {[EMPTY, ...MINUTES].map((m) => ( @@ -118,7 +120,7 @@ const TimeInput = (props: ObjectInputProps) => { - + ) diff --git a/sanityv3/schemas/components/TimezoneInput.tsx b/sanityv3/schemas/components/TimezoneInput.tsx index e5eb018ca..26a811be1 100644 --- a/sanityv3/schemas/components/TimezoneInput.tsx +++ b/sanityv3/schemas/components/TimezoneInput.tsx @@ -6,14 +6,14 @@ import timezones from '../../helpers/timezones' import { set, unset, StringInputProps } from 'sanity' const TimezoneInput = (props: StringInputProps) => { - const { value = '', onChange, elementProps } = props + const { value = '', onChange, elementProps, readOnly } = props const id = useId() const handleChange = (event: FormEvent) => { onChange(event.currentTarget.value === '' ? unset() : set(event.currentTarget.value)) } return ( - + {timezones.map((tz) => ( {tz.replace(/_/g, ' ')} diff --git a/sanityv3/schemas/components/common/ReadOnlyWrapper.tsx b/sanityv3/schemas/components/common/ReadOnlyWrapper.tsx new file mode 100644 index 000000000..ae8a397b1 --- /dev/null +++ b/sanityv3/schemas/components/common/ReadOnlyWrapper.tsx @@ -0,0 +1,36 @@ +import { ReadOnlyIcon } from '@sanity/icons' +import { Card, Flex, Text, Box } from '@sanity/ui' + +export const ReadOnlyWrapper = ({ children, readOnly }: any) => { + return readOnly ? ( + + {children} + + + + + Read only + + + + + ) : ( + <>{children}> + ) +} diff --git a/sanityv3/schemas/documents/langField.ts b/sanityv3/schemas/documents/langField.ts index e3c547a37..9eb5a0788 100644 --- a/sanityv3/schemas/documents/langField.ts +++ b/sanityv3/schemas/documents/langField.ts @@ -1,5 +1,6 @@ -import { defineField } from 'sanity' +import { defineField, FieldProps } from 'sanity' import LangInput from '../components/LangInput' +import { ComponentType } from 'react' export const lang = defineField({ title: 'Language', @@ -10,6 +11,10 @@ export const lang = defineField({ hidden: false, components: { input: LangInput, + field: (props: any) => { + const { renderDefault } = props + return renderDefault({ ...props, actions: [] }) + }, }, validation: (Rule) => Rule.required().error('Please select the language for this document'), }) diff --git a/sanityv3/schemas/documents/page.ts b/sanityv3/schemas/documents/page.ts index e80366cb6..761a61ae6 100644 --- a/sanityv3/schemas/documents/page.ts +++ b/sanityv3/schemas/documents/page.ts @@ -9,6 +9,7 @@ import { lang } from './langField' import { withConditionalVisibility } from '../utils/withConditionalVisibility' import { fieldVisibilityRules } from '../utils/fieldVisibilityRules' import { DocumentDefinition } from 'sanity' +import { getDesignerOnlySchemas } from '../utils/schemaReadOnlyRules' const pageSchema = { type: 'document', @@ -56,6 +57,16 @@ const pageSchema = { name: 'content', type: 'array', title: 'Page sections', + components: { + field: (props: any) => { + const { renderDefault, value, actions } = props + const shouldDisableCopy = value.some((it: any) => getDesignerOnlySchemas().includes(it._type)) + return renderDefault({ + ...props, + actions: shouldDisableCopy ? actions.filter((e: any) => e.name != 'copyField') : actions, + }) + }, + }, of: [ { type: 'textBlock' }, { type: 'teaser' }, diff --git a/sanityv3/schemas/objects/background/imageBackground.tsx b/sanityv3/schemas/objects/background/imageBackground.tsx index 0bcf5b060..256f30bc4 100644 --- a/sanityv3/schemas/objects/background/imageBackground.tsx +++ b/sanityv3/schemas/objects/background/imageBackground.tsx @@ -51,7 +51,7 @@ export default defineType({ type: 'string', initialValue: 'left', components: { - input: function ({ onChange, value }: { onChange: any; value: string }) { + input: function ({ onChange, value, readOnly }: { onChange: any; value: string; readonly: Boolean }) { return ( ) }, diff --git a/sanityv3/schemas/objects/grid/cellTypes/gridTeaser.tsx b/sanityv3/schemas/objects/grid/cellTypes/gridTeaser.tsx index f09351f69..93f1f73ba 100644 --- a/sanityv3/schemas/objects/grid/cellTypes/gridTeaser.tsx +++ b/sanityv3/schemas/objects/grid/cellTypes/gridTeaser.tsx @@ -142,7 +142,7 @@ export default { 'On span 3 one can select which side the image will be on for larger screens. On mobile and single column the image will be above', type: 'string', components: { - input: function ({ onChange, value }: { onChange: any; value: string }) { + input: function ({ onChange, value, readOnly }: { onChange: any; value: string; readOnly: boolean }) { return ( ) }, diff --git a/sanityv3/schemas/objects/grid/cellTypes/gridTextBlock.tsx b/sanityv3/schemas/objects/grid/cellTypes/gridTextBlock.tsx index 9efb69796..d518be699 100644 --- a/sanityv3/schemas/objects/grid/cellTypes/gridTextBlock.tsx +++ b/sanityv3/schemas/objects/grid/cellTypes/gridTextBlock.tsx @@ -4,7 +4,8 @@ import type { PortableTextBlock, Reference, Rule } from 'sanity' import type { ColorSelectorValue } from '../../../components/ColorSelector' import CompactBlockEditor from '../../../components/CompactBlockEditor' import blocksToText from '../../../../helpers/blocksToText' -import { EdsIcon , +import { + EdsIcon, ContentRightImage, ContentLeftImage, ContentCenterImage, @@ -151,7 +152,7 @@ export default { type: 'string', initialValue: 'left', components: { - input: function ({ onChange, value }: { onChange: any; value: string }) { + input: function ({ onChange, value, readOnly }: { onChange: any; value: string; readOnly: boolean }) { return ( ) }, diff --git a/sanityv3/schemas/utils/fieldVisibility.ts b/sanityv3/schemas/utils/fieldVisibility.ts index ac20a34fa..4d020a95c 100644 --- a/sanityv3/schemas/utils/fieldVisibility.ts +++ b/sanityv3/schemas/utils/fieldVisibility.ts @@ -1,6 +1,6 @@ -import { userHasRole } from './permissions' +import { Role } from 'sanity' -export function shouldShowFieldBasedOnRole(fieldRoles: string[]) { +export function shouldShowFieldBasedOnRole(userRoles: Role[], fieldRoles: string[]) { // Roles that should see the field (e.g., ['admin', 'editor']) - return userHasRole(fieldRoles) + return fieldRoles.some((role) => userRoles.some((userRole: Role) => userRole.name === role)) } diff --git a/sanityv3/schemas/utils/fieldVisibilityRules.ts b/sanityv3/schemas/utils/fieldVisibilityRules.ts index a266656bd..2efce4ca2 100644 --- a/sanityv3/schemas/utils/fieldVisibilityRules.ts +++ b/sanityv3/schemas/utils/fieldVisibilityRules.ts @@ -1,5 +1,5 @@ export type FieldVisibilityRule = Record export const fieldVisibilityRules = { - isCampaign: ['admin'], // Visible only to admins add the field names .. + isCampaign: ['designer'], // Visible only to designer add the field names .. } diff --git a/sanityv3/schemas/utils/schemaReadOnlyRules.ts b/sanityv3/schemas/utils/schemaReadOnlyRules.ts index f1517c8ba..1425031cd 100644 --- a/sanityv3/schemas/utils/schemaReadOnlyRules.ts +++ b/sanityv3/schemas/utils/schemaReadOnlyRules.ts @@ -1,5 +1,9 @@ export type SchemaReadOnlyRule = Record export const schemaReadOnlyRules: SchemaReadOnlyRule = { - grid: ['admin'], - campaignBanner: ['admin'], // change admin to designer after role is created. + grid: ['designer'], + campaignBanner: ['designer'], // change admin to designer after role is created. +} + +export const getDesignerOnlySchemas = () => { + return Object.keys(schemaReadOnlyRules) } diff --git a/sanityv3/schemas/utils/withConditionalReadOnly.ts b/sanityv3/schemas/utils/withConditionalReadOnly.ts index 400001bc2..7ac524c8b 100644 --- a/sanityv3/schemas/utils/withConditionalReadOnly.ts +++ b/sanityv3/schemas/utils/withConditionalReadOnly.ts @@ -10,7 +10,7 @@ export const withConditionalVisibility = ( if (roles) return { ...schemaDefinition, - readOnly: () => !shouldShowFieldBasedOnRole(roles), + readOnly: ({ currentUser }: any) => !shouldShowFieldBasedOnRole(currentUser?.roles ?? [], roles), } else return schemaDefinition } diff --git a/sanityv3/schemas/utils/withConditionalVisibility.ts b/sanityv3/schemas/utils/withConditionalVisibility.ts index a262af7c8..00c48ea33 100644 --- a/sanityv3/schemas/utils/withConditionalVisibility.ts +++ b/sanityv3/schemas/utils/withConditionalVisibility.ts @@ -16,7 +16,7 @@ export const withConditionalVisibility = ( if (roles) { return { ...field, - readOnly: () => !shouldShowFieldBasedOnRole(roles), + readOnly: ({ currentUser }) => !shouldShowFieldBasedOnRole(currentUser?.roles ?? [], roles), } } return field