Skip to content

Releases: sanity-io/sanity

v3.42.1

15 May 21:46
Compare
Choose a tag to compare

Install or upgrade Sanity Studio

To initiate a new Sanity Studio project or upgrade an existing one, please refer to our comprehensive guide on Installing and Upgrading Sanity Studio.

If you are updating from a version earlier than 3.37.0, you should also check out this article to ensure your dependencies are up to date.

🐛 Notable bugfixes

  • Fixes regression introduced in v3.42.0 that crashes the document list pane in Presentation Tool

📓 Full changelog

Author Message Commit
Cody Olsen fix: regression crashing the document list pane in presentation (#6684) 7ae3afd

v3.42.0

14 May 19:41
Compare
Choose a tag to compare

Install or upgrade Sanity Studio

To initiate a new Sanity Studio project or upgrade an existing one, please refer to our comprehensive guide on Installing and Upgrading Sanity Studio.

If you are updating from a version earlier than 3.37.0, you should also check out this article to ensure your dependencies are up to date.

✨ Highlights

Save Vision Query Results

You can now conveniently save the results of your Sanity Vision queries as JSON or CSV files. Simply run your query and click on the new "save result as" buttons in the bottom right corner.

Save Vision Query Results

Custom Components with Intent Handling in Structure Builder

Custom components included in the Structure Builder (like S.component(MyCustomComponent)) can now handle intents. This is especially useful for routing to custom components from global search results or other links. You can achieve this by using the canHandleIntent parameter.

S.listItem()
  .id('translate')
  .title('Translate Test')
  .child(S.component(TranslateExample).id('example')
    .canHandleIntent((intent, params, context) =>  {
      console.log(intent, params, context)
      return true
    }
  ))

🐛 Notable Bugfixes

  • Fixes an issue where Boolean inputs were not always clearly indicated as read-only and disabled.
  • Makes the search/filter in the document "Inspect" dialog case-insensitive.
  • Prevents inputs within the Portable Text Editor from calling element.onFocus() on any opened block or inline-object, thus avoiding unintended modal closures.
  • Prevents extra work on preview prepare functions, ensuring better performance.
  • Fixes miscellaneous bugs and performance issues with Portable Text Editor's block extras and highlight rendering. For example, pointer events are now correctly disabled to avoid unnecessary cursor changes or rendering thrashes.
  • Fixes an issue where the document history panel would appear to load indefinitely

📓 Full changelog

Author Message Commit
jordanl17 fix(studio): adding tooltip to read-only bool inputs (#6580) 55153ac
ecospark[bot] chore(deps): dedupe pnpm-lock.yaml (#6607) 48674b7
Carolina Gonzalez feat: add canHandleIntent to Structure Builder component (#6516) d3d0c04
Espen Hovlandsdal fix(structure): use case insensitive search for inspect dialog (#6588) 1dca6db
Carolina Gonzalez test(core): await publish action to prevent test flakiness (#6609) fad1628
renovate[bot] fix(deps): update dependency get-it to ^8.4.29 (#6603) cc08614
renovate[bot] fix(deps): update dependency @sanity/client to ^6.18.0 (#6604) c2b143e
Rostislav Melkumyan feat(vision): add "save result as json/csv" buttons (#6158) 14be9b6
Per-Kristian Nordnes fix(core/form): prevent onFocus for root object paths being called by editing form (#6610) 516ada5
jordanl17 feat(core, structure) sheet list menu option (#6593) 724da99
Binoy Patel chore(bundle): remove unnecessary bundles and make root imports index (#6616) 5f0227c
Robin Pyon feat(pte): add hideToolbar and fullscreen props to PortableTextInput (#6621) 800149f
Robin Pyon fix(pte): don't render the PTE block extras container when not in use, disable pointer events on highlights (#6620) 4c73ded
Evensix skip recalling invokePrepare (#6608) 2729437
Bjørge Næss fix(core): update test snapshots (#6629) 20b66b1
Bjørge Næss fix(e2e): support headless/headful env var toggle (#6558) 92260a4
Robin Pyon feat: add icon to BlockStyleDefinition (#6613) 2e69eee
Robin Pyon feat(pte): initial support for renderEditable in portable text inputs (#6627) 1d0fd3e
Binoy Patel chore(ci): add a circleci config to bundle packages (#6446) f4c7cfe
renovate[bot] chore(lockfile): update dependency esbuild to v0.21.2 (#6602) b63af70
Pedro Bonamin fix(pte): cursor presence causes pte error (#6622) b13fff4
Robin Pyon feat(pte): expose data-attributes on PTE Text + Object blocks (#6641) fceff23
renovate[bot] chore(deps): update dependency @sanity/pkg-utils to v6.8.14 (#6630) dd5cc7d
renovate[bot] fix(deps): update dependency @sanity/ui to ^2.1.7 (#6633) 34b4754
renovate[bot] chore(deps): update dependency @sanity/tsdoc to v1.0.53 (#6631) f58a005
Cody Olsen chore(ci): tweak renovate preset to better align with branch rulesets (#6648) ef39982
renovate[bot] chore(deps): update dependency styled-components to ^6.1.11 (#6636) 55ab489
Cody Olsen refactor(renovate): group non major dev deps (#6652) 1812de6
renovate[bot] fix(deps): update dependency @sanity/client to ^6.18.1 (#6653) 083960f
Binoy Patel fix(core): fixes issue with history loading indefinitely (#6539) 52a5308
Sindre Gulseth fix(typegen): move type new line separator into formatter (#6649) 109a180
Sindre Gulseth chore(schemaExtraction): add a newline to the extracted schema.json (#6650) 4beb29e
ecospark[bot] chore(deps): dedupe pnpm-lock.yaml (#6662) c7ad47b

v3.41.2

14 May 15:41
Compare
Choose a tag to compare

Install or upgrade Sanity Studio

To initiate a new Sanity Studio project or upgrade an existing one, please refer to our comprehensive guide on Installing and Upgrading Sanity Studio.

If you are updating from a version earlier than 3.37.0, you should also check out this article to ensure your dependencies are up to date.

🐛 Notable bugfixes

  • Resolves a Maximum update depth exceeded crash in Presentation Tool.

📓 Full changelog

Author Message Commit
renovate[bot] fix(deps): update dependency @sanity/presentation to v1.15.2 (#6632) 43823f6

v3.41.1

08 May 09:31
Compare
Choose a tag to compare

Installation and upgrading

To initiate a new Studio without installing the CLI globally:

npm create sanity@latest

To upgrade a v3 Studio, run this command in its folder:

npm install sanity@latest

🐛 Notable bugfixes

  • Fixes a regression in Presentation Tool introduced in v3.41.0 that causes it to crash in embedded studios.

📓 Full changelog

Author Message Commit
Binoy Patel test(core): fixes flaky test with document publish (#6595) 2a8375a
renovate[bot] chore(deps): update linters (#6590) 59b8ce8
renovate[bot] chore(deps): update dependency styled-components to ^6.1.10 (#6585) 5e727e0
renovate[bot] chore(lockfile): update dependency zod to v3.23.7 (#6527) 571dd56
renovate[bot] chore(deps): update dependency @sanity/pkg-utils to v6.8.13 (#6599) d9f9188
renovate[bot] chore(deps): update dependency @sanity/tsdoc to v1.0.51 (#6600) 56a8a79
renovate[bot] chore(lockfile): update dependency @sanity/react-loader to v1.9.17 (#6584) 0819c40
Cody Olsen fix(presentation): regression causing a crash when in an embedded studio (#6606) 99dfb60

v3.41.0

07 May 15:22
Compare
Choose a tag to compare

Install or upgrade Sanity Studio

To initiate a new Sanity Studio project or upgrade an existing one, please refer to our comprehensive guide on Installing and Upgrading Sanity Studio.

If you are updating from a version earlier than 3.37.0, you should also check out this article to ensure your dependencies are up to date.

✨ Highlights

  • The Portable Text Editor (PTE) now supports drag-n-dropping + pasting of images and files into Image and File blocks.

🐛 Notable bugfixes

  • Fixes a bug where importing a variable inside an imported file would fail in Typegen.
  • Fixes issues in the PTE where tools would show as being active for a selection when only part of the selection used the tool. Now tools will show as active only when all highlighted selections use the tool.
  • Fixes an Attempted import error related to using swr in embedded studios.
  • Fixes an issue in which listeners would sometimes not close if they were unsubscribed from shortly after opening.
  • Fixes an issue in which users were incorrectly seeing the scheduled publishing upsell UI.
  • When child within the PTE is created without a _key, we now automatically create one for it, avoiding unnecessary warning.
  • Fixes an issue in tasks in which the UI showed that they were created but the transaction didn't end.

📓 Full changelog

Author Message Commit
Herman Wikner feat(comments): add telemetry (#6541) 2d35256
Sindre Gulseth fix(typegen): pass resolved path instead of the imported path (#6540) e7ffe93
Cody Olsen fix: use vercelStegaClean util from @vercel/stega (#6544) 790bc8f
Pedro Bonamin fix(pte): preserve block key when pressing enter at start of block (#6521) 7df5396
Ash fix(sanity): do not order by _updatedAt when relevance ordering is used with Text Search API search strategy (#6537) 0ede4cf
Pedro Bonamin chore(test-studio): bump vercel stega version (#6545) 96f3841
ecospark[bot] chore(deps): dedupe pnpm-lock.yaml (#6547) ad28225
renovate[bot] fix(deps): update dependency @sanity/client to ^6.16.0 (#6548) 35b19c2
Tommy Petty chore(i18n): fix imports for useTranslation (#6517) 869b698
jordanl17 fix(pte): tools are active only when all blocks use the tool (#6524) 169e5fd
renovate[bot] chore(deps): update dependency @sanity/visual-editing to v1.8.17 (#6551) 24f97ab
Binoy Patel chore: package build (#6394) 5a889fc
Rico Kahler fix: remove unconditional external from vite build (#6554) f1e9546
Cody Olsen fix: inline swr, date-fns-tz and @vvo/tzdb to restore embedded studios (#6553) 9a50252
renovate[bot] chore(deps): update dependency @sanity/pkg-utils to v6.8.10 (#6549) f8f1b47
renovate[bot] chore(deps): update dependency @vercel/stega to v0.1.2 (#6546) 6a2cdda
Bjørge Næss fix(deps): replace hashlru with quicklru (#6557) d634727
Espen Hovlandsdal chore(deps): update dependency @sanity/client to v6.17.1 (#6561) 7dd2d84
Cody Olsen fix: remove cleanStegaUnicode helper (#6564) 2e224d4
renovate[bot] fix(deps): update dependency @sanity/client to ^6.17.2 (#6567) 154d90b
shur feat: add cliInitializedAt field to project metadata (#6538) 15486f7
Pedro Bonamin fix(schedule-publishing): update flag used to check scheduledPublishing (#6543) 57fcbac
renovate[bot] chore(deps): update dependency @sanity/tsdoc to v1.0.47 (#6550) 25cbd4e
renovate[bot] chore(deps): update dependency @sanity/pkg-utils to v6.8.11 (#6573) b31a151
renovate[bot] chore(deps): update dependency @sanity/visual-editing to v1.8.18 (#6574) 77654c1
Herman Wikner fix(core): collapsed range decorations (#6568) 70ab283
Pedro Bonamin chore(scheduled-publishing): update schedule tool upsell layout (#6572) 295ea72
Pedro Bonamin fix(tasks): update tasks panel z index (#6571) 3b3125c
Pedro Bonamin feat(pte): create new text blocks if needed (#6560) cadd496
RitaDias refactor(@sanity): remove warning for when child within PTE has no key (#6565) e1fc2a0
Binoy Patel test(core): add test that only one listener is open when navigating list (#6569) 161b926
renovate[bot] fix(deps): update dependency get-it to ^8.4.28 (#6576) 47ef785
Pedro Bonamin fix(tasks): close the form only after the task is created (#6450) e089eb7
renovate[bot] fix(deps): update dependency @sanity/ui to ^2.1.6 (#6575) 48321e6
Fred Carlsen feat(form/inputs): add support for image drop+paste in PTE input (#6534) e964b1e
renovate[bot] fix(deps): update dependency @sanity/presentation to v1.14.0 (#6577) 0812390
renovate[bot] chore(deps): update dependency vite to ^4.5.3 (#6583) ed5aca8
Carolina Gonzalez fix: use discard when doc is not published (#6535) 9c86166
renovate[bot] fix(deps): update dependency @sanity/presentation to v1.15.0 (#6591) 1d88df6
renovate[bot] chore(deps): update dependency esbuild to ^0.21.0 (#6589) fada62f
Pedro Bonamin fix(pte): insert empty text block after removing void block (#6552) 379510f
Binoy Patel test(core, desk): add tests for keyvalue storage (#6587) ab94bea

v3.40.0

30 Apr 17:06
Compare
Choose a tag to compare

Install or upgrade Sanity Studio

To initiate a new Sanity Studio project or upgrade an existing one, please refer to our comprehensive guide on Installing and Upgrading Sanity Studio.

If you are updating from a version earlier than 3.37.0, you should also check out this article to ensure your dependencies are up to date.

✨ Highlights

Presence cursors in the Portable Text Editor

Sanity Studio has always supported real-time collaboration, but you have yet to be able to see where others are working within the Portable Text Editor. By upgrading, you'll get a similar experience to Google Docs when editing block content.

Presence cursors in the Portable Text Editor

This release also includes bug fixes for the Portable Text Editor:

  • The Portable Text Editor will now remove the invisible Stega-encoded characters if you copy-paste from a preview using Visual Editing
  • The cursor will not move out of viewpoint when deleting a character in PTE.
  • Creating an annotation at the bottom of a PTE will no longer scroll you to the top.
  • Fixes an issue where changing positions of items of an array within PTE would launch a cryptic error

Comments and Tasks are now out of beta

Comments and Tasks are now officially out of beta; hence, we have updated the configuration APIs. Both comments and tasks are enabled by default and for all document types.

Comments configuration migration

Configuration during beta:

// ./sanity.config.ts|js

export default defineConfig({
  // ... rest of config
  document: {
    unstable_comments: {
      enabled: false,
    },
  },
});

New configuration (remove unstable_):

// ./sanity.config.ts|js

export default defineConfig({
  // ... rest of config
  document: {
-   unstable_comments: {
+   comments: {
      enabled: false,
    },
  },
});

Tasks configuration migration

Configuration during beta:

// ./sanity.config.ts|js

export default defineConfig({
  // ... rest of config
  unstable_tasks: { enabled: false },
})

New configuration (remove unstable_):

// ./sanity.config.ts|js

export default defineConfig({
  // ... rest of config
- unstable_tasks: { enabled: false },
+ tasks: { enabled: false },
})

Sanity TypeGen improvements

Thanks for all the feedback about Sanity TypeGen so far! This release ships several improvements and bug fixes:

  • Sanity Typegen now supports count in GROQ projections
  • TypeGen code (sanity.types.ts) is now formatted when a project has a Prettier configuration
  • The TypeGen search path now includes src, app, and sanity folders by default
  • Various bug fixes for type generation
  • Fixes an issue where typegen command would fail on relative imports
  • Fixes a bug where we could not extract or validate schema when the sanity-plugin-mux-input plugin was installed.

Do continue to give us feedback in #typescript in the community!

🐛 Notable bugfixes

  • Fixes ambiguous aria-labels on some Status buttons
  • Fixes issue with inline text comments that would include an inline object.
  • Fixes toast message for document duplicate action

📓 Full changelog

Author Message Commit
ecospark[bot] chore(deps): dedupe pnpm-lock.yaml (#6463) a2faad2
renovate[bot] chore(deps): update dependency @sanity/pkg-utils to v6.8.4 (#6460) 34a1ae6
Sindre Gulseth fix(cli): mock matchMedia window function (#6472) ea715e8
Bjørge Næss chore: add perf runner to workspace (#6427) 9af065a
Sindre Gulseth fix(typegen): fixes a bug where we imported the wrong relative path (#6457) e1bd1f0
renovate[bot] chore(deps): update dependency @sanity/tsdoc to v1.0.39 (#6464) f6af636
Sindre Gulseth feat(typegen): also search for queries in app and sanity folders (#6475) 03cbb12
Sindre Gulseth chore: upgrade groq-js (#6474) 68bb282
ecospark[bot] chore(deps): dedupe pnpm-lock.yaml (#6476) 076b2fc
renovate[bot] chore(deps): update dependency @sanity/visual-editing to v1.8.15 (#6465) 2f7674c
renovate[bot] chore(lockfile): update dependency @sanity/react-loader to v1.9.14 (#6466) 9887e7c
renovate[bot] chore(lockfile): update dependency date-fns-tz to v2.0.1 (#6467) 14b4365
renovate[bot] chore(lockfile): update dependency i18next to v23.11.2 (#6468) 3fcfa42
renovate[bot] chore(lockfile): update dependency zod to v3.23.4 (#6470) bef170b
renovate[bot] chore(lockfile): update dependency next to v14.2.2 (#6469) cb957a6
renovate[bot] chore(lockfile): update dependency react-focus-lock to v2.12.1 (#6471) 05a019a
renovate[bot] chore(deps): update dependency @sanity/pkg-utils to v6.8.6 (#6482) c903cde
renovate[bot] chore(deps): update react monorepo (#6484) 3c8a329
renovate[bot] chore(deps): update dependency @sanity/tsdoc to v1.0.40 (#6483) 0163210
renovate[bot] fix(deps): update dependency @sanity/presentation to v1.12.8 (#6485) 05aad5c
renovate[bot] chore(deps): update react monorepo to ^18.3.0 (#6490) 144bb21
renovate[bot] chore(lockfile): update dependency @types/react-is to v18.3.0 (#6491) 2225589
Cody Olsen chore: setup next test that embeds the test studio (#6487) edefb66
Bjørge Næss fix(test): remove hydrateroot warning test (#6494) d50a0f1
ecospark[bot] chore(deps): dedupe pnpm-lock.yaml (#6493) c1f9071
Rostislav Melkumyan feat: set print width to 40 (#6068) 2e24fcd
renovate[bot] chore(deps): update dependency @sanity/pkg-utils to v6.8.7 (#6496) 2b840ba
renovate[bot] chore(deps): update dependency turbo to ^1.13.3 (#6497) fc80d2b
renovate[bot] chore(lockfile): update dependency @sanity/logos to v2.1.11 (#6498) 69b3c64
renovate[bot] chore(lockfile): update dependency @sanity/react-loader to v1.9.15 (#6499) c8b1d5e
renovate[bot] chore(deps): update dependency @sanity/visual-editing to v1.8.16 (#6500) 2dff2bd
renovate[bot] fix(deps): update dependency @sanity/presentation to v1.12.10 (#6501) 06ef31d
Herman Wikner feat(core): implement presence cursors (#6081) 1522806
renovate[bot] fix(deps): Update react monorepo (#6502) fa9d145
Espen Hovlandsdal chore(lint): add certain unicorn eslint rules (#6352) ba83971
Espen Hovlandsdal test: increase timeout for cross-dataset reference test afea9cf
Espen Hovlandsdal chore: fix incorrect path used in workshop story 61daf0c
ecospark[bot] chore(deps): dedupe pnpm-lock.yaml (#6506) 6486e34
RitaDias fix(structure): uncaught error while swapping images in array in PTE (#6399) c9bfc31
renovate[bot] chore(deps): update dependency @types/react to v18.3.1 (#6507) 311d722
Nina Andal Aarvik fix(core): change scrollintoview block to be nearest (#6328) 509757c
Nina Andal Aarvik fix(core): set scroll boundary to nearest (#6310) 0dae0da
RitaDias fix(@sanity): issue where hidden unicode characters were bloating document in PTE (#6440) ffa68ec
Per-Kristian Nordnes chore: add codeowners to block-tools 479e71f
ecospark[bot] chore(deps): dedupe pnpm-lock.yaml (#6508) ff26edd
renovate[bot] chore(deps): update dependency @sanity/pkg-utils to v6.8.8 (#6509) 4bb667d
cngonzalez feat: use prefersLatestPublished parameter in DocumentPaneProvider (#6486) 3da55ae
cngonzalez fix: prevent looping requests to keyvalue in recent searches (#6480) 232385e
Binoy Patel feat(singletons): add a singleton package exports 884fca1
Binoy Patel feat(singletons): add eslint rule for boundaries bfd9a30
Binoy Patel refactor(core): move ConnectorContext to singletons 3008a1c
Binoy Patel refactor(core): move PreviewCardContext to singletons 30cc592
Binoy Patel refactor(core): move scrollContext to singletons 5ca1b00
Binoy Patel refactor(core): move ZIndexContext to singletons d1a1d40
Binoy Patel refactor(core): move DiffContext to singletons ef08d0a
Binoy Patel refactor(core): move DocumentChangeContext to singletons 0509e58
Binoy Patel refactor(core): move FormBuilderContext to singletons 0f9cf43
Binoy Patel refactor(core): move DocumentIdContext to singletons 79343e4
Binoy Patel refactor(core): move FormValueContext to singletons 2b46b43
Binoy Patel refactor(core): move GetFormValueContext to singletons 3dc7e62
Binoy Patel refactor(core): move HoveredFieldContext to singletons dbedca6
Binoy Patel refactor(core): move FieldActionsContext to singletons c7374f7
Binoy Patel refactor(core): move VirtualizerScrollInstanceContext to singletons 372774e
Binoy Patel refactor(core): move SortableItemIdContext to singletons ffea136
Binoy Patel refactor(core): move PortableTextMarkersContext to singletons ed8f318
Binoy Patel refactor(core): move PortableTextMemberItemsContext to singletons 6325629
Binoy Patel refactor(core): move ReferenceItemRefContext to singletons a25a30b
Binoy Patel refactor(core): move DocumentFieldActionsContext to singletons 6f08a7d
Binoy Patel refactor(core): move FormCallbacksContext to singletons 2518910
Binoy Patel refactor(core): move PresenceContext to singletons 6a02f80
Binoy Patel refactor(core): move ReferenceInputOptionsConte...
Read more

v3.39.1

26 Apr 23:31
Compare
Choose a tag to compare

Installation and upgrading

To initiate a new Studio without installing the CLI globally:

npm create sanity@latest

To upgrade a v3 Studio, run this command in its folder:

npm install sanity@latest

🐛 Notable bugfixes

  • Disables the new search API introduced in v3.38.0 due to a few discovered issues. We'll re-enable it in a future release.
  • Fixes an issue when using the "movie database" template when running npm create sanity

📓 Full changelog

Author Message Commit
Espen Hovlandsdal fix(cli): remove comments from moviedb template, hide location field (#6488) 80f8daf
Espen Hovlandsdal fix(search): revert to old search API for now (#6503) 8a08212

v3.39.0

23 Apr 15:56
Compare
Choose a tag to compare

Install or upgrade Sanity Studio

To initiate a new Sanity Studio project or upgrade an existing one, please refer to our comprehensive guide on Installing and Upgrading Sanity Studio.

If you are updating from a version earlier than 3.37.0, you should also check out this article to ensure your dependencies are up to date.

✨ Highlights

Scheduled Publishing is now part of the core Sanity Studio package

The Scheduled Publishing feature, which up until this release has been available as a plugin for Sanity Studio, has been moved into the core sanity package and enabled by default. Scheduled Publishing is available on all paid plans and trials.

If you wish to opt out of Scheduled Publishing, you can do so in your Studio configuration:

// sanity.config.ts 
export default defineConfig({ 
   // ....
   scheduledPublishing: {
       enabled: false, 
     }
  )

Go to docs and feature announcement blog post to learn more.

Migrating from the Scheduled Publishing plugin to the new built-in configuration:

If you are already using Scheduled Publishing plugin, the first step is to get rid of it and update your studio to the latest release. If you already updated your studio you might have gotten an alert about this.

Run the following command in your project root to uninstall the plugin:

npm uninstall @sanity/scheduled-publishing

Next, remove the plugin from your studio configuration. Typically you'll find this in ./sanity.config.ts|js. Find the scheduledPublishing plugin and do the following changes in your configuration file:

Before:

// sanity.config.ts
import {scheduledPublishing} from '@sanity/scheduled-publishing'

export default defineConfig({
    //....
    plugins: [
      scheduledPublishing({
        // e.g. 12/25/2024 6:30 AM
        inputDateTimeFormat: 'MM/dd/yyyy h:mm a',
      })
    ]
})

After:

-  import {scheduledPublishing} from '@sanity/scheduled-publishing'


export default defineConfig({ 
    // ...
    plugins: [
-     scheduledPublishing({
-       inputDateTimeFormat: 'MM/dd/yyyy h:mm a',
-     })
    ],
+   scheduledPublishing: {
+       enabled: true,
+       inputDateTimeFormat: 'MM/dd/yyyy h:mm a',
+   }
})

🐛 Notable bugfixes

  • Fixes a bug that caused negations to be transformed to wildcard search prefixes if they appeared at the end of a search query.
  • Improves error handling when attempting to run a migration against invalid project configurations.
  • Fixes an issue where a document's validation panel would show a system error message when a field with a validation error was deleted.
  • Fixes a bug that caused _type to be incorrectly parsed from statements in the filter parameter of document lists.
  • Fixes an issue that sometimes caused the Studio to load indefinitely when visited from a task notification email.
Author Message Commit
cngonzalez fix: refactor checkoutPair to allow mutations for liveEdit documents (#6393) f6ae402
Ash fix(core): prevent transformation of negation tokens into wildcard prefix tokens (#6396) f28ef7e
Bjørge Næss fix(migrate): forward possible API error response to error thrown for non 2xx (#6387) 9316475
Rico Kahler refactor(tasks, comments): core plugins (#6333) 3c917d2
renovate[bot] chore(deps): update dependency @sanity/tsdoc to v1.0.34 (#6402) 5fc2775
renovate[bot] chore(lockfile): update dependency @sanity/react-loader to v1.9.12 (#6405) d3e924e
renovate[bot] chore(lockfile): update dependency @sanity/preview-url-secret to v1.6.9 (#6404) 4c6f1e2
renovate[bot] chore(deps): update dependency @sanity/visual-editing to v1.8.12 (#6403) 6802d29
renovate[bot] fix(deps): update dependency @sanity/client to ^6.15.17 (#6406) 82e505f
renovate[bot] fix(deps): update dependency @sanity/presentation to v1.12.5 (#6407) 98bb233
renovate[bot] fix(deps): update dependency @sanity/ui to ^2.1.4 (#6408) 59cad0b
renovate[bot] fix(deps): update dependency get-it to ^8.4.26 (#6409) 159f542
renovate[bot] chore(deps): update dependency @sanity/pkg-utils to v6.7.1 (#6410) e5252e1
Pedro Bonamin fix(codeowners): update codeowners for tasks and comments (#6414) d286050
Rico Kahler test: add sanity-plugin-hotspot-array (#6401) d591b18
Binoy Patel fix: TS import paths importing index.ts twice incorrectly (#6415) 6066e92
Pedro Bonamin fix(tasks): update tasks upsell provider client version (#6413) 61a887c
renovate[bot] chore(deps): update dependency @sanity/pkg-utils to v6.8.0 (#6421) 72e34f8
renovate[bot] chore(lockfile): update dependency zod to v3.22.5 (#6420) 5c7352c
Cody Olsen refactor: use @sanity/prettier-config (#6423) e75e390
renovate[bot] chore(deps): update dependency recast to ^0.23.6 (#6422) 2b30eb6
Bjørge Næss chore: turn server actions on by default in test-studio (#6425) dd61ead
RitaDias fix(@sanity): issue where hidden unicode characters were bloating document in PTE (#6424) ce46077
Per-Kristian Nordnes Revert "fix(@sanity): issue where hidden unicode characters were bloating document in PTE (#6424)" cac48bb
Per-Kristian Nordnes fix(portable-text-editor): support collapsed range decorations (#6428) 2d02d62
renovate[bot] fix(deps): update dependency get-it to ^8.4.27 (#6434) 5fb7ddf
renovate[bot] chore(deps): update dependency @sanity/visual-editing to v1.8.13 (#6432) f4e482d
renovate[bot] fix(deps): update dependency @sanity/client to ^6.15.19 (#6433) 4e32715
renovate[bot] chore(deps): update dependency @sanity/pkg-utils to v6.8.1 (#6431) 26b8c76
renovate[bot] chore(lockfile): update dependency @sanity/react-loader to v1.9.13 (#6436) 846cf68
renovate[bot] chore(lockfile): update dependency @sanity/preview-url-secret to v1.6.10 (#6435) 7b20162
renovate[bot] fix(deps): update dependency @sanity/presentation to v1.12.6 (#6437) 3eb44db
renovate[bot] chore(deps): update dependency @sanity/visual-editing to v1.8.14 (#6438) 177b4b5
renovate[bot] chore(deps): update dependency @sanity/tsdoc to v1.0.36 (#6444) 8f05301
renovate[bot] chore(deps): update peter-evans/create-pull-request digest to 9153d83 (#6443) 035c59d
Tommy Petty fix(structure): update to not crash validation panel if unable to get path title (#6417) d5f8fb6
renovate[bot] chore(lockfile): update dependency @sanity/eventsource to v5.0.2 (#6445) b8f3666
Herman Wikner fix(comments): conditional rendering of CommentsProvider (#6412) 379396e
Per-Kristian Nordnes perf(portable-text-editor): improve range deocration render perf (#6441) c9b1ebb
Rico Kahler fix(structure): resolve static types in document list filters (#6439) 048ce0b
Rico Kahler fix(core): fix autocomplete for defineType in VSCode (#6447) 3ff78f6
Ash test(e2e): fix unawaited assertion (#6442) 37b6291
renovate[bot] fix(deps): update dependency @sanity/presentation to v1.12.7 (#6448) f9634f4
Pedro Bonamin fix(tasks): update taskURL for notification target (#6395) 7c8cebf
Sindre Gulseth fix(typegen): fixes a case where we track ratio as NaN (#6309) b0f405e
renovate[bot] fix(deps): update dependency @sanity/client to ^6.15.20 (#6461) d7f1067
Cody Olsen chore: remove _internalBrowser from typesVersions (#6451) c1f1fdf
Rico Kahler chore(deps): bump @sanity/export (#6462) 348a3a9
Pedro Bonamin feat(scheduled-publishing): move scheduled publishing into core. (#6416) a6fc5af

v3.38.0

16 Apr 14:55
Compare
Choose a tag to compare

Installation and upgrading

Install

To initiate a new Studio without installing the CLI globally:

npm create sanity@latest

Upgrade

In most cases upgrading your studio is as straight-forward as installing the latest version:

npm install sanity@latest

For more information, visit the article on upgrading Sanity Studio in the docs.

If you are upgrading from a version earlier than 3.37.0, you also need to upgrade styled-components and @sanity/ui. To learn more, visit this help article on keeping dependencies up to date.

✨ Highlights

  • Improved global search with better performance and new features.
  • Custom styles are now displayed in the Portable Text Editor (PTE) style selector.

Enhanced Global Search

We've optimized the search functionality in the Studio for increased performance, especially in workspaces with large schemas. This improvement includes support for wildcard (*) and negation (-) tokens in search queries, allowing for more flexible and powerful search options. This enhanced search feature uses an internal API that is not yet documented for public use.

If you need to revert to the previous search behavior for any reason, you can disable the new search functionality by setting search.enableLegacySearch to true in your configuration.

🐛 Notable bugfixes

  • Fixes a crash in the image hotspot and cropping tool within Next.js embedded Studios.
  • Improves focus handling in PTE and the document pane.
  • Fixes an edge case where PTE threw exceptions after resizing the validation panel.
  • Fixes issue where annotations in PTE would incorrectly retain markup if all fields were null.
  • Resolves an issue where custom sort orders, or sort orders in lists that are not documentTypeLists, would send invalid requests to the persistent user settings backend.
  • Fixes regression that hid tool buttons when Sanity Studio was embedded in Next.js applications.
  • Fixes a bug where the caret was not visible on code-formatted text within the PTE when using the dark scheme.
  • Fixes an issue where the component for custom PTE styles was not being rendered in the style selector.
  • Fixes an issue where copying strikethrough text from a google doc would remove the strikethrough once pasted in the PTE.
  • Fixes tooltip text for the publish button to correctly display "yesterday" without the "ago" suffix when appropriate.

📓 Full changelog

Author Message Commit
Nina Andal Aarvik fix(structure): remove 'ago' suffix when published time was yesterday (#6137) 66495e5
Cody Olsen chore: fix pnpm dev by bumping @sanity/assist (#6306) a87ea4e
cngonzalez fix: resolve PTE inconsistency by passing serverActionsEnabled to documentEvents (#6299) 4123260
Espen Hovlandsdal chore: move @sanity/export out of monorepo (#6314) 331e46c
renovate[bot] chore(lockfile): update dependency @sanity/assist to v3.0.3 (#6316) 8941037
renovate[bot] chore(deps): update dependency @sanity/tsdoc to v1.0.22 (#6315) 87c627d
renovate[bot] chore(deps): update dependency typescript to v5.4.5 (#6318) 166a7c6
Cody Olsen chore: support IDE's using older TypeScript versions on the monorepo (#6308) a4e097f
Herman Wikner fix(core): hidden caret on code formatted text (#6307) 1c8cff0
shur fix: update TelemetryUserProperties to use machinePlatform instead of platform (#6312) bc6be95
Cody Olsen chore(deps): bump @sanity/pkg-utils & simplify build scripts (#6319) 2dd907a
Nina Andal Aarvik fix(structure): remove padding prop in contextMenuButton (#6097) b3860ed
renovate[bot] fix(deps): update dependency get-it to ^8.4.19 (#6325) a7755ac
Cody Olsen chore: improve test output of test:exports (#6304) 090c45d
renovate[bot] chore(lockfile): update dependency mendoza to v3.0.7 (#6324) 4d1f1ba
renovate[bot] chore(deps): update dependency @portabletext/toolkit to ^2.0.15 (#6322) 093ab19
renovate[bot] chore(deps): update dependency @sanity/tsdoc to v1.0.23 (#6329) b1773b9
renovate[bot] fix(deps): update dependency @sanity/client to ^6.15.13 (#6331) 2c4671a
Binoy Patel chore: fix start-studio build (#6336) e6c2d11
cngonzalez fix: use pane key in settings for document lists that do not have types available (#6335) 57749e5
Espen Hovlandsdal chore: move @sanity/import out of monorepo (#6313) 9ea56b9
Espen Hovlandsdal chore: use node: prefix for node module imports (#6321) 433a7aa
Cody Olsen fix: regression hiding tool buttons when embedded on Next.js (#6338) d30cfd9
renovate[bot] fix(deps): update dependency get-it to ^8.4.21 (#6332) 98626ec
renovate[bot] chore(deps): update dependency @sanity/visual-editing to v1.8.8 (#6330) 89409bd
renovate[bot] chore(deps): update dependency @sanity/pkg-utils to v6.6.1 (#6342) f772f88
renovate[bot] fix(deps): update dependency @sanity/ui to ^2.1.3 (#6344) e5c763a
renovate[bot] chore(deps): update dependency @sanity/tsdoc to v1.0.26 (#6341) d986c31
Tommy Petty fix(pte): fix an issue where when PTE throws exception after resize (#6152) cf75a0b
Tommy Petty fix(cli): add note about webhooks in migration run command (#6112) 9baf406
Binoy Patel chore: remove * as React imports (#6350) 04a68cf
Espen Hovlandsdal refactor(cli): use fs methods for reading package.json files (#6351) 0339647
renovate[bot] chore(deps): update react monorepo (#6353) 3e03e1b
renovate[bot] chore(deps): update dependency @sanity/pkg-utils to v6.6.3 (#6354) a27604d
renovate[bot] chore(deps): update dependency @sanity/tsdoc to v1.0.29 (#6356) 6f7d186
renovate[bot] chore(deps): update dependency prettier-plugin-packagejson to ^2.5.0 (#6357) a380e49
renovate[bot] fix(deps): update dependency get-it to ^8.4.23 (#6362) f08cf40
renovate[bot] chore(deps): update dependency @sanity/tsdoc to v1.0.30 (#6361) a211e2d
renovate[bot] chore(deps): update peter-evans/create-pull-request digest to c55203c (#6363) 6736e29
renovate[bot] chore(deps): update pnpm to v8.15.7 (#6364) ...
Read more

v3.37.2

09 Apr 23:36
Compare
Choose a tag to compare

Installation and upgrading

To initiate a new Studio without installing the CLI globally:

npm create sanity@latest

We recommend that you check out the instructions for the Sanity Studio v3.37.0 release before upgrading. If you have already updated your dependencies as described in that document (i.e., you are updating from v3.37.0), you can proceed with updating your studio as normal:

To upgrade a v3 Studio, run this command in its folder:

npm install sanity@latest

🐛 Notable bugfixes

  • Fixes an issue where sanity typegen generate would crash due to an incorrect babel configuration path
  • Fixes an issue where sanity typegen generate would crash if the output directory did not exist

📓 Full changelog

Author Message Commit
renovate[bot] chore(deps): update dependency @sanity/tsdoc to v1.0.17 (#6289) 2e99f2a
renovate[bot] chore(deps): update react monorepo (#6290) f51142c
renovate[bot] chore(deps): update dependency @sanity/assist to v3 (#6291) c119f38
Cody Olsen refactor(test-exports): mark tests that are expected to fail as todo (#6292) 911a3e2
renovate[bot] chore(lockfile): update dependency @sanity/logos to v2.1.10 (#6293) 6f66d80
renovate[bot] chore(deps): update dependency @sanity/icons to ^2.11.8 (#6294) 387c2bd
renovate[bot] chore(lockfile): update dependency @sanity/color to v3.0.6 (#6295) a3061ee
Espen Hovlandsdal fix(codegen): prevent crash due to incorrect babel config path (#6298) fc784d1
Espen Hovlandsdal fix(cli): ensure output path for types exist before writing (#6300) e75bffe
renovate[bot] fix(deps): update dependency @sanity/ui to ^2.1.2 (#6301) 9ebe73d