Releases: sanity-io/sanity
v3.49.0
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
New TypeGen Features
Better GROQ Function Coverage
We have added the following improvements to type generation for GROQ query results:
- Added support for array functions
- Added support for
dateTime::now()
andglobal::now()
. - Added support for
round()
,upper()
, andlower()
functions. - Support negative groups in conditions:
*[!(_type == "post")]
Improved Union Handling in TypeGen
TypeGen now correctly expands all unions inside an object, addressing this reported issue on GitHub. Previously, only a part of a union might be returned. TypeGen now ensures that all object types in a union are expanded and included in the generated types.
// Example query
export const HomePageQuery = groq`*[_type == "page" && slug.current == "homepage"]{
title,
components[] {
_type == "hero" => { title, "image": image.asset->url },
_type == "cta" => { title, link }
}
}`;
TyeGen will now generate the following type for the query above:
export type HomePageQueryResult = Array<{
title: string;
components: Array<
| { _type: 'hero'; title: string; image: string }
| { _type: 'cta'; title: string; link: string }
>;
}>;
New import path for the Portable Text Editor
We’ve started work on a standalone Portable Text Editor package, and thus transitioned to using the @portabletext/editor
package instead of the now deprecated @sanity/portable-text-editor
package. This change includes several internal improvements and fixes. You can follow this work in this repository on GitHub — more documentation to come.
Advanced users who have used the @sanity/portable-text-editor
dependecy should update to @portabletext/editor
to ensure continued support and improvements.
🐛 Notable bugfixes
- Fixes an issue where
FormInput
would not render fields inside a fieldset. - Various TypeGen bug fixes.
📓 Full changelog
Author | Message | Commit |
---|---|---|
Cody Olsen | chore(deps): upgrade turbo to v2 (#6985) | 2fb8f9b |
Nina Andal Aarvik | fix(core): change padding to fix tab box (#7000) | 7ed682e |
Herman Wikner | fix(core): handle fieldset members in FormInput (#7045) |
b932de6 |
ecospark[bot] | chore(deps): dedupe pnpm-lock.yaml (#7034) | 8820979 |
Herman Wikner | fix(core): open PTE dialogs in tree editing dialog with openPath (#7046) |
d0b9ab0 |
renovate[bot] | fix(deps): update dependency groq-js to ^1.10.0 (#7053) | 628cb76 |
Rico Kahler | refactor: use @portabletext/editor instead of @sanity/portable-text-editor (#7035) |
9864985 |
renovate[bot] | fix(deps): update dependency get-it to ^8.6.2 (#7052) | b73b68c |
renovate[bot] | fix(deps): update dependency @sanity/export to ^3.40.0 (#7056) | c44c405 |
v3.48.1
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 a regression that caused the Select button to not appear for single-asset sources.
- Fixes a bug to allow the
--no-dry-run
and--no-confirm
CLI options to be used together. Big thanks to @pawelngei!
📓 Full changelog
Author | Message | Commit |
---|---|---|
Binoy Patel | fix(core): update url for notify endpoint (#7022) | 6e2ad73 |
Christian Grøngaard | chore(page-building): clean up schema types (#6973) | af414d5 |
Rostislav Melkumyan | Fix(CLI): Set integration value for createProject directly in the createProject function (#7021) | 2d11505 |
ecospark[bot] | chore(deps): dedupe pnpm-lock.yaml (#7028) | 8c66d24 |
Jason Rose | Fixes NO_CHANGES localization key (#7008) | 666c420 |
Carolina Gonzalez | fix: check for telemetry consent before error reporting (#7019) | 83e1111 |
Rico Kahler | fix(core): put back select button for single-asset source (#7030) | 4af12eb |
Rico Kahler | fix(cli): allow no-confirm no-dry-run migrations (#7031) | b06d143 |
Rico Kahler | build: remove Version step from release workflow (#7032) |
5006d7f |
3.48.0
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 an issue that caused trailing commas to appear when sanitizing schemas.
- Adds periodic debug logging and improves error handling in the
dataset export
workflow.
📓 Full changelog
Author | Message | Commit |
---|---|---|
ecospark[bot] | chore(deps): dedupe pnpm-lock.yaml (#6994) | 1d3b68d |
Fred Carlsen | chore(ci): upgrade pnpm setup to use node20 (#6968) | e39e7f6 |
RitaDias | test(e2e): rewrite e2e toolbar tests to component tests & update e2e expectations on others (#6967) | 5aa2ee8 |
renovate[bot] | chore(deps): update dependency recast to ^0.23.9 (#7006) | b29a444 |
Rostislav Melkumyan | fix: remove trailing commas when sanitizing (#7007) | 6b9f910 |
Christian Grøngaard | feat(core): support insert menu options in array item context menus (#6921) | 784cfd3 |
RitaDias | feat(core): array editing improvements (#6682) | 6fbfcdc |
Herman Wikner | fix(core): tree editing dialog open issue (#7013) | fcb09f9 |
Sindre Gulseth | chore(deps): always bump @sanity/export package (#7010) | fd6f56c |
renovate[bot] | fix(deps): update dependency @sanity/export to ^3.38.2 (#7015) | d09cc9b |
Rico Kahler | chore: update release note template (#7017) | 7e633bb |
Christian Grøngaard | fix: deprecate @sanity/portable-text-editor (#7020) | f2ddfa7 |
Rico Kahler | feat: utilize timestamps in build and renderDocument for AUS (#6964) | a1da8cc |
Rico Kahler | feat: include hashes in vendor builds (#7018) | 4bbe337 |
v3.47.1
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 potential crash in certain javascript environments when trying to access process.env
- Errors occuring during a migration now provides more details
📓 Full changelog
Author | Message | Commit |
---|---|---|
ecospark[bot] | chore(deps): dedupe pnpm-lock.yaml (#6975) | 355e1b9 |
Binoy Patel | fix(migrate): fixes error message to be more helpful (#6986) | df89f88 |
Espen Hovlandsdal | fix(cli): correct noop return value on esbuild-register in dev (#6990) | 51ecce0 |
Espen Hovlandsdal | fix(core): make version check not depend on process.env (#6991) |
7c00b8f |
v3.47.0
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
Array insert menu
This release includes a much requested upgrade of the array insert menu with various new options available. Including a new and more informative grid view, the ability to organize available schema types in groups, and filter them with a search term, and more. Check out the array article in the docs for examples.
Other features
Adds a type export of all the discovered Sanity schema variants resulting from running sanity typegen
in the CLI. This can be useful in mocks/testing environments and used by third party tools to get a list of potential types. This union type is accessible as AllSanitySchemaTypes
in the generated type definitions.
🐛 Notable bugfixes
- Fixes an issue where a text preview image would be included into the Portable Text Editor (PTE) when pasting text from Word.
- Fixes an issue where navigation options were not being passed as expected when calling a scoped router's navigate function.
- Fixes an issue where the PTE wouldn't activate when you start dragging files into it.
- Images in the
Hotspot & Crop
tool now render faster, and use far less memory. - Reduces layout shift when uploading images that replace existing image assets.
- Fixes an issue that could cause a 409 error when restoring a document from history.
- Fixes an issue where image and file types might be listed in their lowercase variant in array insert menus
📓 Full changelog
Author | Message | Commit |
---|---|---|
ecospark[bot] | chore(deps): dedupe pnpm-lock.yaml (#6916) | 7f20f24 |
renovate[bot] | chore(deps): update dependency @sanity/tsdoc to v1.0.72 (#6911) | 7d312e4 |
Cody Olsen | feat(deps): upgrade react-rx to v3 (#6883) | c0fe9f6 |
renovate[bot] | fix(deps): Update dev-non-major (#6915) | f00ca7e |
Per-Kristian Nordnes | fix(core): fix issue with pasting mixed content (files and text) for pt-input (#6924) | fda9387 |
Rupert Dunk | fix(router): pass options on scoped router navigation (#6923) | 2fabc2e |
Fred Carlsen | chore: clean playwright-ct cache on each run (#6928) | 286aaed |
Fred Carlsen | fix(form): activate PTE input when dragging files (#6929) | a2be16c |
Ash | chore: update lockfile (#6932) | d935a3a |
Cody Olsen | fix: improve perf of by creating the canvas in a side effect (#6874) | 5d8031b |
Cody Olsen | fix: layout shift when uploading images (#6930) | ae142d4 |
renovate[bot] | fix(deps): Update dev-non-major (#6941) | 3300904 |
renovate[bot] | fix(deps): update dependency @sanity/presentation to v1.16.0 (#6942) | abe562b |
renovate[bot] | fix(deps): update dependency @sanity/ui to ^2.3.6 (#6943) | c1869b9 |
renovate[bot] | chore(lockfile): update dependency @sanity/import to v3.37.5 (#6940) | 6cfe40e |
Cody Olsen | fix: change useListFormat to no longer violate the rule of hooks (#6876) |
cae047f |
Bjørge Næss | fix(sanity): only include create action when restoring a deleted document (#6937) | 2736835 |
Cody Olsen | refactor: change memoization of margins to support the rule of hooks (#6875) | fbf90ec |
Espen Hovlandsdal | fix(schema): use base type for title if no subtype title or name is given (#6947) | bbe7ac0 |
Binoy Patel | fix(cli): account for base path in the importmap (#6919) | 8f28054 |
renovate[bot] | chore(lockfile): update dependency @sanity/bifur-client to v0.4.1 (#6939) | e161e0b |
Nina Andal Aarvik | fix(vision): center loading spinner (#6900) | 5943d4f |
Christian Grøngaard | chore: allow clean:deps to remove test studio node_modules (#6951) | 339128d |
Christian Grøngaard | feat(core): new insert menu for arrays with filtering, type preview support (#6853) | 203f135 |
ecospark[bot] | chore(deps): dedupe pnpm-lock.yaml (#6957) | 4b89dd5 |
renovate[bot] | fix(deps): Update dev-non-major (#6958) | d89acea |
renovate[bot] | fix(deps): update dependency @sanity/ui to ^2.4.0 (#6959) | 5a38691 |
Sindre Gulseth | feat(typegen): add all schema types exported union | 5d97a0e |
Sindre Gulseth | Revert "feat(typegen): add all schema types exported union" | e65adee |
RitaDias | test(e2e): update e2e flaky tests (#6927) | 6b20e5f |
Sindre Gulseth | feat(typegen): add all schema types exported union (#6962) | fa459a4 |
Ash | test(e2e): ensure custom publish action can patch document before publication | 17d0bbf |
Ash | fix(sanity): remove ifDraftRevisionId optimistic lock usage when publishing documents |
3064705 |
Christian Grøngaard | fix(core): make array insert menu full width if grid view is configured (#6969) | 47d204c |
Christian Grøngaard | deps(core): update @sanity/insert-menu (#6971) | de01b7c |
Bjørge Næss | fix(structure): don't replace url when navigating back to list after document deletion (#6953) | f662ae2 |
Bjørge Næss | refactor(core): change revision history label from 'Version' to the more accurate 'Revision' (#6956) | b90820c |
Espen Hovlandsdal | feat(core): implement basic error reporting (#6914) | 02dab2a |
Binoy Patel | fix(ci): importmap path on windows (#6948) | 6bbf609 |
Carolina Gonzalez | feat: notify AUS studio users of new studio versions (#6893) | e9b16c8 |
v3.46.1
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 bug causing Structure Tool to crash when attempting to read the
scrollTop
of a nonexistent element.
📓 Full changelog
Author | Message | Commit |
---|---|---|
Ash | fix(sanity): ignore sticky overlay regions with a falsey DOM node (#6910) | 4f1be6c |
v3.46.0
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 an issue where projects with a large amount of users would sometimes get a request error when loading user info.
- Form input components now have their own error boundaries, limiting crashes to a field level on a document form, instead of taking down the entire Structure Tool.
- Fixes React 19 causing the Portable Text Editor (PTE) to crash in some scenarios.
- Fixes an issue where searching for text within fields of type
text
(notstring
) would not yield results. - Fixes an issue when dragging PTE blocks.
- Fixes a visual regression in PTE fullscreen mode where the Drop to upload files message would be positioned incorrectly.
- Fixes a regression where pasting from Word would insert an image version of the text being pasted instead of the actual text.
📓 Full changelog
Author | Message | Commit |
---|---|---|
Christian Grøngaard | chore(core): abstract getSchemaTypeIcon (#6844) |
6693c54 |
Rostislav Melkumyan | feat: add integration when creating a new project through cli (#6639) | ac214b8 |
jordanl17 | fix(structure): fixing issue with shift mutli select of documents (#6857) | 15861f4 |
Espen Hovlandsdal | fix(core): chunk user loading into batches of max 400 items (#6858) | 4531750 |
ecospark[bot] | chore(deps): dedupe pnpm-lock.yaml (#6849) | 73861ef |
renovate[bot] | chore(deps): update dependency @sanity/pkg-utils to v6.9.0 (#6850) | 4b6d33f |
renovate[bot] | chore(lockfile): update dependency @sanity/bifur-client to v0.4.1 (#6860) | c1c2ab2 |
renovate[bot] | fix(deps): Update babel monorepo (#6861) | 4fa813d |
renovate[bot] | chore(lockfile): update dependency @sanity/icons to v3.2.0 (#6864) | 513601c |
renovate[bot] | fix(deps): update dependency @sanity/ui to ^2.3.1 (#6851) | 74d4e67 |
renovate[bot] | chore(deps): update dependency @sanity/icons to ^3.2.0 (#6863) | c03c346 |
renovate[bot] | fix(deps): Update dev-non-major (#6862) | 74f8080 |
Carolina Gonzalez | feat: add hasSanityPackageInImportMap (#6832) | 8ea7d8f |
Cody Olsen | feat: add error boundary for form input components (#6869) | 23c42ae |
Cody Olsen | fix: portable text editor crash on React 19 (#6870) | 293e7d1 |
Cody Olsen | refactor: replace useForwardedRef with useImperativeHandle (#6830) |
23bac62 |
renovate[bot] | fix(deps): update dependency get-it to ^8.6.0 (#6884) | 9f5e29f |
ecospark[bot] | chore(deps): dedupe pnpm-lock.yaml (#6892) | 5c01ef6 |
Cody Olsen | refactor: lift useCallback out of useAsync so it can be compiled (#6873) |
08f79a4 |
Espen Hovlandsdal | fix(search): include text type fields in search queries (#6895) |
5e505ac |
RitaDias | test(e2e): update timeouts for opening popovers (#6871) | 1befff1 |
Pedro Bonamin | fix(scheduled-publishing): export EditScheduleForm from core (#6872) | 43711d7 |
Rico Kahler | feat: add CLI options to enable auto-updating studios (#6514) | 5077c8b |
Binoy Patel | feat(cli): show prompt if local version doesn't match remote (#6707) | 50f1e54 |
Binoy Patel | fix(cli): allow using auto-updates in unattended mode (#6897) | 61f1f8c |
ecospark[bot] | chore(deps): dedupe pnpm-lock.yaml (#6899) | 07454a1 |
Christian Grøngaard | fix(form): avoid spreading key prop (#6887) | 51eb56a |
renovate[bot] | fix(deps): update dependency @sanity/client to ^6.20.0 (#6886) | 124dc22 |
Fred Carlsen | fix(core): fix dragging existing blocks in pte (#6867) | 0d92883 |
renovate[bot] | chore(deps): update dependency @sanity/pkg-utils to v6.9.3 (#6903) | 7f18d45 |
renovate[bot] | chore(deps): update dependency turbo to ^1.13.4 (#6905) | 576dd3f |
renovate[bot] | chore(deps): update dependency @vitejs/plugin-react to ^4.3.1 (#6904) | 24255b4 |
Cody Olsen | fix: regression causing ESM build errors (#6909) | 0b92a8e |
renovate[bot] | chore(deps): update dependency esbuild to ^0.21.5 (#6908) | 69496d1 |
v3.45.0
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
- The studio initialization command now allows you to specify a package manager with a flag in a single line. This was previously only possible to do via an interactive CLI prompt. You can now skip this step:
npm create sanity@latest --package-manager pnpm
- The
dryRun
parameter is now available in the context provided for thedefineMigration
command available fromsanity/migrate
. This allows developers to write scripts that skip certain actions (for example, mutating external data stores) if it is only a dry run. An example might look like this:
import { defineMigration } from "sanity/migrate"
/**
* Run this migration with
* `npx sanity migration run my-migration`
*/
export default defineMigration({
title: "my-migration",
// pass whether the migration is a dry-run as context
async *migrate(documents, { dryRun }) {
for await (const document of documents()) {
if(dryRun) {
// Only log the effect
console.log(`Something happened`)
} else {
// Execute the side-effect
await thirdPartyRequest()
}
// ... do something with the document, maybe yield patches
}
},
})
🐛 Notable bugfixes
- Fixes an issue where image/file assets would not be listed in Structure lists, even if specified to do so.
📓 Full changelog
Author | Message | Commit |
---|---|---|
Espen Hovlandsdal | fix(structure): allow searching/listing ignored types when explicitly requested (#6771) | 5b66664 |
Cody Olsen | chore: setup a separate compiled studio, bump to 19rc (#6808) | 25be802 |
Christian Grøngaard | fix(types): correct ArrayOptions (#6737) |
39da169 |
Ash | fix(sanity): align Actions API usage with correct types | f07d7ae |
Ash | chore(deps): update @sanity/client |
f9f2356 |
RitaDias | test(core): update e2e test for toolbar in PTE to be more reliable (#6811) | cd901d1 |
Cody Olsen | fix: handle circular import issue in a compiler friendly way (#6812) | 8ac809f |
renovate[bot] | fix(deps): Update dev-non-major (#6809) | a9662ec |
Binoy Patel | test(core): update snapshot for failing test (#6818) | 52e4cfa |
Christian Grøngaard | chore(page-building): use first-class icons instead of media (#6752) | dd7956a |
Noah Gentile | feat(migrate): add dryRun to context (#6816) |
104162a |
Cody Olsen | fix: use useImperativeHandle instead of mutating a parent ref (#6813) |
13158e9 |
ecospark[bot] | chore(lint): fix linter issues 🤖 ✨ (#6825) | cec43ad |
renovate[bot] | fix(deps): update dependency @sanity/presentation to v1.15.13 (#6823) | d0e5e95 |
Cody Olsen | fix: regression in #6813 (#6827) | 8ac0812 |
RitaDias | test(test): update e2e pte toolbar test (#6822) | 4487680 |
RitaDias | test(sanity): update hydrate test (#6821) | 0cefc21 |
Binoy Patel | feat(cli): allow the ability to specify package manager in init command (#6820) | f1ef0a6 |
Cody Olsen | fix: call dynamic hooks in a way that can be compiled (#6814) | 6e65eed |
renovate[bot] | chore(lockfile): update dependency prettier to v3.3.0 (#6834) | f279329 |
ecospark[bot] | chore(lint): fix linter issues 🤖 ✨ (#6836) | 61fd6bb |
renovate[bot] | chore(deps): update dependency @sanity/pkg-utils to v6.8.19 (#6837) | 700879a |
shur | feat: move up call to PATCH metadata after bootstrapping template files (#6828) | 7d47a51 |
renovate[bot] | chore(deps): update dependency @sanity/tsdoc to v1.0.70 (#6838) | c794957 |
renovate[bot] | fix(deps): Update dev-non-major (#6841) | 48022c1 |
renovate[bot] | chore(deps): update dependency @types/react to ^18.3.3 (#6840) | 0ce52e9 |
renovate[bot] | chore(lockfile): update dependency @sanity/import to v3.37.5 (#6842) | df67883 |
jordanl17 | feat(structure): sheet list table columns selectors style edx-1435 (#6839) | 6d53c4c |
Christian Grøngaard | refactor(core): rename InsertMenu->InsertMenuGroups (#6845) | e1fd6bf |
v3.44.0
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
Customizing restore action now works
This releases fixes a bug preventing developers removing or customising the "restore" document action using the document.actions
Studio configuration property.
Studio will now respect changes you make to the "restore" document action, but please note that you must set the action
property to "restore"
on your DocumentActionComponent
. The action
property allows Studio to identify the restore action.
Example
import {RocketIcon} from '@sanity/icons'
import {type DocumentActionComponent} from 'sanity'
export const TestCustomRestoreAction: (
action: DocumentActionComponent,
) => DocumentActionComponent = (restoreAction) => {
const action: DocumentActionComponent = (props) => ({
...restoreAction(props),
label: 'Custom restore',
tone: 'positive',
icon: RocketIcon,
})
+ action.action = 'restore'
return action
}
Other bugfixes
- Fixes an issue that could under certain conditions cause a circular structure to enter an infinite loop. Shoutout to @sarahsvedenborg and @stian-svedenborg for identifying the issue and proposing a fix.
- Resolves a type error caused by the missing
preview
property inDocumentComponents
. - Fixes an issue causing cross dataset reference search not returning hits in certain cases.
- Improves text selection of full screen Portable Text editors (PTE).
- Fixes issue where nested fullscreen PTEs were unable to open the block style dropdown.
- Fixes issue causing EXIF metadata not being included when uplading multiple images through drag + drop. Thanks @xuzuodong!
- Fixes bugs related to when the PTE is using a Reference input directly as the annotation type (not wrapped in a object type).
- Add automatically resolving of some validation errors in the PTE.
- Fixes bug causing "Untitled" to appear as title for array and object fields, even when explicitly passing undefined as title to renderDefault().
📓 Full changelog
Author | Message | Commit |
---|---|---|
ecospark[bot] | chore(deps): dedupe pnpm-lock.yaml (#6731) | 1587dfe |
Pedro Bonamin | fix(core): add retry to image observer and loading state (#6709) | 0f51f9d |
Ash | feat(sanity): use optimistic locking when publishing documents (#6711) | 6fe8c69 |
jordanl17 | EDX-1352: batch select sheet list documents (#6713) | 10b596a |
Michael | fix(cli): graphql api flag is respected during validation (#6615) | c739eea |
renovate[bot] | chore(lockfile): update dependency @sanity/telemetry to v0.7.8 (#6732) | 4307a3c |
renovate[bot] | chore(lockfile): update dependency i18next to v23.11.5 (#6733) | 922235f |
Per-Kristian Nordnes | refactor(portable-text-editor): automatically resolve some validation errors (#6705) | 6062a9a |
Per-Kristian Nordnes | fix(core/form): prohibit focus and unset on root input (#6706) | 4a2f141 |
Cody Olsen | chore: setup CI check for react compiler errors (#6730) | 9c7175f |
ecospark[bot] | chore(deps): dedupe pnpm-lock.yaml (#6734) | fe807a8 |
Hash Brown | fix: EXIF data on Image asset not included when uploading multiple images to array type, or via drag-and-drop (#6708) | 222418a |
Robin Pyon | fix(pte): improve text selection in fullscreen inputs (#6642) | 6163d96 |
renovate[bot] | fix(deps): Update dev-non-major (#6719) | dadfcfa |
Rune Botten | fix(core): avoid attribute names being scanned as symbols | 23f6c67 |
Cody Olsen | chore: change the action to use warnings and only fail on new ones (#6740) | ebef5cb |
renovate[bot] | chore(lockfile): update dependency @sanity/telemetry to v0.7.8 (#6743) | a230bbf |
renovate[bot] | chore(deps): update dependency @vitejs/plugin-react to ^4.3.0 (#6744) | 7551264 |
renovate[bot] | chore(deps): update dependency @sanity/pkg-utils to v6.8.18 (#6746) | 913740d |
renovate[bot] | chore(lockfile): update dependency @sanity/import to v3.37.4 (#6749) | e5b04d1 |
renovate[bot] | chore(lockfile): update dependency @sanity/export to v3.38.1 (#6748) | 0dbf0c5 |
renovate[bot] | fix(deps): Update dev-non-major (#6745) | 7c44121 |
renovate[bot] | chore(deps): update dependency @sanity/tsdoc to v1.0.65 (#6747) | 79a79a3 |
Cody Olsen | fix: handle React Compiler errors (#6750) | 403f485 |
Ash | feat(sanity): use Actions API when restoring drafts | 47e5420 |
Ash | feat(sanity): add timeline test ids | 038a1a2 |
Ash | test(e2e): add test for restore document action |
e9b967f |
Christian Grøngaard | chore: add initial page-building test studio (#6735) | cca14f3 |
Bjørge Næss | fix(core): remove id from patch when using server actions (#6751) | 7b90cad |
Ash | fix(sanity): respect Studio configuration when rendering "restore" document action (#6637) | 6ba71f2 |
Binoy Patel | chore(ci): set a shorter cache on manifest (#6660) | 069dd31 |
renovate[bot] | chore(lockfile): update dependency i18next to v23.11.5 (#6755) | 6043919 |
renovate[bot] | chore(lockfile): update dependency react-barcode to v1.5.3 (#6756) | 89c86c6 |
renovate[bot] | fix(deps): update dependency @sanity/ui to ^2.1.12 (#6757) | 9025619 |
renovate[bot] | fix(deps): update dependency get-it to ^8.5.0 (#6758) | 6b98663 |
renovate[bot] | fix(deps): Update dev-non-major (#6759) | 5893609 |
renovate[bot] | chore(deps): update dependency @sanity/tsdoc to v1.0.67 (#6761) | 543d755 |
renovate[bot] | fix(deps): update dependency @sanity/client to ^6.18.3 (#6762) | 3e1bc3e |
RitaDias | fix(core): unable to open block style select when in nested PTEs in fullscreen (#6738) | 9f7ab8b |
Per-Kristian Nordnes | test(portable-text-editor): add test for empty array value (#6764) | a13e22c |
Christian Grøngaard | chore(page-building): configure build outputs (#6768) | 076f9b8 |
Bjørge Næss | fix(core): fix issue with nested preview fields not being included in legacy text search (#6767) | 044ac39 |
jordanl17 | feat(structure): sheet list prototype (#6741) | f0670bf |
Espen Hovlandsdal | chore(deps): update dependency @sanity/bifur-client to ^0.4.0 (#6645) | a79ea02 |
Simeon Griggs | chore: correct grammar for open-source (#6766) | f8ee0f2 |
Rico Kahler | fix: resolve type error by inlining DocumentComponents definition (#6703) | 10e1bc3 |
Herman Wikner | fix(core): reactions menu open issue (#6765) | 3f52b83 |
Bjørge Næss | fix(form): fix issue making circular structures sometimes causing infinite loop (#6699) | 7efdeeb |
Per-Kristian Nordnes | fix(portable-text-editor): add autoresolving validations and fix normalization issues (#6770) | c458289 |
renovate[bot] | fix(deps): update dependency @sanity/client to ^6.19.0 (#6781) | 1961904 |
Bjørge Næss | fix(form): properly support passing undefined as title to renderDefault() for array and object fields (#6774) |
f341c2d |
Binoy Patel | feat: store all versions in the manifest (#6769) | 1fcc0f2 |
renovate[bot] | chore(lockfile): update dependency @portabletext/react to v3.1.0 (#6788) | 02fa562 |
renovate[bot] | fix(deps): update dependency @sanity/presentation to v1.15.10 (#6786) | 517a1a9 |
renovate[bot] | fix(deps): update dependency @sanity/ui to ^2.1.13 (#6787) | 43f1766 |
renovate[bot] | fix(deps): Update dev-non-major (#6789) | 772d464 |
renovate[bot] | chore(deps): update linters (#6790) | 674a6cb |
renovate[bot] | chore(deps): update dependency @sanity/visual-editing to v2 (#6792) | 8665a16 |
renovate[bot] | chore(lockfile): update dependency @sanity/logos to v2.1.12 (#6793) | 9d7c67d |
Christian Grøngaard | fix(form): avoid spreading key prop (#6776) | eeba7f2 |
renovate[bot] | chore(lockfile): update dependency @sanity/logos to v2.1.12 (#6794) | 7d0d86a |
renovate[bot] | chore(lockfile): update dependency @sanity/telemetry to v0.7.9 (#6795) | be1065f |
Cody Olsen | chore(deps): bump eslint-plugin-react-compiler (#6791) | ea7db00 |
renovate[bot] | chore(deps): update dependency @sanity/icons to v3 (#6797) | 63e3c32 |
Cody Olsen | chore(react-compiler): up the max warnings limit (#6801) | aa95805 |
renovate[bot] | fix(deps): update dependency @sanity/presentation to v1.15.11 (#6799) | 42fd4bf |
renovate[bot] | fix(deps): update dependency @sanity/ui to ^2.1.14 (#6800) | faa5bcf |
renovate[bot] | fix(deps): Update dev-non-major (#6798) | 6640ad4 |
Bjørge Næss | refactor(core): stabilize studio usage of actions API (#6783) | 112b66c |
v3.43.0
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
sanity init
command for Next.js-embedded Studios is updated to installnext-sanity v9
andnext v14
as per best practices. - Adds support for
// @sanity-typegen-ignore
comments that will ignore certain queries from type generation (thanks @largis21!).
🐛 Notable Bugfixes
- Fixes an issue where the scheduled publishing tool is displayed as the only available plugin when no other plugins are added.
- Adds memoization to minimize unnecessary calls to initial value functions, improving performance.
- Removes a circular reference to
usePaneRouter
that caused build warnings and potential execution order issues. - Fixes bugs related to the Portable Text Input when using a Reference input directly as the annotation type. This change prohibits focus and unset on the root input, preventing abrupt modal closures and ensuring proper cleanup and function execution.
📓 Full changelog
Author | Message | Commit |
---|---|---|
renovate[bot] | fix(deps): Update dev-non-major (#6659) | ab0f97d |
Pedro Bonamin | fix(scheduled-publishing): don't include it if it's the only plugin available (#6530) | b2fa80b |
renovate[bot] | chore(deps): update dependency @sanity/pkg-utils to v6.8.15 (#6666) | 30c1f4c |
renovate[bot] | fix(deps): update dependency groq-js to ^1.9.0 (#6655) | 71a0758 |
renovate[bot] | chore(lockfile): update dependency @sanity/export to v3.38.0 (#6654) | 1f6b8a8 |
Ash | feat(sanity): use actions API when discarding drafts | c1755d1 |
Ash | feat(sanity): add test ids to confirm dialog buttons | 73d51cb |
Ash | test(e2e): add tests for discardChanges document action |
33564a2 |
renovate[bot] | chore(deps): update dependency framer-motion to v11.2.0 (#6668) | 673ba0c |
renovate[bot] | fix(deps): update dependency @sanity/presentation to v1.15.3 (#6667) | 71e6319 |
renovate[bot] | chore(deps): update dependency esbuild to ^0.21.2 (#6656) | fc79956 |
renovate[bot] | chore(deps): update dependency lerna to ^8.1.3 (#6657) | 7960627 |
renovate[bot] | fix(deps): Update dev-non-major (#6673) | 409d7df |
Carolina Gonzalez | feat: fetch feature toggle to enable serverside document actions (#6418) | 8610fc6 |
renovate[bot] | fix(deps): update dependency @sanity/client to ^6.18.2 (#6674) | 4da4ae5 |
renovate[bot] | fix(deps): update dependency @sanity/ui to ^2.1.8 (#6675) | e8a40e2 |
renovate[bot] | chore(deps): update dependency @sanity/tsdoc to v1.0.55 (#6672) | 7b5bbe7 |
renovate[bot] | fix(deps): update dependency get-it to ^8.4.30 (#6676) | 0715793 |
renovate[bot] | fix(deps): update dependency @sanity/presentation to v1.15.4 (#6681) | f97c348 |
renovate[bot] | fix(deps): Update dev-non-major (#6680) | ab4a9e8 |
renovate[bot] | fix(deps): update dependency @sanity/presentation to v1.15.5 (#6687) | a61a679 |
renovate[bot] | chore(deps): update dependency framer-motion to v11.2.2 (#6689) | e27e063 |
renovate[bot] | fix(deps): update dependency @sanity/ui to ^2.1.9 (#6691) | 3aa444f |
renovate[bot] | chore(deps): update dependency recast to ^0.23.7 (#6658) | 3912e82 |
renovate[bot] | fix(deps): Update dev-non-major (#6690) | ec179d0 |
renovate[bot] | chore(deps): update dependency @sanity/pkg-utils to v6.8.16 (#6692) | 80d4620 |
renovate[bot] | chore(deps): update dependency @sanity/tsdoc to v1.0.59 (#6693) | 1164a6b |
Robin Pyon | feat(pte): add initialActive prop to PortableTextInput (#6638) |
5add977 |
Pedro Bonamin | fix(schedule-publishing): avoid polling in upsell mode (#6670) | 87889d1 |
Cody Olsen | chore: setup dev:next-studio to use react v19 (#6685) |
61d1bc3 |
renovate[bot] | chore(deps): update dependency framer-motion to v11.2.3 (#6696) | e6b4fdc |
renovate[bot] | fix(deps): update dependency @sanity/ui to ^2.1.10 (#6701) | af0eee4 |
renovate[bot] | fix(deps): Update dev-non-major (#6700) | 77785ff |
Pedro Bonamin | feat(structure): add sheet list table view. (#6647) | c5916d4 |
Ash | feat(sanity): memoize initial value resolver (#6614) | 39bab8a |
Cody Olsen | fix: update @sanity/presentation and remove deprecated internal exports no longer in use (#6694) |
69246c1 |
Cody Olsen | fix: remove circular reference to usePaneRouter (#6664) |
d66def2 |
jordanl17 | feat(structure): Sheet View columns (#6661) | d8a37a8 |
Christian Grøngaard | fix: pin framer-motion to an earlier version (#6717) | 6c2aea2 |
renovate[bot] | fix(deps): update dependency @sanity/ui to ^2.1.11 (#6720) | 61cc315 |
Pedro Bonamin | fix(tasks): reduce tasks sidebar zoffset (#6718) | 5ab0819 |
renovate[bot] | chore(deps): update dependency @sanity/pkg-utils to v6.8.17 (#6722) | babfd2d |
Pedro Bonamin | fix(tasks): hide footer button until the active document is set (#6695) | 93c7d66 |
jordanl17 | fix(structure): fixing incorrect way of setting col visibility (#6716) | 06f7902 |
renovate[bot] | fix(deps): update dependency @sanity/presentation to v1.15.8 (#6724) | 17ca815 |
renovate[bot] | chore(deps): update dependency @sanity/tsdoc to v1.0.62 (#6723) | c6c1724 |
Cody Olsen | feat: upgrade sanity init for Next.js to next-sanity v9 (#6644) |
f48e38b |
largis21 | Add support for @sanity-typegen-ignore to ignore queries (#6578) | efe8bca |
Sindre Gulseth | chore(cli): symlink in local packages for the installed sanity cli (#6728) | c4b8558 |
Bjørge Næss | fix(i18n): remove extraneous curly brace (#6726) | 74f2fd5 |
Sindre Gulseth | feat(typegen): add optout for prettier formatting (#6702) | ac5103a |