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
This release adds support for styled-components v6. This is an optional upgrade as we'll continue to support v5 during the lifecycle of Sanity Studio v3.
🐛 Notable bugfixes
- Fixes a bug where pasting HTML lists into the Portable Text Input would disregard schema configuration for list blocks.
- Fixes an issue where logos of custom auth providers were missing on login screen.
- Fixes an issue where pasting from Google Docs to the Portable Text editor would apply bold formatting to the pasted content on Windows computers.
- Fixes minor issue causing the annotation toolbar popover to not always display correctly.
- Fixes a bug where the Portable Text input would capture focus trying to edit an inline object's field named
.text
. - Fixes an issue where certain patches would apply differently in the studio and in Content Lake, leading to the studio UI not reflecting the new values for some fields.
- Fixes an issue where certain remote patches would not cleanly apply in the studio, requiring a reload of the document to see the changes.
- Fixes an issue where using
>=
or<=
JSONMatch filters for patch operations would cause the studio to return error messages and not apply the patch correctly. - Fixes published and edits message in the document list.
📓 Full changelog
Author | Message | Commit |
---|---|---|
Per-Kristian Nordnes | fix(block-tools): enforce list support in schema (#4985) | 318efe4 |
Bjørge Næss | chore(eslint): ignore all 'dist' directories | a585c40 |
Bjørge Næss | chore(scripts): revert convert symlinkDependencies script to ts (#5008) | d19aa5e |
Bjørge Næss | test(cli): reject promise returned from exec() upon non-zero exit code (#5009)
| a0f2c27 |
Binoy Patel | fix(login): fix issue where logo is not shown on custom auth providers (#5002) | 744bfdf |
Binoy Patel | chore(core): add debug schema for virtualization bug (#5017) | 2f3e763 |
Binoy Patel | chore(e2e): Run e2e tests in shards (#5006) | 4097544 |
Bjørge Næss | test(cli): symlinkDependencies before running npm install (#5020)
| 16a0336 |
Bjørge Næss | fix(deps): support styled-components v6 (#4917)
| eb86f8a |
Per-Kristian Nordnes | fix(block-tools): fix Windows issue with gdocs preprocessor rule | f30b869 |
Per-Kristian Nordnes | test(block-tools): add tests for gdocs pre-processsing | 45683f1 |
ecospark[bot] | chore(deps): dedupe yarn.lock (#5024) | 37bcfd5 |
renovate[bot] | chore(lockfile): update dependency sanity-plugin-mux-input to v2.2.3 (#5030) | 7c2af8d |
renovate[bot] | chore(lockfile): update dependency @sanity/assist to v1.2.9 (#5031) | 455fbbc |
renovate[bot] | chore(deps): update dependency styled-components to v6 (#5034) | 4cd7470 |
renovate[bot] | chore(deps): update dependency @sanity/ui-workshop to ^1.2.11 (#5027) | c01ffcf |
renovate[bot] | chore(deps): update dependency @types/use-sync-external-store to ^0.0.5 (#5029) | 26bd77e |
Per-Kristian Nordnes | fix(form/inputs): Track focusPath for a span's .text prop + harden test condition | 85d83fb |
Per-Kristian Nordnes | fix(core/inputs): support setting initial PTE selection | 95d290d |
Per-Kristian Nordnes | test(playwright-ct): support document and focusPath props | f5f1ebc |
Per-Kristian Nordnes | test(playwright-ct): add test for focus tracking in PT-input | b8474b1 |
Per-Kristian Nordnes | test(playwrigth-ct): fix issue with Webkit tests | e2484bd |
Per-Kristian Nordnes | refactor(portable-text-editor): rename var to be more explicit | aa5eb94 |
Per-Kristian Nordnes | refactor(playwright-ct): make TestWrapper form agnostic | aaf599d |
Per-Kristian Nordnes | refactor(core/form/inputs): simplify focus handling | bd65690 |
Per-Kristian Nordnes | fix(core/inputs): always scroll to member, but don't re-apply same selection | 22ba618 |
Per-Kristian Nordnes | fix(core/form/inputs): use useLayoutEffect over useEffect for focusPath tracking hook | 601b187 |
Per-Kristian Nordnes | test(playwright-ct): simplify focusPath tests | 25c7210 |
renovate[bot] | chore(deps): update dependency @optimize-lodash/rollup-plugin to ^4.0.4 (#5025) | 97e2949 |
renovate[bot] | chore(deps): update dependency @portabletext/toolkit to ^2.0.10 (#5026) | d7a4720 |
renovate[bot] | chore(lockfile): update dependency @sanity/eventsource to v5.0.1 (#5037) | 242bfb7 |
renovate[bot] | chore(deps): update dependency vite to ^4.5.0 (#5040) | bd7116f |
renovate[bot] | chore(deps): update dependency @vitejs/plugin-react to ^4.1.0 (#5038) | 26cb528 |
renovate[bot] | chore(deps): update dependency esbuild to ^0.19.5 (#5035) | 3f8fbfc |
renovate[bot] | chore(deps): update dependency esbuild-register to ^3.5.0 (#5039) | 7e027f8 |
renovate[bot] | chore(deps): update dependency @tanstack/react-virtual to v3.0.0-beta.68 (#5028) | 340aada |
renovate[bot] | chore(lockfile): update dependency @portabletext/react to v3.0.11 (#5036) | 6445f32 |
renovate[bot] | chore(lockfile): update dependency @sanity/ui to v1.8.3 (#5051) | f8ef3be |
renovate[bot] | chore(lockfile): update dependency @sanity/icons to v2.6.0 (#5052) | c6e2912 |
renovate[bot] | chore(lockfile): update dependency groq-js to v1.3.0 (#5053) | 5366a9b |
Cody Olsen | chore: update snapshots | e37c8ed |
renovate[bot] | chore(deps): update actions/setup-node action to v4 (#5054) | 1a2c5f1 |
Cody Olsen | Revert "chore(deps): update dependency @tanstack/react-virtual to v3.0.0-beta.68 (#5028)" | 1728fa6 |
Per-Kristian Nordnes | fix(core/inputs): fix issue with toolbar popover visibility toggling | 8ea5cff |
Per-Kristian Nordnes | test(playwright-ct): add test for annotation toolbar popover visibility | e68189c |
Per-Kristian Nordnes | fix(core/form/inputs): fix scrolling of annotation toolbar popover | 3c64bec |
Cody Olsen | chore(renovatebot): use the correct group name for dev deps | 474c124 |
Cody Olsen | chore(renovate): don't group dev updates | c51319a |
Per-Kristian Nordnes | doc(form): add doc and example for components extention of block type (#5059) | 5233f35 |
Per-Kristian Nordnes | fix(portable-text-editor): allow user event handlers on Editable component (#5058) | 441f637 |
Binoy Patel | chore(e2e): fix report merging (#5045) | 6fee81b |
Espen Hovlandsdal | fix(mutator): apply setIfMissing prior to set (#5062)
| 8b4ec5d |
Bjørge Næss | fix(deps): bump @sanity/ui to latest (#5056) | 935601b |
renovate[bot] | chore(deps): update dependency typescript to ^5.2.2 (#5073) | 1ea4b2b |
renovate[bot] | fix(deps): update dependency @sanity/client to ^6.7.0 (#5032) | 36a33d4 |
renovate[bot] | chore(deps): update dependency turbo to ^1.10.16 (#5070) | e54623a |
renovate[bot] | fix(deps): update dependency get-it to ^8.4.4 (#5071) | 01e3eef |
Binoy Patel | chore(test): jest 29 migration (#5069) | fd3a972 |
Binoy Patel | chore(e2e): create a test studio for e2e tests (#5044) | 2d58099 |
Per-Kristian Nordnes | test(portable-text-editor): adjust timings | 311d5b6 |
renovate[bot] | chore(deps): update dependency next to v14 (#5081) | 7272259 |
renovate[bot] | chore(lockfile): update dependency @sanity/assist to v1.2.11 (#5083) | d6b9088 |
Espen Hovlandsdal | fix(mutator): match deep set/setIfMissing behavior (#5048) | 28884c6 |
Espen Hovlandsdal | fix(mutator): restore greater than/less than in jsonmatch constraints (#5063) | fd7db60 |
Per-Kristian Nordnes | ci: move PTE e2e tests out in own workflow (#5080) | afa3f71 |
Binoy Patel | chore(test): fix unit test caching issue (#5092) | 829f541 |
Nina Andal Aarvik | fix(desk): edit logic for published- and edit status message in document list (#5067) | 2013203 |
Herman Wikner | feat(desk): implement comments (beta) (#4886) | 0803464 |
Robin Pyon | refactor: use transient props in various styled components (#5093) | ae0ca14 |