Sanity Studio – Rapidly configure content workspaces powered by structured content
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.
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.
This release also includes bug fixes for the Portable Text Editor:
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.
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,
},
},
});
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 },
})
Thanks for all the feedback about Sanity TypeGen so far! This release ships several improvements and bug fixes:
count
in GROQ projectionssanity.types.ts
) is now formatted when a project has a Prettier configurationsrc
, app
, and sanity
folders by defaulttypegen
command would fail on relative importssanity-plugin-mux-input
plugin was installed.Do continue to give us feedback in #typescript in the community!
Author | Message | Commit |
---|---|---|
ecospark[bot] | chore(deps): dedupe pnpm-lock.yaml (#6463) | a2faad2759 |
renovate[bot] | chore(deps): update dependency @sanity/pkg-utils to v6.8.4 (#6460) | 34a1ae618b |
Sindre Gulseth | fix(cli): mock matchMedia window function (#6472) | ea715e8fd8 |
Bjørge Næss | chore: add perf runner to workspace (#6427) | 9af065aa98 |
Sindre Gulseth | fix(typegen): fixes a bug where we imported the wrong relative path (#6457) | e1bd1f0de2 |
renovate[bot] | chore(deps): update dependency @sanity/tsdoc to v1.0.39 (#6464) | f6af6369d5 |
Sindre Gulseth | feat(typegen): also search for queries in app and sanity folders (#6475) | 03cbb12cf8 |
Sindre Gulseth | chore: upgrade groq-js (#6474) | 68bb282a0d |
ecospark[bot] | chore(deps): dedupe pnpm-lock.yaml (#6476) | 076b2fc6de |
renovate[bot] | chore(deps): update dependency @sanity/visual-editing to v1.8.15 (#6465) | 2f7674c052 |
renovate[bot] | chore(lockfile): update dependency @sanity/react-loader to v1.9.14 (#6466) | 9887e7c599 |
renovate[bot] | chore(lockfile): update dependency date-fns-tz to v2.0.1 (#6467) | 14b4365894 |
renovate[bot] | chore(lockfile): update dependency i18next to v23.11.2 (#6468) | 3fcfa42a71 |
renovate[bot] | chore(lockfile): update dependency zod to v3.23.4 (#6470) | bef170b3bf |
renovate[bot] | chore(lockfile): update dependency next to v14.2.2 (#6469) | cb957a608f |
renovate[bot] | chore(lockfile): update dependency react-focus-lock to v2.12.1 (#6471) | 05a019a648 |
renovate[bot] | chore(deps): update dependency @sanity/pkg-utils to v6.8.6 (#6482) | c903cde72f |
renovate[bot] | chore(deps): update react monorepo (#6484) | 3c8a3292b1 |
renovate[bot] | chore(deps): update dependency @sanity/tsdoc to v1.0.40 (#6483) | 0163210c94 |
renovate[bot] | fix(deps): update dependency @sanity/presentation to v1.12.8 (#6485) | 05aad5c0b7 |
renovate[bot] | chore(deps): update react monorepo to ^18.3.0 (#6490) | 144bb21a75 |
renovate[bot] | chore(lockfile): update dependency @types/react-is to v18.3.0 (#6491) | 2225589451 |
Cody Olsen | chore: setup next test that embeds the test studio (#6487) | edefb66bda |
Bjørge Næss | fix(test): remove hydrateroot warning test (#6494) | d50a0f19db |
ecospark[bot] | chore(deps): dedupe pnpm-lock.yaml (#6493) | c1f9071d68 |
Rostislav Melkumyan | feat: set print width to 40 (#6068) | 2e24fcdfa7 |
renovate[bot] | chore(deps): update dependency @sanity/pkg-utils to v6.8.7 (#6496) | 2b840babd9 |
renovate[bot] | chore(deps): update dependency turbo to ^1.13.3 (#6497) | fc80d2b9eb |
renovate[bot] | chore(lockfile): update dependency @sanity/logos to v2.1.11 (#6498) | 69b3c642fa |
renovate[bot] | chore(lockfile): update dependency @sanity/react-loader to v1.9.15 (#6499) | c8b1d5e323 |
renovate[bot] | chore(deps): update dependency @sanity/visual-editing to v1.8.16 (#6500) | 2dff2bdc78 |
renovate[bot] | fix(deps): update dependency @sanity/presentation to v1.12.10 (#6501) | 06ef31d64f |
Herman Wikner | feat(core): implement presence cursors (#6081) | 1522806aa3 |
renovate[bot] | fix(deps): Update react monorepo (#6502) | fa9d145dd4 |
Espen Hovlandsdal | chore(lint): add certain unicorn eslint rules (#6352) | ba8397104f |
Espen Hovlandsdal | test: increase timeout for cross-dataset reference test | afea9cfb3f |
Espen Hovlandsdal | chore: fix incorrect path used in workshop story | 61daf0cbf9 |
ecospark[bot] | chore(deps): dedupe pnpm-lock.yaml (#6506) | 6486e342f1 |
RitaDias | fix(structure): uncaught error while swapping images in array in PTE (#6399) | c9bfc3127f |
renovate[bot] | chore(deps): update dependency @types/react to v18.3.1 (#6507) | 311d722aea |
Nina Andal Aarvik | fix(core): change scrollintoview block to be nearest (#6328) | 509757c654 |
Nina Andal Aarvik | fix(core): set scroll boundary to nearest (#6310) | 0dae0da8d1 |
RitaDias | fix(@sanity): issue where hidden unicode characters were bloating document in PTE (#6440) | ffa68ec009 |
Per-Kristian Nordnes | chore: add codeowners to block-tools | 479e71fe31 |
ecospark[bot] | chore(deps): dedupe pnpm-lock.yaml (#6508) | ff26edd30b |
renovate[bot] | chore(deps): update dependency @sanity/pkg-utils to v6.8.8 (#6509) | 4bb667de3a |
cngonzalez | feat: use prefersLatestPublished parameter in DocumentPaneProvider (#6486) | 3da55ae532 |
cngonzalez | fix: prevent looping requests to keyvalue in recent searches (#6480) | 232385ecf5 |
Binoy Patel | feat(singletons): add a singleton package exports | 884fca1bd6 |
Binoy Patel | feat(singletons): add eslint rule for boundaries | bfd9a30ecf |
Binoy Patel | refactor(core): move ConnectorContext to singletons | 3008a1c518 |
Binoy Patel | refactor(core): move PreviewCardContext to singletons | 30cc592ff1 |
Binoy Patel | refactor(core): move scrollContext to singletons | 5ca1b0076f |
Binoy Patel | refactor(core): move ZIndexContext to singletons | d1a1d40367 |
Binoy Patel | refactor(core): move DiffContext to singletons | ef08d0a1ed |
Binoy Patel | refactor(core): move DocumentChangeContext to singletons | 0509e58a27 |
Binoy Patel | refactor(core): move FormBuilderContext to singletons | 0f9cf43d17 |
Binoy Patel | refactor(core): move DocumentIdContext to singletons | 79343e4822 |
Binoy Patel | refactor(core): move FormValueContext to singletons | 2b46b43043 |
Binoy Patel | refactor(core): move GetFormValueContext to singletons | 3dc7e62f66 |
Binoy Patel | refactor(core): move HoveredFieldContext to singletons | dbedca6092 |
Binoy Patel | refactor(core): move FieldActionsContext to singletons | c7374f729b |
Binoy Patel | refactor(core): move VirtualizerScrollInstanceContext to singletons | 372774e7f4 |
Binoy Patel | refactor(core): move SortableItemIdContext to singletons | ffea136ff0 |
Binoy Patel | refactor(core): move PortableTextMarkersContext to singletons | ed8f3187ba |
Binoy Patel | refactor(core): move PortableTextMemberItemsContext to singletons | 63256293e8 |
Binoy Patel | refactor(core): move ReferenceItemRefContext to singletons | a25a30bf91 |
Binoy Patel | refactor(core): move DocumentFieldActionsContext to singletons | 6f08a7deb5 |
Binoy Patel | refactor(core): move FormCallbacksContext to singletons | 2518910a33 |
Binoy Patel | refactor(core): move PresenceContext to singletons | 6a02f80819 |
Binoy Patel | refactor(core): move ReferenceInputOptionsContext to singletons | 19311e4670 |
Binoy Patel | refactor(core): move ValidationContext to singletons | cab8131c4a |
Binoy Patel | refactor(core): move ReviewChangesContext to singletons | 79e4bfa9cc |
Binoy Patel | refactor(core): move LocaleContext to singletons | d614474814 |
Binoy Patel | refactor(core): move FormFieldPresenceContext to singletons | 16d87a1cba |
Binoy Patel | refactor(core): move ResourceCacheContext to singletons | b64d78919d |
Binoy Patel | refactor(core): move ColorSchemeValueContext to singletons | 23e50fbe26 |
Binoy Patel | refactor(core): move ColorSchemeSetValueContext to singletons | 5db6f24275 |
Binoy Patel | refactor(core): move SourceContext to singletons | 896ed1e9cb |
Binoy Patel | refactor(core): move WorkspaceContext to singletons | 96e1bb745c |
Binoy Patel | refactor(core): move NavbarContext to singletons | 2601315c7d |
Binoy Patel | refactor(core): move ActiveWorkspaceMatcherContext to singletons | 2ac5f1b144 |
Binoy Patel | refactor(core): move AddonDatasetContext to singletons | b1e2f605ba |
Binoy Patel | refactor(core): move FreeTrialContext to singletons | fd7dca32ca |
Binoy Patel | refactor(core): move CalendarContext to singletons | 0f0d13fdbd |
Binoy Patel | refactor(core): move SearchContext to singletons | b4a8f3b3ee |
Binoy Patel | refactor(core): move RouterHistoryContext to singletons | dbf67a8f92 |
Binoy Patel | refactor(singletons): revert exporting free trial types on sanity | 198df7072f |
Binoy Patel | refactor(core): move WorkspacesContext to singletons | 7e3775dc4f |
Binoy Patel | refactor(core): move UserColorManagerContext to singletons | 548952e1ab |
Binoy Patel | fix(singletons): fix build issues and move CalendarContext interface back | b3de008a42 |
Binoy Patel | refactor(router): move RouterContext to singletons | 56dd5be1b5 |
Binoy Patel | refactor(structure): move StructureToolContext to singletons | d385839488 |
Binoy Patel | refactor(structure): move PaneContext to singletons | bef2ba2fb4 |
Binoy Patel | refactor(structure): move DocumentPaneContext to singletons | 73cbcd1dfb |
Binoy Patel | fix(singletons): use relative path for StructureToolContextValue type | 30204c7c31 |
Binoy Patel | refactor(structure): move CommentInputContext to singletons | 624709335d |
Binoy Patel | refactor(structure): move CommentsAuthoringPathContext to singletons | 6555ffcde3 |
Binoy Patel | refactor(structure): move CommentsContext to singletons | 94950b7ee3 |
Binoy Patel | refactor(structure): move CommentsEnabledContext to singeltons | 8780274af3 |
Binoy Patel | refactor(structure): move comments contexts to singletons | fd327eebcb |
Binoy Patel | refactor(structure): move PaneLayoutContext to singletons | 569c0f90e3 |
Binoy Patel | refactor(structure): move PaneRouterContext to singletons | e765a472f8 |
Binoy Patel | fix(structure): expose PaneRouterContext from structure | ab835d9fd2 |
Binoy Patel | refactor(tasks): move TasksEnabledContext to singletons | 453d260a42 |
Binoy Patel | refactor(tasks): move MentionUserContext to singletons | 924f5b0a4c |
Binoy Patel | refactor(tasks): move TasksNavigationContext to singletons | 2bb6668ae8 |
Binoy Patel | refactor(tasks): move TasksContext to singletons | 9a8ed79b20 |
Binoy Patel | fix: build after pkg-utils@5 upgrade | c3b756b527 |
Binoy Patel | refactor(tasks): move TasksUpsellContext to singletons | b422fabcf0 |
Binoy Patel | chore(lint): only allow relative type imports in singeltons | 8e3dc30180 |
Binoy Patel | chore(lint): update eslint to be specific about imports | 932f4595ea |
Binoy Patel | refactor(singletons): use relative type imports | a57e70c9fc |
Binoy Patel | refactor(singletons): move core context to core folder | f62078c972 |
Binoy Patel | fix(core): export AddonDataSetContext from singletons | 970cf7d794 |
Binoy Patel | chore(core): remove AddonDatasetContext exports | f29d0ddc83 |
Binoy Patel | fix(build): add missing legacy exports and types information | 2053b1fd00 |
Binoy Patel | fix: fix linting and type errors after rebase | c0932461b0 |
Binoy Patel | refactor(singletons): move tasks to core | bfcdc44e05 |
Binoy Patel | fix(router): expose RouterContext from sanity/router | 7eeda3bf01 |
Binoy Patel | refactor(tasks): move isLastPane context to singletons | 968ae8558a |
Binoy Patel | chore: add _singletons to tsconfig paths | 684bb8af0c |
Binoy Patel | refactor(schedule-publishing): move DocumentActionPropsContext to singletons | dab96b5ca2 |
Binoy Patel | refactor(scheduled-publishing): move ScheduledPublishingEnabledContext to singletons | 00fc838c5b |
Binoy Patel | refactor(scheduled-publishing): move SchedulePublishUpsellContext to singletons | 21646661c1 |
Binoy Patel | refactor(scheduled-publishing): move SchedulesContext to singletons | d946d30e74 |
Binoy Patel | fix: next studio build | 52bcbda69a |
Binoy Patel | chore: add eslint rule for disabling createContext outside _singletons (#6349) | d79f363aa4 |
Herman Wikner | fix(comments): inline comment creation issue in Safari (#6510) | 3b4a7e6523 |
Herman Wikner | fix(core): skip reset presence selection on PTE blur (#6511) | f0c94f1e6e |
Pedro Bonamin | fix(scheduled-publishing): deprecated error toast shows multiple times (#6513) | 21d5b32261 |
Sindre Gulseth | chore(typegen): track empty union type nodes generated (#6495) | 124be88b10 |
Espen Hovlandsdal | chore(deps): upgrade to react 18.3.1 (#6505) | 9e2cf1557a |
ecospark[bot] | chore(deps): dedupe pnpm-lock.yaml (#6515) | cc106e4dff |
jordanl17 | fix: statusButton requires provided aria-label (#6430) | 06c67fc6cd |
renovate[bot] | chore(deps): update dependency @sanity/tsdoc to v1.0.41 (#6518) | 7876a0a806 |
renovate[bot] | chore(lockfile): update dependency @sanity/react-loader to v1.9.16 (#6519) | e618da3bb1 |
RitaDias | chore(sanity): remove beta and unstable from comments and tasks (#6478) | f92ba3e0fd |
renovate[bot] | chore(deps): update pnpm to v8.15.8 (#6526) | 098267389a |
renovate[bot] | chore(deps): update dependency @sanity/pkg-utils to v6.8.9 (#6525) | bc85a3d9e3 |
Nina Andal Aarvik | fix(structure): add string for duplicate event (#6523) | f51b1577c7 |
renovate[bot] | chore(lockfile): update dependency @babel/preset-env to v7.24.5 (#6528) | dbb26b7558 |
Per-Kristian Nordnes | fix(portable-text-editor): fix issue where decoration on inline object would cause freeze (#6531) | f03f6ebd62 |
renovate[bot] | chore(deps): update dependency @sanity/tsdoc to v1.0.42 (#6529) | c893c77e52 |
Per-Kristian Nordnes | fix(portable-text-editor): fix issue where decoration would not target correctly (#6532) | 251d592265 |
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
npm create sanity
Author | Message | Commit |
---|---|---|
Espen Hovlandsdal | fix(cli): remove comments from moviedb template, hide location field (#6488) | 80f8daf5ad |
Espen Hovlandsdal | fix(search): revert to old search API for now (#6503) | 8a08212686 |
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.
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.
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',
+ }
})
_type
to be incorrectly parsed from statements in the filter
parameter of document lists.Author | Message | Commit |
---|---|---|
cngonzalez | fix: refactor checkoutPair to allow mutations for liveEdit documents (#6393) | f6ae4028b4 |
Ash | fix(core): prevent transformation of negation tokens into wildcard prefix tokens (#6396) | f28ef7e094 |
Bjørge Næss | fix(migrate): forward possible API error response to error thrown for non 2xx (#6387) | 9316475346 |
Rico Kahler | refactor(tasks, comments): core plugins (#6333) | 3c917d22e0 |
renovate[bot] | chore(deps): update dependency @sanity/tsdoc to v1.0.34 (#6402) | 5fc277588d |
renovate[bot] | chore(lockfile): update dependency @sanity/react-loader to v1.9.12 (#6405) | d3e924e26d |
renovate[bot] | chore(lockfile): update dependency @sanity/preview-url-secret to v1.6.9 (#6404) | 4c6f1e2fef |
renovate[bot] | chore(deps): update dependency @sanity/visual-editing to v1.8.12 (#6403) | 6802d29bb2 |
renovate[bot] | fix(deps): update dependency @sanity/client to ^6.15.17 (#6406) | 82e505fc8c |
renovate[bot] | fix(deps): update dependency @sanity/presentation to v1.12.5 (#6407) | 98bb2338b0 |
renovate[bot] | fix(deps): update dependency @sanity/ui to ^2.1.4 (#6408) | 59cad0b923 |
renovate[bot] | fix(deps): update dependency get-it to ^8.4.26 (#6409) | 159f5428e5 |
renovate[bot] | chore(deps): update dependency @sanity/pkg-utils to v6.7.1 (#6410) | e5252e17d6 |
Pedro Bonamin | fix(codeowners): update codeowners for tasks and comments (#6414) | d286050dda |
Rico Kahler | test: add sanity-plugin-hotspot-array (#6401) | d591b18fda |
Binoy Patel | fix: TS import paths importing index.ts twice incorrectly (#6415) | 6066e9287e |
Pedro Bonamin | fix(tasks): update tasks upsell provider client version (#6413) | 61a887c018 |
renovate[bot] | chore(deps): update dependency @sanity/pkg-utils to v6.8.0 (#6421) | 72e34f8a80 |
renovate[bot] | chore(lockfile): update dependency zod to v3.22.5 (#6420) | 5c7352cf76 |
Cody Olsen | refactor: use @sanity/prettier-config (#6423) |
e75e390e61 |
renovate[bot] | chore(deps): update dependency recast to ^0.23.6 (#6422) | 2b30eb6edd |
Bjørge Næss | chore: turn server actions on by default in test-studio (#6425) | dd61ead1bd |
RitaDias | fix(@sanity): issue where hidden unicode characters were bloating document in PTE (#6424) | ce460775e7 |
Per-Kristian Nordnes | Revert "fix(@sanity): issue where hidden unicode characters were bloating document in PTE (#6424)" | cac48bb7f2 |
Per-Kristian Nordnes | fix(portable-text-editor): support collapsed range decorations (#6428) | 2d02d62599 |
renovate[bot] | fix(deps): update dependency get-it to ^8.4.27 (#6434) | 5fb7ddf1b5 |
renovate[bot] | chore(deps): update dependency @sanity/visual-editing to v1.8.13 (#6432) | f4e482d338 |
renovate[bot] | fix(deps): update dependency @sanity/client to ^6.15.19 (#6433) | 4e32715c39 |
renovate[bot] | chore(deps): update dependency @sanity/pkg-utils to v6.8.1 (#6431) | 26b8c76c3b |
renovate[bot] | chore(lockfile): update dependency @sanity/react-loader to v1.9.13 (#6436) | 846cf688fb |
renovate[bot] | chore(lockfile): update dependency @sanity/preview-url-secret to v1.6.10 (#6435) | 7b20162ca8 |
renovate[bot] | fix(deps): update dependency @sanity/presentation to v1.12.6 (#6437) | 3eb44db1a4 |
renovate[bot] | chore(deps): update dependency @sanity/visual-editing to v1.8.14 (#6438) | 177b4b5d46 |
renovate[bot] | chore(deps): update dependency @sanity/tsdoc to v1.0.36 (#6444) | 8f05301699 |
renovate[bot] | chore(deps): update peter-evans/create-pull-request digest to 9153d83 (#6443) | 035c59d562 |
Tommy Petty | fix(structure): update to not crash validation panel if unable to get path title (#6417) | d5f8fb6799 |
renovate[bot] | chore(lockfile): update dependency @sanity/eventsource to v5.0.2 (#6445) | b8f366601d |
Herman Wikner | fix(comments): conditional rendering of CommentsProvider (#6412) |
379396e63e |
Per-Kristian Nordnes | perf(portable-text-editor): improve range deocration render perf (#6441) | c9b1ebb461 |
Rico Kahler | fix(structure): resolve static types in document list filters (#6439) | 048ce0b98b |
Rico Kahler | fix(core): fix autocomplete for defineType in VSCode (#6447) |
3ff78f6d73 |
Ash | test(e2e): fix unawaited assertion (#6442) | 37b6291f69 |
renovate[bot] | fix(deps): update dependency @sanity/presentation to v1.12.7 (#6448) | f9634f42c1 |
Pedro Bonamin | fix(tasks): update taskURL for notification target (#6395) | 7c8cebf37d |
Sindre Gulseth | fix(typegen): fixes a case where we track ratio as NaN (#6309) | b0f405e292 |
renovate[bot] | fix(deps): update dependency @sanity/client to ^6.15.20 (#6461) | d7f1067718 |
Cody Olsen | chore: remove _internalBrowser from typesVersions (#6451) |
c1f1fdf946 |
Rico Kahler | chore(deps): bump @sanity/export (#6462) | 348a3a996d |
Pedro Bonamin | feat(scheduled-publishing): move scheduled publishing into core. (#6416) | a6fc5af0d2 |
To initiate a new Studio without installing the CLI globally:
npm create sanity@latest
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.
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.
documentTypeList
s, would send invalid requests to the persistent user settings backend.Author | Message | Commit |
---|---|---|
Nina Andal Aarvik | fix(structure): remove 'ago' suffix when published time was yesterday (#6137) | 66495e5a4f |
Cody Olsen | chore: fix pnpm dev by bumping @sanity/assist (#6306) |
a87ea4e906 |
cngonzalez | fix: resolve PTE inconsistency by passing serverActionsEnabled to documentEvents (#6299) | 4123260b10 |
Espen Hovlandsdal | chore: move @sanity/export out of monorepo (#6314) |
331e46cdf4 |
renovate[bot] | chore(lockfile): update dependency @sanity/assist to v3.0.3 (#6316) | 8941037150 |
renovate[bot] | chore(deps): update dependency @sanity/tsdoc to v1.0.22 (#6315) | 87c627d0ac |
renovate[bot] | chore(deps): update dependency typescript to v5.4.5 (#6318) | 166a7c6ea0 |
Cody Olsen | chore: support IDE's using older TypeScript versions on the monorepo (#6308) | a4e097fed7 |
Herman Wikner | fix(core): hidden caret on code formatted text (#6307) | 1c8cff0281 |
shur | fix: update TelemetryUserProperties to use machinePlatform instead of platform (#6312) | bc6be952b7 |
Cody Olsen | chore(deps): bump @sanity/pkg-utils & simplify build scripts (#6319) |
2dd907ab97 |
Nina Andal Aarvik | fix(structure): remove padding prop in contextMenuButton (#6097) | b3860edbb9 |
renovate[bot] | fix(deps): update dependency get-it to ^8.4.19 (#6325) | a7755ac805 |
Cody Olsen | chore: improve test output of test:exports (#6304) |
090c45dc89 |
renovate[bot] | chore(lockfile): update dependency mendoza to v3.0.7 (#6324) | 4d1f1ba7d1 |
renovate[bot] | chore(deps): update dependency @portabletext/toolkit to ^2.0.15 (#6322) | 093ab19958 |
renovate[bot] | chore(deps): update dependency @sanity/tsdoc to v1.0.23 (#6329) | b1773b9324 |
renovate[bot] | fix(deps): update dependency @sanity/client to ^6.15.13 (#6331) | 2c4671a37f |
Binoy Patel | chore: fix start-studio build (#6336) | e6c2d11831 |
cngonzalez | fix: use pane key in settings for document lists that do not have types available (#6335) | 57749e5e3c |
Espen Hovlandsdal | chore: move @sanity/import out of monorepo (#6313) |
9ea56b9c3d |
Espen Hovlandsdal | chore: use node: prefix for node module imports (#6321) |
433a7aa74a |
Cody Olsen | fix: regression hiding tool buttons when embedded on Next.js (#6338) | d30cfd9509 |
renovate[bot] | fix(deps): update dependency get-it to ^8.4.21 (#6332) | 98626ec214 |
renovate[bot] | chore(deps): update dependency @sanity/visual-editing to v1.8.8 (#6330) | 89409bde2b |
renovate[bot] | chore(deps): update dependency @sanity/pkg-utils to v6.6.1 (#6342) | f772f88e20 |
renovate[bot] | fix(deps): update dependency @sanity/ui to ^2.1.3 (#6344) | e5c763aa5a |
renovate[bot] | chore(deps): update dependency @sanity/tsdoc to v1.0.26 (#6341) | d986c31362 |
Tommy Petty | fix(pte): fix an issue where when PTE throws exception after resize (#6152) | cf75a0b7fc |
Tommy Petty | fix(cli): add note about webhooks in migration run command (#6112) | 9baf4069b6 |
Binoy Patel | chore: remove * as React imports (#6350) | 04a68cf642 |
Espen Hovlandsdal | refactor(cli): use fs methods for reading package.json files (#6351) | 0339647f1d |
renovate[bot] | chore(deps): update react monorepo (#6353) | 3e03e1bfe4 |
renovate[bot] | chore(deps): update dependency @sanity/pkg-utils to v6.6.3 (#6354) | a27604da27 |
renovate[bot] | chore(deps): update dependency @sanity/tsdoc to v1.0.29 (#6356) | 6f7d186340 |
renovate[bot] | chore(deps): update dependency prettier-plugin-packagejson to ^2.5.0 (#6357) | a380e49e48 |
renovate[bot] | fix(deps): update dependency get-it to ^8.4.23 (#6362) | f08cf40721 |
renovate[bot] | chore(deps): update dependency @sanity/tsdoc to v1.0.30 (#6361) | a211e2d8e4 |
renovate[bot] | chore(deps): update peter-evans/create-pull-request digest to c55203c (#6363) | 6736e29cb4 |
renovate[bot] | chore(deps): update pnpm to v8.15.7 (#6364) | 406a78afb9 |
Cody Olsen | chore: fix tsc build (#6360) | 748e6b0f22 |
renovate[bot] | fix(deps): update dependency @sanity/client to ^6.15.14 (#6367) | aaaf5851df |
Tommy Petty | fix(bug): update to not add annotation in PTE if all fields are null (#6346) | e10fd872c6 |
Per-Kristian Nordnes | fix(core/inputs): fix issues with focus handling (#6370) | eca960e37b |
Herman Wikner | feat(core): display custom styles in PTE style selector (#6275) | ee31fb1d05 |
Bjørge Næss | chore: disallow and remove react default imports (#6369) | 447067f88f |
Binoy Patel | chore(lint): continue linting on error (#6374) | 4d96a892c3 |
Binoy Patel | chore(lint): fixes issue where boundaries lint rule was not working (#6376) | d1066a8904 |
Espen Hovlandsdal | fix(cli): add migration to list of core commands, remove migrate (#6377) |
100048ab5a |
Cody Olsen | fix: crash in hotspot and cropping on Next.js (#6380) | 0dade6273f |
Espen Hovlandsdal | fix(cli): upgrade and unpin import & export modules (#6347) | 905d469667 |
Espen Hovlandsdal | chore(deps): fix broken lockfile | c023b05b7a |
Ash | fix(core): reset global search results when SEARCH_REQUEST_COMPLETE occurs after any action causing search parameters to change (#6224) | 00a5d91ffc |
Ash | feat(core): add prefix search support (#6010) | 3849b5370c |
Herman Wikner | fix(tasks): padding when comment input is focused (#6372) | f6c46cc608 |
renovate[bot] | chore(deps): update dependency @sanity/pkg-utils to v6.6.6 (#6358) | 658568b684 |
RitaDias | fix(block-tools): removal of strikethrough in links when copying from gdocs to PTE (#6382) | 52cf1c7d4a |
renovate[bot] | chore(deps): update dependency @sanity/visual-editing to v1.8.10 (#6383) | 1f26e1bc9d |
renovate[bot] | fix(deps): update dependency @sanity/presentation to v1.12.4 (#6386) | fb78d57c98 |
renovate[bot] | chore(lockfile): update dependency @sanity/react-loader to v1.9.10 (#6385) | 330117ee19 |
renovate[bot] | chore(lockfile): update dependency @sanity/preview-url-secret to v1.6.8 (#6384) | 008ae4286e |
renovate[bot] | chore(deps): update dependency @sanity/tsdoc to v1.0.31 (#6388) | c8b411ac59 |
Per-Kristian Nordnes | fix(form/inputs): Remove obsolete code for restoring selection after editing Annotation (#6389) | b7961fdb59 |
cngonzalez | test(core): unit tests for document actions (#6371) | 89a9696e5b |
Ash | fix(core): ignore locally applied createIfNotExists mutations when using server actions (#6334) | c204a7ae0a |
Herman Wikner | feat(core): make PTE resizable (#6255) | d92eea390f |
cngonzalez | fix: update unit tests to account for new create behavior (#6391) | 55cacc6e5f |
Ash | feat(core): enable Text Search API search strategy by default (#6373) | 679a788850 |
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
sanity typegen generate
would crash due to an incorrect babel configuration pathsanity typegen generate
would crash if the output directory did not existAuthor | Message | Commit |
---|---|---|
renovate[bot] | chore(deps): update dependency @sanity/tsdoc to v1.0.17 (#6289) | 2e99f2af9a |
renovate[bot] | chore(deps): update react monorepo (#6290) | f51142c0f6 |
renovate[bot] | chore(deps): update dependency @sanity/assist to v3 (#6291) | c119f3861f |
Cody Olsen | refactor(test-exports): mark tests that are expected to fail as todo (#6292) |
911a3e20be |
renovate[bot] | chore(lockfile): update dependency @sanity/logos to v2.1.10 (#6293) | 6f66d80dd0 |
renovate[bot] | chore(deps): update dependency @sanity/icons to ^2.11.8 (#6294) | 387c2bd9dc |
renovate[bot] | chore(lockfile): update dependency @sanity/color to v3.0.6 (#6295) | a3061ee69b |
Espen Hovlandsdal | fix(codegen): prevent crash due to incorrect babel config path (#6298) | fc784d1d57 |
Espen Hovlandsdal | fix(cli): ensure output path for types exist before writing (#6300) | e75bffe56f |
renovate[bot] | fix(deps): update dependency @sanity/ui to ^2.1.2 (#6301) | 9ebe73d3eb |
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:
npm install sanity@latest
Author | Message | Commit |
---|---|---|
cngonzalez | fix: disable server actions in test studio (#6270) | f1451a9959 |
renovate[bot] | chore(deps): update dependency @sanity/tsdoc to v1.0.16 (#6272) | 7df486d6d0 |
renovate[bot] | chore(lockfile): update dependency @sanity/google-maps-input to v4.0.1 (#6273) | d64152f57b |
renovate[bot] | chore(lockfile): update dependency @sanity/logos to v2.1.9 (#6274) | 7a894794c8 |
renovate[bot] | chore(lockfile): update dependency @sanity/react-loader to v1.9.9 (#6276) | 072996807d |
renovate[bot] | chore(lockfile): update dependency sanity-plugin-mux-input to v2.3.4 (#6277) | 49a553880d |
renovate[bot] | chore(deps): update dependency @sanity/eslint-config-studio to v4 (#6197) | 0b792e37a1 |
Cody Olsen | chore(deps): update dependency @sanity/pkg-utils to v6 (#6280) | d9992ccad8 |
renovate[bot] | chore(lockfile): update dependency @sanity/assist to v2.0.5 (#6279) | a1efe067e7 |
Cody Olsen | fix: bump styled-components used by npm create sanity (#6281) |
61dbbe28b6 |
renovate[bot] | fix(deps): update dependency @sanity/ui to ^2.1.1 (#6283) | 90c7c57219 |
Cody Olsen | chore: add @repo/test-exports suite (#6284) |
9d2a437eff |
Cody Olsen | fix: restore node ESM strict mode support (#6287) | 46563c8910 |
[email protected]
and @sanity/ui@2
This release comes with version requirements for the following packages:
[email protected]
(required for all Studio projects)@sanity/ui@2
(optional)If you're maintaining a plugin for Sanity Studio, we recommend upgrading its dependencies too.
styled-components
(required)We have seen incompatibility issues when styled-components@5
is used outside of the Vite configuration that ships with sanity
, for example, when the Studio is embedded in a Next.js or Remix project.
Styled Components is a required dependency for Sanity Studio projects. By upgrading it, you can also delete the @types/styled-components
and react-is
dependencies that were required with styled-components@5
:
# npm
npm install sanity@latest styled-components@^6.1
npm rm @types/styled-components react-is
# pnpm
pnpm install sanity@latest styled-components@^6.1
pnpm rm @types/styled-components react-is
# yarn
yarn add sanity@latest styled-components@^6.1
yarn rm @types/styled-components react-is
Note: if you have local customizations in your Sanity Studio that are using styled-components
you may need to make some minor adjustments to the customization code. For more details, please consult the styled-components migration guide.
@sanity/ui
Studio projects that use @sanity/ui
for customizations and have it as a dependency in package.json
needs to upgrade to @sanity/ui@2
:
# npm
npm install "@sanity/ui@^2"
# pnpm
pnpm install "@sanity/ui@^2"
# yarn
yarn add "@sanity/ui@^2"
Sanity Studio now ships with Tasks. You can now:
Tasks ships enabled by default. If you want to disable tasks in your Studio, you can do so with this configuration:
// ./sanity.config.ts|js
export default defineConfig({
// ... rest of config
unstable_tasks: { enabled: false },
})
Learn more about Tasks in the documentation:
.esm.js
exports for legacy bundlerssideEffects: false
conditions to package.json files, improving tree-shaking and reducing bundle sizes for embedded Sanity Studio projectssanity init
was run inside of a Next.js project.scss
or .sass
files from the studio configuration or a descendant file would cause certain CLI commands to crashsanity schema extract
) could not be found when running sanity typegen generate
current
field on slugs required when used with the --enforce-required-fields
flag in sanity typegen
contextsnpx sanity init
in a Next.js project would break the tsconfig.json
configurationAuthor | Message | Commit |
---|---|---|
Cody Olsen | chore(renovate): pin framer-motion to known stable (#6166) | b54852a6e5 |
ecospark[bot] | chore(prettier): fix unformatted files 🤖 ✨ (#6168) | 19891dce77 |
renovate[bot] | chore(deps): update dependency @sanity/icons to ^2.11.6 (#6169) | 9f50f6df47 |
renovate[bot] | chore(deps): update dependency turbo to ^1.13.2 (#6170) | 073b5b8463 |
renovate[bot] | chore(deps): update dependency vite to ^4.5.3 (#6171) | b14d32409e |
renovate[bot] | chore(lockfile): update dependency @portabletext/react to v3.0.15 (#6172) | fbc7183778 |
renovate[bot] | chore(lockfile): update dependency @sanity/color to v3.0.4 (#6173) | cdf561e5c0 |
renovate[bot] | chore(lockfile): update dependency @sanity/logos to v2.1.8 (#6175) | ffb6ddde91 |
renovate[bot] | fix(deps): Update react monorepo (#6176) | c4f24d2a66 |
renovate[bot] | fix(deps): update dependency @sanity/client to ^6.15.9 (#6177) | fbeb6fbabd |
renovate[bot] | chore(deps): update dependency use-hot-module-reload to v2 (#6180) | 39bf293263 |
Cody Olsen | Revert "chore(deps): update dependency use-hot-module-reload to v2 (#6180)" (#6182) | 3b8c28ce11 |
renovate[bot] | fix(deps): update dependency @sanity/ui to ^2.0.13 (#6178) | 4f1b36d245 |
renovate[bot] | fix(deps): update dependency get-it to ^8.4.17 (#6179) | ee162803e9 |
Cody Olsen | fix(deps): pin framer-motion to the same version used by @sanity/ui (#6183) |
7120aa8ce6 |
Cody Olsen | chore: fix typings error | b369d92a27 |
ecospark[bot] | chore(deps): dedupe pnpm-lock.yaml (#6184) | b4f9ba59e0 |
renovate[bot] | chore(deps): lock file maintenance (#6186) | a32e5d57da |
Cody Olsen | chore: pin @sanity/eslint-config-i18n |
89fac9f731 |
Cody Olsen | chore: pin @playwright/test |
1f4700c048 |
Cody Olsen | chore: pin @playwright/experimental-ct-react |
e09a5ef44d |
renovate[bot] | chore(deps): lock file maintenance (#6187) | dcbb7a4c1a |
Cody Olsen | fix: use named styled import for better ESM runtime compat (#6185) |
b544abb372 |
Herman Wikner | fix(comments): weaken references in content snapshot (#6131) | d1f1a4cd40 |
renovate[bot] | chore(deps): update dependency @sanity/pkg-utils to ^4.4.4 (#6191) | 199f3104c5 |
renovate[bot] | chore(deps): update dependency @sanity/visual-editing to v1.8.5 (#6194) | 3113498614 |
renovate[bot] | chore(lockfile): update dependency @sanity/react-loader to v1.9.6 (#6195) | f41b784f8e |
renovate[bot] | chore(deps): update linters to v7 (#6192) | 4247e4fc7c |
Cody Olsen | refactor: support strict: true in @sanity/schema codebase (#6207) |
605bd62b37 |
Cody Olsen | chore: reduce test flakiness by increasing timeout to 60s (#6208) | 1cecb456f3 |
Simeon Griggs | simplify 'shopify' template schema (#6161) | 69ff15fd3a |
Pedro Bonamin | fix(tasks): disable autocomplete on 'assign to' input (#6193) | da49af0835 |
Espen Hovlandsdal | fix(schema): make current field for slugs required (#6205) |
e420b6f11a |
renovate[bot] | fix(deps): update dependency @sanity/ui to ^2.0.14 (#6209) | f4d2e7ebc4 |
Espen Hovlandsdal | fix(cli): do not suggest v2 cli commands on "no such command" error (#6211) | 69ff7ff2c1 |
Espen Hovlandsdal | fix(cli): improve error handling on missing extracted schema (#6204) | 4fb0e66a64 |
renovate[bot] | chore(deps): update dependency use-hot-module-reload to v2 (#6217) | 4385ca879d |
renovate[bot] | chore(deps): replace dependency is-hotkey with is-hotkey-esm ^1.0.0 (#6218) | 12f25d53f8 |
renovate[bot] | chore(deps): update dependency @portabletext/toolkit to ^2.0.14 (#6219) | a72b65214d |
renovate[bot] | chore(deps): update dependency @types/arrify to ^1.0.4 (#6220) | 25a95a0a87 |
renovate[bot] | fix(deps): update dependency get-it to ^8.4.18 (#6222) | 70f0963337 |
renovate[bot] | chore(lockfile): update dependency @portabletext/react to v3.0.17 (#6221) | a4de075223 |
renovate[bot] | fix(deps): update dependency @sanity/client to ^6.15.10 (#6228) | ba323ae876 |
renovate[bot] | chore(deps): update dependency @babel/preset-env to ^7.24.4 (#6226) | 7c60f3ed7b |
renovate[bot] | chore(lockfile): update dependency @sanity/icons to v2.11.7 (#6174) | 1af2e4f8b0 |
renovate[bot] | chore(deps): update dependency @sanity/icons to ^2.11.7 (#6231) | 830f403368 |
renovate[bot] | fix(deps): update dependency @sanity/ui to ^2.0.15 (#6229) | a6eb947793 |
renovate[bot] | chore(lockfile): update dependency @sanity/color to v3.0.5 (#6232) | 7887f0d84a |
renovate[bot] | chore(lockfile): update dependency @sanity/logos to v2.1.9 (#6233) | c1b72fc6b6 |
Espen Hovlandsdal | fix(cli): use stub file loader for scss, sass extensions (#6215) | 80f4f220f1 |
renovate[bot] | fix(deps): update dependency @sanity/presentation to v1.12.2 (#6235) | acbb08a9d3 |
renovate[bot] | chore(deps): update dependency @sanity/visual-editing to v1.8.6 (#6237) | f0f653760e |
Cody Olsen | refactor(renovate): ignore slate and slate-react as they're bumped manually (#6242) |
6fc2bbbde6 |
ecospark[bot] | chore(prettier): fix unformatted files 🤖 ✨ (#6243) | ef3385745f |
Bjørge Næss | fix(cli): formalize requirement of styled-components@6 and @sanity/ui@2 (#6234) | 5fe2d47f49 |
renovate[bot] | chore(lockfile): update dependency @sanity/preview-url-secret to v1.6.6 (#6238) | a4be162b23 |
renovate[bot] | chore(lockfile): update dependency @sanity/react-loader to v1.9.7 (#6239) | debb2cc37f |
Cody Olsen | refactor(CI): use the official github app token generator action (#6230) | 40dff99a6f |
renovate[bot] | fix(deps): update dependency @sanity/ui to ^2.0.16 (#6241) | 58c319a82d |
Binoy Patel | chore(core): remove unusued ChangeIndicatorContext (#6214) | e9788135b9 |
Pedro Bonamin | fix(core): add readOnly prop to dragHandle (#6190) | 234d009826 |
renovate[bot] | chore(deps): update dependency @sanity/visual-editing to v1.8.7 (#6248) | 4a31e88f17 |
renovate[bot] | chore(lockfile): update dependency @sanity/preview-url-secret to v1.6.7 (#6249) | e89a8b3e5c |
renovate[bot] | chore(lockfile): update dependency @sanity/react-loader to v1.9.9 (#6250) | 736a96ed92 |
renovate[bot] | fix(deps): update dependency @sanity/presentation to v1.12.3 (#6251) | 0959294ef6 |
renovate[bot] | chore(lockfile): update dependency sanity-plugin-mux-input to v2.3.0 (#6252) | 56660996d9 |
renovate[bot] | fix(deps): update dependency @sanity/client to ^6.15.11 (#6253) | a3b7458352 |
renovate[bot] | fix(deps): update dependency @sanity/ui to ^2.1.0 (#6254) | 6b2abb996d |
Pedro Bonamin | fix(tasks): change tasks button in nav to be toggle (#6236) | 8e40ecb086 |
cngonzalez | feat(core): add serverActions flag to config (#6212) | 1b94d404f4 |
Knut Melvær | fix: replace the JSON5 parser with JSON (#6149) | fe11588c74 |
Pedro Bonamin | fix(tasks): tasks UI updates. (#6136) | d45b210dcb |
ecospark[bot] | chore(deps): dedupe pnpm-lock.yaml (#6258) | 7b44425e75 |
renovate[bot] | chore(lockfile): update dependency @sanity/logos to v2.1.9 (#6259) | 1d998a02dd |
renovate[bot] | chore(lockfile): update dependency @sanity/react-loader to v1.9.9 (#6260) | a32df3a6fc |
renovate[bot] | chore(deps): update dependency @sanity/google-maps-input to v4 (#6262) | e63ce42504 |
renovate[bot] | chore(lockfile): update dependency sanity-plugin-mux-input to v2.3.0 (#6261) | 79c5bb10d3 |
renovate[bot] | chore(deps): lock file maintenance (#6264) | 787aa33b09 |
renovate[bot] | chore(lockfile): update dependency i18next to v23.11.0 (#6263) | 64c6a13bae |
renovate[bot] | chore(lockfile): update dependency @portabletext/react to v3.0.17 (#6265) | 3a7d2fd9ef |
renovate[bot] | chore(lockfile): update dependency sanity-plugin-mux-input to v2.3.1 (#6266) | 4e3afaca17 |
Ash | fix(structure): prevent duplication of search filters when listenSearchQuery is used (e.g. in document lists) (#6247) |
fce97c7898 |
Cody Olsen | fix: upgrade to @sanity/pkg-utils v5 and use updated ESM best practices (#5983) |
62a6810bf8 |
Pedro Bonamin | feat(tasks): add tasks upsell ui (#6216) | 658262e720 |
Pedro Bonamin | feat(tasks): add telemetry events to tasks (#6246) | 346600cc7a |
Ash | feat(core): adopt Actions API (#6257) | 4d4522400d |
Bjørge Næss | fix(deps): narrow accepted peer dependency range of style-components (#6271) | 1ac127b33c |
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
Author | Message | Commit |
---|---|---|
Pedro Bonamin | fix(core): remove custom options in comments upsell request (#6201) | 46c7ce8ed9 |
Pedro Bonamin | fix(structure): annotations not opening in portable text editor (#6198) | 907c904336 |
To initiate a new Studio without installing the CLI globally:
npm create sanity@latest
To upgrade a Sanity Studio, run this command in its folder:
npm install sanity@latest
--enforce-required-fields
flag for the sanity typegen generate
command not correctly respecting validation rulesAuthor | Message | Commit |
---|---|---|
Tommy Petty | fix(pte): update default height of PTE in Form (#6119) | 5756753c49 |
Sindre Gulseth | fix(schema-extraction): check for _required field in validation rules (#6151) | 5ba26a5746 |
Cody Olsen | chore: add prettier-plugin-packagejson (#6155) | 8f7fe70de2 |
renovate[bot] | chore(deps): update pnpm to v8.15.6 (#6154) | 07b0745a2e |
renovate[bot] | chore(lockfile): update dependency framer-motion to v11.0.24 (#6144) | 954c8921d4 |
Rupert Dunk | fix(structure): improve document pane path handling (#6129) | 9b4d1059dd |
renovate[bot] | chore(deps): update babel monorepo (#6159) | eb97fe2364 |
renovate[bot] | chore(deps): update dependency @types/babel__traverse to ^7.20.5 (#6160) | 16f32c9614 |
Sindre Gulseth | feat(schema): handle assetRequired when extracting schema with enforceRequiredFields (#6157) | cd529795a3 |
Sindre Gulseth | chore(deps): upgrade groq-js to latest (#6162) | 8db748575b |
Pedro Bonamin | fix(tasks): don't open tasks search on hotkey + enter (#6165) | d3873165eb |
ecospark[bot] | chore(deps): dedupe pnpm-lock.yaml (#6164) | 74a7a75470 |
Sindre Gulseth | chore(codegen): add enforceRequriedFields to spinner output (#6163) | b68e6501af |
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
Sanity LocaleContext value missing
.Author | Message | Commit |
---|---|---|
Pedro Bonamin | fix(tasks): don't lowercase users when searching in the assignee menu (#6138) | 27643c8a37 |
cngonzalez | fix: add default listFormat locale where LocaleProvider may not be available (#6147) | 3c4d4cf1d4 |