github sanity-io/sanity v3.40.0

latest releases: v3.64.1, v3.64.0, v2.36.6...
6 months ago

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 ReferenceInputOptionsContext to singletons 19311e4
Binoy Patel refactor(core): move ValidationContext to singletons cab8131
Binoy Patel refactor(core): move ReviewChangesContext to singletons 79e4bfa
Binoy Patel refactor(core): move LocaleContext to singletons d614474
Binoy Patel refactor(core): move FormFieldPresenceContext to singletons 16d87a1
Binoy Patel refactor(core): move ResourceCacheContext to singletons b64d789
Binoy Patel refactor(core): move ColorSchemeValueContext to singletons 23e50fb
Binoy Patel refactor(core): move ColorSchemeSetValueContext to singletons 5db6f24
Binoy Patel refactor(core): move SourceContext to singletons 896ed1e
Binoy Patel refactor(core): move WorkspaceContext to singletons 96e1bb7
Binoy Patel refactor(core): move NavbarContext to singletons 2601315
Binoy Patel refactor(core): move ActiveWorkspaceMatcherContext to singletons 2ac5f1b
Binoy Patel refactor(core): move AddonDatasetContext to singletons b1e2f60
Binoy Patel refactor(core): move FreeTrialContext to singletons fd7dca3
Binoy Patel refactor(core): move CalendarContext to singletons 0f0d13f
Binoy Patel refactor(core): move SearchContext to singletons b4a8f3b
Binoy Patel refactor(core): move RouterHistoryContext to singletons dbf67a8
Binoy Patel refactor(singletons): revert exporting free trial types on sanity 198df70
Binoy Patel refactor(core): move WorkspacesContext to singletons 7e3775d
Binoy Patel refactor(core): move UserColorManagerContext to singletons 548952e
Binoy Patel fix(singletons): fix build issues and move CalendarContext interface back b3de008
Binoy Patel refactor(router): move RouterContext to singletons 56dd5be
Binoy Patel refactor(structure): move StructureToolContext to singletons d385839
Binoy Patel refactor(structure): move PaneContext to singletons bef2ba2
Binoy Patel refactor(structure): move DocumentPaneContext to singletons 73cbcd1
Binoy Patel fix(singletons): use relative path for StructureToolContextValue type 30204c7
Binoy Patel refactor(structure): move CommentInputContext to singletons 6247093
Binoy Patel refactor(structure): move CommentsAuthoringPathContext to singletons 6555ffc
Binoy Patel refactor(structure): move CommentsContext to singletons 94950b7
Binoy Patel refactor(structure): move CommentsEnabledContext to singeltons 8780274
Binoy Patel refactor(structure): move comments contexts to singletons fd327ee
Binoy Patel refactor(structure): move PaneLayoutContext to singletons 569c0f9
Binoy Patel refactor(structure): move PaneRouterContext to singletons e765a47
Binoy Patel fix(structure): expose PaneRouterContext from structure ab835d9
Binoy Patel refactor(tasks): move TasksEnabledContext to singletons 453d260
Binoy Patel refactor(tasks): move MentionUserContext to singletons 924f5b0
Binoy Patel refactor(tasks): move TasksNavigationContext to singletons 2bb6668
Binoy Patel refactor(tasks): move TasksContext to singletons 9a8ed79
Binoy Patel fix: build after pkg-utils@5 upgrade c3b756b
Binoy Patel refactor(tasks): move TasksUpsellContext to singletons b422fab
Binoy Patel chore(lint): only allow relative type imports in singeltons 8e3dc30
Binoy Patel chore(lint): update eslint to be specific about imports 932f459
Binoy Patel refactor(singletons): use relative type imports a57e70c
Binoy Patel refactor(singletons): move core context to core folder f62078c
Binoy Patel fix(core): export AddonDataSetContext from singletons 970cf7d
Binoy Patel chore(core): remove AddonDatasetContext exports f29d0dd
Binoy Patel fix(build): add missing legacy exports and types information 2053b1f
Binoy Patel fix: fix linting and type errors after rebase c093246
Binoy Patel refactor(singletons): move tasks to core bfcdc44
Binoy Patel fix(router): expose RouterContext from sanity/router 7eeda3b
Binoy Patel refactor(tasks): move isLastPane context to singletons 968ae85
Binoy Patel chore: add _singletons to tsconfig paths 684bb8a
Binoy Patel refactor(schedule-publishing): move DocumentActionPropsContext to singletons dab96b5
Binoy Patel refactor(scheduled-publishing): move ScheduledPublishingEnabledContext to singletons 00fc838
Binoy Patel refactor(scheduled-publishing): move SchedulePublishUpsellContext to singletons 2164666
Binoy Patel refactor(scheduled-publishing): move SchedulesContext to singletons d946d30
Binoy Patel fix: next studio build 52bcbda
Binoy Patel chore: add eslint rule for disabling createContext outside _singletons (#6349) d79f363
Herman Wikner fix(comments): inline comment creation issue in Safari (#6510) 3b4a7e6
Herman Wikner fix(core): skip reset presence selection on PTE blur (#6511) f0c94f1
Pedro Bonamin fix(scheduled-publishing): deprecated error toast shows multiple times (#6513) 21d5b32
Sindre Gulseth chore(typegen): track empty union type nodes generated (#6495) 124be88
Espen Hovlandsdal chore(deps): upgrade to react 18.3.1 (#6505) 9e2cf15
ecospark[bot] chore(deps): dedupe pnpm-lock.yaml (#6515) cc106e4
jordanl17 fix: statusButton requires provided aria-label (#6430) 06c67fc
renovate[bot] chore(deps): update dependency @sanity/tsdoc to v1.0.41 (#6518) 7876a0a
renovate[bot] chore(lockfile): update dependency @sanity/react-loader to v1.9.16 (#6519) e618da3
RitaDias chore(sanity): remove beta and unstable from comments and tasks (#6478) f92ba3e
renovate[bot] chore(deps): update pnpm to v8.15.8 (#6526) 0982673
renovate[bot] chore(deps): update dependency @sanity/pkg-utils to v6.8.9 (#6525) bc85a3d
Nina Andal Aarvik fix(structure): add string for duplicate event (#6523) f51b157
renovate[bot] chore(lockfile): update dependency @babel/preset-env to v7.24.5 (#6528) dbb26b7
Per-Kristian Nordnes fix(portable-text-editor): fix issue where decoration on inline object would cause freeze (#6531) f03f6eb
renovate[bot] chore(deps): update dependency @sanity/tsdoc to v1.0.42 (#6529) c893c77
Per-Kristian Nordnes fix(portable-text-editor): fix issue where decoration would not target correctly (#6532) 251d592

Don't miss a new sanity release

NewReleases is sending notifications on new releases.