⚠️ This upgrade requires styled-components@6.1
and @sanity/ui@2
This release comes with version requirements for the following packages:
styled-components@6.1
(required for all Studio projects)@sanity/ui@2
(optional)
If you're maintaining a plugin for Sanity Studio, we'll recommend that you upgrade its dependencies too.
styled-components
(required)
We have seen incompability 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 do some minor adjustments to the customization code as well. Please consult the styled-components migration guide for more details.
@sanity/ui
Studio projects that uses @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"
✨ Highlights
Tasks (Beta)
Sanity Studio now ships with Tasks. You can now:
- Target tasks for specific documents
- Assigned tasks to Studio members
- Comment on tasks, and use @-mentions
- Resolve tasks
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:
Other features
- Resolves "Masquerading as CJS and ESM" type errors
- Adds ESM with .mjs exports for full support of Node.js' native ESM mode, while still oferring .esm.js exports for legacy bundlers support
- Adds missing
sideEffects: false
conditions to package.json files, improving tree-shaking and reducing bundle sizes for embedded Sanity Studio projects - Simplifies the Shopify schema starter template
🐛 Notable bugfixes
- Fixes a bug where wrongly formatted configuration would be inserted into tsconfig.json when
sanity init
was run inside of a Next.js project - Fixes an issue where importing ``.scss
or
.sass` files from the studio configuration or a descendant file would cause certain CLI commands to crash - Improves error message when extracted schema (from
sanity schema extract
) could not be found when runningsanity typegen generate
- Fixes an issue where the CLI might suggest deprecated Sanity v2 commands if you mistype a command name
- Makes the
current
field on slugs required when used with the--enforce-required-fields
flag insanity typegen
contexts - Fixes an bug where running
npx sanity init
in a Next.js project would break thetsconfig.json
configuration
📓 Full changelog
Author | Message | Commit |
---|---|---|
Cody Olsen | chore(renovate): pin framer-motion to known stable (#6166) | b54852a |
ecospark[bot] | chore(prettier): fix unformatted files 🤖 ✨ (#6168) | 19891dc |
renovate[bot] | chore(deps): update dependency @sanity/icons to ^2.11.6 (#6169) | 9f50f6d |
renovate[bot] | chore(deps): update dependency turbo to ^1.13.2 (#6170) | 073b5b8 |
renovate[bot] | chore(deps): update dependency vite to ^4.5.3 (#6171) | b14d324 |
renovate[bot] | chore(lockfile): update dependency @portabletext/react to v3.0.15 (#6172) | fbc7183 |
renovate[bot] | chore(lockfile): update dependency @sanity/color to v3.0.4 (#6173) | cdf561e |
renovate[bot] | chore(lockfile): update dependency @sanity/logos to v2.1.8 (#6175) | ffb6ddd |
renovate[bot] | fix(deps): Update react monorepo (#6176) | c4f24d2 |
renovate[bot] | fix(deps): update dependency @sanity/client to ^6.15.9 (#6177) | fbeb6fb |
renovate[bot] | chore(deps): update dependency use-hot-module-reload to v2 (#6180) | 39bf293 |
Cody Olsen | Revert "chore(deps): update dependency use-hot-module-reload to v2 (#6180)" (#6182) | 3b8c28c |
renovate[bot] | fix(deps): update dependency @sanity/ui to ^2.0.13 (#6178) | 4f1b36d |
renovate[bot] | fix(deps): update dependency get-it to ^8.4.17 (#6179) | ee16280 |
Cody Olsen | fix(deps): pin framer-motion to the same version used by @sanity/ui (#6183)
| 7120aa8 |
Cody Olsen | chore: fix typings error | b369d92 |
ecospark[bot] | chore(deps): dedupe pnpm-lock.yaml (#6184) | b4f9ba5 |
renovate[bot] | chore(deps): lock file maintenance (#6186) | a32e5d5 |
Cody Olsen | chore: pin @sanity/eslint-config-i18n
| 89fac9f |
Cody Olsen | chore: pin @playwright/test
| 1f4700c |
Cody Olsen | chore: pin @playwright/experimental-ct-react
| e09a5ef |
renovate[bot] | chore(deps): lock file maintenance (#6187) | dcbb7a4 |
Cody Olsen | fix: use named styled import for better ESM runtime compat (#6185)
| b544abb |
Herman Wikner | fix(comments): weaken references in content snapshot (#6131) | d1f1a4c |
renovate[bot] | chore(deps): update dependency @sanity/pkg-utils to ^4.4.4 (#6191) | 199f310 |
renovate[bot] | chore(deps): update dependency @sanity/visual-editing to v1.8.5 (#6194) | 3113498 |
renovate[bot] | chore(lockfile): update dependency @sanity/react-loader to v1.9.6 (#6195) | f41b784 |
renovate[bot] | chore(deps): update linters to v7 (#6192) | 4247e4f |
Cody Olsen | refactor: support strict: true in @sanity/schema codebase (#6207)
| 605bd62 |
Cody Olsen | chore: reduce test flakiness by increasing timeout to 60s (#6208) | 1cecb45 |
Simeon Griggs | simplify 'shopify' template schema (#6161) | 69ff15f |
Pedro Bonamin | fix(tasks): disable autocomplete on 'assign to' input (#6193) | da49af0 |
Espen Hovlandsdal | fix(schema): make current field for slugs required (#6205)
| e420b6f |
renovate[bot] | fix(deps): update dependency @sanity/ui to ^2.0.14 (#6209) | f4d2e7e |
Espen Hovlandsdal | fix(cli): do not suggest v2 cli commands on "no such command" error (#6211) | 69ff7ff |
Espen Hovlandsdal | fix(cli): improve error handling on missing extracted schema (#6204) | 4fb0e66 |
renovate[bot] | chore(deps): update dependency use-hot-module-reload to v2 (#6217) | 4385ca8 |
renovate[bot] | chore(deps): replace dependency is-hotkey with is-hotkey-esm ^1.0.0 (#6218) | 12f25d5 |
renovate[bot] | chore(deps): update dependency @portabletext/toolkit to ^2.0.14 (#6219) | a72b652 |
renovate[bot] | chore(deps): update dependency @types/arrify to ^1.0.4 (#6220) | 25a95a0 |
renovate[bot] | fix(deps): update dependency get-it to ^8.4.18 (#6222) | 70f0963 |
renovate[bot] | chore(lockfile): update dependency @portabletext/react to v3.0.17 (#6221) | a4de075 |
renovate[bot] | fix(deps): update dependency @sanity/client to ^6.15.10 (#6228) | ba323ae |
renovate[bot] | chore(deps): update dependency @babel/preset-env to ^7.24.4 (#6226) | 7c60f3e |
renovate[bot] | chore(lockfile): update dependency @sanity/icons to v2.11.7 (#6174) | 1af2e4f |
renovate[bot] | chore(deps): update dependency @sanity/icons to ^2.11.7 (#6231) | 830f403 |
renovate[bot] | fix(deps): update dependency @sanity/ui to ^2.0.15 (#6229) | a6eb947 |
renovate[bot] | chore(lockfile): update dependency @sanity/color to v3.0.5 (#6232) | 7887f0d |
renovate[bot] | chore(lockfile): update dependency @sanity/logos to v2.1.9 (#6233) | c1b72fc |
Espen Hovlandsdal | fix(cli): use stub file loader for scss, sass extensions (#6215) | 80f4f22 |
renovate[bot] | fix(deps): update dependency @sanity/presentation to v1.12.2 (#6235) | acbb08a |
renovate[bot] | chore(deps): update dependency @sanity/visual-editing to v1.8.6 (#6237) | f0f6537 |
Cody Olsen | refactor(renovate): ignore slate and slate-react as they're bumped manually (#6242)
| 6fc2bbb |
ecospark[bot] | chore(prettier): fix unformatted files 🤖 ✨ (#6243) | ef33857 |
Bjørge Næss | fix(cli): formalize requirement of styled-components@6 and @sanity/ui@2 (#6234) | 5fe2d47 |
renovate[bot] | chore(lockfile): update dependency @sanity/preview-url-secret to v1.6.6 (#6238) | a4be162 |
renovate[bot] | chore(lockfile): update dependency @sanity/react-loader to v1.9.7 (#6239) | debb2cc |
Cody Olsen | refactor(CI): use the official github app token generator action (#6230) | 40dff99 |
renovate[bot] | fix(deps): update dependency @sanity/ui to ^2.0.16 (#6241) | 58c319a |
Binoy Patel | chore(core): remove unusued ChangeIndicatorContext (#6214) | e978813 |
Pedro Bonamin | fix(core): add readOnly prop to dragHandle (#6190) | 234d009 |
renovate[bot] | chore(deps): update dependency @sanity/visual-editing to v1.8.7 (#6248) | 4a31e88 |
renovate[bot] | chore(lockfile): update dependency @sanity/preview-url-secret to v1.6.7 (#6249) | e89a8b3 |
renovate[bot] | chore(lockfile): update dependency @sanity/react-loader to v1.9.9 (#6250) | 736a96e |
renovate[bot] | fix(deps): update dependency @sanity/presentation to v1.12.3 (#6251) | 0959294 |
renovate[bot] | chore(lockfile): update dependency sanity-plugin-mux-input to v2.3.0 (#6252) | 5666099 |
renovate[bot] | fix(deps): update dependency @sanity/client to ^6.15.11 (#6253) | a3b7458 |
renovate[bot] | fix(deps): update dependency @sanity/ui to ^2.1.0 (#6254) | 6b2abb9 |
Pedro Bonamin | fix(tasks): change tasks button in nav to be toggle (#6236) | 8e40ecb |
cngonzalez | feat(core): add serverActions flag to config (#6212) | 1b94d40 |
Knut Melvær | fix: replace the JSON5 parser with JSON (#6149) | fe11588 |
Pedro Bonamin | fix(tasks): tasks UI updates. (#6136) | d45b210 |
ecospark[bot] | chore(deps): dedupe pnpm-lock.yaml (#6258) | 7b44425 |
renovate[bot] | chore(lockfile): update dependency @sanity/logos to v2.1.9 (#6259) | 1d998a0 |
renovate[bot] | chore(lockfile): update dependency @sanity/react-loader to v1.9.9 (#6260) | a32df3a |
renovate[bot] | chore(deps): update dependency @sanity/google-maps-input to v4 (#6262) | e63ce42 |
renovate[bot] | chore(lockfile): update dependency sanity-plugin-mux-input to v2.3.0 (#6261) | 79c5bb1 |
renovate[bot] | chore(deps): lock file maintenance (#6264) | 787aa33 |
renovate[bot] | chore(lockfile): update dependency i18next to v23.11.0 (#6263) | 64c6a13 |
renovate[bot] | chore(lockfile): update dependency @portabletext/react to v3.0.17 (#6265) | 3a7d2fd |
renovate[bot] | chore(lockfile): update dependency sanity-plugin-mux-input to v2.3.1 (#6266) | 4e3afac |
Ash | fix(structure): prevent duplication of search filters when listenSearchQuery is used (e.g. in document lists) (#6247)
| fce97c7 |
Cody Olsen | fix: upgrade to @sanity/pkg-utils v5 and use updated ESM best practices (#5983)
| 62a6810 |
Pedro Bonamin | feat(tasks): add tasks upsell ui (#6216) | 658262e |
Pedro Bonamin | feat(tasks): add telemetry events to tasks (#6246) | 346600c |
Ash | feat(core): adopt Actions API (#6257) | 4d45224 |
Bjørge Næss | fix(deps): narrow accepted peer dependency range of style-components (#6271) | 1ac127b |