github sanity-io/sanity v3.22.0

latest releases: v3.52.0, v3.51.0, v3.50.0...
7 months ago

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

✨ Highlights

🌍 Publish! Veröffentlichen! Publicar! 公開!: Sanity Studio UI Localization! 🌍

The Translate the studio UI #1603 issue has been one of our most popular feature requests on GitHub. Now we can finaly close it, because we have launched Studio UI localization.

What's New?

  • Multilingual support: You can now configure the Sanity Studio user interface to use languages other than English. We're kicking off with many languages, including Spanish, French, Norwegian, German, Portuguese, Korean, Turkish, Icelandic, Thai, Vietnamese, Swedish, Finnish, Czech, Italian, Japanese, Chinese, and Polish. Don’t see your preferred language? It's easy to request additional language plugins!
  • AI-Translated language plugins: These initial translations are generated by AI — we're inviting the community (that’s you!) to help us improve and maintain these translations for accuracy and cultural relevance. Interested? Read more about how to contribute over on GitHub.

First steps to a localized Studio

This is our first step towards a fully global studio. The support for localization will grow, starting with our official plugins. We appreciate your patience and contributions as we expand these capabilities!

Getting started:

  • Choose your language: Visit github.com/sanity-io/locales to find the plugin for your desired language. If it's not listed, we’d love you to request it - we can do a first auto-translated pass, and you can help us review and improve the automated translations.
  • Plugin setup:
    • Ensure you are using Sanity version 3.22.0 or newer
    • Install the plugin for your desired language (npm install @sanity/locale-nb-no)
    • Import it (import {nbNOLocale} from @sanity/locale-nb-no
    • Add it to your studio's plugins array (plugins: [nbNOLocale()])
    • You’ll find full instructions on the locale plugin’s README!
  • Documentation:

We're eager to hear from you and welcome any feedback. This is just the beginning, and your insights are invaluable in making Sanity Studio even better.

Introducing telemetry 📡

As a product company, we have to prioritize what to work on. Ideally, those decisions are based on a healthy amount of vision (how we think things could be better) and insight (how people use the product). We have had a good amount of the former but less of the latter.

With this release, we’re introducing telemetry data collection in the CLI and Studio. Participation is optional, and you can easily opt-out by running npx sanity telemetry disable, setting the DO_NOT_TRACK=1 environment variable, or visiting Account Settings in Manage. For more details on what data is collected, how it’s being used, and how consent is handled, go to sanity.io/telemetry.

Other features

  • Adds experimental support for using Bun as package manager when creating new Sanity projects (bun create sanity)
  • Adds ability to customize the suffix added to auto-generated GraphQL filter types (Filter by default), by configuring filterSuffix in the GraphQL configuration of sanity.cli.ts

🐛 Notable bugfixes

  • Fixes issue where annotation popover would open in the wrong location when selecting annotation text in the Portable Text editor
  • Fixes removal of marks in the Portable Text editor not always cleaning up unused mark definitions
  • Fixes issue where Portable Text editor would crash when attempting to use annotations on text over multiple blocks
  • Fixes issue in which new empty text blocks were added when adding a non-text block in the Portable Text editor.
  • Fixes an issue where selecting a custom API version in the Vision tool would sometimes crash

📓 Full changelog

Author Message Commit
Espen Hovlandsdal chore(test-studio): add locale plugins fe21e82
Nina Andal Aarvik fix(core): add timestamps to all preview components (#5352) 2083fd3
Nina Andal Aarvik fix(core): simplify code for getting preview paths (#5360) 423c1b4
Nina Andal Aarvik fix(core): prevent annotation popover from jumping when opening (#5280) 8c77a10
Binoy Patel chore(e2e): add @sanity/test package (#5359) 5acafe9
Pedro Bonamin fix(pte): clear unused markdefs when removing annotations (#5254) 41552c3
Pedro Bonamin fix(pte): disable multiple blocks annotations (#5257) 7452848
Pedro Bonamin fix(pte): removes empty text block when inserting a new block in that position (#5271) b6ef7dc
Pedro Bonamin fix(core): update getPreviewPaths function (#5362) a70bf39
renovate[bot] fix(deps): update dependency @sanity/presentation to v1.2.1 (#5364) d0a43f6
Espen Hovlandsdal docs(import): add missing allowFailingAssets option to readme 072fccd
Pedro Bonamin fix(pte): add transalation to disabled tooltip text (#5366) da54a28
Pedro Bonamin fix(pte): update removing annotations function (#5267) d4e5409
Pedro Bonamin feat(free-trial): adds free trial button, popover and modal. (#5345) 16a8b58
Herman Wikner refactor(core): desk renaming popover (#5369) 5de2c6f
Espen Hovlandsdal chore(deps): upgrade jsdom dependency (#5327) 05287be
Rico Kahler fix(i18n): fix incorrect menu items; localize default group titles (#5370) bd87ffc
Binoy Patel feat(graphql): add support for customizing the filter suffix for graphql types (#5372) 67dee78
Binoy Patel fix(vision): fixes an issue where selection other would crash (#5377) 87e5493
Espen Hovlandsdal test(block-tools): update snapshots to account for i18n changes bc1bdd8
Bjørge Næss fix(cli): add (experimental) support for bun as package manager (#5356) 0c6a32e
Herman Wikner feat(core): document layout (#5340) adaae0e
ecospark[bot] chore(deps): dedupe yarn.lock (#5379) a521871
Pedro Bonamin fix(free-trial): add apiVersion stamp to free trial request (#5385) 785d87c
Bjørge Næss feat(cli) add telemetry scaffolding (#5321) 69dfe87
Espen Hovlandsdal fix(i18n): add missing string for cancelling uploads (#5388) 2a7aff1
Espen Hovlandsdal feat(i18n): use last registered locale as default (#5381) 30cbe31
Espen Hovlandsdal chore(design-studio): fix incorrect type import e164745
Espen Hovlandsdal fix(i18n): give default root structure node an i18n title 2b16afb
Espen Hovlandsdal fix(i18n): translate placeholder text for tags input 3dae10b
Espen Hovlandsdal fix(i18n): translate structure tool loading pane 7f517d2
Rune Botten docs: update readme contribution info (#5365) 9cd0cb2
Bjørge Næss feat(cli): instrument cli with telemetry events (#5320) 75e4555
Per-Kristian Nordnes fix(portable-text-editor): return unless range count (#5391) 5b3492b
Espen Hovlandsdal refactor(free-trial): fault tolerance, code conventions (#5387) 8b03846
Bjørge Næss feat(cli): add telemetry cli commands (#5322) 02f4cf2
Bjørge Næss feat(cli): add env var for logging telemetry events to file (#5347) 44008f4
Per-Kristian Nordnes refactor(portable-text-editor): remove obsolete code (#5393) e4bc20d
Bjørge Næss fix(cli): improve telemetry exit flushing (#5392) 53232c7
Espen Hovlandsdal fix(i18n): correct "create new" button translation labels 4790958

Don't miss a new sanity release

NewReleases is sending notifications on new releases.