Install or upgrade Sanity Studio
To initiate a new Sanity Studio project or upgrade an existing one, please refer to our comprehensive guide on Installing and Upgrading Sanity Studio.
If you are updating from a version earlier than 3.37.0, you should also check out this article to ensure your dependencies are up to date.
✨ Highlights
Save Vision Query Results
You can now conveniently save the results of your Sanity Vision queries as JSON or CSV files. Simply run your query and click on the new "save result as" buttons in the bottom right corner.
Custom Components with Intent Handling in Structure Builder
Custom components included in the Structure Builder (like S.component(MyCustomComponent)
) can now handle intents. This is especially useful for routing to custom components from global search results or other links. You can achieve this by using the canHandleIntent
parameter.
S.listItem()
.id('translate')
.title('Translate Test')
.child(S.component(TranslateExample).id('example')
.canHandleIntent((intent, params, context) => {
console.log(intent, params, context)
return true
}
))
🐛 Notable Bugfixes
- Fixes an issue where Boolean inputs were not always clearly indicated as read-only and disabled.
- Makes the search/filter in the document "Inspect" dialog case-insensitive.
- Prevents inputs within the Portable Text Editor from calling
element.onFocus()
on any opened block or inline-object, thus avoiding unintended modal closures. - Prevents extra work on preview prepare functions, ensuring better performance.
- Fixes miscellaneous bugs and performance issues with Portable Text Editor's block extras and highlight rendering. For example, pointer events are now correctly disabled to avoid unnecessary cursor changes or rendering thrashes.
- Fixes an issue where the document history panel would appear to load indefinitely
📓 Full changelog
Author | Message | Commit |
---|---|---|
jordanl17 | fix(studio): adding tooltip to read-only bool inputs (#6580) | 55153ac |
ecospark[bot] | chore(deps): dedupe pnpm-lock.yaml (#6607) | 48674b7 |
Carolina Gonzalez | feat: add canHandleIntent to Structure Builder component (#6516) | d3d0c04 |
Espen Hovlandsdal | fix(structure): use case insensitive search for inspect dialog (#6588) | 1dca6db |
Carolina Gonzalez | test(core): await publish action to prevent test flakiness (#6609) | fad1628 |
renovate[bot] | fix(deps): update dependency get-it to ^8.4.29 (#6603) | cc08614 |
renovate[bot] | fix(deps): update dependency @sanity/client to ^6.18.0 (#6604) | c2b143e |
Rostislav Melkumyan | feat(vision): add "save result as json/csv" buttons (#6158) | 14be9b6 |
Per-Kristian Nordnes | fix(core/form): prevent onFocus for root object paths being called by editing form (#6610) | 516ada5 |
jordanl17 | feat(core, structure) sheet list menu option (#6593) | 724da99 |
Binoy Patel | chore(bundle): remove unnecessary bundles and make root imports index (#6616) | 5f0227c |
Robin Pyon | feat(pte): add hideToolbar and fullscreen props to PortableTextInput (#6621)
| 800149f |
Robin Pyon | fix(pte): don't render the PTE block extras container when not in use, disable pointer events on highlights (#6620) | 4c73ded |
Evensix | skip recalling invokePrepare (#6608) | 2729437 |
Bjørge Næss | fix(core): update test snapshots (#6629) | 20b66b1 |
Bjørge Næss | fix(e2e): support headless/headful env var toggle (#6558) | 92260a4 |
Robin Pyon | feat: add icon to BlockStyleDefinition (#6613) | 2e69eee |
Robin Pyon | feat(pte): initial support for renderEditable in portable text inputs (#6627)
| 1d0fd3e |
Binoy Patel | chore(ci): add a circleci config to bundle packages (#6446) | f4c7cfe |
renovate[bot] | chore(lockfile): update dependency esbuild to v0.21.2 (#6602) | b63af70 |
Pedro Bonamin | fix(pte): cursor presence causes pte error (#6622) | b13fff4 |
Robin Pyon | feat(pte): expose data-attributes on PTE Text + Object blocks (#6641) | fceff23 |
renovate[bot] | chore(deps): update dependency @sanity/pkg-utils to v6.8.14 (#6630) | dd5cc7d |
renovate[bot] | fix(deps): update dependency @sanity/ui to ^2.1.7 (#6633) | 34b4754 |
renovate[bot] | chore(deps): update dependency @sanity/tsdoc to v1.0.53 (#6631) | f58a005 |
Cody Olsen | chore(ci): tweak renovate preset to better align with branch rulesets (#6648) | ef39982 |
renovate[bot] | chore(deps): update dependency styled-components to ^6.1.11 (#6636) | 55ab489 |
Cody Olsen | refactor(renovate): group non major dev deps (#6652) | 1812de6 |
renovate[bot] | fix(deps): update dependency @sanity/client to ^6.18.1 (#6653) | 083960f |
Binoy Patel | fix(core): fixes issue with history loading indefinitely (#6539) | 52a5308 |
Sindre Gulseth | fix(typegen): move type new line separator into formatter (#6649) | 109a180 |
Sindre Gulseth | chore(schemaExtraction): add a newline to the extracted schema.json (#6650) | 4beb29e |
ecospark[bot] | chore(deps): dedupe pnpm-lock.yaml (#6662) | c7ad47b |