Sanity Studio – Rapidly configure content workspaces powered by structured content
MIT License
Bot releases are visible (Hide)
Published by binoy14 over 1 year ago
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
@beta
API
sanity debug
now outputs all the roles of the currently authenticated userAuthor | Message | Commit |
---|---|---|
Espen Hovlandsdal | docs(sanity): update license badge url | e1dbd1ca2 |
Marius Lundgård | fix(core): improve PTE popover behavior (#4606) | c17929efa |
RitaDias | feat: add etl layer (#4584) | aff1e63fc |
RitaDias | docs(cli): update docs for getStudioEnvironmentVariables (#4597) | 06d5928d7 |
Espen Hovlandsdal | feat(cli): print all current user roles in debug output (#4609) | ea322f241 |
Binoy Patel | chore(deps): bump version of @sanity/tsdoc (#4614) | 6e5893129 |
Espen Hovlandsdal | test(e2e): retry once on failures, record video on retry (#4618) | b4f7fa276 |
Marius Lundgård | fix(deps): update @sanity/icons
|
0b2c40e96 |
Marius Lundgård | feat(desk): document inspectors (@beta ) (#4252) |
e9c068ac8 |
Marius Lundgård | feat(core): add TooltipOfDisabled component |
b58e23809 |
Marius Lundgård | feat(core): add StatusButton hotkey property |
f1b154a67 |
Marius Lundgård | feat(core): take StatusButton disabled reason |
38c6e9300 |
Marius Lundgård | feat(core): take StatusButton mode property |
ba1092d64 |
Marius Lundgård | feat(core): fieldActions config property |
18c5894cd |
Marius Lundgård | feat(core): render field actions | 3c0ea55aa |
Marius Lundgård | feat(desk): resolve field actions | 4086dddfd |
Marius Lundgård | feat(desk): render document field actions | cc9edc754 |
Marius Lundgård | test: document field actions | 941b9a09e |
Marius Lundgård | test(core): update tests | 2263b8eb4 |
Marius Lundgård | perf: add field actions to perf studio | a1a418209 |
Cody Olsen | chore: dedupe @sanity/icons and update snapshot (#4638) |
791efec9f |
ecospark[bot] | chore(deps): dedupe yarn.lock (#4599) | f8fc12a3e |
renovate[bot] | fix(deps): update dependency @portabletext/types to v2.0.5 (#4627) | 0b01660b8 |
Espen Hovlandsdal | docs: update contribution guidelines (#4616) | 8131d83d6 |
renovate[bot] | fix(deps): update three packages (#4631) | ef36686c1 |
renovate[bot] | fix(deps): update dependency get-it to v8.1.3 (#4644) | d461bb606 |
renovate[bot] | fix(deps): update dependency styled-components to v5.3.11 (#4629) | 76df1cf52 |
renovate[bot] | fix(deps): update dependency @portabletext/react to v3 (#4625) | e3c32230f |
renovate[bot] | chore(deps): update dependency @sanity/pkg-utils to v2.3.3 (#4626) | fdeac3f9c |
Published by rexxars over 1 year ago
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
@types/react-is
Author | Message | Commit |
---|---|---|
Cody Olsen | chore(ci): replace yarn v2 install flags with v1 (#4568) | 744f7e049 |
Cody Olsen | ci: update renovate to use the new preset (#4566) | 61b15a2c2 |
Tom Smith | fix(cli): shopify studio intent fixes (#4592) | 1c301d484 |
Espen Hovlandsdal | fix(core): align @types/react-is module version (#4594) |
ae3922016 |
Espen Hovlandsdal | fix(core): include request tag prefix for websocket (#4590) | ccedf6e5c |
Marius Lundgård | fix(deps): update @sanity/ui
|
b0564946b |
Nina Andal Aarvik | fix(core): use portal prop on validation tooltip, remove muted text (#4582) | 7d6dc9026 |
vicbergquist | feat: add @sanity/tsdoc dependency |
17a5ec319 |
vicbergquist | docs: add docblock for useDataset hook |
87da83f0b |
RitaDias | chore(lock): update yarn lock file | b45ccb589 |
Bjørge Næss | chore(test-studio): exclude @sanity/tsdoc from vite's dependency pre-bundling |
a7b3797b0 |
Bjørge Næss | chore(deps): add @sanity/tsdoc as a dev dependency |
6350f3c51 |
RitaDias | feat(sanity): add @hidden tag for tsdoc |
a94d5489f |
RitaDias | chore(sanity): add tsdoc config json | 178a95600 |
RitaDias | fix(core): re-add missing DocumentActionCustomDialogComponentProps
|
d093e312c |
Binoy Patel | docs(sanity): fix typo in tsdoc config | 828505264 |
RitaDias | refactor: add hidden to two new beta items | 2a96d67d1 |
Binoy Patel | chore: version bump | 31e1633f2 |
Binoy Patel | chore(router): add docs for IntentLink , Link and withRouter APIs (#4551) |
0297b39c6 |
Herman Wikner | fix(core): a11y issue in command list (#4600) | bf59af062 |
RitaDias | fix: add missing tsdoc tags (#4607) | 0de3b081b |
Published by rexxars over 1 year ago
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
Author | Message | Commit |
---|---|---|
renovate[bot] | fix(deps): update dependency vite to v4.3.9 (#4548) | b8337fb75 |
renovate[bot] | chore(deps): update dependency esbuild to v0.17.19 (#4547) | 9b14e0746 |
Fred Carlsen | fix(desk): fix readOnly document state while document is syncing (#4564) | 305fe1604 |
Tom Smith | chore(cli): update shopify template to use strict mode schemas (#4561) | f1726803d |
ecospark[bot] | chore(prettier): fix unformatted files 🤖 ✨ (#4555) | b271b0fae |
Noah Gentile | feat(mutator): export extract method (#4461) |
e4779a6b8 |
Herman Wikner | fix(desk): pane item selected ui (#4569) | 9d355f80a |
Simeon Griggs | chore: correct toast text for copied URL (#4571) | 1e0fd23a5 |
Cody Olsen | chore(deps): unblock update to @sanity/pkg-utils to v2.3.1 (#4567) | 3479e1160 |
Per-Kristian Nordnes | feature(portable-text-editor): add value snapshot to mutation change | 90b7d959c |
James Doyle | fix(cli): prevent empty references for graphql unions (#4583) | 940dbb447 |
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
Adds support for block, inlineBlock and annotation form components. You can now write plugins or create workspace configuration that change how these types are rendered in the studio
@sanity/block-tools
would remove whitespace from <pre>
tagsAuthor | Message | Commit |
---|---|---|
Per-Kristian Nordnes | feature(core): Add support for block form components in config and plugins (#4327) | 3527b6c63b |
Robin Pyon | chore(test-studio): add a debug case for patching custom input components | aaa74c01da |
Fred Carlsen | fix(block-tools): preserve whitespace in preprocess for certain html tags (#4540) | 4848781bb0 |
Bjørge Næss | fix(perf): add flag to list known test ids (#4553) | 981b99f9c2 |
Bjørge Næss | refactor(util): rename isEmpty => isDeepEmpty and deprecate old name | e37be4a556 |
Bjørge Næss | test(util): add tests for isDeepEmpty | 4ecf667e18 |
Bjørge Næss | refactor(util): expose isShallowEmptyObject util | 605d716ce5 |
Bjørge Næss | fix(form): check for shallow emptyness instead of deep when determining whether a patch should unset the value | f2e16ff560 |
Per-Kristian Nordnes | refactor(core/form/inputs): PT-input track irregular span node focusPath (#4557) | 86bffd7e5d |
Per-Kristian Nordnes | refactor(portable-text-editor): improve onPaste typings (#4544) | 0909774f74 |
Bjørge Næss | fix(form): pass the correct data to conditional fields contained inside fieldsets (#4556) | a08334fdf0 |
Bjørge Næss | fix(form): fix bug making fields not inherit document level readOnly state (#4558) | 6f5578d5da |
Knut Melvær | chore: fix installation command in release note template (#4550) | 0d3c5b30e2 |
To initiate a new Studio without installing the CLI globally:
npx create-sanity@latest
To upgrade a v3 Studio:
npm install sanity@latest
<sup>
, <sub>
, <ins>
and <mark>
in @sanity/block-tools
Author | Message | Commit |
---|---|---|
renovate[bot] | fix(deps): update dependency @portabletext/types to v2 (#4379) | 83711a45e1 |
Fred Carlsen | fix: whitelist all standard text decorators in block-tools (#4526) | 47be700993 |
renovate[bot] | fix(deps): update dependency groq-js to v1 (#4384) | cf002fb977 |
Per-Kristian Nordnes | fix(core/form/inputs): use isImage asserter to determine image preview (#4532) | c2f98ba88c |
Herman Wikner | feat(core): add document action custom dialog component (#4529) | d6a841bf7a |
Per-Kristian Nordnes | fix(core/form/inputs): value should be passed here, not schematype | 854e37a282 |
Per-Kristian Nordnes | refactor(core/form/inputs): refactor focus handling in the PT-input | 6ff2b459e6 |
Per-Kristian Nordnes | refactor(core/form/inputs): improve autofocus handling | f018467ca1 |
Per-Kristian Nordnes | refactor(portable-text-editor): provide focus event for focus and blur change | c0cdf87e7b |
Per-Kristian Nordnes | chore(portable-text-editor): move debug msg out of loop | 121e906725 |
Per-Kristian Nordnes | fix(core/form/inputs): clean up rebase leftovers (next branch) | 3923b6c221 |
Per-Kristian Nordnes | refactor(core/form/inputs): remove possibly destructive blur | e4ea215b45 |
Per-Kristian Nordnes | refactor(core/form/inputs): make PT-input scroll to top of elements | 2efe806c7e |
Per-Kristian Nordnes | refactor(core/form/inputs): streamline prop names for PT-input components | dd9c9d0182 |
Per-Kristian Nordnes | refactor(core/form/inputs): blur editor when opening object in PT-input | 76131d89fd |
Per-Kristian Nordnes | refactor(core/form/inputs): rename var to conventions | 20fb696b25 |
Per-Kristian Nordnes | refactor(core/form/inputs): wrap delete in try/catch to finalize ref assignment | cd3eb906c9 |
Per-Kristian Nordnes | refactor(core/form/inputs): remove uneeded prop assignment | a2544a62e4 |
Per-Kristian Nordnes | docs(core/form/inputs): add some comments why we blur here. | 0cbd4f4569 |
Per-Kristian Nordnes | doc(core/form/inputs): add comments on block props | fbd7be88f8 |
Per-Kristian Nordnes | refactor(core/form/inputs): add prop __unstable_textElementFocus | 2d8aa4daeb |
Per-Kristian Nordnes | refactor(core/form/inputs): make PT annotations handle focus correctly | 021c2c6dff |
Per-Kristian Nordnes | fix(core/form/inputs): fix issue with re-focusing the editor after toggling fullscreen | 02feb8dc1d |
Per-Kristian Nordnes | fix(core/form/inputs): rename autofocus > autoFocus | fb88521d05 |
Per-Kristian Nordnes | refactor(core/form/inputs): clean up useTrackFocusPath | bf77938faf |
Per-Kristian Nordnes | feature(core/form): keep stable child presence list with immutableReconcile | f4a113ff19 |
Per-Kristian Nordnes | refactor(core/form/inputs): use child presence hook for PT-input nodes | 145c573a0b |
Victoria Wagenblast | fix(core): add change indicators to boolean fields (#4538) | 94e1c7a4e0 |
Published by RitaDias over 1 year ago
To initiate a new Studio without installing the CLI globally:
npx create-sanity@latest
To upgrade a v3 Studio:
npm install sanity@latest
Author | Message | Commit |
---|---|---|
Bjørge Næss | chore(perf): support passing a comma-separated list of test-ids when running perf suite (#4520) | 6fb3855a7 |
Herman Wikner | fix(core): add PortableTextInputProps to InputProps union (#4522) |
4031d3c06 |
renovate[bot] | fix(deps): update dependency @tanstack/react-virtual to v3.0.0-beta.54 (#4478) | 4bef6000e |
Per-Kristian Nordnes | fix(core/form/inputs): fix rendering regression for PT-input (#4530) | fba12cf73 |
Published by RitaDias over 1 year ago
To initiate a new Studio without installing the CLI globally:
npx create-sanity@latest
To upgrade a v3 Studio:
npm install sanity@latest
Author | Message | Commit |
---|---|---|
Espen Hovlandsdal | fix(deps): update dependency @sanity/client to 6.1.1 | 05b29b767 |
RitaDias | fix(core): fix image and file upload (#4518) | 8861dfafa |
Binoy Patel | fix(core): fix PT reference autocomplete being cut off (#4519) | 6581afddb |
Per-Kristian Nordnes | fix(form/inputs): use ref to value as dependency | 4c83b91d2 |
Per-Kristian Nordnes | fix(form/inputs): ensure same empty presence object for PT-input components | 6c7c4e43c |
Per-Kristian Nordnes | refactor(form/inputs): simplify tenary statement | 828e2dace |
Per-Kristian Nordnes | fix(form/inputs): fix re-rendering issue with PT-input block object | 75dfb9ca1 |
Per-Kristian Nordnes | refactor(form/inputs): improve value ref update for ArrayOfObjectsFiled | ff435ede6 |
Per-Kristian Nordnes | refactor(core/form): make sure empty presence arrays are same object | 1299d6079 |
Per-Kristian Nordnes | refactor(form/inputs): use stable empty presence from memberItem | a7ddef953 |
Binoy Patel | fix(core): editing reference input in PTE does not show value (#4499) | 7a4275e2b |
To initiate a new Studio without installing the CLI globally:
npx create-sanity@latest
To upgrade a v3 Studio:
npm install sanity@latest
Author | Message | Commit |
---|---|---|
Bjørge Næss | refactor(form): fix issue with hiding a field group that only have fieldsets (#4477) | 906a6fe063 |
Published by rexxars over 1 year ago
To initiate a new Studio without installing the CLI globally:
npx create-sanity@latest
To upgrade a v3 Studio:
npm install sanity@latest
It's now possible to search within document lists. We've also improved keyboard accessibility, making it much easier to navigate between lists and the document form editor itself.
Author | Message | Commit |
---|---|---|
Cody Olsen | fix: avoid scroll on overflow: hidden (#4458) |
47302b5fa |
Espen Hovlandsdal | test(cli): reduce dangling entity cleanup threhold to 16 hours (#4431) | 5780487c8 |
Per-Kristian Nordnes | fix(form/inputs): improve tracking of formState focusPath for PT-input (#4466) | bdcea252f |
Bjørge Næss | fix(form): show fields without groups only when 'All fields' is selected (#4472) | b246b818d |
Herman Wikner | feat: document list search (#4436) | c6a729fbf |
Bjørge Næss | fix(desk): remove path param from url after initially read (#4469) | eee026d43 |
Cody Olsen | chore: delete junk files (#4476) | 6b78d7e7d |
Robin Pyon | chore(test-studio): add an author references block to simpleBlock | 8e83e8695 |
renovate[bot] | fix(deps): update dependency @vercel/fs-detectors to v3.9.2 | 56c81ff3e |
renovate[bot] | fix(deps): update dependency framer-motion to v10.12.10 | 96029646e |
renovate[bot] | fix(deps): update dependency @vercel/frameworks to v1.4.2 | 97b923ec4 |
Per-Kristian Nordnes | fix(portable-text-editor): fix sync issue with text spans (#4467) | 036e68ab7 |
RitaDias | fix(core): unset objects when no values in patch when empty value (#4495) | ba760f3c9 |
renovate[bot] | fix(deps): update dependency @sanity/client to v6 (#4454) | e092721ff |
To initiate a new Studio without installing the CLI globally:
npx create-sanity@latest
To upgrade a v3 Studio:
npm install sanity@latest
Author | Message | Commit |
---|---|---|
Per-Kristian Nordnes | Add boundary provider for nested content inside PT-input dialogs (#4486) | 4f961e9a8 |
Published by RitaDias over 1 year ago
To initiate a new Studio without installing the CLI globally:
npx create-sanity@latest
To upgrade a v3 Studio:
npm install sanity@latest
Author | Message | Commit |
---|---|---|
Robin Pyon | fix(core): ensure the create new button dialog is functional on smaller breakpoints (#4450) | f1dc5ec2e |
Robin Pyon | fix(core): prevent number primitive fields from triggering change callbacks when numbers are out of range (#4456) | aa2dd6eff |
Bjørge Næss | chore(test-studio): add a second field to simpleBlock's block type | 82f6ee1eb |
ecospark[bot] | chore(prettier): fix unformatted files 🤖 ✨ (#4453) | f39562962 |
Initiate a new Sanity Studio without installing the CLI globally:
npm create sanity@latest
To upgrade Sanity Studio, update its dependency:
npm install sanity@latest
Note
Visual Editing is available for select Sanity enterprise customers. If you would like to use Visual Editing with Vercel, you will also need to contact Vercel to enable this feature for your Vercel team. You may contact our sales team for more information.
This release includes support for Visual Editing and Content Source Maps. This feature enables you to make deep edit links from components in a front end that takes you to respective fields in the Studio. This enables a new workflow that substantially reduces the time it takes to make changes by bringing you directly to the relevant field where you can make edits reliably in its appropriate context. For more information on Visual Editing, check out the documentation here.
Visual Editing is available for mutual Sanity and Vercel Enterprise customers. Existing Sanity enterprise customers can contact their dedicated customer success manager to enable this feature. Customers interested in upgrading to an enterprise plan can contact our sales team for more information. You will also need to contact Vercel sales to enable this feature for your Vercel team.
Sanity enterprise customers can also use the Content Source Maps with GROQ to build custom Visual Editing capabilities. For more information, check out the Content Source Maps documentation here.
The sanity init
command now recognizes if you are in a Next.js project, and will ask:
• What Sanity project you want to use (use existing or create new)
• Whether you want to place an embedded Studio using pages or app routes
• Whether you want to use TypeScript for your Studio
• What template you want to use (clean or blog)
• Whether you want to append the project ID and dataset to your .env file (you can also specify a custom env file with the --env flag)
If you have a Next.js project and want to quickly deploy an embedded Sanity Studio, you can run npx sanity init
within your application's directory to get started.
studio init
with CLI when projectId
, dataset
and --y
flags are setsanity init
will now determine default package manager choice based on currently running package managerpnpm
to install dependencies would not install the latest available versions when creating a new project--yes
flag) for sanity init
would still show a confirmation prompt about running a v2-like CLI commandAuthor | Message | Commit |
---|---|---|
Bjørge Næss | fix(form): fix focus issue with reference fields (#4429) | 912ce0d40 |
Espen Hovlandsdal | fix(cli): prefer package manager that is currently executing (#4426) | 4523046ef |
Espen Hovlandsdal | fix(cli): skip v3 init prompt in unattended mode (#4425) | 7c17124e1 |
Rune Botten | feat(cli): skip dataset name validation in unattended mode when provided through options (#4422) | 605d62bc7 |
Espen Hovlandsdal | fix(cli): resolve and install latest sanity+vision dependencies (#4424) | 25303f970 |
renovate[bot] | fix(deps): update codemirror (#4377) | 989dd812a |
Cody Olsen | chore(test-studio): use the @sanity/ui provided hook for 3d reduced motion |
0f01713c1 |
Nina Andal Aarvik | fix(core): add fieldset within field to expandOperation | 488676a0c |
Bjørge Næss | fix(form): make sure getExpandOperations recursively expands objects and fieldsets | 8d50b9ea1 |
Robin Pyon | chore(test-studio): add fieldgroup with fieldset + validation debug case | 349e65f38 |
Tom Smith | fix(cli): sync shopify template updates | 8047e5de9 |
Tom Smith | fix(cli): shopify template docs typos | 46bcf812c |
Espen Hovlandsdal | fix(cli): update shopify template dependency ranges | d159107ef |
Espen Hovlandsdal | fix(cli): add missing dependencies for shopify template | 8af0512a2 |
Espen Hovlandsdal | chore: add Tom as codeowner of shopify templates | 48738ef40 |
renovate[bot] | chore(deps): update peter-evans/create-pull-request action to v5 (#4448) | cfe0b6f10 |
Bjørge Næss | chore: add codeowners to preview + file & image input | 01eb6b012 |
Bjørge Næss | fix(desk): set collapsed/fieldgroup/open path based on router path | b1f1eb4b7 |
Bjørge Næss | fix(form): prevent autofocus on array dialogs where focus is on a deeper value | 8cb064261 |
Binoy Patel | fix(core): scroll PTE input into view when receiving focus | 627640df4 |
Bjørge Næss | fix(form): skip autofocus on field groups as it's handled by either focusPath or focusFirstDescendant | 51c94836a |
Bjørge Næss | feat(util): add resolveKeyedPath | ec310409d |
Binoy Patel | fix(core): focus first descendant in FormView when empty initial focus path is given | 350b56780 |
Binoy Patel | fix(desk): use resolveKeyedPath to set initial open/focus path from url | dc04b4988 |
Binoy Patel | fix(form): sync local focus state when focused/focusPath props change | 89adbd86c |
Bjørge Næss | fix(form): improve focus handling for image and file inputs (#4451) | dd8e424c0 |
Benjamin Akar | feat(cli): sanity init for Next.js apps (#4439) |
6effcfec7 |
Bjørge Næss | ci(github): drop node 14 from test matrix (#4452) | 6fe2b9f7b |
Published by rexxars over 1 year ago
To initiate a new Studio without installing the CLI globally:
npm create sanity@latest
To upgrade a Sanity Studio:
npm install sanity@latest
skipVisibilityCheck
prop to preview components to avoid flickering when already in the viewportAuthor | Message | Commit |
---|---|---|
Binoy Patel | chore(test-studio): enable source-maps (#4392) | c3669f2a5 |
Espen Hovlandsdal | fix(cli): use more recent version ranges for new projects (#4393) | b3821203d |
Robin Pyon | fix(desk): document timeline performance improvements (#4347) | 4d56352eb |
Espen Hovlandsdal | fix(cli): remove broken custom document component link | 71f0d4566 |
Per-Kristian Nordnes | dev(test-studio): add validation to recursive blocks test | 2d3b0cfb3 |
Geoff Ball | Update README.md | b55bca85f |
Nina Andal Aarvik | fix(validation): remove recursive validation check for annotations in pte (#4397) | 5e47c398d |
Nina Andal Aarvik | fix(desk): change message shown after successfully deleting document (#4398) | 14f7f6dcf |
Nina Andal Aarvik | refactor(schema): add fields causing form to render empty | bc2ff4662 |
Bjørge Næss | fix(form): wrap members in an intermediate structure and hide field groups with no fields | e6bafe00e |
Bjørge Næss | fix(form): force-select "all fields" group and disable all others when changes panel is open | 755c337ee |
Bjørge Næss | fix(form): hide field groups where all fields are hidden | fcfe3a8e6 |
ecospark[bot] | chore(prettier): fix unformatted files 🤖 ✨ (#4401) | 148f4ebec |
renovate[bot] | chore(deps): update linters to v5.59.0 (#4376) | c6464400f |
RitaDias | chore(.github): add code owners (#4403) | 1be86d7c2 |
Per-Kristian Nordnes | fix(portable-text-editor): keep selection when emtied remotely | d30d93cd4 |
Per-Kristian Nordnes | test(portable-text-editor): update test snapshot according to placeholder change | 4d57da1da |
Binoy Patel | fix(core): fix focus issues when a new reference field is added (#4400) | c575bcb6f |
Espen Hovlandsdal | fix: exhaustive dependency arrays (#4368) | 2d7fe784c |
Cody Olsen | chore(desk-tool): fix sort order dependency | 9f6f4e8f3 |
Cody Olsen | chore: fix artifact from merge conflict in #4368 | 5e1cb7b51 |
Per-Kristian Nordnes | test(portable-text-editor): skip native pasting tests for MacOS | f70384803 |
Espen Hovlandsdal | test(e2e): use reduced motion selector for tests | 968d72315 |
Espen Hovlandsdal | test(e2e): fix incorrect boolean flag parsing | da6f87588 |
Espen Hovlandsdal | test(e2e): add SANITY_E2E_DEBUG flag for testing headful chrome | 5fb28f8d9 |
Espen Hovlandsdal | test(e2e): simplify authentication setup | c242e7cbe |
Per-Kristian Nordnes | fix(portable-text-editor): fix issue with PTE merge operation not producing unset patch (#4416) | 3f2b278bb |
RitaDias | fix(core): allow for skipping visibility in preview element (fix flickering issue) (#4408) | 2aa071b5f |
Bjørge Næss | chore(renovate): open individual PRs for individual packages | 3689ccf88 |
Cody Olsen | refactor(timeline): use official external store with selector API (#4413) | e1f2b7e2f |
renovate[bot] | fix(deps): update dependency framer-motion to v10 (#4380) | 09d7f7c30 |
Bjørge Næss | chore(renovate): autorebase dependency PRs when behind base branch | e47ab0dd9 |
Nina Andal Aarvik | fix(core): add max height to popover (#4414) | 6742eda1f |
Binoy Patel | fix(core): list virtualization is broken inside modals (#4410) | a00f0b97e |
Per-Kristian Nordnes | fix(portable-text-editor): ignore void edits inside markDefs (#4419) | 1800fe5cf |
Per-Kristian Nordnes | feature(core): show to-blockstyle in pt-diff (#4321) | 38bc5d8e6 |
Bjørge Næss | chore(test-studio): add repro schema for scroll bug | 050164c39 |
Binoy Patel | fix(core): fix scrolling issue with documents | 35c0ba90b |
Espen Hovlandsdal | feat(cli): support serving custom favicons (#4394) | 14be44487 |
Espen Hovlandsdal | test(e2e): wait for JS bundles to be ready in global setup | 46c9a0b67 |
Espen Hovlandsdal | test(e2e): bring back html reports for CI | 8ec5f5d52 |
Binoy Patel | fix(core): array item not showing when using modal: 'popover' (#4423) |
8106688dd |
Published by rexxars over 1 year ago
⚠️ THIS IS A MAINTENANCE RELEASE OF A PREVIOUS MAJOR VERSION OF SANITY
We recommend updating to Sanity Studio v3 which provides exceptional flexibility and an unparalleled developer experience. The core packages for Sanity Studio v2 will only receive critical bug fixes until Dec 7th, 2023
Please head over to the documentation for Sanity Studio v3 to learn more.
You can find migration guides from Studio v2 here.
Upgrade Sanity Studio with:
sanity upgrade
Author | Message | Commit |
---|---|---|
Binoy Patel | fix(form-builder): fix permission when initialValue is empty object (#4346) | 51a676626 |
Published by rexxars over 1 year ago
To initiate a new Studio without installing the CLI globally:
npx create-sanity@latest
To upgrade an existing Studio (v3):
npm install sanity@latest
--bare
, --env
The npm create sanity
and sanity init
CLI commands now have two new flags available:
--bare
- skips the installation of a Sanity Studio. Instead, it takes you through the project and dataset creation process and prints the project ID and dataset names to the console.--env [path]
- detects the framework used in the current directory and creates a .env
file with the correct prefix for environment variables. The path
is optional; the default value is .env
, but you can change it to anything beginning with .env
, for example, .env.local.example
.These flags are useful when you want to integrate an application with a new or existing project, when you have some existing Studio code you want to set up, or when you only need the Content Lake capabilities.
Lists of objects and references are now virtualized in the Sanity Studio UI. This should significantly improve performance in documents with large arrays.
Any custom Vite configuration defined in sanity.cli.ts
will now be merged with the default configuration using Vite’s merge logic. This improvement will make it easier customize the Vite configuration without having to deeply understand the defaults. The configuration now also has improved TypeScript types.
block
type outside of an array, which is not currently supported (thanks @pauloborges!)Author | Message | Commit |
---|---|---|
Espen Hovlandsdal | test(cli): resolve user email for configured test token (#4353) | 868fc614f |
Espen Hovlandsdal | test(cli): use --detach for dataset copy for faster runs (#4357) |
d085af04a |
Binoy Patel | chore(perf): add perf test for large document (#4356) | 5c319e9e1 |
renovate[bot] | fix(deps): update dependency scroll-into-view-if-needed to v3.0.10 (#4328) | 0e598baae |
Binoy Patel | fix(core): fix permissions when initialValue is empty object (#4360) | 937421a0a |
Binoy Patel | fix(cli): fix basePath not assigned to css files (#4354) | 71260003e |
Noah Gentile | fix(cli): apply user vite config in preview
|
94329592b |
Noah Gentile | feat(cli): merge user vite config object | 53f780826 |
Noah Gentile | feat(cli): align with vite config fn behavior | 437a1b458 |
Noah Gentile | refactor(cli): mock vite typings | b43b69a31 |
Paulo Borges | fix(schema): validate that object has no standalone block fields (#4199) | c1311164a |
Espen Hovlandsdal | test(e2e): bump initial setup timeout to 120s | 11c5efb04 |
Espen Hovlandsdal | chore: fix prettify script not specifying path | 538d31c54 |
Per-Kristian Nordnes | refactor(portable-text-editor): ignore operations or patches targeting inside non-editable objects of the editor (#4334) | 8e7a323e6 |
Binoy Patel | fix(core): clear unused references in an array when clicked outside (#4361) | cb9ef3ab3 |
Binoy Patel | chore(cli): fix basePath test flakiness (#4366) | 0cd32eb8f |
shur | fix: log inability to fetch user for avatars, prevent studio crash (#4367) | bcc240dee |
renovate[bot] | chore(deps): update devdependencies (non-major) (#4329) | 3cd83d4ab |
Nina Andal Aarvik | fix(core): add ellipsis textOverflow to type in file picker list (#4348) | fcbea4b63 |
Nina Andal Aarvik | fix(desk): compare selected on sortOrderRaw instead of sortOrder (#4345) | 16cf23550 |
Benjamin Akar | feat(cli): add --bare and --env flags to sanity init (#4290) |
345d319ee |
Cody Olsen | chore(CI): create yarn lockfile maintenance action (#4370) | f7fd7a100 |
ecospark[bot] | chore(deps): lock file maintenance (#4371) | 2657ad075 |
Cody Olsen | chore(renovatebot): ignore the v2 text fixture deps | bbb3a413e |
renovate[bot] | chore(deps): lock file maintenance (#4372) | 0270793d0 |
renovate[bot] | fix(deps): update dependency @types/three to ^0.150.0 (#4382) | 629acf4a5 |
renovate[bot] | fix(deps): update dependency three to ^0.151.0 (#4383) | f6f9b8ced |
Per-Kristian Nordnes | fix(portable-text-editor): invalid Portable Text value causing crash (#4364) | 2a154336f |
Marius Lundgård | fix(core): fix typos in config reducer error messages | 72b37a5ef |
Cody Olsen | fix: refactor desk tool intent resolver to reduce remounts (#4363) | e888f513b |
Marius Lundgård | fix(deps): update @sanity/icons
|
2f0ec122a |
renovate[bot] | chore(deps): lock file maintenance (#4387) | 9e9d28634 |
Bjørge Næss | fix(perf-runner): add support for running tests against recent tags only (#4386) | 036c02983 |
Nina Andal Aarvik | fix(core): capitalize type name if item type lacks title in pte (#4385) | df16d464c |
Binoy Patel | fix(core): add virtualization to array of objects and references (#4299) | 09afa59ad |
Published by binoy14 over 1 year ago
To initiate a new Studio without installing the CLI globally:
npx create-sanity@latest
To upgrade a v3 Studio:
npm install sanity@latest
Author | Message | Commit |
---|---|---|
Cody Olsen | chore(typings): remove get-it overrides (#4319) |
de48e2853 |
Robin Pyon | chore(test-studio): filter out unavailable document types in recently edited documents | b0c92bc2e |
Binoy Patel | chore(perf-test): Fix test id (#4324) | 05aa9af91 |
Bjørge Næss | fix(perf-runner): handle test errors and store on performanceTestRun documents (#4332) | 0e1e71798 |
renovate[bot] | chore(deps): update typescript packages (#4330) | 9427dc632 |
Bjørge Næss | fix(perf): memoize list of ids passed to Sortable | 81d655112 |
Bjørge Næss | fix(perf): make sure form callbacks are stable | 9a03202c9 |
Bjørge Næss | test(form): improve immutableReconcile tests for circular structures | e3e69385c |
Bjørge Næss | fix(form): fix issue with immutableReconcile producing new identities for siblings of changed items | 19e2a1387 |
Cody Olsen | chore(CI): add prettier-if-needed action (#4294) | aa76d9403 |
ecospark[bot] | chore(prettier): fix unformatted files 🤖 ✨ (#4340) | f33e6735f |
Binoy Patel | fix(core): fix document title not working (#4325) | 76992d69e |
Cody Olsen | fix(router): resolve intent resolver regression since v3.7.1 (#4344) |
8a2a52d32 |
To initiate a new Studio without installing the CLI globally:
npx create-sanity@latest
To upgrade a v3 Studio:
npm install sanity@latest
Author | Message | Commit |
---|---|---|
Per-Kristian Nordnes | fix(portable-text-editor): fix wrong path being created for markDefs (#4341) | d438f0da1 |
To initiate a new Studio without installing the CLI globally:
npx create-sanity@latest
To upgrade a v3 Studio:
npm install sanity@latest
v3.8.0
where annotations could not be edited in SafariAuthor | Message | Commit |
---|---|---|
Binoy Patel | chore(deployment-sync): sync branch information on push webhook (#4318) | 5f0b39391 |
Bjørge Næss | refactor(perf): remove deployment-sync | b659f1fe7 |
Per-Kristian Nordnes | chore(portable-text-editor): loosen peer dep. requirement for rxjs | 9c2181f2d |
Per-Kristian Nordnes | fix(portable-text-editor): fix issue when pasting mulitple empty blocks | 469a26217 |
Per-Kristian Nordnes | test(portable-text-editor): add support for testing pasting html | a9b6b6890 |
Per-Kristian Nordnes | test(portable-text-editor): add paste test for multiple empty blocks | d12a46d16 |
Per-Kristian Nordnes | refactor(portable-text-editor): rename param to align with usage elsewhere | 33771b56d |
Per-Kristian Nordnes | refactor(portable-text-editor): clean up createWithInsertData plugin | 054108b60 |
Per-Kristian Nordnes | test(portable-text-editor): await clipboard write functions | ec2678ad2 |
Per-Kristian Nordnes | fix(form/inputs): fix Safari issue with annotation edit popovers being hidden | 6d2a7b3a2 |
Published by RitaDias over 1 year ago
To initiate a new Studio without installing the CLI globally:
npx create-sanity@latest
To upgrade a v3 Studio:
npm install sanity@latest
The global create menu has been updated with alphabetically sorted options and a search field, providing a more convenient way to find a desired document. The menu has also been redesigned to appear in a popover instead of a full screen dialog for improved UX and less context switching.
Author | Message | Commit |
---|---|---|
Bjørge Næss | refactor(perf-runner): convert perf runner to a cli + various improvements (#4298) | bb9bcb972 |
Bjørge Næss | chore(perf): add test for large array | b454c8c18 |
Binoy Patel | chore(perf): add test for editing another field in large doc | 1985a55e7 |
Herman Wikner | feat(core): improve global create menu (#4288) | ea69cf4c8 |
Per-Kristian Nordnes | test(test-studio): rename schema file .ts > .tsx | cc1937d99 |
Per-Kristian Nordnes | fix(portable-text-editor): remove unused props left behind | fc6326ff6 |
Per-Kristian Nordnes | refactor(portable-text-editor): rename type > schemaType + add schemaType to all rendercallbacks | 20248617a |
Per-Kristian Nordnes | refactor(form/imputs): fix issues and improve PT-input custom rendring | fdec8fcee |
Per-Kristian Nordnes | test(portable-text-editor): fix changed prop name | 72746b220 |
Per-Kristian Nordnes | refactor(form/inputs): improve BlockObject code | 30fd99156 |
Per-Kristian Nordnes | refactor(form/inputs): refactor PT-input inlineObject code | 01b4377ce |
Per-Kristian Nordnes | refactor(form/inputs): address minor code style improvements from PR review | b447bb6e3 |
Per-Kristian Nordnes | refactor(portable-text-editor): remove legacy code no longer needed | f3b6c970f |
Per-Kristian Nordnes | fix(form/inputs): fix popover open/close state issue with PT-input | 921319ccc |
Per-Kristian Nordnes | test(portable-text-editor): update snapshot | ed3eb32bb |
Per-Kristian Nordnes | refactor(form/inputs): remove unnecessary div | aa381a7e4 |
Per-Kristian Nordnes | refactor(form/inputs): improve block/inline-block actions handling | e040c42d3 |
Per-Kristian Nordnes | refactor(form/inputs): streamline Annotation custom rendering | 9264d31f6 |
Per-Kristian Nordnes | fix(form/inputs): fix wrong mode for delete inline object call | c92586f18 |
Per-Kristian Nordnes | fix(form/inputs): mark as not contentEditable | 0d796790c |
Per-Kristian Nordnes | fix(portable-text-editor): remove redundant and incorrect hook | 485e18b68 |
Per-Kristian Nordnes | fix(portable-text-editor): fix issue with focused and selected prop for leaves | 1766c63c2 |
Per-Kristian Nordnes | refactor(portable-text-editor): optimize performance for path conversions | f3eaf4012 |
Per-Kristian Nordnes | fix(form/inputs): test for length of focusPath before creating initial selection | c5716949c |
Per-Kristian Nordnes | refactor(form/inputs): refactor PT-input customization props | e9f496f7e |
Per-Kristian Nordnes | fix(portable-text-editor): fix incorrect path matching with diffMatchPatches | 3e121d4fb |
Per-Kristian Nordnes | refactor(portable-text-editor): sync value more delicately | 1c2235754 |
Per-Kristian Nordnes | chore(form/inputs): remove unused legacy code | eec695a18 |
Per-Kristian Nordnes | fix(form/inputs): fix invalid CSS value | 0f42777bb |
Per-Kristian Nordnes | fix(portable-text-editor): ensure that changed inlineBlocks gets correct _key | aea3b23bc |
Per-Kristian Nordnes | refactor(form/inputs): complete block customization support and refactor code | 4cc3b5995 |
Per-Kristian Nordnes | dev(test-studio): restore simpleBlock schema | 01e39afc0 |
Per-Kristian Nordnes | refactor(portable-text-editor): make useSyncValue more readable | b253bbc7e |
Per-Kristian Nordnes | refactor(portable-text-editor): add backwards comp. for renamed prop. | 0392d13d0 |
Per-Kristian Nordnes | fix(portable-text-editor): fix useMemo deps gone wrong | 2b3004bef |
Espen Hovlandsdal | chore: drop unused smoke test (#4280) | 53e549862 |
Espen Hovlandsdal | chore: drop unused mock files (#4279) | 01a3cda85 |
Espen Hovlandsdal | chore: refactor e2e test setup | d92a606ea |
Espen Hovlandsdal | ci: add e2e test workflow | 61c73a9fe |
Binoy Patel | fix(vision): fix results getting cut off in vision (#4287) | 63753c242 |
Per-Kristian Nordnes | fix(portable-text-editor): make deprecated property non-enumerable | b9f0b5fad |
Cody Olsen | fix: upgrade @sanity/eventsource (#4303) |
55c4f31b6 |
Per-Kristian Nordnes | (form/inputs): PT: fix various path and selection issues (#4310) | 1690bee2c |
Per-Kristian Nordnes | PTE: Improve validation and value propagation (#4307) | 57ac64e25 |
Binoy Patel | chore(perf): add perf tests for different array items (#4306) | 137c70146 |
Per-Kristian Nordnes | fix(portable-text-editor): fix issue with setIfMissing and insert patches on empty editor | 3aee08070 |
Per-Kristian Nordnes | test(portable-text-editor): update test to reflect recent changes to empty value handling | 6d8e5b469 |
Per-Kristian Nordnes | test(portable-text-editor): support pasting in collab test env. | cec4b3b2c |
Per-Kristian Nordnes | test(portable-text-editor): test pasting into the editor | bbb6a2b1d |
Per-Kristian Nordnes | refactor(portable-text-editor): improve selection management | 8155969e8 |
Per-Kristian Nordnes | test(portable-text-editor): temp. disable flakey expectation on CI | a85b98da6 |
Published by vicmeow over 1 year ago
To initiate a new Studio without installing the CLI globally:
npx create-sanity@latest
To upgrade a v3 Studio:
npm install sanity@latest
Author | Message | Commit |
---|---|---|
Robin Pyon | refactor(core): initial generalised command list (#4251) | ea0211b12 |
Geoff Ball | fix(core): typo | 2155050b3 |
Robin Pyon | fix(core): handle 403 responses when calling userStore.getUser() (#4281) |
06fc26e12 |
Cody Olsen | fix: preserve preview panes on small screens (#4276) | c5ca9b6b7 |
Cody Olsen | fix: upgrade history to v5 (#4282) |
1adf7f909 |
Cody Olsen | fix(SSR): handle scheme & onSchemeChange props edge cases (#4283) |
0082be562 |
Binoy Patel | fix(core): remove array from document when it's only item is unset (#4285) | 8a2b8adeb |
Chewie | fix(types): add hidden to FieldGroupDefinition (#4208) |
0fcb43956 |