From ef402c23951f34fb607dbb2524b42dac3918048c Mon Sep 17 00:00:00 2001
From: Thomas Cristina de Carvalho <thomas@frontvibe.com>
Date: Wed, 10 Jan 2024 15:54:43 -0500
Subject: [PATCH] Update sanity

---
 create-headless/package.json                  |   2 +-
 pnpm-lock.yaml                                | 416 +++++-------------
 templates/hydrogen-theme/package.json         |   2 +-
 templates/hydrogen-theme/studio/package.json  |   8 +-
 .../customDocumentActions/shopifyDelete.tsx   | 113 ++---
 .../hydrogen-theme/studio/sanity.config.ts    |   8 +-
 .../studio/schemas/documents/blogPost.ts      |  11 +-
 .../studio/schemas/documents/collection.tsx   |   1 +
 .../studio/schemas/documents/color.ts         |   1 +
 .../studio/schemas/documents/page.ts          |   1 +
 .../studio/schemas/documents/product.tsx      |   1 +
 .../schemas/documents/productVariant.tsx      |  21 +-
 .../studio/schemas/singletons/footer.ts       |   5 +-
 .../studio/schemas/singletons/header.ts       |   7 +-
 .../studio/schemas/singletons/home.ts         |   5 +-
 .../studio/schemas/singletons/settings.ts     |   1 +
 .../studio/schemas/singletons/themeContent.ts |   1 +
 .../studio/scripts/createSingletons.ts        |   2 +-
 .../collectionStructure.ts                    |  10 +-
 .../studio/{desk => structure}/index.ts       |  20 +-
 .../{desk => structure}/productStructure.ts   |  30 +-
 .../studio/{desk => structure}/singletons.ts  |   2 +-
 .../studio/utils/defineStructure.ts           |   8 +-
 23 files changed, 247 insertions(+), 429 deletions(-)
 rename templates/hydrogen-theme/studio/{desk => structure}/collectionStructure.ts (59%)
 rename templates/hydrogen-theme/studio/{desk => structure}/index.ts (70%)
 rename templates/hydrogen-theme/studio/{desk => structure}/productStructure.ts (70%)
 rename templates/hydrogen-theme/studio/{desk => structure}/singletons.ts (97%)

diff --git a/create-headless/package.json b/create-headless/package.json
index 309e948..eba9722 100644
--- a/create-headless/package.json
+++ b/create-headless/package.json
@@ -30,7 +30,7 @@
     "picocolors": "^1.0.0",
     "proxy-agent": "^6.3.1",
     "recursive-readdir": "^2.2.3",
-    "sanity": "^3.23.4",
+    "sanity": "^3.24.1",
     "tar-fs": "^3.0.4"
   }
 }
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 91677df..386e1bc 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -66,8 +66,8 @@ importers:
         specifier: ^2.2.3
         version: 2.2.3
       sanity:
-        specifier: ^3.23.4
-        version: 3.23.4(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.8)
+        specifier: ^3.24.1
+        version: 3.24.1(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.8)
       tar-fs:
         specifier: ^3.0.4
         version: 3.0.4
@@ -169,8 +169,8 @@ importers:
         specifier: ^2.12.6
         version: 2.12.6(graphql@16.8.1)
       groq:
-        specifier: ^3.23.4
-        version: 3.23.4
+        specifier: ^3.24.1
+        version: 3.24.1
       groqd:
         specifier: ^0.15.10
         version: 0.15.10
@@ -267,37 +267,37 @@ importers:
     dependencies:
       '@headless.build/sanity-color-picker':
         specifier: ^1.1.0
-        version: 1.1.0(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.23.4)(styled-components@6.1.8)
+        version: 1.1.0(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.24.1)(styled-components@6.1.8)
       '@headless.build/sanity-font-picker':
         specifier: ^3.0.0
-        version: 3.0.0(@headless.build/sanity-plugin-range-slider@1.1.1)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.23.4)(styled-components@6.1.8)
+        version: 3.0.0(@headless.build/sanity-plugin-range-slider@1.1.1)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.24.1)(styled-components@6.1.8)
       '@headless.build/sanity-plugin-range-slider':
         specifier: ^1.1.1
-        version: 1.1.1(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.23.4)(styled-components@6.1.8)
+        version: 1.1.1(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.24.1)(styled-components@6.1.8)
       '@sanity/code-input':
         specifier: ^4.1.2
-        version: 4.1.2(@babel/runtime@7.23.8)(@codemirror/lint@6.4.2)(@codemirror/theme-one-dark@6.1.2)(@lezer/common@1.2.0)(codemirror@6.0.1)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.23.4)(styled-components@6.1.8)
+        version: 4.1.2(@babel/runtime@7.23.8)(@codemirror/lint@6.4.2)(@codemirror/theme-one-dark@6.1.2)(@lezer/common@1.2.0)(codemirror@6.0.1)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.24.1)(styled-components@6.1.8)
       '@sanity/icons':
         specifier: ^2.8.0
         version: 2.8.0(react@18.2.0)
       '@sanity/language-filter':
         specifier: ^3.2.1
-        version: 3.2.1(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.23.4)(styled-components@6.1.8)
+        version: 3.2.1(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.24.1)(styled-components@6.1.8)
       '@sanity/presentation':
         specifier: ^1.5.1
-        version: 1.5.1(@sanity/client@6.11.1)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.23.4)(styled-components@6.1.8)
+        version: 1.5.1(@sanity/client@6.11.1)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.24.1)(styled-components@6.1.8)
       '@sanity/ui':
         specifier: 2.0.0-beta.15
         version: 2.0.0-beta.15(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(styled-components@6.1.8)
       '@sanity/util':
-        specifier: ^3.23.4
-        version: 3.23.4
+        specifier: ^3.24.1
+        version: 3.24.1
       '@sanity/uuid':
         specifier: ^3.0.2
         version: 3.0.2
       '@sanity/vision':
-        specifier: ^3.23.4
-        version: 3.23.4(@babel/runtime@7.23.8)(@codemirror/lint@6.4.2)(@codemirror/state@6.4.0)(@codemirror/theme-one-dark@6.1.2)(@lezer/common@1.2.0)(codemirror@6.0.1)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(styled-components@6.1.8)
+        specifier: ^3.24.1
+        version: 3.24.1(@babel/runtime@7.23.8)(@codemirror/lint@6.4.2)(@codemirror/state@6.4.0)(@codemirror/theme-one-dark@6.1.2)(@lezer/common@1.2.0)(codemirror@6.0.1)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(styled-components@6.1.8)
       '@shopify/polaris':
         specifier: ^12.7.0
         version: 12.7.0(react-dom@18.2.0)(react@18.2.0)
@@ -305,8 +305,8 @@ importers:
         specifier: ^7.13.0
         version: 7.13.0
       groq:
-        specifier: ^3.23.4
-        version: 3.23.4
+        specifier: ^3.24.1
+        version: 3.24.1
       lodash:
         specifier: ^4.17.21
         version: 4.17.21
@@ -332,14 +332,14 @@ importers:
         specifier: ^7.8.1
         version: 7.8.1
       sanity:
-        specifier: ^3.23.4
-        version: 3.23.4(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.8)
+        specifier: ^3.24.1
+        version: 3.24.1(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.8)
       sanity-plugin-internationalized-array:
         specifier: ^1.10.4
-        version: 1.10.4(@sanity/ui@2.0.0-beta.15)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.23.4)(styled-components@6.1.8)
+        version: 1.10.4(@sanity/ui@2.0.0-beta.15)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.24.1)(styled-components@6.1.8)
       sanity-plugin-media:
         specifier: ^2.2.4
-        version: 2.2.4(@types/react@18.2.47)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.23.4)(styled-components@6.1.8)
+        version: 2.2.4(@types/react@18.2.47)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.24.1)(styled-components@6.1.8)
       styled-components:
         specifier: ^6.1.8
         version: 6.1.8(react-dom@18.2.0)(react@18.2.0)
@@ -892,7 +892,7 @@ packages:
     engines: {node: '>=6.9.0'}
     dependencies:
       '@babel/template': 7.22.15
-      '@babel/traverse': 7.23.2
+      '@babel/traverse': 7.23.7
       '@babel/types': 7.23.6
     transitivePeerDependencies:
       - supports-color
@@ -4327,7 +4327,7 @@ packages:
       graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
     dependencies:
       graphql: 16.8.1
-      tslib: 2.5.3
+      tslib: 2.6.2
     dev: false
 
   /@graphql-tools/prisma-loader@8.0.2(@types/node@20.10.8)(graphql@16.8.1):
@@ -4372,7 +4372,7 @@ packages:
       '@ardatan/relay-compiler': 12.0.0(graphql@16.8.1)
       '@graphql-tools/utils': 10.0.12(graphql@16.8.1)
       graphql: 16.8.1
-      tslib: 2.5.3
+      tslib: 2.6.2
     transitivePeerDependencies:
       - encoding
       - supports-color
@@ -4453,7 +4453,7 @@ packages:
       graphql: 16.8.1
     dev: false
 
-  /@headless.build/sanity-color-picker@1.1.0(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.23.4)(styled-components@6.1.8):
+  /@headless.build/sanity-color-picker@1.1.0(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.24.1)(styled-components@6.1.8):
     resolution: {integrity: sha512-YNlC4Dupk/IkILP9a1wrF/aX1qvGYaDsYVo2f6vX8mZyfXRSIJCK4RO5HwSn+Y1qJ8kfkUHyGCFi7u2yU+NVpw==}
     engines: {node: '>=14'}
     peerDependencies:
@@ -4466,7 +4466,7 @@ packages:
       '@shopify/polaris': 12.7.0(react-dom@18.2.0)(react@18.2.0)
       lodash: 4.17.21
       react: 18.2.0
-      sanity: 3.23.4(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.8)
+      sanity: 3.24.1(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.8)
       zod: 3.22.4
     transitivePeerDependencies:
       - react-dom
@@ -4474,7 +4474,7 @@ packages:
       - styled-components
     dev: false
 
-  /@headless.build/sanity-font-picker@3.0.0(@headless.build/sanity-plugin-range-slider@1.1.1)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.23.4)(styled-components@6.1.8):
+  /@headless.build/sanity-font-picker@3.0.0(@headless.build/sanity-plugin-range-slider@1.1.1)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.24.1)(styled-components@6.1.8):
     resolution: {integrity: sha512-R+wSe9ZtFCiB6FK3p/3gn9de6BVUICZiQgKXIC0JXvqz2+ZuB0b2OMFuEnGl7SdKvoAd932Hiw2ATijk3yDdPA==}
     engines: {node: '>=14'}
     peerDependencies:
@@ -4482,19 +4482,19 @@ packages:
       react: ^18
       sanity: ^3
     dependencies:
-      '@headless.build/sanity-plugin-range-slider': 1.1.1(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.23.4)(styled-components@6.1.8)
+      '@headless.build/sanity-plugin-range-slider': 1.1.1(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.24.1)(styled-components@6.1.8)
       '@sanity/icons': 2.8.0(react@18.2.0)
       '@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.8)
       react: 18.2.0
-      sanity: 3.23.4(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.8)
+      sanity: 3.24.1(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.8)
     transitivePeerDependencies:
       - react-dom
       - react-is
       - styled-components
     dev: false
 
-  /@headless.build/sanity-plugin-range-slider@1.1.1(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.23.4)(styled-components@6.1.8):
+  /@headless.build/sanity-plugin-range-slider@1.1.1(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.24.1)(styled-components@6.1.8):
     resolution: {integrity: sha512-8n01a06UAjyKO+v00WQ5q3WLBIsdKvsCajbJhBipHYtpgoRWCjo59aZmUTsSKdEMIvWv2UMVC9TDRf/u9/QpjQ==}
     engines: {node: '>=14'}
     peerDependencies:
@@ -4507,7 +4507,7 @@ packages:
       '@shopify/polaris': 12.7.0(react-dom@18.2.0)(react@18.2.0)
       lodash: 4.17.21
       react: 18.2.0
-      sanity: 3.23.4(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.8)
+      sanity: 3.24.1(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.8)
     transitivePeerDependencies:
       - react-dom
       - react-is
@@ -6341,15 +6341,15 @@ packages:
       rxjs: 7.8.1
     dev: false
 
-  /@sanity/block-tools@3.23.4:
-    resolution: {integrity: sha512-ep6VEcAQJVZvrEWTT92w7qmPmYhXqcvCXYqbaizaSEHPE41g4slZ2/qQTeSW07Qh57rVAK5lWqRogbH00Ml6Ig==}
+  /@sanity/block-tools@3.24.1:
+    resolution: {integrity: sha512-sz6QO1r5NiJa33waEHukxoaHz7w0LwsSYUzKVm60+AS8Gi9/Im0NwYsKqpORveuSZCujZzwm//PMjr3dCR0Czg==}
     dependencies:
       get-random-values-esm: 1.0.0
       lodash: 4.17.21
     dev: false
 
-  /@sanity/cli@3.23.4:
-    resolution: {integrity: sha512-wt6GROBl2M+OHVLbErs2ubFOy8Z1i3H3cmDoQPmKNIJfzPv2FG2cPviMmgfS9xDtjLiSfapcypAu8mYSJWGopg==}
+  /@sanity/cli@3.24.1:
+    resolution: {integrity: sha512-Wmbz/keuY/8bZ74xZNO1koAYp91Kpj7rsszKszMkRArlCFtwOixQITlrj4ylnYl1UnJW7VsITqSFuaLsnT0Quw==}
     engines: {node: '>=18'}
     hasBin: true
     dependencies:
@@ -6378,7 +6378,7 @@ packages:
       - supports-color
     dev: false
 
-  /@sanity/code-input@4.1.2(@babel/runtime@7.23.8)(@codemirror/lint@6.4.2)(@codemirror/theme-one-dark@6.1.2)(@lezer/common@1.2.0)(codemirror@6.0.1)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.23.4)(styled-components@6.1.8):
+  /@sanity/code-input@4.1.2(@babel/runtime@7.23.8)(@codemirror/lint@6.4.2)(@codemirror/theme-one-dark@6.1.2)(@lezer/common@1.2.0)(codemirror@6.0.1)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.24.1)(styled-components@6.1.8):
     resolution: {integrity: sha512-XvUsaUIbl/FV/qP03XItG1UmuxeDC+EPrmFf9VCsE6enhaeTDJgCrtFfXIdS4D4Hmi4R8RclDEddFl58iRiSKA==}
     engines: {node: '>=14'}
     peerDependencies:
@@ -6409,7 +6409,7 @@ packages:
       '@uiw/react-codemirror': 4.21.21(@babel/runtime@7.23.8)(@codemirror/autocomplete@6.11.1)(@codemirror/language@6.10.0)(@codemirror/lint@6.4.2)(@codemirror/search@6.5.5)(@codemirror/state@6.4.0)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.23.0)(codemirror@6.0.1)(react-dom@18.2.0)(react@18.2.0)
       react: 18.2.0
       react-dom: 18.2.0(react@18.2.0)
-      sanity: 3.23.4(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.8)
+      sanity: 3.24.1(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.8)
       styled-components: 6.1.8(react-dom@18.2.0)(react@18.2.0)
     transitivePeerDependencies:
       - '@babel/runtime'
@@ -6444,8 +6444,8 @@ packages:
     engines: {node: '>=14.18'}
     dev: false
 
-  /@sanity/diff@3.23.4:
-    resolution: {integrity: sha512-P4cuk3MG1NOrhTakdp1yH/SlRZKvsRtxXiQjFNHNeKU39ae9ky4zQLWg3bvAaTT7MHTBapnOsZIXfWmMaqId3Q==}
+  /@sanity/diff@3.24.1:
+    resolution: {integrity: sha512-fy/ygiQsgxqBiUP/ys6RtDhk3+XP/rmUyrKd3pU7t4v26HsJNDkFktpp+xoWUGmxvFsIBvMBv6aje1X5pPrHVQ==}
     engines: {node: '>=18'}
     dependencies:
       '@sanity/diff-match-patch': 3.1.1
@@ -6480,8 +6480,8 @@ packages:
       eventsource: 2.0.2
     dev: false
 
-  /@sanity/export@3.23.4:
-    resolution: {integrity: sha512-y3o6+zgC70hLIAzc1J5oQDwKut0jtafT/8hPMhHnVCYDFMDlT6LANUDxoK/eIgOSN1Xc/O2d6Ev7fODJMbWgEw==}
+  /@sanity/export@3.24.1:
+    resolution: {integrity: sha512-k+lJ+nwgGgQaYQdcUhcFLcHAov/qStPnQCSOImyIibzJpkmWPRYBNpEc556q8SPrGsOZIp71zgtEPp1YMYVVNw==}
     engines: {node: '>=18'}
     dependencies:
       archiver: 5.3.2
@@ -6500,14 +6500,14 @@ packages:
     resolution: {integrity: sha512-wtMYcV5GIDIhVyF/jjmdwq1GdlK07dRL40XMns73VbrFI7FteRltxv48bhYVZPcLkRXb0SHjpDS/icj9/yzbVA==}
     dev: false
 
-  /@sanity/groq-store@5.3.7(@sanity/client@6.11.1):
-    resolution: {integrity: sha512-wrAr7PKfbdRvfiC5m7unjH4x5XGZV+vMkk/CwrdHRs+39kuWWJvkwhVNRTS6iWTrTMgpMIe/H1kRrkle0PieDQ==}
+  /@sanity/groq-store@5.3.10(@sanity/client@6.11.1):
+    resolution: {integrity: sha512-svSSxRcAbJYvhrOxwlYkRgry34aHyCk9o8o1BflaUEKjN5VOJO9wyA8TvDEta+WpGy2oZFrz4jzszNx8rCeDhA==}
     engines: {node: '>=18'}
     peerDependencies:
-      '@sanity/client': ^6.10.0
+      '@sanity/client': ^6.11.0
     dependencies:
       '@sanity/client': 6.11.1
-      mnemonist: 0.39.6
+      mnemonist: 0.39.7
     dev: false
 
   /@sanity/icons@1.3.10(react@18.2.0):
@@ -6532,13 +6532,13 @@ packages:
     engines: {node: '>=10.0.0'}
     dev: false
 
-  /@sanity/import@3.23.4:
-    resolution: {integrity: sha512-r2GIWRNuH52X60cjHOjCf4pXi+ZqayY96CvMYK7Y74jR3oIewK58jDVDxMBEFuCSTZ1dCHY/cth/F9c/tHyiIw==}
+  /@sanity/import@3.24.1:
+    resolution: {integrity: sha512-OAc/Le7tpRMSqByjg89as2NZuatXTybm/KTEYBuBUn6K+2coh+JgQ6cnknpnPFslw1j7VGBKeGrbRUzXJsy7Ew==}
     engines: {node: '>=18'}
     dependencies:
       '@sanity/asset-utils': 1.3.0
       '@sanity/generate-help-url': 3.0.0
-      '@sanity/mutator': 3.23.4
+      '@sanity/mutator': 3.24.1
       '@sanity/uuid': 3.0.2
       debug: 3.2.7
       file-url: 2.0.2
@@ -6570,7 +6570,7 @@ packages:
       react-dom: 18.2.0(react@18.2.0)
     dev: false
 
-  /@sanity/language-filter@3.2.1(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.23.4)(styled-components@6.1.8):
+  /@sanity/language-filter@3.2.1(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.24.1)(styled-components@6.1.8):
     resolution: {integrity: sha512-QSPUZ3frdUF+v2WQHwBu/27ivD1Oja4AYSphtpqwyIftxMVcSyiX8x4aqlBw+jisvquypqgMDbzVP4z87o6OoA==}
     engines: {node: '>=14'}
     peerDependencies:
@@ -6581,9 +6581,9 @@ packages:
       '@sanity/icons': 2.8.0(react@18.2.0)
       '@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.8)
-      '@sanity/util': 3.23.4
+      '@sanity/util': 3.24.1
       react: 18.2.0
-      sanity: 3.23.4(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.8)
+      sanity: 3.24.1(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.8)
       styled-components: 6.1.8(react-dom@18.2.0)(react@18.2.0)
     transitivePeerDependencies:
       - react-dom
@@ -6602,8 +6602,8 @@ packages:
       react: 18.2.0
     dev: false
 
-  /@sanity/mutator@3.23.4:
-    resolution: {integrity: sha512-y5XFzzqxkokaykzwCzaaQPO2zeNSxtH2KAxgnhQDVFrgHgGbz3WIxEEImBlWiwy0ZRwKMsv9bFIbvKL/0fd9yQ==}
+  /@sanity/mutator@3.24.1:
+    resolution: {integrity: sha512-CD8DZZpdK0hev4raAMgDtto7GAitdhMrctfwZlV8f3awEIqHZCXcbtIGuKXmDzoQ3fktWI0j8YwI78qixWvBtg==}
     dependencies:
       '@sanity/diff-match-patch': 3.1.1
       '@sanity/uuid': 3.0.2
@@ -6634,18 +6634,18 @@ packages:
       - supports-color
     dev: false
 
-  /@sanity/portable-text-editor@3.23.4(react-dom@18.2.0)(react@18.2.0)(rxjs@7.8.1)(styled-components@6.1.8):
-    resolution: {integrity: sha512-mWJ3VFOtJIu7n4ptXeENZOcIT/UPkYlErymEGRKAOtYmswc6/lHvfx+QX/PN0E9zcIgGhcgT8/4OH9tkewY7IA==}
+  /@sanity/portable-text-editor@3.24.1(react-dom@18.2.0)(react@18.2.0)(rxjs@7.8.1)(styled-components@6.1.8):
+    resolution: {integrity: sha512-w5ntY4s9TRuULgdmcWj4pGSJ/EiWB0J2WGEAXbkQsZn5kQp1qpaJ97YfRM0cwVD3UsWbOzgSjzv8xjOQxreNEA==}
     engines: {node: '>=18'}
     peerDependencies:
       react: ^16.9 || ^17 || ^18
       rxjs: ^7
       styled-components: ^5.2 || ^6
     dependencies:
-      '@sanity/block-tools': 3.23.4
-      '@sanity/schema': 3.23.4
-      '@sanity/types': 3.23.4
-      '@sanity/util': 3.23.4
+      '@sanity/block-tools': 3.24.1
+      '@sanity/schema': 3.24.1
+      '@sanity/types': 3.24.1
+      '@sanity/util': 3.24.1
       debug: 3.2.7
       is-hotkey: 0.1.8
       lodash: 4.17.21
@@ -6659,14 +6659,14 @@ packages:
       - supports-color
     dev: false
 
-  /@sanity/presentation@1.4.0(@sanity/client@6.11.1)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.23.4)(styled-components@6.1.8):
-    resolution: {integrity: sha512-BDT7I7kfWuwqnOl34p0ytyUFrA+0/WT1zm0daSe0g8X8nKi++7HCa2fEbbRy49EG4tkrvWz14/aEtmiOImvMDw==}
+  /@sanity/presentation@1.5.0(@sanity/client@6.11.1)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.24.1)(styled-components@6.1.8):
+    resolution: {integrity: sha512-Q44ta+83/DNwIrJ3hnx66G1xj/qOrreNZ6ZSK7zkCI4AJcPrQjejCoClOJu8yv0b0UNvzNM9cE6X6q5EbHP5Zw==}
     engines: {node: '>=16.14'}
     peerDependencies:
-      '@sanity/client': ^6.10.0
+      '@sanity/client': ^6.11.0
       react: ^18.2.0
       react-dom: ^18.2.0
-      sanity: ^3.23.0
+      sanity: ^3.23.4
       styled-components: ^5.2 || ^6.1.1
     peerDependenciesMeta:
       react:
@@ -6679,10 +6679,10 @@ packages:
         optional: true
     dependencies:
       '@sanity/client': 6.11.1
-      '@sanity/groq-store': 5.3.7(@sanity/client@6.11.1)
+      '@sanity/groq-store': 5.3.10(@sanity/client@6.11.1)
       '@sanity/icons': 2.8.0(react@18.2.0)
-      '@sanity/preview-url-secret': 1.5.0(@sanity/client@6.11.1)(@sanity/icons@2.8.0)(sanity@3.23.4)
-      '@sanity/ui': 2.0.0-beta.13(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(styled-components@6.1.8)
+      '@sanity/preview-url-secret': 1.5.0(@sanity/client@6.11.1)(@sanity/icons@2.8.0)(sanity@3.24.1)
+      '@sanity/ui': 2.0.0-beta.16(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(styled-components@6.1.8)
       '@types/lodash.isequal': 4.5.8
       framer-motion: 10.18.0(react-dom@18.2.0)(react@18.2.0)
       lodash.isequal: 4.5.0
@@ -6690,14 +6690,14 @@ packages:
       react: 18.2.0
       react-dom: 18.2.0(react@18.2.0)
       rxjs: 7.8.1
-      sanity: 3.23.4(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.8)
+      sanity: 3.24.1(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.8)
       styled-components: 6.1.8(react-dom@18.2.0)(react@18.2.0)
       suspend-react: 0.1.3(react@18.2.0)
     transitivePeerDependencies:
       - react-is
     dev: false
 
-  /@sanity/presentation@1.5.1(@sanity/client@6.11.1)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.23.4)(styled-components@6.1.8):
+  /@sanity/presentation@1.5.1(@sanity/client@6.11.1)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.24.1)(styled-components@6.1.8):
     resolution: {integrity: sha512-KHUO39NVLtT7gDFJp2Hv8dQ+dUoEMF/GmaamZL4CQNDu8lFhgFPTA8P/F5DSFs9HzpPuSw8Rt9eQw9rDWrTLCA==}
     engines: {node: '>=16.14'}
     peerDependencies:
@@ -6718,7 +6718,7 @@ packages:
     dependencies:
       '@sanity/client': 6.11.1
       '@sanity/icons': 2.8.0(react@18.2.0)
-      '@sanity/preview-url-secret': 1.5.0(@sanity/client@6.11.1)(@sanity/icons@2.8.0)(sanity@3.23.4)
+      '@sanity/preview-url-secret': 1.5.0(@sanity/client@6.11.1)(@sanity/icons@2.8.0)(sanity@3.24.1)
       '@sanity/ui': 2.0.0-beta.17(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(styled-components@6.1.8)
       '@types/lodash.isequal': 4.5.8
       fast-deep-equal: 3.1.3
@@ -6729,14 +6729,14 @@ packages:
       react: 18.2.0
       react-dom: 18.2.0(react@18.2.0)
       rxjs: 7.8.1
-      sanity: 3.23.4(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.8)
+      sanity: 3.24.1(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.8)
       styled-components: 6.1.8(react-dom@18.2.0)(react@18.2.0)
       suspend-react: 0.1.3(react@18.2.0)
     transitivePeerDependencies:
       - react-is
     dev: false
 
-  /@sanity/preview-url-secret@1.5.0(@sanity/client@6.11.1)(@sanity/icons@2.8.0)(sanity@3.23.4):
+  /@sanity/preview-url-secret@1.5.0(@sanity/client@6.11.1)(@sanity/icons@2.8.0)(sanity@3.24.1):
     resolution: {integrity: sha512-ygY8oL3k+qwBkbQXCNPKviZcy/+Z177kgs7F4MPkhusefJPTY24kUPKjvKMJzzkuwH3w1EkkZELmmZdrT6zWvw==}
     engines: {node: '>=18'}
     peerDependencies:
@@ -6752,7 +6752,7 @@ packages:
       '@sanity/client': 6.11.1
       '@sanity/icons': 2.8.0(react@18.2.0)
       '@sanity/uuid': 3.0.2
-      sanity: 3.23.4(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.8)
+      sanity: 3.24.1(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.8)
     dev: false
 
   /@sanity/react-loader@1.7.3(@sanity/client@6.11.1)(react@18.2.0):
@@ -6768,11 +6768,11 @@ packages:
       react: 18.2.0
     dev: false
 
-  /@sanity/schema@3.23.4:
-    resolution: {integrity: sha512-QjnMmsK78SeVRomOHOgJwUqqxF4XsURLId0nq+BBk5MMHBcm/3tQYhIlRkRowUkM0gJJvECzSPyqoj/e0xnXZw==}
+  /@sanity/schema@3.24.1:
+    resolution: {integrity: sha512-SmXlytJNivz6s3efXOPjdaU+dXzHZhGa44I/Un3oJzLVb7jYF2WoC3tnwDELo8S1/nCE0vk0iJnL5Gqn0vVk/g==}
     dependencies:
       '@sanity/generate-help-url': 3.0.0
-      '@sanity/types': 3.23.4
+      '@sanity/types': 3.24.1
       arrify: 1.0.1
       humanize-list: 1.0.1
       leven: 3.1.0
@@ -6782,17 +6782,6 @@ packages:
       - supports-color
     dev: false
 
-  /@sanity/telemetry@0.7.5:
-    resolution: {integrity: sha512-lY1Lmt2zl9YIIXO2bAFGXR542ovpn8jmLmIos1mQU4D+ItbZsPBxt9g72bJCsUZ7yodMf2K4t4Tp7BTv0as9sg==}
-    engines: {node: '>=16.0.0'}
-    dependencies:
-      lodash: 4.17.21
-      react: 18.2.0
-      react-dom: 18.2.0(react@18.2.0)
-      rxjs: 7.8.1
-      typeid-js: 0.3.0
-    dev: false
-
   /@sanity/telemetry@0.7.6:
     resolution: {integrity: sha512-ONv0kRefL2zsyv84zDE/tfBjOZ1W0d5eBQHpx8+TN5OPKtESZaL68VjZV1OrumVoEIfaSOHUCB6RsnC5t0H6Kw==}
     engines: {node: '>=16.0.0'}
@@ -6804,8 +6793,8 @@ packages:
       typeid-js: 0.3.0
     dev: false
 
-  /@sanity/types@3.23.4:
-    resolution: {integrity: sha512-v3EN73ECxlwHAScOhQhSnnfpZf62LX8vN62V3m6tY7+Umnc9XwKUoTtKiMQUKJy4XuZgarot3kM4/6GfB9Y3Mg==}
+  /@sanity/types@3.24.1:
+    resolution: {integrity: sha512-hbih87IjAQqdFHqPhggfHtaV5rxtCITZVVxHeerClABVdiYcdy5Yu10CJbKCXD3HzSkYhEeO3Fd8ljtFBoNmjg==}
     dependencies:
       '@sanity/client': 6.11.1
       '@types/react': 18.2.47
@@ -6834,8 +6823,8 @@ packages:
       styled-components: 6.1.8(react-dom@18.2.0)(react@18.2.0)
     dev: false
 
-  /@sanity/ui@2.0.0-beta.13(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(styled-components@6.1.8):
-    resolution: {integrity: sha512-neMMdrcUtcfLnzmRRrqLgdVOHpBqmFeN8wM2tu9fVOEDexXyL/CHFrOYlGG+A7JL6BJbOQxaryeFvmFKskZ2cA==}
+  /@sanity/ui@2.0.0-beta.15(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(styled-components@6.1.8):
+    resolution: {integrity: sha512-w3OwrRaL2z/rqVwZjXE6m0n+w6qXTRTxD45iEuhSfYB8INMQa10TM7WyOXrK8L/i7y8VDsgcVMA7woaQL/YaFA==}
     engines: {node: '>=14.0.0'}
     peerDependencies:
       react: ^18
@@ -6855,8 +6844,8 @@ packages:
       styled-components: 6.1.8(react-dom@18.2.0)(react@18.2.0)
     dev: false
 
-  /@sanity/ui@2.0.0-beta.15(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(styled-components@6.1.8):
-    resolution: {integrity: sha512-w3OwrRaL2z/rqVwZjXE6m0n+w6qXTRTxD45iEuhSfYB8INMQa10TM7WyOXrK8L/i7y8VDsgcVMA7woaQL/YaFA==}
+  /@sanity/ui@2.0.0-beta.16(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(styled-components@6.1.8):
+    resolution: {integrity: sha512-nu+N1ClKv5e3sraBvJnru3/F3Nzl7uI85En3kPWg611GfHlu6x0WGVE/6kB0FQXkwMsaqehduiz9xgE2lKZopg==}
     engines: {node: '>=14.0.0'}
     peerDependencies:
       react: ^18
@@ -6897,11 +6886,11 @@ packages:
       styled-components: 6.1.8(react-dom@18.2.0)(react@18.2.0)
     dev: false
 
-  /@sanity/util@3.23.4:
-    resolution: {integrity: sha512-ehWW1GifZVJxacyBDaiORogvD7Nzp1/WjzWCtRZ/Gjlt1kXJl4B7ESwPsbOtwRLGBnVB1wHcl7HsCStxEd5aqg==}
+  /@sanity/util@3.24.1:
+    resolution: {integrity: sha512-4TnjysKBdNMzZgGLwYii4ZTnYmvXz3ClYmyqJhPBKVcafip/r1q51OrIophW420Dhe9dIROjgguZAUiHnfXNYw==}
     engines: {node: '>=18'}
     dependencies:
-      '@sanity/types': 3.23.4
+      '@sanity/types': 3.24.1
       get-random-values-esm: 1.0.0
       moment: 2.30.1
     transitivePeerDependencies:
@@ -6915,8 +6904,8 @@ packages:
       uuid: 8.3.2
     dev: false
 
-  /@sanity/vision@3.23.4(@babel/runtime@7.23.8)(@codemirror/lint@6.4.2)(@codemirror/state@6.4.0)(@codemirror/theme-one-dark@6.1.2)(@lezer/common@1.2.0)(codemirror@6.0.1)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(styled-components@6.1.8):
-    resolution: {integrity: sha512-R4eDoJLrFCaFosivAY3cKDlHVv1XGadZ7lfLYi9EjSaPsnaTRiu+QGtJ+NoAtdghEzLdSYLPL0H1FSWDHmeaJQ==}
+  /@sanity/vision@3.24.1(@babel/runtime@7.23.8)(@codemirror/lint@6.4.2)(@codemirror/state@6.4.0)(@codemirror/theme-one-dark@6.1.2)(@lezer/common@1.2.0)(codemirror@6.0.1)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(styled-components@6.1.8):
+    resolution: {integrity: sha512-Cs7YQTlpLMfGjdwtex2qV/yoxXBryWPth0SpMkZZJNBb9HxJc06oeFpIGZlRcluu/FW3hoRFiyWzgwnEqApROg==}
     peerDependencies:
       react: ^18
       styled-components: ^5.2 || ^6
@@ -6933,7 +6922,7 @@ packages:
       '@rexxars/react-split-pane': 0.1.93(react-dom@18.2.0)(react@18.2.0)
       '@sanity/color': 3.0.0-beta.9
       '@sanity/icons': 2.8.0(react@18.2.0)
-      '@sanity/ui': 2.0.0-beta.13(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(styled-components@6.1.8)
+      '@sanity/ui': 2.0.0-beta.16(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(styled-components@6.1.8)
       '@uiw/react-codemirror': 4.21.21(@babel/runtime@7.23.8)(@codemirror/autocomplete@6.11.1)(@codemirror/language@6.10.0)(@codemirror/lint@6.4.2)(@codemirror/search@6.5.5)(@codemirror/state@6.4.0)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.23.0)(codemirror@6.0.1)(react-dom@18.2.0)(react@18.2.0)
       hashlru: 2.3.0
       is-hotkey: 0.1.8
@@ -9912,7 +9901,6 @@ packages:
       loose-envify: 1.4.0
       object-assign: 4.1.1
     dev: false
-    bundledDependencies: false
 
   /create-require@1.1.1:
     resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
@@ -12577,8 +12565,8 @@ packages:
     engines: {node: '>= 14'}
     dev: false
 
-  /groq@3.23.4:
-    resolution: {integrity: sha512-1r7OKgUKHZ6dpuzKNkvFfqB8GEt633n6vCH9gWnbvy8ahYb2/RxNqk4VHkEAbxqKhrLTPaEgi6kJJ5Kk4K6SKg==}
+  /groq@3.24.1:
+    resolution: {integrity: sha512-Ay33pHdDZWe25Dnelcl3G1APrsLQ1b2ypoFuqRh4ot5zGlEPa9Bfyi2C3vZzvF9knM5tFboDLAr73vLdod69QA==}
     engines: {node: '>=18'}
     dev: false
 
@@ -13687,14 +13675,6 @@ packages:
     dependencies:
       argparse: 2.0.1
 
-  /jsdom-global@3.0.2(jsdom@23.1.0):
-    resolution: {integrity: sha512-t1KMcBkz/pT5JrvcJbpUR2u/w1kO9jXctaaGJ0vZDzwFnIvGWw9IDSRciT83kIs8Bnw4qpOl8bQK08V01YgMPg==}
-    peerDependencies:
-      jsdom: '>=10.0.0'
-    dependencies:
-      jsdom: 23.1.0
-    dev: false
-
   /jsdom-global@3.0.2(jsdom@23.2.0):
     resolution: {integrity: sha512-t1KMcBkz/pT5JrvcJbpUR2u/w1kO9jXctaaGJ0vZDzwFnIvGWw9IDSRciT83kIs8Bnw4qpOl8bQK08V01YgMPg==}
     peerDependencies:
@@ -13703,42 +13683,6 @@ packages:
       jsdom: 23.2.0
     dev: false
 
-  /jsdom@23.1.0:
-    resolution: {integrity: sha512-wRscu8dBFxi7O65Cvi0jFRDv0Qa7XEHPix8Qg/vlXHLAMQsRWV1EDeQHBermzXf4Dt7JtFgBLbva3iTcBZDXEQ==}
-    engines: {node: '>=18'}
-    peerDependencies:
-      canvas: ^2.11.2
-    peerDependenciesMeta:
-      canvas:
-        optional: true
-    dependencies:
-      cssstyle: 4.0.1
-      data-urls: 5.0.0
-      decimal.js: 10.4.3
-      form-data: 4.0.0
-      html-encoding-sniffer: 4.0.0
-      http-proxy-agent: 7.0.0
-      https-proxy-agent: 7.0.2
-      is-potential-custom-element-name: 1.0.1
-      nwsapi: 2.2.7
-      parse5: 7.1.2
-      rrweb-cssom: 0.6.0
-      saxes: 6.0.0
-      symbol-tree: 3.2.4
-      tough-cookie: 4.1.3
-      w3c-xmlserializer: 5.0.0
-      webidl-conversions: 7.0.0
-      whatwg-encoding: 3.1.1
-      whatwg-mimetype: 4.0.0
-      whatwg-url: 14.0.0
-      ws: 8.16.0
-      xml-name-validator: 5.0.0
-    transitivePeerDependencies:
-      - bufferutil
-      - supports-color
-      - utf-8-validate
-    dev: false
-
   /jsdom@23.2.0:
     resolution: {integrity: sha512-L88oL7D/8ufIES+Zjz7v0aes+oBMh2Xnh3ygWvL0OaICOomKEPKuPnIfBJekiXr+BHbbMjrWn/xqrDQuxFTeyA==}
     engines: {node: '>=18'}
@@ -15142,12 +15086,6 @@ packages:
       pkg-types: 1.0.3
       ufo: 1.3.2
 
-  /mnemonist@0.39.6:
-    resolution: {integrity: sha512-A/0v5Z59y63US00cRSLiloEIw3t5G+MiKz4BhX21FI+YBJXBOGW0ohFxTxO08dsOYlzxo87T7vGfZKYp2bcAWA==}
-    dependencies:
-      obliterator: 2.0.4
-    dev: false
-
   /mnemonist@0.39.7:
     resolution: {integrity: sha512-ix3FwHWZgdXUt0dHM8bCrI4r1KMeYx8bCunPCYmvKXq4tn6gbNsqrsb4q0kDbDqbpIOvEaW5Sn+dmDwGydfrwA==}
     dependencies:
@@ -15558,10 +15496,6 @@ packages:
     resolution: {integrity: sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==}
     dev: false
 
-  /nwsapi@2.2.7:
-    resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==}
-    dev: false
-
   /object-assign@4.1.1:
     resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
     engines: {node: '>=0.10.0'}
@@ -18025,7 +17959,7 @@ packages:
       '@sanity/diff-match-patch': 3.1.1
     dev: false
 
-  /sanity-plugin-internationalized-array@1.10.4(@sanity/ui@2.0.0-beta.15)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.23.4)(styled-components@6.1.8):
+  /sanity-plugin-internationalized-array@1.10.4(@sanity/ui@2.0.0-beta.15)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.24.1)(styled-components@6.1.8):
     resolution: {integrity: sha512-VFfGgu0qKn2MThkrKHBDu2E0t8GZsKE7OIseIv9l3jV+Tm2upHq776lsNMRJ5R4kAiP1OBejZj2xdPrk4oDkCg==}
     engines: {node: '>=14'}
     peerDependencies:
@@ -18036,12 +17970,12 @@ packages:
     dependencies:
       '@sanity/icons': 2.8.0(react@18.2.0)
       '@sanity/incompatible-plugin': 1.0.4(react-dom@18.2.0)(react@18.2.0)
-      '@sanity/language-filter': 3.2.1(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.23.4)(styled-components@6.1.8)
+      '@sanity/language-filter': 3.2.1(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.24.1)(styled-components@6.1.8)
       '@sanity/ui': 2.0.0-beta.15(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(styled-components@6.1.8)
       fast-deep-equal: 3.1.3
       lodash.get: 4.4.2
       react: 18.2.0
-      sanity: 3.23.4(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.8)
+      sanity: 3.24.1(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.8)
       styled-components: 6.1.8(react-dom@18.2.0)(react@18.2.0)
       suspend-react: 0.0.8(react@18.2.0)
     transitivePeerDependencies:
@@ -18050,7 +17984,7 @@ packages:
       - supports-color
     dev: false
 
-  /sanity-plugin-media@2.2.4(@types/react@18.2.47)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.23.4)(styled-components@6.1.8):
+  /sanity-plugin-media@2.2.4(@types/react@18.2.47)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.24.1)(styled-components@6.1.8):
     resolution: {integrity: sha512-WLQyNMNyypTPVJdL3I8EihnxVxS0dbfD6e6An/oGaEQUrUlg2kIGqs8fE6NlJytEGIJQxr+fL2aF3d2wGP4FMA==}
     engines: {node: '>=14'}
     peerDependencies:
@@ -18068,7 +18002,7 @@ packages:
       copy-to-clipboard: 3.3.3
       date-fns: 2.30.0
       filesize: 9.0.11
-      groq: 3.23.4
+      groq: 3.24.1
       is-hotkey: 0.2.0
       nanoid: 3.3.7
       npm-run-all: 4.1.5
@@ -18084,7 +18018,7 @@ packages:
       redux: 4.2.1
       redux-observable: 2.0.0(redux@4.2.1)
       rxjs: 7.8.1
-      sanity: 3.23.4(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.8)
+      sanity: 3.24.1(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.8)
       styled-components: 6.1.8(react-dom@18.2.0)(react@18.2.0)
       zod: 3.22.4
     transitivePeerDependencies:
@@ -18093,8 +18027,8 @@ packages:
       - react-native
     dev: false
 
-  /sanity@3.23.4(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.8):
-    resolution: {integrity: sha512-KUzyA4+1/bLiL24HQNBMYtOwzZOaKh/dGDZ/Y9FVPsUFr2iyr8Mer6T1e/UT/4Lw2iQB6myfF4IfnEaqdvuWJA==}
+  /sanity@3.24.1(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.8):
+    resolution: {integrity: sha512-/7X+s/vxsvkikxEIvxFpmypmnzyhNXXoO8Xl1ltDrQp9REZuIUIgpvpnqls6Sq7HuBAEC4s4M/JQfxq5WQ2yhA==}
     engines: {node: '>=18'}
     hasBin: true
     peerDependencies:
@@ -18111,27 +18045,27 @@ packages:
       '@rexxars/react-json-inspector': 8.0.1(react@18.2.0)
       '@sanity/asset-utils': 1.3.0
       '@sanity/bifur-client': 0.3.1
-      '@sanity/block-tools': 3.23.4
-      '@sanity/cli': 3.23.4
+      '@sanity/block-tools': 3.24.1
+      '@sanity/cli': 3.24.1
       '@sanity/client': 6.11.1
       '@sanity/color': 3.0.0-beta.9
-      '@sanity/diff': 3.23.4
+      '@sanity/diff': 3.24.1
       '@sanity/diff-match-patch': 3.1.1
       '@sanity/eventsource': 5.0.1
-      '@sanity/export': 3.23.4
+      '@sanity/export': 3.24.1
       '@sanity/generate-help-url': 3.0.0
       '@sanity/icons': 2.8.0(react@18.2.0)
       '@sanity/image-url': 1.0.2
-      '@sanity/import': 3.23.4
+      '@sanity/import': 3.24.1
       '@sanity/logos': 2.1.4(@sanity/color@3.0.0-beta.9)(react@18.2.0)
-      '@sanity/mutator': 3.23.4
-      '@sanity/portable-text-editor': 3.23.4(react-dom@18.2.0)(react@18.2.0)(rxjs@7.8.1)(styled-components@6.1.8)
-      '@sanity/presentation': 1.4.0(@sanity/client@6.11.1)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.23.4)(styled-components@6.1.8)
-      '@sanity/schema': 3.23.4
+      '@sanity/mutator': 3.24.1
+      '@sanity/portable-text-editor': 3.24.1(react-dom@18.2.0)(react@18.2.0)(rxjs@7.8.1)(styled-components@6.1.8)
+      '@sanity/presentation': 1.5.0(@sanity/client@6.11.1)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.24.1)(styled-components@6.1.8)
+      '@sanity/schema': 3.24.1
       '@sanity/telemetry': 0.7.6
-      '@sanity/types': 3.23.4
-      '@sanity/ui': 2.0.0-beta.13(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(styled-components@6.1.8)
-      '@sanity/util': 3.23.4
+      '@sanity/types': 3.24.1
+      '@sanity/ui': 2.0.0-beta.16(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(styled-components@6.1.8)
+      '@sanity/util': 3.24.1
       '@sanity/uuid': 3.0.2
       '@tanstack/react-virtual': 3.0.0-beta.54(react@18.2.0)
       '@types/is-hotkey': 0.1.10
@@ -18227,140 +18161,6 @@ packages:
       - utf-8-validate
     dev: false
 
-  /sanity@3.23.4(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.8):
-    resolution: {integrity: sha512-KUzyA4+1/bLiL24HQNBMYtOwzZOaKh/dGDZ/Y9FVPsUFr2iyr8Mer6T1e/UT/4Lw2iQB6myfF4IfnEaqdvuWJA==}
-    engines: {node: '>=18'}
-    hasBin: true
-    peerDependencies:
-      react: ^18
-      react-dom: ^18
-      styled-components: ^5.2 || ^6
-    dependencies:
-      '@dnd-kit/core': 6.1.0(react-dom@18.2.0)(react@18.2.0)
-      '@dnd-kit/modifiers': 6.0.1(@dnd-kit/core@6.1.0)(react@18.2.0)
-      '@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/react': 3.0.11(react@18.2.0)
-      '@rexxars/react-json-inspector': 8.0.1(react@18.2.0)
-      '@sanity/asset-utils': 1.3.0
-      '@sanity/bifur-client': 0.3.1
-      '@sanity/block-tools': 3.23.4
-      '@sanity/cli': 3.23.4
-      '@sanity/client': 6.11.1
-      '@sanity/color': 3.0.0-beta.9
-      '@sanity/diff': 3.23.4
-      '@sanity/diff-match-patch': 3.1.1
-      '@sanity/eventsource': 5.0.1
-      '@sanity/export': 3.23.4
-      '@sanity/generate-help-url': 3.0.0
-      '@sanity/icons': 2.8.0(react@18.2.0)
-      '@sanity/image-url': 1.0.2
-      '@sanity/import': 3.23.4
-      '@sanity/logos': 2.1.4(@sanity/color@3.0.0-beta.9)(react@18.2.0)
-      '@sanity/mutator': 3.23.4
-      '@sanity/portable-text-editor': 3.23.4(react-dom@18.2.0)(react@18.2.0)(rxjs@7.8.1)(styled-components@6.1.8)
-      '@sanity/presentation': 1.4.0(@sanity/client@6.11.1)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(sanity@3.23.4)(styled-components@6.1.8)
-      '@sanity/schema': 3.23.4
-      '@sanity/telemetry': 0.7.5
-      '@sanity/types': 3.23.4
-      '@sanity/ui': 2.0.0-beta.13(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(styled-components@6.1.8)
-      '@sanity/util': 3.23.4
-      '@sanity/uuid': 3.0.2
-      '@tanstack/react-virtual': 3.0.0-beta.54(react@18.2.0)
-      '@types/is-hotkey': 0.1.10
-      '@types/react-copy-to-clipboard': 5.0.7
-      '@types/react-is': 18.2.4
-      '@types/shallow-equals': 1.0.3
-      '@types/speakingurl': 13.0.6
-      '@types/use-sync-external-store': 0.0.5
-      '@vitejs/plugin-react': 4.2.1(vite@4.5.1)
-      chalk: 4.1.2
-      chokidar: 3.5.3
-      classnames: 2.5.1
-      color2k: 2.0.3
-      configstore: 5.0.1
-      connect-history-api-fallback: 1.6.0
-      console-table-printer: 2.12.0
-      dataloader: 2.2.2
-      date-fns: 2.30.0
-      debug: 3.2.7
-      esbuild: 0.19.11
-      esbuild-register: 3.5.0(esbuild@0.19.11)
-      execa: 2.1.0
-      exif-component: 1.0.1
-      framer-motion: 10.18.0(react-dom@18.2.0)(react@18.2.0)
-      get-it: 8.4.4
-      get-random-values-esm: 1.0.0
-      groq-js: 1.3.0
-      hashlru: 2.3.0
-      history: 5.3.0
-      i18next: 23.7.16
-      import-fresh: 3.3.0
-      is-hotkey: 0.1.8
-      jsdom: 23.1.0
-      jsdom-global: 3.0.2(jsdom@23.1.0)
-      json-lexer: 1.2.0
-      json-reduce: 3.0.0
-      json5: 2.2.3
-      lodash: 4.17.21
-      log-symbols: 2.2.0
-      mendoza: 3.0.3
-      module-alias: 2.2.3
-      nano-pubsub: 2.0.1
-      nanoid: 3.3.7
-      observable-callback: 1.0.3(rxjs@7.8.1)
-      oneline: 1.0.3
-      open: 8.4.2
-      pirates: 4.0.6
-      pluralize-esm: 9.0.5
-      polished: 4.2.2
-      pretty-ms: 7.0.1
-      raf: 3.4.1
-      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.9.6(@types/react@18.2.47)(react@18.2.0)
-      react-i18next: 13.5.0(i18next@23.7.16)(react-dom@18.2.0)(react@18.2.0)
-      react-is: 18.2.0
-      react-refractor: 2.1.7(react@18.2.0)
-      react-rx: 2.1.3(react@18.2.0)(rxjs@7.8.1)
-      read-pkg-up: 7.0.1
-      refractor: 3.6.0
-      resolve-from: 5.0.0
-      rimraf: 3.0.2
-      rxjs: 7.8.1
-      rxjs-etc: 10.6.2(rxjs@7.8.1)
-      rxjs-exhaustmap-with-trailing: 2.1.1(rxjs@7.8.1)
-      sanity-diff-patch: 3.0.2
-      scroll-into-view-if-needed: 3.1.0
-      semver: 7.5.4
-      shallow-equals: 1.0.0
-      speakingurl: 14.0.1
-      styled-components: 6.1.8(react-dom@18.2.0)(react@18.2.0)
-      tar-fs: 2.1.1
-      use-device-pixel-ratio: 1.1.2(react@18.2.0)
-      use-hot-module-reload: 1.0.3(react@18.2.0)
-      use-sync-external-store: 1.2.0(react@18.2.0)
-      vite: 4.5.1(@types/node@20.10.8)
-      yargs: 17.7.2
-    transitivePeerDependencies:
-      - '@types/node'
-      - '@types/react'
-      - bufferutil
-      - canvas
-      - less
-      - lightningcss
-      - react-native
-      - sass
-      - stylus
-      - sugarss
-      - supports-color
-      - terser
-      - utf-8-validate
-    dev: false
-
   /sax@1.3.0:
     resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==}
     dev: false
diff --git a/templates/hydrogen-theme/package.json b/templates/hydrogen-theme/package.json
index a47139d..48bf0d3 100644
--- a/templates/hydrogen-theme/package.json
+++ b/templates/hydrogen-theme/package.json
@@ -42,7 +42,7 @@
     "framer-motion": "^10.18.0",
     "graphql": "^16.8.1",
     "graphql-tag": "^2.12.6",
-    "groq": "^3.23.4",
+    "groq": "^3.24.1",
     "groqd": "^0.15.10",
     "isbot": "^4.3.0",
     "react": "^18.2.0",
diff --git a/templates/hydrogen-theme/studio/package.json b/templates/hydrogen-theme/studio/package.json
index a1f0e90..c555fc6 100644
--- a/templates/hydrogen-theme/studio/package.json
+++ b/templates/hydrogen-theme/studio/package.json
@@ -24,12 +24,12 @@
     "@sanity/language-filter": "^3.2.1",
     "@sanity/presentation": "^1.5.1",
     "@sanity/ui": "2.0.0-beta.15",
-    "@sanity/util": "^3.23.4",
+    "@sanity/util": "^3.24.1",
     "@sanity/uuid": "^3.0.2",
-    "@sanity/vision": "^3.23.4",
+    "@sanity/vision": "^3.24.1",
     "@shopify/polaris": "^12.7.0",
     "@shopify/polaris-icons": "^7.13.0",
-    "groq": "^3.23.4",
+    "groq": "^3.24.1",
     "lodash": "^4.17.21",
     "lodash.get": "^4.4.2",
     "lucide-react": "^0.309.0",
@@ -38,7 +38,7 @@
     "react-dom": "^18.2.0",
     "react-is": "^18.2.0",
     "rxjs": "^7.8.1",
-    "sanity": "^3.23.4",
+    "sanity": "^3.24.1",
     "sanity-plugin-internationalized-array": "^1.10.4",
     "sanity-plugin-media": "^2.2.4",
     "styled-components": "^6.1.8"
diff --git a/templates/hydrogen-theme/studio/plugins/customDocumentActions/shopifyDelete.tsx b/templates/hydrogen-theme/studio/plugins/customDocumentActions/shopifyDelete.tsx
index 7971fc2..7db78de 100644
--- a/templates/hydrogen-theme/studio/plugins/customDocumentActions/shopifyDelete.tsx
+++ b/templates/hydrogen-theme/studio/plugins/customDocumentActions/shopifyDelete.tsx
@@ -1,102 +1,107 @@
-import React, {useState} from 'react'
-import {TrashIcon} from '@sanity/icons'
-import {Stack, Text, useToast} from '@sanity/ui'
+import React, {useState} from 'react';
+import {TrashIcon} from '@sanity/icons';
+import {Stack, Text, useToast} from '@sanity/ui';
 import {
   type DocumentActionDescription,
   type DocumentActionConfirmDialogProps,
   useClient,
-} from 'sanity'
-import {useRouter} from 'sanity/router'
-import type {ShopifyDocument, ShopifyDocumentActionProps} from './types'
-import {projectDetails} from '../../project.details'
+} from 'sanity';
+import {useRouter} from 'sanity/router';
+import type {ShopifyDocument, ShopifyDocumentActionProps} from './types';
+import {projectDetails} from '../../project.details';
 
-const apiVersion = projectDetails.apiVersion
+const apiVersion = projectDetails.apiVersion;
 
-export default (props: ShopifyDocumentActionProps): DocumentActionDescription | undefined => {
+export default (
+  props: ShopifyDocumentActionProps,
+): DocumentActionDescription | undefined => {
   const {
     draft,
     onComplete,
     type,
     published,
   }: {
-    draft: ShopifyDocument
-    published: ShopifyDocument
-    type: string
-    onComplete: () => void
-  } = props
+    draft: ShopifyDocument;
+    published: ShopifyDocument;
+    type: string;
+    onComplete: () => void;
+  } = props;
 
-  const [dialogOpen, setDialogOpen] = useState(false)
+  const [dialogOpen, setDialogOpen] = useState(false);
 
-  const router = useRouter()
-  const toast = useToast()
-  const client = useClient({apiVersion})
+  const router = useRouter();
+  const toast = useToast();
+  const client = useClient({apiVersion});
 
-  let dialog: DocumentActionConfirmDialogProps | null = null
+  let dialog: DocumentActionConfirmDialogProps | null = null;
 
   if (type === 'product') {
     dialog = {
       message: (
         <Stack space={4}>
-          <Text>Delete the current product and all associated variants in your dataset.</Text>
+          <Text>
+            Delete the current product and all associated variants in your
+            dataset.
+          </Text>
           <Text weight="medium">No content on Shopify will be deleted.</Text>
           <Text>
-            To completely hide or remove a product from the storefront, you also need to remove it
-            from Shopify.
+            To completely hide or remove a product from the storefront, you also
+            need to remove it from Shopify.
           </Text>
         </Stack>
       ),
       onCancel: onComplete,
       onConfirm: async () => {
-        const productId = published?.store?.id
+        const productId = published?.store?.id;
 
         // Find product variant documents with matching Shopify Product ID
-        let productVariantIds: string[] = []
+        let productVariantIds: string[] = [];
         if (productId) {
           productVariantIds = await client.fetch(
             `*[
                 _type == "productVariant"
                 && store.productId == $productId
               ]._id`,
-            {productId}
-          )
+            {productId},
+          );
         }
 
         // Delete current document (including draft)
-        const transaction = client.transaction()
+        const transaction = client.transaction();
         if (published?._id) {
-          transaction.delete(published._id)
+          transaction.delete(published._id);
         }
         if (draft?._id) {
-          transaction.delete(draft._id)
+          transaction.delete(draft._id);
         }
 
         // Delete all product variants with matching IDs
         productVariantIds?.forEach((documentId) => {
           if (documentId) {
-            transaction.delete(documentId)
-            transaction.delete(`drafts.${documentId}`)
+            transaction.delete(documentId);
+            transaction.delete(`drafts.${documentId}`);
           }
-        })
+        });
 
         try {
-          await transaction.commit()
+          await transaction.commit();
           // Navigate back to products root
-          router.navigateUrl({path: '/desk/products'})
+          router.navigateUrl({path: '/structure/products'});
         } catch (err) {
-          let message = 'Unknown Error'
-          if (err instanceof Error) message = err.message
+          let message = 'Unknown Error';
+          if (err instanceof Error) message = err.message;
 
           toast.push({
             status: 'error',
             title: message,
-          })
+          });
         } finally {
           // Signal that the action is complete
-          onComplete()
+          onComplete();
         }
       },
       type: 'confirm',
-    }
+    };
   }
 
   if (type === 'collection') {
@@ -106,45 +111,45 @@ export default (props: ShopifyDocumentActionProps): DocumentActionDescription |
           <Text>Delete the current collection in your dataset.</Text>
           <Text weight="medium">No content on Shopify will be deleted.</Text>
           <Text>
-            To completely hide or remove a collection from the storefront, you also need to remove
-            it from Shopify.
+            To completely hide or remove a collection from the storefront, you
+            also need to remove it from Shopify.
           </Text>
         </Stack>
       ),
       onCancel: onComplete,
       onConfirm: async () => {
         // Delete current document (including draft)
-        const transaction = client.transaction()
+        const transaction = client.transaction();
         if (published?._id) {
-          transaction.delete(published._id)
+          transaction.delete(published._id);
         }
         if (draft?._id) {
-          transaction.delete(draft._id)
+          transaction.delete(draft._id);
         }
 
         try {
-          await transaction.commit()
+          await transaction.commit();
           // Navigate back to collections root
-          router.navigateUrl({path: '/desk/collections'})
+          router.navigateUrl({path: '/structure/collections'});
         } catch (err) {
-          let message = 'Unknown Error'
-          if (err instanceof Error) message = err.message
+          let message = 'Unknown Error';
+          if (err instanceof Error) message = err.message;
 
           toast.push({
             status: 'error',
             title: message,
-          })
+          });
         } finally {
           // Signal that the action is complete
-          onComplete()
+          onComplete();
         }
       },
       type: 'confirm',
-    }
+    };
   }
 
   if (!dialog) {
-    return
+    return;
   }
 
   return {
@@ -154,5 +159,5 @@ export default (props: ShopifyDocumentActionProps): DocumentActionDescription |
     label: 'Delete',
     onHandle: () => setDialogOpen(true),
     shortcut: 'Ctrl+Alt+D',
-  }
-}
+  };
+};
diff --git a/templates/hydrogen-theme/studio/sanity.config.ts b/templates/hydrogen-theme/studio/sanity.config.ts
index c9003f9..4857d77 100644
--- a/templates/hydrogen-theme/studio/sanity.config.ts
+++ b/templates/hydrogen-theme/studio/sanity.config.ts
@@ -1,5 +1,5 @@
 import {defineConfig, isDev} from 'sanity';
-import {deskTool} from 'sanity/desk';
+import {structureTool} from 'sanity/structure';
 import {visionTool} from '@sanity/vision';
 import {internationalizedArray} from 'sanity-plugin-internationalized-array';
 import {media, mediaAssetSource} from 'sanity-plugin-media';
@@ -11,11 +11,11 @@ import {presentationTool} from '@sanity/presentation';
 import {languageFilter} from '@sanity/language-filter';
 
 import {schemaTypes} from './schemas';
-import {defaultDocumentNode, structure} from './desk';
+import {defaultDocumentNode, structure} from './structure';
 import {projectDetails} from './project.details';
 import {getAllLanguages} from '../countries';
 import {customDocumentActions} from './plugins/customDocumentActions';
-import {singletonActions, singletonsTypes} from './desk/singletons';
+import {singletonActions, singletonsTypes} from './structure/singletons';
 import {locate} from './presentation/locate';
 import {PreviewIcon} from './components/icons/Preview';
 
@@ -42,7 +42,7 @@ export default defineConfig({
     rangeSlider(),
     colorPicker(),
     codeInput(),
-    deskTool({structure, defaultDocumentNode}),
+    structureTool({structure, defaultDocumentNode}),
     customDocumentActions(),
     media(),
     presentationTool({
diff --git a/templates/hydrogen-theme/studio/schemas/documents/blogPost.ts b/templates/hydrogen-theme/studio/schemas/documents/blogPost.ts
index 8e43d9b..a86d347 100644
--- a/templates/hydrogen-theme/studio/schemas/documents/blogPost.ts
+++ b/templates/hydrogen-theme/studio/schemas/documents/blogPost.ts
@@ -1,10 +1,11 @@
-import {defineField, defineType} from 'sanity'
-import {SlugInt, validateIntSlug} from '../../utils/slug'
+import {defineField, defineType} from 'sanity';
+import {SlugInt, validateIntSlug} from '../../utils/slug';
 
 export default defineType({
   name: 'blogPost',
   title: 'Blog posts',
   type: 'document',
+  __experimental_formPreviewTitle: false,
   fields: [
     defineField({
       name: 'title',
@@ -21,7 +22,7 @@ export default defineType({
       title: 'Slug',
       validation: (Rule) =>
         Rule.required().custom((slugArray: SlugInt[], context) =>
-          validateIntSlug({slugArray, context})
+          validateIntSlug({slugArray, context}),
         ),
     }),
   ],
@@ -32,7 +33,7 @@ export default defineType({
     prepare({title}) {
       return {
         title: title?.[0]?.value || 'No title',
-      }
+      };
     },
   },
-})
+});
diff --git a/templates/hydrogen-theme/studio/schemas/documents/collection.tsx b/templates/hydrogen-theme/studio/schemas/documents/collection.tsx
index 4bec185..e5d3143 100644
--- a/templates/hydrogen-theme/studio/schemas/documents/collection.tsx
+++ b/templates/hydrogen-theme/studio/schemas/documents/collection.tsx
@@ -32,6 +32,7 @@ export default defineType({
   name: 'collection',
   title: 'Collection',
   type: 'document',
+  __experimental_formPreviewTitle: false,
   icon: PackageIcon,
   groups: GROUPS,
   fields: [
diff --git a/templates/hydrogen-theme/studio/schemas/documents/color.ts b/templates/hydrogen-theme/studio/schemas/documents/color.ts
index 0ef1228..91756d9 100644
--- a/templates/hydrogen-theme/studio/schemas/documents/color.ts
+++ b/templates/hydrogen-theme/studio/schemas/documents/color.ts
@@ -6,6 +6,7 @@ export default defineType({
   name: 'colorScheme',
   title: 'Color schemes',
   type: 'document',
+  __experimental_formPreviewTitle: false,
   icon: IconPalette,
   preview: {
     select: {
diff --git a/templates/hydrogen-theme/studio/schemas/documents/page.ts b/templates/hydrogen-theme/studio/schemas/documents/page.ts
index ddeec65..dce746c 100644
--- a/templates/hydrogen-theme/studio/schemas/documents/page.ts
+++ b/templates/hydrogen-theme/studio/schemas/documents/page.ts
@@ -4,6 +4,7 @@ export default defineType({
   name: 'page',
   title: 'Pages',
   type: 'document',
+  __experimental_formPreviewTitle: false,
   fields: [
     defineField({
       name: 'title',
diff --git a/templates/hydrogen-theme/studio/schemas/documents/product.tsx b/templates/hydrogen-theme/studio/schemas/documents/product.tsx
index 92b8fa0..80caf0d 100644
--- a/templates/hydrogen-theme/studio/schemas/documents/product.tsx
+++ b/templates/hydrogen-theme/studio/schemas/documents/product.tsx
@@ -24,6 +24,7 @@ export default defineType({
   name: 'product',
   title: 'Product',
   type: 'document',
+  __experimental_formPreviewTitle: false,
   groups: GROUPS,
   fields: [
     defineField({
diff --git a/templates/hydrogen-theme/studio/schemas/documents/productVariant.tsx b/templates/hydrogen-theme/studio/schemas/documents/productVariant.tsx
index 8cda6e6..d46cbe5 100644
--- a/templates/hydrogen-theme/studio/schemas/documents/productVariant.tsx
+++ b/templates/hydrogen-theme/studio/schemas/documents/productVariant.tsx
@@ -1,13 +1,14 @@
-import {CopyIcon} from '@sanity/icons'
-import {defineField, defineType} from 'sanity'
-import {ShopifyIcon} from '../../components/icons/ShopifyIcon'
-import {ProductVariantHiddenInput} from '../../components/shopify/ProductVariantInput'
-import {ShopifyDocumentStatus} from '../../components/shopify/ShopifyDocumentStatus'
+import {CopyIcon} from '@sanity/icons';
+import {defineField, defineType} from 'sanity';
+import {ShopifyIcon} from '../../components/icons/ShopifyIcon';
+import {ProductVariantHiddenInput} from '../../components/shopify/ProductVariantInput';
+import {ShopifyDocumentStatus} from '../../components/shopify/ShopifyDocumentStatus';
 
 export default defineType({
   name: 'productVariant',
   title: 'Product variant',
   type: 'document',
+  __experimental_formPreviewTitle: false,
   icon: CopyIcon,
   groups: [
     {
@@ -25,9 +26,9 @@ export default defineType({
         field: ProductVariantHiddenInput,
       },
       hidden: ({parent}) => {
-        const isDeleted = parent?.store?.isDeleted
+        const isDeleted = parent?.store?.isDeleted;
 
-        return !isDeleted
+        return !isDeleted;
       },
     }),
     // Title (proxy)
@@ -55,7 +56,7 @@ export default defineType({
       title: 'store.title',
     },
     prepare(selection) {
-      const {isDeleted, previewImageUrl, sku, status, title} = selection
+      const {isDeleted, previewImageUrl, sku, status, title} = selection;
 
       return {
         media: (
@@ -69,7 +70,7 @@ export default defineType({
         ),
         subtitle: sku,
         title,
-      }
+      };
     },
   },
-})
+});
diff --git a/templates/hydrogen-theme/studio/schemas/singletons/footer.ts b/templates/hydrogen-theme/studio/schemas/singletons/footer.ts
index 9b46c09..8b9efa7 100644
--- a/templates/hydrogen-theme/studio/schemas/singletons/footer.ts
+++ b/templates/hydrogen-theme/studio/schemas/singletons/footer.ts
@@ -1,8 +1,9 @@
-import {defineField, defineType} from 'sanity'
+import {defineField, defineType} from 'sanity';
 
 export default defineType({
   name: 'footer',
   type: 'document',
+  __experimental_formPreviewTitle: false,
   fields: [
     defineField({
       name: 'sections',
@@ -20,4 +21,4 @@ export default defineType({
   preview: {
     prepare: () => ({title: 'Footer'}),
   },
-})
+});
diff --git a/templates/hydrogen-theme/studio/schemas/singletons/header.ts b/templates/hydrogen-theme/studio/schemas/singletons/header.ts
index 8d866c9..7c09f40 100644
--- a/templates/hydrogen-theme/studio/schemas/singletons/header.ts
+++ b/templates/hydrogen-theme/studio/schemas/singletons/header.ts
@@ -1,4 +1,4 @@
-import {defineField, defineType} from 'sanity'
+import {defineField, defineType} from 'sanity';
 
 const GROUPS = [
   {
@@ -10,11 +10,12 @@ const GROUPS = [
     name: 'settings',
     title: 'Settings',
   },
-]
+];
 
 export default defineType({
   name: 'header',
   type: 'document',
+  __experimental_formPreviewTitle: false,
   groups: GROUPS,
   fields: [
     defineField({
@@ -59,4 +60,4 @@ export default defineType({
   preview: {
     prepare: () => ({title: 'Header'}),
   },
-})
+});
diff --git a/templates/hydrogen-theme/studio/schemas/singletons/home.ts b/templates/hydrogen-theme/studio/schemas/singletons/home.ts
index bee4df8..9fd773a 100644
--- a/templates/hydrogen-theme/studio/schemas/singletons/home.ts
+++ b/templates/hydrogen-theme/studio/schemas/singletons/home.ts
@@ -1,8 +1,9 @@
-import {defineField, defineType} from 'sanity'
+import {defineField, defineType} from 'sanity';
 
 export default defineType({
   name: 'home',
   type: 'document',
+  __experimental_formPreviewTitle: false,
   fields: [
     defineField({
       name: 'sections',
@@ -16,4 +17,4 @@ export default defineType({
   preview: {
     prepare: () => ({title: 'Home'}),
   },
-})
+});
diff --git a/templates/hydrogen-theme/studio/schemas/singletons/settings.ts b/templates/hydrogen-theme/studio/schemas/singletons/settings.ts
index 904650c..5ae57d0 100644
--- a/templates/hydrogen-theme/studio/schemas/singletons/settings.ts
+++ b/templates/hydrogen-theme/studio/schemas/singletons/settings.ts
@@ -4,6 +4,7 @@ export default defineType({
   title: 'Settings',
   name: 'settings',
   type: 'document',
+  __experimental_formPreviewTitle: false,
   fields: [
     defineField({
       name: 'colorScheme',
diff --git a/templates/hydrogen-theme/studio/schemas/singletons/themeContent.ts b/templates/hydrogen-theme/studio/schemas/singletons/themeContent.ts
index d85d879..1aacab2 100644
--- a/templates/hydrogen-theme/studio/schemas/singletons/themeContent.ts
+++ b/templates/hydrogen-theme/studio/schemas/singletons/themeContent.ts
@@ -3,6 +3,7 @@ import {defineField, defineType} from 'sanity';
 export default defineType({
   name: 'themeContent',
   type: 'document',
+  __experimental_formPreviewTitle: false,
   groups: [
     {name: 'general', title: 'General'},
     {name: 'products', title: 'Products'},
diff --git a/templates/hydrogen-theme/studio/scripts/createSingletons.ts b/templates/hydrogen-theme/studio/scripts/createSingletons.ts
index ffb6722..455b4f3 100644
--- a/templates/hydrogen-theme/studio/scripts/createSingletons.ts
+++ b/templates/hydrogen-theme/studio/scripts/createSingletons.ts
@@ -1,5 +1,5 @@
 import {getCliClient} from 'sanity/cli';
-import {SINGLETONS} from '../desk/singletons';
+import {SINGLETONS} from '../structure/singletons';
 import fs from 'fs';
 
 /**
diff --git a/templates/hydrogen-theme/studio/desk/collectionStructure.ts b/templates/hydrogen-theme/studio/structure/collectionStructure.ts
similarity index 59%
rename from templates/hydrogen-theme/studio/desk/collectionStructure.ts
rename to templates/hydrogen-theme/studio/structure/collectionStructure.ts
index 62e699b..afaa1e0 100644
--- a/templates/hydrogen-theme/studio/desk/collectionStructure.ts
+++ b/templates/hydrogen-theme/studio/structure/collectionStructure.ts
@@ -1,11 +1,11 @@
-import {ListItemBuilder} from 'sanity/desk'
-import defineStructure from '../utils/defineStructure'
-import {IconCollectionTag} from '../components/icons/CollectionTag'
+import {ListItemBuilder} from 'sanity/structure';
+import defineStructure from '../utils/defineStructure';
+import {IconCollectionTag} from '../components/icons/CollectionTag';
 
 export const collections = defineStructure<ListItemBuilder>((S) =>
   S.listItem()
     .title('Collections')
     .schemaType('collection')
     .icon(IconCollectionTag)
-    .child(S.documentTypeList('collection'))
-)
+    .child(S.documentTypeList('collection')),
+);
diff --git a/templates/hydrogen-theme/studio/desk/index.ts b/templates/hydrogen-theme/studio/structure/index.ts
similarity index 70%
rename from templates/hydrogen-theme/studio/desk/index.ts
rename to templates/hydrogen-theme/studio/structure/index.ts
index 929a306..8ee4964 100644
--- a/templates/hydrogen-theme/studio/desk/index.ts
+++ b/templates/hydrogen-theme/studio/structure/index.ts
@@ -1,14 +1,14 @@
-import {DefaultDocumentNodeResolver, StructureResolver} from 'sanity/desk'
+import {DefaultDocumentNodeResolver, StructureResolver} from 'sanity/structure';
 
-import {SINGLETONS, singleton} from './singletons'
-import {IconPage} from '../components/icons/Page'
-import {IconBlog} from '../components/icons/Blog'
-import {products} from './productStructure'
-import {collections} from './collectionStructure'
+import {SINGLETONS, singleton} from './singletons';
+import {IconPage} from '../components/icons/Page';
+import {IconBlog} from '../components/icons/Blog';
+import {products} from './productStructure';
+import {collections} from './collectionStructure';
 
 export const defaultDocumentNode: DefaultDocumentNodeResolver = (S) => {
-  return S.document().views([S.view.form()])
-}
+  return S.document().views([S.view.form()]);
+};
 
 export const structure: StructureResolver = (S, context) => {
   return S.list()
@@ -27,5 +27,5 @@ export const structure: StructureResolver = (S, context) => {
       S.documentTypeListItem('colorScheme').showIcon(true),
       singleton(S, SINGLETONS.typography),
       singleton(S, SINGLETONS.themeContent),
-    ])
-}
+    ]);
+};
diff --git a/templates/hydrogen-theme/studio/desk/productStructure.ts b/templates/hydrogen-theme/studio/structure/productStructure.ts
similarity index 70%
rename from templates/hydrogen-theme/studio/desk/productStructure.ts
rename to templates/hydrogen-theme/studio/structure/productStructure.ts
index 91af070..71bad33 100644
--- a/templates/hydrogen-theme/studio/desk/productStructure.ts
+++ b/templates/hydrogen-theme/studio/structure/productStructure.ts
@@ -1,10 +1,10 @@
-import {ListItemBuilder} from 'sanity/desk'
-import defineStructure from '../utils/defineStructure'
-import {InfoOutlineIcon} from '@sanity/icons'
-import {IconTag} from '../components/icons/Tag'
-import {projectDetails} from '../project.details'
+import {ListItemBuilder} from 'sanity/structure';
+import defineStructure from '../utils/defineStructure';
+import {InfoOutlineIcon} from '@sanity/icons';
+import {IconTag} from '../components/icons/Tag';
+import {projectDetails} from '../project.details';
 
-const {apiVersion} = projectDetails
+const {apiVersion} = projectDetails;
 
 export const products = defineStructure<ListItemBuilder>((S) =>
   S.listItem()
@@ -18,7 +18,8 @@ export const products = defineStructure<ListItemBuilder>((S) =>
           S.list()
             .title('Product')
             .canHandleIntent(
-              (intentName, params) => intentName === 'edit' && params.type === 'product'
+              (intentName, params) =>
+                intentName === 'edit' && params.type === 'product',
             )
             .items([
               // Details
@@ -40,7 +41,7 @@ export const products = defineStructure<ListItemBuilder>((S) =>
                       `
                       _type == "productVariant"
                       && store.productId == $productId
-                    `
+                    `,
                     )
                     .apiVersion(apiVersion)
                     .params({
@@ -48,10 +49,11 @@ export const products = defineStructure<ListItemBuilder>((S) =>
                     })
                     .canHandleIntent(
                       (intentName, params) =>
-                        intentName === 'edit' && params.type === 'productVariant'
-                    )
+                        intentName === 'edit' &&
+                        params.type === 'productVariant',
+                    ),
                 ),
-            ])
-        )
-    )
-)
+            ]),
+        ),
+    ),
+);
diff --git a/templates/hydrogen-theme/studio/desk/singletons.ts b/templates/hydrogen-theme/studio/structure/singletons.ts
similarity index 97%
rename from templates/hydrogen-theme/studio/desk/singletons.ts
rename to templates/hydrogen-theme/studio/structure/singletons.ts
index 7374ef1..18efa70 100644
--- a/templates/hydrogen-theme/studio/desk/singletons.ts
+++ b/templates/hydrogen-theme/studio/structure/singletons.ts
@@ -5,7 +5,7 @@ import {
   InsertAboveIcon,
   InsertBelowIcon,
 } from '@sanity/icons';
-import {StructureBuilder} from 'sanity/desk';
+import {StructureBuilder} from 'sanity/structure';
 
 type Singleton = {
   id: string;
diff --git a/templates/hydrogen-theme/studio/utils/defineStructure.ts b/templates/hydrogen-theme/studio/utils/defineStructure.ts
index da1f86a..dc2e8d0 100644
--- a/templates/hydrogen-theme/studio/utils/defineStructure.ts
+++ b/templates/hydrogen-theme/studio/utils/defineStructure.ts
@@ -1,11 +1,11 @@
-import {ConfigContext} from 'sanity'
-import {StructureBuilder} from 'sanity/desk'
+import {ConfigContext} from 'sanity';
+import {StructureBuilder} from 'sanity/structure';
 
 /**
  * Helper for creating and typing composable desk structure parts.
  */
 export default function defineStructure<StructureType>(
-  factory: (S: StructureBuilder, context: ConfigContext) => StructureType
+  factory: (S: StructureBuilder, context: ConfigContext) => StructureType,
 ) {
-  return factory
+  return factory;
 }