sanity

Sanity Studio – Rapidly configure content workspaces powered by structured content

MIT License

Downloads
9.5M
Stars
5.2K
Committers
128

Bot releases are hidden (Show)

sanity -

Published by bjoerge almost 2 years 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.

Installation and upgrading

Upgrade the v2 version of the Command Line Interface (CLI) with:

npm install --global @sanity/cli@v2

Upgrade Sanity Studio with:

sanity upgrade

🐛 Notable bugfixes

  • Fixes an issue that could give false validation errors for complex documents

📓 Full changelog

Author Message Commit
Bjørge Næss fix(base): wait for all chunked requests to arrive before continuing (#4017) 3b6915b60d
sanity - v3.1.2

Published by skogsmaskin almost 2 years ago

Installation and upgrading

To initiate a new Studio without installing the CLI globally:

npx create-sanity@latest

To upgrade a v3 Studio:

npm install sanity@latest

🐛 Notable bugfixes

  • Fixed a regression with release 3.1.0 where a custom style in the portable text input would not fallback to be rendered as the normal style when a rendering-component for that style was not defined.

📓 Full changelog

Author Message Commit
Per-Kristian Nordnes fix(core/form): fix forgotten optional extension 24805ae66
Per-Kristian Nordnes fix(form/inputs): fix component fallback behaviour e892c62bc
Per-Kristian Nordnes fix(schema): fix validator text typo 5e4c56243
sanity - v3.1.1

Published by rexxars almost 2 years ago

Installation and upgrading

To initiate a new Studio without installing the CLI globally:

npx create-sanity@latest

To upgrade a v3 Studio:

npm install sanity@latest

🐛 Notable bugfixes

  • Fixes an issue where createAuthStore would incorrectly require a client factory to be passed
  • Fixes an issue where lodash was not optimized in all released Sanity packages
  • Fixes an issue where disabling direct uploads when using multiple asset sources would not work

📓 Full changelog

Author Message Commit
Cody Olsen fix: ensure lodash is optimized in every monorepo package 8494ac0d19
Cody Olsen fix: apply config.form.image.directUploads cf52ee7a45
Marius Lundgård fix: clientFactory should be optional d894d56469
Espen Hovlandsdal chore: temporarily skip flakey tests b8534b1876
Espen Hovlandsdal chore: update release notes script with new instructions afcc2f5c62
Espen Hovlandsdal fix(groq): provide tsdoc for groq template literal function f9520b2e97
sanity -

Published by bjoerge almost 2 years ago

Installation and upgrading

To initiate a new Studio without installing the CLI globally:

npx create-sanity@latest

To upgrade a v3 Studio:

npm install sanity@latest

✨ Highlights

Improved customization and TypeScript support for the Portable Text Input and schemas

Improved support for custom rendering of the content in the Portable Text input via .components.block, component.inlineBlock and .components.annotation render callbacks for object-like schema types, references and type aliases.

While this has been possible previously by modifying the block schema locally, these customizations can now also be put directly on the various content types themselves, to be shared between different Portable Text inputs using them. For example you can now customize how an author reference would appear in various Portable Text contexts on the author schema itself.

Also text specific schema properties like decorators, styles and lists for the block type itself have slighly changed their configuration in order to better align with the rest of the studio. More info: Changes in block schema customization properties.

If you previously did customization of the editor using your own render callbacks or icons through the .blockEditor property in the block schema, you will get a deprecation warning, but they will still continue to work until further notice.

Please refer to the documentation for how to customize the block type and the Portable Text editor for v3 of the studio.

Besides this, the Portable Text input related code and schema types have been given a TypeScript update for better type safety and developer experience.

Studio appearance

The user menu now has options to select the appearance (color scheme) of the Studio. The selected appearance is stored in local storage and is reused on the next visit.

Logo component updates

The button in the navbar that wraps the custom logo component has no padding anymore. This update is made in order to give the custom logo component full control over how big the button in the navbar should be. Therefore, the custom logo component may need to be updated in order to achieve the previous look. Below is an example of how to recreate the same result as before:

import {defineConfig} from 'sanity'
import {Box} from '@sanity/ui'

function MyLogo() {
  return (
    <Box padding={3}> // <-- Wrap your custom logo with a `Box` with `padding={3}`
      <CustomLogo />
    </Box>
  )
}

export default defineConfig({
  // ... rest of config

  studio: {
    components: {
      logo: MyLogo,
    },
  },
})

🐛 Notable bugfixes

  • This update fixes so that the component in the root config (ie in defineConfig) is the component that receives the result of the props passed on with renderDefault in previous custom components.
  • Fixed an issue with custom sort orders

📓 Full changelog

Author Message Commit
Bjørge Næss fix(form): fix issue with zero being rendered as empty string in number input 7be751176
Marius Lundgård build: add bin directory to distribution a1f6e0001
Herman Wikner feat(core): update user menu with color schemes 788d23bde
Herman Wikner feat(core): store selected color scheme i local storage 9ce010870
Herman Wikner fix(core): update workspace preview design 543a0f39b
Marius Lundgård fix(config): respect unstable_clientFactory bcd4854e3
Cody Olsen fix: optimize lodash imports (#3974) 6c7d48dbf
Marius Lundgård docs: update readme (#3987) 88c90eb93
Marius Lundgård docs: remove ToC 13389f576
Bjørge Næss chore(form): replace react-sortable-hoc with dndkit (#3961) 551c4d571
Espen Hovlandsdal fix(cli): only require workspace name if more than 1 workspace 743244b9a
Espen Hovlandsdal feat(core): add userHasRole utility method cd0819f11
Snorre Eskeland Brekke fix(block-tools): ignore blocks inside list items (#3492) 5e5183129
Espen Hovlandsdal feat(core): add new documentIdEquals utility method f7eb4b3a6
Espen Hovlandsdal chore(vision): use react 18 compatible dependencies 401f08a45
Espen Hovlandsdal fix(config): throw error early if tools/template resolution fails 2f2e4678a
Herman Wikner fix(core): components API execution order 299ac066f
vicbergquist fix(desk): always use default ordering on first rendering if any and update order on sort 663cc67e4
Espen Hovlandsdal refactor(desk): remove unused default ordering option in useDocumentList e2209ec85
Espen Hovlandsdal fix(desk): recompute default sort order on desk structure change 4f9a35327
Espen Hovlandsdal fix(desk): use last updated at as default sort order d5166e52d
Per-Kristian Nordnes refactor(types): refactor Block schemas for new component extension api dfd33cedd
Per-Kristian Nordnes refactor(types): refactor portable text types used internally in the studio 48c03a9d8
Per-Kristian Nordnes refactor(types): remove deprecated block validator Rules from v2 7aa1404d9
Per-Kristian Nordnes refactor(schema): allow for .components in block schema + ensure that the result has a name 5b5e87895
Per-Kristian Nordnes refactor(validation): remove deprecated block validation rule. Should be using 'Rule.custom' in v3. 5f922131e
Per-Kristian Nordnes refactor(validation): update pt types acc0e798d
Per-Kristian Nordnes refactor(core/form): add block and annotation component schema extensions bbd32ae49
Per-Kristian Nordnes refactor(block-tools): use pt-types from @sanity/types 27d513351
Per-Kristian Nordnes refactor(form/inputs): Custom rendering support via schema for PT-input f1152f740
Per-Kristian Nordnes refactor(core/fields/diffs): use new types in Portable-text-diffs b2aa1f2db
Per-Kristian Nordnes refactor(core/preview): use new types in portable-text previews 3fd22cc20
Per-Kristian Nordnes refactor(core/form/inputs): function can now be moved out of scope ccdc0fd0b
Per-Kristian Nordnes refactor(core/form/inputs): keep using schemaType var name a65169b99
Per-Kristian Nordnes refactor(core/form/input): use updated types for block schemas and pt render callbacks aa3ee4e41
Per-Kristian Nordnes refactor(types/schema): support seperate inlineBlock render callback c21a8f1c7
Per-Kristian Nordnes refactor(schema): validate lists and new component for block type afd01e2c9
Per-Kristian Nordnes refactor(types): limit supported types in block types .of to objects and refs cb867b8c5
Per-Kristian Nordnes refactor(core/form): update render callback support for block types 0902fa59a
Per-Kristian Nordnes chore: mark types required (by schemas) as @beta edb3bd009
Per-Kristian Nordnes refactor(portable-text-editor): update types and add render callbacks to the PTE 6202a8c05
Per-Kristian Nordnes chore: update puppeteer to latest version a9dc1ea11
Per-Kristian Nordnes test(portable-text-editor): update tests 05abec0be
Per-Kristian Nordnes chore: update yarn.lock 0590a8141
Per-Kristian Nordnes chore(portable-text-editor): mark types with availablility status 34089622c
Per-Kristian Nordnes refactor(portable-text-editor): simplify code 8c08f85b8
Per-Kristian Nordnes refactor(portable-text-editor): rename type > schemaType d25cbb5cf
Per-Kristian Nordnes refactor(portable-text-editor): rename type > schemaType b18716f49
Per-Kristian Nordnes feature(schema): backward compatibility for breaking changes in block schema c323b1281
Bjørge Næss fix(schema): add help id to blockeditor schema warnings 8d74ace91
Herman Wikner feat(core): move padding from LogoButton to StudioLogo d774bc64d
Herman Wikner dev(test-studio): update custom logo component bb61fa1ef
Marius Lundgård fix: pass readOnly to select element (#3900) f70736f2d
sanity -

Published by bjoerge almost 2 years 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.

Installation and upgrading

Upgrade the v2 version of the Command Line Interface (CLI) with:

npm install --global @sanity/cli@v2

Upgrade Sanity Studio with:

sanity upgrade

🐛 Notable bugfixes

  • Improves inputmode detection for number input (#3867)
  • Fixes an issue causing reference field filters not to update in some cases (#3901)

📓 Full changelog

Author Message Commit
Per-Kristian Nordnes ci: update branch name 4d48d8b2d4
Per-Kristian Nordnes chore: update v2 publish command to tag release with v2 cf1c64bf02
Raul de Melo fix(form-builder): improve inputmode detection for number input and fix tests 11988da509
Nina Andal Aarvik fix(form-builder): remove distinctUntilChanged function from handleQueryChange in referenceInput (#3901) f544e11c4d
Snorre Eskeland Brekke chore: deleted plugins that now live outside the monorepo (#3899) d477e34a92
Per-Kristian Nordnes chore: simplify v2 tag publish command a464646b6b
Espen Hovlandsdal chore: deprecate v2 modules (#3997) 0dba94b72f
Espen Hovlandsdal fix(cli): specify 2.x version ranges for dependencies (#3993) a7e00a078d
Bjørge Næss chore: upgrade release notes template for 2.x e78489fec9
sanity - v3.0.2

Published by skogsmaskin almost 2 years ago

Sanity Studio v3

This is the release of the stable, production-ready version the new major version (v3) of Sanity Studio. It deprecates Studio v2 and earlier versions. Studio v3 brings new features for content creators and developers, as well as a completely rewritten studio customization framework.

High-level improvements

  • The Parts system is deprecated and replaced with a new studio customization framework
  • Custom webpack tooling is replaced with Vite
  • Sanity Studio now ships as a single npm dependency ([sanity](https://www.npmjs.com/package/sanity)) with JavaScript-based configuration (sanity.config.js|ts / sanity.cli.js|ts)
  • The Studio module also has full ECMAScript Modules (ESM) support and CommonJS fallback and can be run in all modern browsers without bundling and embedded in any web project
  • Full TypeScript coverage with annotated APIs (@internal, @beta, @public), new helper functions (defineType,defineField), and emerging inline documentation with TS Doc
  • Better abstractions for wrapping and composing Studio and Form Components with renderDefault(props) and other convenience functions.
  • New Plugins API with plugin development tooling (plugin-kit) that makes it easier to build, maintain, and publish plugins on npm
  • New Studio v3 templates that let you get up and running with best practices

Learn more about Studio v3

sanity - v3.0.0-rc.3

Published by skogsmaskin almost 2 years ago

Installation and upgrading

To globally install/upgrade the v3 Sanity CLI:

npm install --global sanity@dev-preview

To validate you're on @3.0.0-rc.3:

$ sanity --version
> sanity version 3.0.0-rc.3

The new CLI should work with existing v2 studios, but you won't be able to initialize new v2 studios with it.

To initiate a new Studio without installing the CLI globally:

npx create-sanity@dev-preview

To upgrade a v3 Studio:

npm install [email protected]

Make sure your package.json are up to date with these dependencies:

{
  "dependencies": {
    // if you’re depending on `@sanity/ui`
    "@sanity/ui": "^1.0.0",
    "sanity": "3.0.0-rc.3"
  }
}

Breaking changes

Client dropped from configuration context

Removed the client property from configuration context. Use getClient({apiVersion: '2022-06-07'}) or similar instead.

Configuration resolution order

The order in which defineConfig resolves workspace configuration has changed.

Plugin configurations are now resolved before the configuration provided to defineConfig is applied.

The basic principle is that the higher index a plugin has in the plugins array, the higher priority it has, because it can "overwrite" what previous plugins have configured, or choose to pass it on in the chain. Finally, the chain ends in the "root config" (i.e. in defineConfig) which gets to determine the final output.

Before:

export default defineConfig({
  // rest of config...

  tools: (prev) => {
    // prev = [] 

    return [...prev, toolFromConfig]
  },

  plugins: [
    toolPlugin1(), // prev = [toolFromConfig]
    toolPlugin2(), // prev = [toolFromConfig, toolFromPlugin1]
    toolPlugin3(), // prev = [toolFromConfig, toolFromPlugin1, toolFromPlugin2]
  ],
})

After:

export default defineConfig({
  // rest of config...

  tools: (prev) => {
    // prev = [toolFromPlugin1, toolFromPlugin2, toolFromPlugin3]

    return [...prev, toolFromConfig]
  },

  plugins: [
    toolPlugin1(), // prev = []
    toolPlugin2(), // prev = [toolFromPlugin1]
    toolPlugin3(), // prev = [toolFromPlugin1, toolFromPlugin2]
  ],
})

Renamed modal option in document actions

In document actions, modal has been renamed to dialog.

Before:

export const MyDocumentAction = () => {
  // ... rest of the code

  return {
    // ... rest of the code
    modal: ActionDialog, // <--- This is the old way of doing it
    icon: RocketIcon,
    label: 'My action',
  }
}

After:

export const MyDocumentAction = () => {
  // ... rest of the code

  return {
    // ... rest of the code
    dialog: ActionDialog, // <--- This is the new way of doing it
    icon: RocketIcon,
    label: 'My action',
  }
}

Notable bugfixes

  • Fixes an issue causing numeric array items to disappear when clearing the input
  • Fixes an issue with arrays rendering inside custom blocks
  • Makes sure colors used in the review changes panel will adjust to dark mode
  • Fixes an issue causing media previews to not work properly
  • Fixes a edge case where a cross-dataset reference to a deleted document would prevent you changing the document with the reference
  • Fixes UI issues related to adding annotations in the Portable Text Editor.

📓 Full changelog

Author Message Commit
Cody Olsen chore(test-studio): bump sanity-plugin-mux-input 85a92a29b2
Espen Hovlandsdal refactor: migrate from createPlugin to definePlugin 32c1e2672e
Fred Carlsen fix(core): skip cross dataset validation on mutations (#3846) 966f66a1f1
Herman Wikner fix(core): hide workspace menu when there is only one workspace de0c693876
Bjørge Næss feat(form): add API affordance for transforming patches 7b4ee321a3
Bjørge Næss chore(test-studio): add usage example for TransformPatches helper 664f632fdd
Snorre Eskeland Brekke fix: add missing email type support to defineType et al 699f866739
Snorre Eskeland Brekke fix: ObjectInputProps value now defaults to Record<string, any> to allow narrowing 6a51f71c0c
Snorre Eskeland Brekke fix: added components with props as fallback for defineType et al 694bcd09f6
Snorre Eskeland Brekke fix: TypeAliasDefinition is now an interface so it can be extended e3a1a07ffc
Snorre Eskeland Brekke fix: removed calendarTodayLabel option from date and datetime 24879b64f6
Snorre Eskeland Brekke fix: added min & max validation to DateRule 585226d4bb
Snorre Eskeland Brekke chore: fix test 3bcb86b49c
Snorre Eskeland Brekke fix: removed groups from image and file definitions c2710b5c0f
Snorre Eskeland Brekke fix: reverted decorator to use blockEditor, as that is the working property dcf9c948b9
Espen Hovlandsdal chore(server): add more debug logging f505df635a
Herman Wikner fix(desk): font style in ConfirmDialog 70ec276f5a
Herman Wikner fix(form): custom preview component check in BlockObjectPreview 156f3a5505
Espen Hovlandsdal refactor(cli): always print dev vs preview warning 227df17214
Bjørge Næss fix(form): don't open last item when uploading 63eb5f7c9b
Espen Hovlandsdal refactor(core)!: rename document action modal prop to dialog 24fb475bbc
Herman Wikner feat(desk): scope document footer dialogs to the current pane 303a9faa04
Espen Hovlandsdal refactor(config)!: drop client from config context 569420a00d
Bjørge Næss refactor(form): reorganize member utils and create util for rendering single member 6464c0b5f1
Bjørge Næss chore(form): remove unused callback props ce53bc616a
Bjørge Næss chore(types): remove debug code 618d2dcb8e
Herman Wikner fix(config): move the root config last in the chain of configs d193a7a0ca
Herman Wikner fix(config): use flattenConfig in useMiddlewareComponents to unify the order with other APIs 0969c0c022
Herman Wikner fix(config): update components API tests with updated order 209e0d3c8e
Herman Wikner test(config): update resolveConfigProperty test with the updated order fe7a722c32
Per-Kristian Nordnes refactor(inputs): refactor PT-input annotation popover 9d755773a9
Bjørge Næss fix(form-builder): improve inputmode detection for number input and fix tests 38df0fbcfd
Herman Wikner fix(core): add missing spacing in image input 66d1830a56
Bjørge Næss fix(form): fallback to capitalized fieldset name if no title is given fac025f68a
Bjørge Næss fix(form): fix collapsible fieldset state not propagated through arrays dd61218d8d
Espen Hovlandsdal chore(test-studio): migrate some input components 5b840e7744
Bjørge Næss chore(form): remove unused code 033d6dee49
RitaDias fix: sanity dev will now react to env var (sanity staging) (#3893) face98b47f
Bjørge Næss fix(form): fix issue with FormInput causing array items to be rendered inline 983d11ec9c
Bjørge Næss refactor(core): separate preview component props and preview callback props f62136299b
Bjørge Næss refactor(preview): tidy up preview APIs e8423e9154
Bjørge Næss fix(core): fix crash caused by missing type name from problem group path segments 73782f4b85
Bjørge Næss fix(core): fix various issues with previews 3143386ec3
Bjørge Næss fix(form): render grid previews without shadow and border c93b1688a8
Bjørge Næss fix(core): sort out renderDefault + preview issue b436b5f927
Bjørge Næss fix(preview): spread prepared preview value as props ac7dd5f64a
Bjørge Næss fix(form): make deletion of erroneus array items work again 889c613704
Bjørge Næss fix(mutator): use Object.is for equality check b83138cc1e
Bjørge Næss fix(form): treat signed zeros as empty value to retain type information when clearing number input in array 3e3239edbe
Bjørge Næss fix(form): disallow numeric values too large for JS 32 bit numbers 320baba3c6
RitaDias refactor: re-order methods in fieldpresence to reduce deadcode removal (next) (#3891) f7595bd406
Espen Hovlandsdal fix(errors): unify error boundaries, prevent duplicate toasts 3897ff255a
Marius Lundgård chore(deps): upgrade design system packages d7ab1b5e97
Marius Lundgård fixup! chore(deps): upgrade design system packages 99f82b10ce
Marius Lundgård chore(deps): upgrade to @sanity/[email protected] d1fb82de87
Marius Lundgård chore(deps): upgrade @sanity/ui-workshop a1d53cff3a
Herman Wikner fix(core): reference preview tool tips dfbe901ecd
Bjørge Næss chore(core): remove deprecated document action types 975287db17
Per-Kristian Nordnes refactor(desk): remove support for documentAction.modal (now .dialog) 8a08db15ea
Bjørge Næss chore(cli): replace v3 tag with version range 9d415af92c
Herman Wikner feat(core): add scheme support in color manager a6549b1d4f
Herman Wikner test(core): update color manager test 693bdda2fc
sanity - v2.35.2

Published by RitaDias almost 2 years ago

Upgrade the Command Line Interface (CLI) with:

npm install --global @sanity/cli

Upgrade Sanity Studio with:

sanity upgrade

🐛 Notable bugfixes

  • Fixes an edge case where a cross dataset reference to a deleted document would prevent you from changing the referring document

📓 Full changelog

Author Message Commit
Fred Carlsen fix(base): skip cross dataset validation on mutations (#3856) d746aaec49
sanity - v3.0.0-rc.2

Published by rexxars almost 2 years ago

🐛 Notable bugfixes

  • Fixes a typing issue introduced in the previous release (v3.0.0-rc.1)

📓 Full changelog

Author Message Commit
Espen Hovlandsdal chore: upgrade @sanity/pkg-utils to 1.17.3 29f87668b6
sanity - v3.0.0-rc.1

Published by rexxars almost 2 years ago

Features

  • Workspaces can now be given a custom subtitle, and will not use the dataset name by default
  • TypeScript is now the default option for new projects (you are still prompted to confirm - answering no will still give you a javascript project)

🐛 Notable bugfixes

  • Fixes incorrect command in help text after initializing a new project
  • Fixes typing of defineType not allowing specified components
  • Fixes incorrect version being printed from sanity --version

📓 Full changelog

Author Message Commit
Espen Hovlandsdal fix(cli): use correct command (dev, not start) in post-init text 310e89b806
Espen Hovlandsdal feat(cli): use typescript by default for new projects d0806be7a9
Marius Lundgård chore(deps): upgrade @sanity/pkg-utils c2978cd46b
Espen Hovlandsdal fix(cli): read version in runtime instead of bundling d5f5afca02
Herman Wikner fix(core): broken error screen ui fe5a6bcafe
Herman Wikner dev(test-studio): update sanity.config 48968b6e27
Herman Wikner dev(core): add WorkspacePreview workshop story 0f36a5c0f1
Herman Wikner feat(core): make workspace subtitle configurable 2c60fe9ebc
sanity - v3.0.0-rc.0

Published by rexxars almost 2 years ago

Sanity Studio v3: Release Candidate

This is the first Release Candidate of Sanity Studio v3. That means that you can expect APIs marked @public to be stable going forward. We are still ironing out bugs and making improvements, and appreciate any input or questions you might have.

We also want to invite you to a Sanity virtual event on December 8th, where we will dive into customer stories, demos, and talk about where the Sanity platform is headed.

You might also want to check out the notes for recent releases.

Installation and upgrading

To globally install/upgrade the v3 Sanity CLI:

npm install --global sanity@dev-preview

To validate you're on @3.0.0-rc.0:

$ sanity --version
> sanity version 3.0.0-rc.0

The new CLI should work with existing v2 studios, but you won't be able to initialize new v2 studios with it.

To initiate a new Studio without installing the CLI globally:

npx create-sanity@dev-preview

To upgrade a v3 Studio:

npm install [email protected]

Make sure your package.json are up to date with these dependencies:

{
  "dependencies": {
    // if you’re depending on `@sanity/ui`
    "@sanity/ui": "1.0.0-beta.32",
    "sanity": "3.0.0-rc.0"
  }
}

You might also have to upgrade your Sanity v3 plugins to their latest versions. The following command might be useful for checking for plugin updates:

npx npm-check-updates --target @studio-v3 --filter sanity

Breaking change: sanity start is now sanity dev

In Studio v2 and earlier developer preview releases, the command sanity start was used to start the development server. To better align with other frameworks such as Next.js, Remix, and Gatsby, we have renamed the command to sanity dev. The sanity start command is now used to start a static server that can be used to preview a production build (it is also available as sanity preview).

For existing studios, you might want to add a new dev npm script to your package.json file to make sure your team knows about the change:

{
  // ...
  "scripts": {
    "build": "sanity build",
    "dev": "sanity dev",
    "deploy": "sanity deploy",
    "start": "sanity start"
  }
}

Breaking change: createConfig is now defineConfig

To better align with other frameworks, we have renamed the following create-methods:

  • createConfig -> defineConfig
  • createCliConfig -> defineCliConfig
  • createPlugin -> definePlugin

The old create-methods will still work for the time being, but are deprecated and will be removed prior to the final release of v3.

Beta: Add custom functionality to array inputs

It is now possible to customize the array input with custom functions. The API allows you to replace the Add button and exposes different methods through its properties for interacting with array content.

This feature also introduces breaking changes for callback namings and typings (see below).

Example of custom array functionality in defineConfig:

// sanity.config.ts

import {defineConfig, isArrayOfPrimitivesInputProps} from 'sanity'

function MyArrayFunction(props) {
  const {onItemAppend} = props

  const handleAdd = useCallback(() => {
    // Adds 'Hello!' to new string items in the array
    onItemAppend('Hello!')
  }, [onItemAppend])

  return <Button text={`Add "Hello!" to the array`} onClick={handleAdd} />
}

export default defineConfig({
  // ...,
  // other config
  form: {
    components: {
      input: (props) => {
        const {renderDefault}  = props

        // Check if the input is an array of primitives (strings etc)
        if (isArrayOfPrimitivesInputProps(props)) {
          return renderDefault({...props, arrayFunctions: MyArrayFunction})
        }

        return renderDefault(props)
      },
    },
  },
})

For feedback and questions on this API, go to GitHub Discussions.

Breaking change: Advanced input component callbacks

We've aligned our API naming policy for callbacks to be on<Subject><Verb>. For improved consistency, we have renamed the following callbacks:

  • onFocusPath -> onPathFocus
  • onCollapseFieldSet -> onFieldSetCollapse
  • onExpandFieldSet -> onFieldSetExpand
  • onCollapseField -> onFieldCollapse
  • onExpandField -> onFieldExpand
  • onOpenField -> onFieldOpen
  • onOpenItem -> onItemOpen
  • onCloseItem -> onItemClose
  • onRemoveItem -> onItemRemove
  • onPrependItem -> onItemPrepend
  • onAppendItem -> onItemAppend
  • onCollapseItem -> onItemCollapse
  • onExpandItem -> onItemExpand
  • onCreateValue -> onValueCreate

These callbacks are mostly used for complex custom object/array inputs.

Breaking change: Array functions components/types

We've improved "array functions" - see above. With this change comes a few naming changes:

  • DefaultArrayOfPrimitivesFunctions -> ArrayOfPrimitivesFunctions
  • DefaultArrayFunctions -> ArrayOfObjectsFunctions
  • FormArrayInputFunctionsProps -> ArrayInputFunctionsProps

The default array functions components (ArrayOfPrimitivesFunctions and ArrayOfObjectsFunctions) are now exported from the sanity package.

All default input components are now exported

All the standard inputs are now exported and available in the sanity package for use when building custom input components.

Notable bugfixes

  • Fixed an issue where the review changes panel might not use the selected document revision, and the content form would go into read-only mode

📓 Full changelog

Author Message Commit
Espen Hovlandsdal chore(portable-text-editor): temporarily disable collaborative tests while flakey d38169fcd
Marius Lundgård chore(deps): update dependencies c28a445a4
Marius Lundgård fix(sanity): update popover placements 19d0e70c0
Espen Hovlandsdal feat(server): expose vite preview server integration 928229f3c
Espen Hovlandsdal feat(cli): add new sanity preview command 8e8e05d26
Espen Hovlandsdal refactor(cli): rename start command to dev 70ddf0666
Espen Hovlandsdal feat(cli): add sanity start alias for sanity preview 8f0462815
Espen Hovlandsdal fix(cli): add dev npm script to package.json 9f92d16e0
Espen Hovlandsdal fix(cli): use correct coloring for warning label f18f17f06
Espen Hovlandsdal chore: drop http-server dependency, use sanity start command f76980074
Espen Hovlandsdal fix(cli): add preview to list of known core commands bfe314600
Espen Hovlandsdal test(form): update snapsnot to align with @sanity/ui update 603b89385
Espen Hovlandsdal refactor(cli): improve help text on start/preview commands ce93ab2f3
Snorre Eskeland Brekke feat: added components definitions for all intrinsic schema-types ae0d13d3a
Snorre Eskeland Brekke chore: fields no longer require at least on field in definition types ae58cc508
Snorre Eskeland Brekke fix: added optional placeholder prop to definition types that support it 81db04812
Snorre Eskeland Brekke chore: fix compile tests 4889b3bc6
Snorre Eskeland Brekke chore: added doc-tags 04f426060
Snorre Eskeland Brekke chore: added missing doc-tags b97b1b35e
Fred Carlsen fix(sanity): fix icon from schema in block previews (#3725) b07a9b5f0
Bjørge Næss fix(form): fix field group state not propagated through arrays 164d152c6
Snorre Eskeland Brekke chore: make type specific components assignable to union types for input, form and item 3a83d63cb
Per-Kristian Nordnes test(portable-text-editor): fix issues with test env config f64ef8d6a
Per-Kristian Nordnes test(portable-text-editor): make tests async 79d2fed8c
Per-Kristian Nordnes Revert "chore(portable-text-editor): temporarily disable collaborative tests while flakey" 90db84aa2
Per-Kristian Nordnes test(portable-text-editor): run tests in band (sync) ab897dcd0
Per-Kristian Nordnes test(portable-text-editor): update comments 0c2cdf0a3
Herman Wikner refactor(form): remove ArrayFunctions from config c6cf6014c
Herman Wikner refactor(form): update typing in TagsArrayInput 9c3c46a8b
Herman Wikner feat(form): add custom array functions to GridArrayInput 16d44ba80
Herman Wikner feat(form): add custom array functions to ListArrayInput ca70b8f3e
Herman Wikner feat(form): add custom array functions to ArrayOfPrimitivesInput 8a3d80650
Herman Wikner test(form): add custom array functions test c2dc85c0e
Herman Wikner dev(test-studio): test array functions in schema 063f49f72
Herman Wikner refactor(form): unify naming of array components and types 7d9d2d8c4
Herman Wikner chore(form): export ArrayOfObjectsFunctions and ArrayOfPrimitivesFunctions 76ac511e3
Robin Pyon chore(deps): update react-virtual f5f0d2673
Espen Hovlandsdal refactor: use ReturnType on setTimeout instead of NodeJS.Timeout 450c002f3
Snorre Eskeland Brekke feat: all field inputs are now exported and can be used in Studio code 0b2c1cd84
Per-Kristian Nordnes test(portable-text-editor): robustify tests for running in paralell 07c1ef9fd
Snorre Eskeland Brekke feat: documentStore is now available in StructureContext 3f2b8888e
Marius Lundgård fix(server): configure cacheDir to avoid cache conflicts 8f0d99307
Marius Lundgård fix(server): add missing require path c03e16e80
Cody Olsen chore: add some 3d to the test studio 58ed9073d
Cody Olsen chore: streamline suspense on 3d demos 9f4858031
Cody Olsen chore(3D): support prefers reduced motion 4fd9ab62b
Cody Olsen chore(3D): stop animating on pointer leave 8784f6cb6
Cody Olsen chore(3D): use detail layout on demos a2c05aab0
Cody Olsen chore(3D): add presence demo f6c80a8c9
Herman Wikner dev(test-studio): clean up sanity.config ddcd00fe0
Herman Wikner fix(core): use the default error screen when there are configuration errors 6cff8b933
Herman Wikner fix(core): tool menu focus issue 9f9ba22e4
Fred Carlsen refactor(form-builder): simplify cross dataset reference config (#3670) (#3811) 36419e2bd
Espen Hovlandsdal fix(schema): validate that component properties are react components 0f62a23c7
Espen Hovlandsdal refactor: rename createConfig to defineConfig b8fe8e9b5
Espen Hovlandsdal chore: add publish-rc script f3845ceef
Espen Hovlandsdal chore: upgrade @sanity/ui, @sanity/color, @sanity/icons 5bb272069
Bjørge Næss fix(desk-tool): fix: earlier revision not appearing in form e59be18bd
sanity -

Published by hermanwikner almost 2 years ago

Upgrade the Command Line Interface (CLI) with:

npm install --global @sanity/cli

Upgrade Sanity Studio with:

sanity upgrade

🐛 Notable bugfixes

  • Fixes an issue with documents not loading when rxjs version 7 is installed as a dependency

📓 Full changelog

Author Message Commit
Herman Wikner fix(react-hooks): issue with useEditState low priority 00fb5d651
sanity - v3.0.0-dev-preview.22

Published by hermanwikner almost 2 years ago

NOTE: with this release we highly recommend to upgrade @sanity/ui in package.json to:

"@sanity/ui": "1.0.0-beta.30"

✨ Highlights

At-a-glance

This version introduces several breaking changes that we are really excited to share with everyone:

  • Improved Components API
  • Consolidated sanity package and exports
  • React 18 as new baseline version
  • Removing the Schema namespace

These changes will make the Studio's customization API easier to discover and will vastly improve DX when implementing plugins and customizations moving forward.

NOTE: This release vastly reduces the number of breaking changes that will be introduced as we are getting closer to the first official stable v3 release.

Components API

We have made changes to the new Components API that allows a lot more flexibility in terms of wrapping, replacing, and modifying components in the Studio.

These components are now available for customization:

  • Studio components: the general components of the studio. In this iteration, the components that can be customized are navbar, tool menu, layout and logo.
  • Form components: field, input, item and preview.

Example:

import {createConfig} from 'sanity'

export default createConfig({
  // ...,

  form: {
    components: {
      field: MyField,
      input: MyInput,
      item: MyItem,
      preview: MyPreview,
    },
  },

  studio: {
    components: {
      layout: MyLayout,
      logo: MyLogo,
      navbar: MyNavbar,
      toolMenu: MyToolMenu,
    },
  },
})

The components available in this API are rendered using a middleware pattern. This means that plugin customizations are applied in a chain. Each plugin may call props.renderDefault(props) to defer to default rendering (this API was next(props) in 3.0.0-dev-preview.20).

What is renderDefault?

The props for each component available in the API includes a callback function called renderDefault. As the name implies, renderDefault renders the default component. When you call renderDefault, you also pass the props needed to render the default component, and these props can be modified. In the example below, we create a custom tool menu plugin that filters out the vision tool when the studio is running in non-development mode:

import {useMemo} from 'react'
import {
  ToolMenuProps,
  createConfig,
  createPlugin,
  isDev,
} from 'sanity'

// Plugin's `ToolMenu` component
function MyToolMenu(props: ToolMenuProps) {
  const {renderDefault, tools} = props
    
  const filteredTools = useMemo(() => {
    return isDev ? tools : tools.filter((t) => t.name !== 'vision')
  }, [isDev, tools])

  return renderDefault({
    ...props,
    tools: filteredTools, // Pass the custom array of tools
  })
}

// Plugin
const toolPlugin = createPlugin({
  name: 'tool-plugin',
  studio: {
    components: {
      toolMenu: MyToolMenu,
    },
  },
})

// Config
export default createConfig({
  ...,
  name: 'studio-config',
  plugins: [toolPlugin()],
})

If yet another plugin makes customizations of toolMenu – then the props received in that plugin will be the result of the previous customization (that is, no vision tool in non-development mode).

NOTE: If renderDefault is not called, the middleware chain stops and the next plugin will have no effect.

Using renderDefault in schema

The renderDefault function may also be used directly in a schema definition to render a default component. In the example below, we create a component that renders the default string input with a character counter, directly in the schema:

import {Stack, Text} from '@sanity/ui'
import {defineField, StringInputProps} from 'sanity'

function StringInputCharacterCount(props: StringInputProps) {
  return (
    <Stack space={2}>
      {/* Render the default string input */}
      {props.renderDefault(props)}

      <Text align="right" size={1}>
        Characters: <strong>{props.value?.length || 0}</strong>
      </Text>
    </Stack>
  )
}

export const myDocument = defineField({
  type: 'document',
  name: 'myDocument',
  fields: [
    {
      name: 'title',
      type: 'string',
      title: 'Title',
      components: {
        input: StringInputCharacterCount,
      },
    },
  ],
})

Result:

Consolidated sanity package and exports

Breaking changes to export bundles

The sanity package is now split up into these export bundles:

  • sanity
  • sanity/cli
  • sanity/desk
  • sanity/router

There have been necessary changes made in order to make the exports clean and independent bundles: no API member is now exported twice (as was the case before). And there are no longer cyclic dependencies between exports.

Export Change
sanity unchanged
sanity/_internal unchanged
sanity/_unstable ➡️ merged into sanity
sanity/cli unchanged
sanity/desk unchanged
sanity/form ➡️ merged into sanity
sanity/router ⤵️ separated from sanity

Why? These changes are mainly introduced to prevent API confusion.

// Before: this is not great
import {Chunk} from 'sanity'
import {Chunk} from 'sanity/desk'
import {Chunk} from 'sanity/form'

// Now: an API member is only available in one of the exports
import {Chunk} from 'sanity'

This also means we have removed duplicate code in the export bundles, which could cause issues with React contexts and bundle size.

API release tags

All the API members in the sanity package now have API release tags. These are TSDoc release tags that are understood by Intellisense and can be seen in your IDE.

Example:

How to reason about the various tags:

Tag Description
@internal Internal API. Use at your own risk.
@alpha Early stage API. Will likely change or even be removed. Use at your own risk.
@beta Early stage API. Will likely change. Use at your own risk.
@public Stable API. Safe to use.

React 18

The Studio internals are upgraded to React 18 and use the new concurrent renderer. Support for React v17 is dropped and v18 is the new baseline in order to make full use of the new features and performance improvements.

Why we're doing this now

Structured content creation should be a delightful and exceptional experience. Everything should feel responsive. That means the UI needs to keep up with your interactions no matter what. If 300 people are editing the same document as you are and your phone's CPU just can't keep up that's ok. Everyone else's changes can wait for a second or two before they show up. As long as you can type as fast as you want without ever feeling held back by a sluggish text field that struggles to keep up with your thoughts. The edits of your peers have time to render whenever you stop to gather your thoughts. It's more important for you to stay in the zone, and for the studio to prioritize responding to your interactions.

With new APIs like startTransition, useTransition, useDeferredValue and Suspense we can start moving towards making this vision a reality.

While it is possible to do this in a way that gives theoretical support for both react v17 and v18, we ultimately decided against it after a thorough evaluation with the goal of maintaining compatibility with v17. It came down to which option allow us to deliver the highest quality product, and unless everything is tested on both versions of react for every release we'll either:

  • Have good v17 support but unable to adopt v18 features that can't be shimmed on v17. Such as startTransition, useTransition and useDeferredValue.
  • Great v18 support but the v17 becomes increasingly buggy and slow as devs become used to how v18 behaves. For example v18 automatically batches state updates while v17 does not. A component that in v18 have few re-renders might have a ton of re-renders in v17 if the component author isn't aware of this difference and there's great v17 testing routines in place.

Upgrade info

Official guide: https://reactjs.org/blog/2022/03/08/react-18-upgrade-guide.html#updates-to-client-rendering-apis
If you're on react v17 today and don't see any warnings in your console when running your studio locally then upgrading is pretty much just a matter of bumping react, react-dom and react-is to ^18 in your package.json.

Read the official upgrade guide to get a sense of what components you might need to give a little refactor.
While migrating studio internals we found that if there's a problem in a component it's usually related to one of these factors:

  • A class component that is using lifecycle method with a UNSAFE_ prefix, for example UNSAFE_componentWillMount or UNSAFE_componentWillReceiveProps. Detailed guide.
  • The component had useEffect logic that assumed that useEffect(() => () => teardown(), []) the teardown() is only called once, and on unmount. Get a refresher on how useEffect works to make it easier to find and resolve these bugs.
  • Incorrect dependency arrays in hooks like useEffect, useMemo, useCallback and such either because they were suppressed in the linter due to // eslint-disable or custom hooks and layers of abstractions made the linter unable to detect them.
  • If you're on TypeScript and are seeing a lot of typing errors you can try the automated migration script. Or hold off on upgrading @types/react until you have the bandwidth to fix the problems that the stricter typings uncover in your code.

@sanity/ui

If you have a dependency on @sanity/ui and use it in your project make sure to bump it to v1 as it's upgraded to support the new concurrent renderer.

Other changes

renderStudio now returns a function for unmounting it, to make it easier to use in other libraries such as vue, svelte, solid, angular, jqueryui, mootools, whatever floats your boat. How about as a Web Component? ⛵

<script type="module">
import {createConfig, renderStudio} from 'sanity'
import {deskTool} from 'sanity/desk'

customElements.define(
  'sanity-studio',
  class extends HTMLElement {
    connectedCallback() {
      const config = createConfig({
        projectId: this.getAttribute("projectId"),
        dataset: this.getAttribute("dataset"),
        plugins: [deskTool()],
        schema: {
          types: []
        }
      })

      this.unmount = renderStudio(this, config)
    }

    disconnectedCallback() {
      this.unmount?.()
    }
  }
)
</script>

<sanity-studio projectId="pnkijp0b" dataset="codesandbox"></sanity-studio>

See Codesandbox with example using Sanity Studio v3 in a web component.

React Strict Mode

You can opt-in to React's Strict Mode checks for your custom studio components in these ways:

  • Add reactStrictMode: true to your sanity.cli.ts file.
  • Create a .env.development file and add SANITY_STUDIO_REACT_STRICT_MODE=true to it.
  • Set the env var while starting sanity: SANITY_STUDIO_REACT_STRICT_MODE=true sanity start

We strongly suggest you opt-in to better prepare your custom studio for the future of React. This only affects development mode, production mode or sanity build is unaffected by this setting.

Schema namespace removed

The Schema namespace has been removed. The same types can now be accessed as regular imports from the sanity package.

// Before
import {Schema} from 'sanity'

const stringDef: Schema.StringDefinition = {...}

// Now
import {StringDefinition} from 'sanity'

const stringDef: StringDefinition = {...}

With this change it is now be possible to augment definition interfaces using declaration merging. This allows us to improve typesafety and intellisense in defineType schema helpers for plugins moving forward.

See TSDoc on defineType for examples on this.

Support for v2 theming

import {buildLegacyTheme} from 'sanity'

export default createConfig({
  // ... studio config ...
  
  theme: buildLegacyTheme({
    // here you can add CSS properties that
    // were used to customize Studio v2 theming
    '--black': '#000',
    '--default-button-color': '#666',
    // etc
  })
})

Improved search 🕵️

Improved search

  • Adds support for filtering search results by any number of document types. You can also browse documents from any number of types without entering a search query.
  • Search is now toggleable with a hotkey (Command/Control-K) and fully navigable by keyboard.
  • Recent searches (including selected document types) are stored for later use
  • Search terms and results are retained upon close: handy if you want to quickly revisit or amend your last search
  • Improves performance when rendering and scrolling through large result sets
  • The search dialog is wider, giving you more space for the search result listing

NOTE: Documents listed in search results will no longer resolve custom components for block content and array views

Slug functions context

Slug options source and slugify are now passed a context parameter as the last argument. It contains getClient, schema and currentUser.

🐛 Notable bugfixes

  • The Studio now includes global CSS with font-family, and will no longer use serif in cases where you don't use <Text> from @sanity/ui.
  • Various minor bug fixes in the Portable Text Editor.
  • Fixes various bugs related to React 18 support.
  • Adds strict validation of predefined list options for array types.
  • Fixes various issues with array inputs and makes sure all variations of array inputs have parity with v2.

📓 Full changelog

Author Message Commit
Marius Lundgård build: use @sanity/pkg-utils 2778e0ca00
Marius Lundgård chore: alphabetize package.json scripts 8090909e5b
Marius Lundgård fix(deps): fix dependency configurations 4677879c37
Marius Lundgård fix: remove asterix imports of react a60dc16789
Marius Lundgård chore: disable tsdoc syntax in jest configuration files 4180f00d58
Marius Lundgård chore(cli): do not bundle get-it 0f3ff0163e
Marius Lundgård chore(deps): add @types/babel__traverse dependency 3ee5ada67a
Marius Lundgård chore: set TS target 12de8f72aa
Marius Lundgård ci: remove exports-check action aae8c5eb3c
Marius Lundgård chore(cli): do not bundle @babel/traverse 0395767fcb
Espen Hovlandsdal chore: normalize dependencies 801d336f32
Herman Wikner refactor(sanity): rename ToolMenu to StudioToolMenu, update API and add test id:s 501a56da48
Herman Wikner feat(sanity): rename Navbar to StudioNavbar + implement Logo and ToolMenu from studio.components 2cea78a8a1
Herman Wikner feat(sanity): add StudioLogo component a80fc644ef
Herman Wikner feat(sanity): implement ToolMenu from studio.components in NavDrawer 6b0887dbca
Herman Wikner feat(sanity): implement Navbar from studio.components in StudioLayout 8aa93932ba
Herman Wikner feat(sanity): implement Layout from components.studio in Studio 9a75c819a7
Herman Wikner feat(sanity): add studio components API 1283603921
Herman Wikner refactor(sanity): spread rest props on CollapseMenu to enable adding test id 451ce02c7e
Herman Wikner feat(sanity): update exports 9294ada76c
Herman Wikner test(sanity): add components API test 889e8c1b18
Herman Wikner test(test-studio): update custom ToolMenu 89d682e529
Herman Wikner test(sanity): update NavbarStory e5d8ccdf51
Herman Wikner feat(sanity): remove logo from config type 7bfe3b1649
Espen Hovlandsdal feat(form): future-proof patch types b84b844188
Espen Hovlandsdal feat(desk)!: drop preserveInstance option on custom user panes 1d17b614cc
Espen Hovlandsdal feat(desk)!: drop urlParams on custom user panes 13b4567f65
Per-Kristian Nordnes feature(form): improve focus handling for PT-input c0afe6c377
Per-Kristian Nordnes chore(form): remove unused imports f7a817db38
Per-Kristian Nordnes fix(portable-text-editor): don't memoize isEmpty, lookup directly in decorator fn. fb9fbe2778
Per-Kristian Nordnes refactor(portable-text-editor): improve placeholder block handling 1c5e976e00
Per-Kristian Nordnes test(portable-text-editor): add undo/redo test fn. 37ef240376
Per-Kristian Nordnes fix(portable-text-editor): improve validation error message d20ec24f90
Per-Kristian Nordnes test(portable-text-editor): add test for clearing document 438032d204
Per-Kristian Nordnes fix(form): improve error message 8b53398a9c
Per-Kristian Nordnes refactor(portable-text-editor): rename fn. to make more sense 2d2d48bffa
Per-Kristian Nordnes fix(portable-text-editor): ensure correct selection being emitted 8acf9604ad
Per-Kristian Nordnes test(portable-text-editor): adjust snapshot after selection fix a6318cd2f9
Per-Kristian Nordnes chore(portable-text-editor): remove unused import 1e191be306
Per-Kristian Nordnes refactor(form): reconcile PT member validation 6d2f18e7b0
Per-Kristian Nordnes refactor(form): memoize PT markers 247d6bba11
Per-Kristian Nordnes test(form): debug render util. for PT-input 40c319cace
Per-Kristian Nordnes refactor(form): refactor tooltip enabling for PT block object a17efef294
Per-Kristian Nordnes fix(portable-text-editor): don't sync if empty patches 96771dffa3
Per-Kristian Nordnes fix(portable-text-editor): fix potential re-rendering issue f542cd2802
Per-Kristian Nordnes test(portable-text-editor): add own test ts-config fc9ef8c7c9
Per-Kristian Nordnes fix(form): optimize AnnotationToolbarPopover 11b3a6e7f0
Per-Kristian Nordnes test(portable-text-editor): add button to test toggling readOnly state 0b477a4803
Per-Kristian Nordnes refactor(portable-text-editor): inherit readOnly status from PortableTextEditor in Editable 5897465f5f
Per-Kristian Nordnes refactor(portable-text-editor): make it possible to re-initialize the plugin chain 0b88facdcf
Per-Kristian Nordnes test(portable-text-editor): update tests to match the latest changes 7368d43333
Per-Kristian Nordnes wip: ensure up to date PortableTextSelection + fix issues with undo/redo + tests 80bd1f5f3b
Per-Kristian Nordnes test(form): turn off PT-input render debugging d020ed1a16
Per-Kristian Nordnes fix(portable-text-editor): run empty check directly into decorate fn. 9fcbc5c2db
Per-Kristian Nordnes test(portable-text-editor): disable unstable test for now 13674f933c
Per-Kristian Nordnes fix(portable-text-editor): emit PT selections also in readOnly version bd1fc339dd
Per-Kristian Nordnes refactor(portable-text-editor): simplify plugin options + make sure editableAPI plugin is always present d9546dbfbb
Per-Kristian Nordnes fix(form): support patch symbols for PT-input PTE patches f120f6de8d
Bjørge Næss refactor(base): clean up document operation typings 534fb50a11
Bjørge Næss refactor(base): replace commit handler with stream of commit requests 44e2f1b8ef
Bjørge Næss refactor: handle latency better during document publish 93a38c1373
Bjørge Næss fix(desk-tool): add useCondionalToast hook as workaround for missing @sanity/ui feature 57ad2ae2a6
Bjørge Næss fix(base): improve correctness of error check b21196ec81
Per-Kristian Nordnes fix(form-builder): workaround weird Chrome bug related to flex and spellchecking 2f6d16066f
Bjørge Næss perf(desk-tool): optimize useTimeAgo aa31b7d1ba
Per-Kristian Nordnes feature(react-hooks): add low priority modality to useEditState hook dcaad2442a
Bjørge Næss test(validation): drop test asserting eager execution of nested validation checks 90449654f2
Bjørge Næss fix(validation): add requestIdleCallback shim for Safari 6cd45cbe23
Bjørge Næss perf(validation): refactor validation to be based on observables instead of promises, run in idle callback 8b32bf9247
Bjørge Næss deps(base): upgrade to latest rxjs-exhaustmap-with-trailing 2567e1aba6
Bjørge Næss refactor(base): optimize validation scheduling 581df88dd7
Bjørge Næss test(base): tweak tests after validation schedule optimizations 0e90d2c288
Bjørge Næss fix(base): keep reference existence listener alive between document versions 091820cca4
Bjørge Næss fix(base): inline getDocumentExists and make it look up already existing info 156952619a
Bjørge Næss chore: cleanup & simplify preview observer code 44adf9c564
Bjørge Næss fix(desk-tool): make sure validation result is about current revision before publishing 6d38e04653
Bjørge Næss fix(sanity): fix preview issue 9fa5aff3ee
Espen Hovlandsdal fix(cli): stub css files when mocking browser environment c306d0bcaa
Marius Lundgård fix(portable-text-editor): fix cyclic dependency d15e4841fe
Marius Lundgård build: upgrade @sanity/pkg-utils e2f2c4ed06
Marius Lundgård build(sanity): use correct file extensions when replacing version strings b47ea653e9
Marius Lundgård ci: remove type-check and verify_format actions f2f04ed4d9
Marius Lundgård chore: add check:format script eedd5139a3
Marius Lundgård ci: add format checking to test action 3ea485a1e7
Marius Lundgård test(portable-text-editor): move constant to allow testing without building b5590e37ca
Marius Lundgård test(portable-text-editor): fix tsconfig 597bbef029
Marius Lundgård chore(deps): upgrade typescript 1b7d6a370e
Marius Lundgård chore: add alias for @sanity/util/fs 9f22a146ea
Marius Lundgård chore(portable-text-editor): add missing dependency 292415c24b
Snorre Eskeland Brekke chore: fix broken type-tests 34a9b6080c
Marius Lundgård chore: rename files to *.cjs 92fdc2df81
Marius Lundgård chore: configure eslint 8debf983ae
Marius Lundgård chore(sanity): fix eslint errors b9db3772aa
Marius Lundgård chore: update .cjs files 536b2d9eff
Marius Lundgård chore: improve jest config 3a71e152e5
Per-Kristian Nordnes fix(form): respect enableHiddenCheck condition in formState 7f20cca48f
Bjørge Næss test(block-tools): use snapshots instead of fixture imports b55cea07bc
RitaDias refactor(sanity): rename StudioFormBuilderProvider and related (#3675) 6cca17e94f
Cody Olsen chore(typings): prepare for react 18 by using stricter typings (#3693) 0d13e12baf
Per-Kristian Nordnes feature(form): improve readOnly mode for PT-input with v2 parity a7b2f8158e
Per-Kristian Nordnes fix(form): fix layering issue with PT-input aa8561c1bb
Per-Kristian Nordnes fix(form): fix issue with PT-input open close state for modals 32e302b745
Espen Hovlandsdal fix(cli): use same process when executing scripts e640b72856
Espen Hovlandsdal fix(cli): correct worker strategy for new bundling 881fd5e0a0
Cody Olsen feat: move to react 18 (#3612) 45e485b33e
Bjørge Næss perf(desk-tool): optimize useTimeAgo 44a922e6ea
Marius Lundgård chore(deps): align versions ba99e74d55
Marius Lundgård refactor(sanity): remove unused code fe7d861bd4
Cody Olsen chore: fix deps versions for react 18 (#3696) 3874af72e5
Marius Lundgård build(sanity): remove unused paths config 5d6d41151b
Marius Lundgård chore(deps): remove duplicate dependency 97ebb40c6c
Per-Kristian Nordnes fix(form): Fix React 18 issue with PT-input 193fe7eb2b
Marius Lundgård chore: upgrade @sanity/pkg-utils febf7a6270
Marius Lundgård fix(cli): add missing exports 3d95732483
Marius Lundgård chore(deps): add missing deps f2e32f3443
Marius Lundgård chore(block-tools): add missing TS references 36844ea3be
Marius Lundgård chore(cypress): fix lint errors f3dc853221
Marius Lundgård chore(deps): add missing dependencies 39df6f7130
Marius Lundgård chore: simplify scripts 9f354de82b
Marius Lundgård ci: update GitHub actions 603de03fbc
Snorre Eskeland Brekke fix: added context with client and schema to slugify and source options (#3711) 8d0f1a487c
Cody Olsen fix: migrate class components to functions+hooks (#3701) 829e5ecca0
Cody Olsen chore(ci): reduce PR builds (#3716) 841121a2ae
Snorre Eskeland Brekke feature!: replaced Schema namespace with plain exports for schema-definitions (#3699) 05068d814b
Marius Lundgård build(sanity): configure API linting rules cae59f1343
Marius Lundgård chore(sanity): ignore etc/*.json files b32e4f5664
Marius Lundgård refactor(sanity): simplify asset source resolution bc6e17ed66
Marius Lundgård refactor(sanity): fix lint errors 5608c2681b
Marius Lundgård test(sanity): convert to TypeScript 91dd6e1d04
Marius Lundgård test(sanity): move tests to src/ 3e9e685830
Marius Lundgård refactor(sanity): remove underscore prefix on internal members a4092b2f81
Marius Lundgård refactor(sanity): remove NodePresence since it's a copy of FormFieldPresence cc10714d32
Marius Lundgård refactor(sanity): clean up react-track-elements 129b270f7f
Marius Lundgård build(sanity): move to root exports directory 7382ae14d1
Marius Lundgård fix(sanity): remove duplicate exports 3464a00508
Marius Lundgård refactor(sanity): group source code by export boundaries 71ec8b38ac
Marius Lundgård refactor(sanity): move router to separate export e68e742bf9
Marius Lundgård refactor(sanity): add Route* prefix e267849850
Marius Lundgård refactor(vision): use sanity/router import aba0fe0c12
Marius Lundgård refactor(sanity): merge sanity/_unstable into sanity e04434a953
Marius Lundgård refactor(sanity): clean up 12d35c8b74
Marius Lundgård docs(sanity): convert comment to TSDoc 1b9aa9ae0e
Marius Lundgård refactor(sanity): add missing return types c5e663bb5f
Marius Lundgård feat(sanity): export file and image inputs 06b03ce7a5
Marius Lundgård refactor(sanity): convert to function 981751c63a
Marius Lundgård refactor(sanity): use self-referencing imports between export boundaries 2ddf5bd9ee
Marius Lundgård refactor(sanity): move hookCollection to sanity 5f0944b1cf
Marius Lundgård refactor(sanity): move asset sources to files ac825dd9a3
Marius Lundgård refactor(sanity): rename asset source directory 1036d41565
Marius Lundgård feat(sanity): export used ResourceCacheProviderProps interface 0cdd0fddba
Marius Lundgård refactor(sanity): move document actions/badges to core 7b27a15f15
Marius Lundgård refactor(sanity): move datastores to store/_legacy 27510e7abf
Marius Lundgård refactor(sanity): merge sanity/form into sanity d33af518cf
Marius Lundgård refactor(sanity): remove duplicate PreviewCard component b751525c24
Marius Lundgård refactor(sanity): simplify IntentButton prop types f8ed8553d8
Marius Lundgård refactor(sanity): do not export styled components 82c70dcc62
Marius Lundgård refactor(sanity): move helpers to separate file e775bbceee
Marius Lundgård fix(sanity): add missing exports 96bdc11025
Marius Lundgård refactor(sanity): remove duplicate PreviewCard e0e38991b3
Marius Lundgård refactor(sanity): rename FileInput to BaseFileInput f5aed747f6
Marius Lundgård refactor(sanity): rename ImageInput to BaseImageInput d43a03b65e
Marius Lundgård refactor(sanity): workaround to fix TS error 5d0b5919b7
Marius Lundgård refactor(sanity): add missing exports 97fda78436
Marius Lundgård refactor(sanity): refer to exports by name 1b8194f94f
Marius Lundgård chore(sanity): add sanity to depcheck ignore list 8422752425
Marius Lundgård chore(sanity): configure eslint boundaries 3d0adf75ae
Marius Lundgård refactor(sanity): move FormInput to components directory 9632978130
Marius Lundgård docs(sanity): fix typo 10b417212b
Marius Lundgård docs(sanity): add missing TSDoc release tags ec5b530a31
Marius Lundgård refactor(sanity): move changeIndicators out of components 1e17d76c5c
Marius Lundgård refactor(sanity): remove exports from components which causes test failure c3883a51f2
Marius Lundgård fix(sanity): avoid complex TS features to make @microsoft/api-extractor build d751a05ac4
Marius Lundgård chore(diff): fix lint errors 33942cb23e
Marius Lundgård refactor(cli): update imports db3ba900e9
Marius Lundgård chore(types): ignore etc/*.json files 9de4268e28
Marius Lundgård refactor(types): export ambient members 8785639d5f
Marius Lundgård docs(types): add missing TSDoc release tags 72c46768df
Marius Lundgård build(types): require TSDoc release tags f31798a751
Marius Lundgård build: configure package.json and tsconfig.json a0d539ec4f
Marius Lundgård refactor(test-studio): update imports e9d5ad47cc
Marius Lundgård refactor(ecommerce-studio): update imports 3c030e3608
Marius Lundgård refactor(sanity): export all structure members 70186c425a
Marius Lundgård refactor(sanity): remove duplicate PatchOperations interface 2af022e194
Marius Lundgård feat(types): add merge property to PatchOperations 8bb8a03a48
Marius Lundgård refactor: rename NodeValidation => FormNodeValidation 2c2b85fd46
Marius Lundgård refactor: rename FormFieldValidation => FormNodePresence 9111c4442f
Marius Lundgård fix(sanity): use ref prop 7aff92534d
Cody Olsen feature(cli): add reactStrictMode option (#3721) 5ecbbd9412
Marius Lundgård build(util): configure build 6d3c53ad04
Marius Lundgård feat(sanity): render global font and background color 27d50853f2
Espen Hovlandsdal test(cli): provide full cli tests for both v2 and v3 5412ca8097
Espen Hovlandsdal fix(cli): print job completition message on successful dataset copy 6da4556be1
Espen Hovlandsdal ci: expose cli token secret as env var cd3de5d776
Espen Hovlandsdal ci: build cli prior to running tests bb354b6a41
Espen Hovlandsdal ci: use node version from strategy matrix 401ba4265c
Espen Hovlandsdal ci: print node + npm version prior to build/test 15b28555df
Espen Hovlandsdal chore: drop empty exclude from tsconfig 316a2ff86a
Espen Hovlandsdal test(cli): work around jest not respecting test timeout 0b7070b065
Espen Hovlandsdal chore(cli): alphabetize jest config properties b31386978c
Espen Hovlandsdal test(cli): test for contents of tarball instead of size 79e6c1e1c6
Espen Hovlandsdal chore(cli): address a few lint issues in tests b76846b44b
Espen Hovlandsdal chore(cli): remove unnecessary tsconfig ignore 5b68365fce
Espen Hovlandsdal fix(cli): reject with an error when trying to reach dev server 2450e5631e
Snorre Eskeland Brekke * fix: form state now correctly updates members when hidden state changes (#3719) ea48fa3159
Herman Wikner feat(sanity): add components API e9b09b4e0b
Herman Wikner feat(sanity): update input, field, item and preview types with renderDefault 865c27ee0c
Herman Wikner refactor(sanity): remove schemaType from RenderPreviewCallback type (added to PreviewProps) 9f5ec39970
Herman Wikner feat(sanity): use middleware components in StudioNavbar 4b37654de1
Herman Wikner feat(sanity): use middleware components in NavDrawer c22906f108
Herman Wikner feat(sanity): use middleware components in StudioLayout db3751eab5
Herman Wikner feat(sanity): use middleware components in Studio 36ddbc558a
Herman Wikner feat(sanity): use middleware components in FormProvider 99e89d0546
Herman Wikner refactor(sanity): omit renderDefault from components 0455b03f5b
Herman Wikner feat(sanity): add renderItem to ArrayInput 0f27c41c6c
Herman Wikner feat(sanity): add renderItem to ArrayOfPrimitivesInput 037cc28bac
Herman Wikner feat(sanity): improve SanityPreview to work with the components API 00ad73a965
Herman Wikner refactor(sanity): add test id:s to form components 60aa8935da
Herman Wikner test(sanity): pass noop renderDefault to form input tests 279ce8d3e0
Herman Wikner test(sanity): add components API tests 6f4165328d
Herman Wikner dev(sanity): update workshop stories with components API 287b20dfb2
Herman Wikner refactor(types): update components typings 85a8f103d7
Herman Wikner dev(test-studio): add components API schema and plugins + update sanity.config 0a7ce76758
Herman Wikner test(sanity): update FormBuilder test 088612e516
Herman Wikner refactor(sanity): update form and config typings to work with components API e885e447ea
Fred Carlsen fix(sanity): fix controls for custom block components preview (#3722) 0cfd150bb0
Marius Lundgård v3.0.0-dev-preview.21 fc38fd85b4
Bjørge Næss fix(sanity): upgrade json-reduce to 3.0 f711cb4dfa
Bjørge Næss chore(sanity): replace useId from @reach/auto-id with useId from react b7f36cfb2e
Espen Hovlandsdal chore: drop dev-preview peer dependencies f6f5801cd9
Espen Hovlandsdal chore: use forked react-sortable-hoc with react 18 peer compat 7f4255ace8
Espen Hovlandsdal test(cli): include desk tool in v3 test fixture 5981d8a5fb
Marius Lundgård build: update @sanity/pkg-utils 328c0da4d1
Marius Lundgård chore(deps): update dependencies e1e9c8ce39
Per-Kristian Nordnes fix(form): prevent default event on click space to activate bb29189b77
Marius Lundgård chore(deps): update dependencies 74dcc24aee
Marius Lundgård chore: clean dev projects 4d8f772f7d
Per-Kristian Nordnes fix(desk): don't call handleChange if documentPane isn't ready yet 8b04f2154c
Per-Kristian Nordnes Revert "fix(form): Fix React 18 issue with PT-input" 6c5936bc81
Cody Olsen chore(test-studio): re-enable mux plugin 7b0673ebd5
Cody Olsen fix: hook factory strict mode errors (#3730) e3eac12067
Marius Lundgård build: define __DEV__ global 4aa86487a8
Marius Lundgård build: define default dist directory a0ffa33078
Marius Lundgård refactor(cli): add runnable file to support esbuild-register 408baf0bec
Marius Lundgård refactor(server): support esbuild-register in workers (dev only) b440fd58a4
Marius Lundgård refactor(sanity/cli): support esbuild-register 9c01abada6
Marius Lundgård chore: use esbuild-register in dev-mode af7e3f8ae8
Marius Lundgård chore(deps): remove unused dependency 7db8a832a8
Marius Lundgård feat(sanity): buildLegacyTheme() function to enable v2 => v3 porting 222588e462
Marius Lundgård chore(test-studio): set up custom themes 66156e3158
Marius Lundgård fix(sanity): disable light/dark mode switching for legacy themes 6806ce6290
Per-Kristian Nordnes dev(test-studio): modify PT custom markers schema e25b231256
Bjørge Næss fix(portable-text-editor): fix double paste event bug 9249fc4676
Bjørge Næss fix(portable-text-editor): remove async noop preventDefault ee2ef4f52c
Bjørge Næss refactor(portable-text-editor): simplify code and make sure preventDefault is always called 365af8ea93
Per-Kristian Nordnes fix(portable-text-editor): type as clipboardEvent spesifically a2d3643206
Per-Kristian Nordnes fix(portable-text-editor): fallback to normal paste 1d37d2e6b6
Per-Kristian Nordnes dev(test-studio): add custom paste handler test 74a2725852
Per-Kristian Nordnes fix(portable-text-editor): persist clipboard event 202f6a62bf
Per-Kristian Nordnes refactor(portable-text-editor): get event sync, remove event.persist() 0e01d36002
Cody Olsen chore(test-studio): add tailwind colors test fb249b1db4
Marius Lundgård chore(deps): upgrade @sanity/ui to v1.0.0-beta.29 a2cdbf0739
Marius Lundgård fix: update use of Popover in TimelineMenu a2ce3995df
Espen Hovlandsdal chore: work around depcheck url import issue fda3ccb685
Cody Olsen fix: @sanity/vision includes react in bundle 0623dd1e9c
Espen Hovlandsdal test: add missing disconnect method to mocked resize observer 842c703eb3
Cody Olsen fix: only show "document published" toast once 7926a88054
Cody Olsen fix: persist split panes on reload c5b6d8010d
Cody Olsen fix: unable to navigate back to mounted url de208be3bb
Cody Olsen chore(deps): script for reporting updated deps 3c5bf284a3
Espen Hovlandsdal fix(cli): fix using incorrect builtin module in bundle ec51e40c5d
Espen Hovlandsdal fix(core): ensure empty basepaths are treated as zero segments bb37692669
Espen Hovlandsdal chore: use createRoot instead of ReactDOM.render de79e2d1ef
Espen Hovlandsdal chore: migrate away from @testing-library/react-hooks 71dbb3449b
Espen Hovlandsdal test(core): add missing act in test call 70466ed3ec
Bjørge Næss fix(validation): fix issue causing mixup of validation errors for different items in array of primitives e6829620aa
Espen Hovlandsdal test(cli): temporarily disable deploy tests 9536f103a4
Bjørge Næss fix(core): set overflow: hidden on preview media 4d655f9ffc
Herman Wikner fix(desk): timeline button focus ring c546645985
Herman Wikner fix(sanity): update workspaces docs url 9890fe6db5
Herman Wikner fix(sanity): use schemaType passed to renderDefault in schema when resolving default form component 05afc7f8d4
Robin Pyon feat(studio): sortable results, search phrases, experimental config (#3764) ad24282256
Herman Wikner feat(sanity): throw error if a tool is named 'tool' 5ce3f81bd3
Espen Hovlandsdal test(portable-text-editor): temporarily disable flakey collaborative test b6c76ab801
Bjørge Næss fix(form): allow undefined collapsed state a08730fa32
Bjørge Næss fix(form): pass onBlur handler to array items e4274e0669
Bjørge Næss chore(test-studio): add a simple references debug schema 450bd677c3
Bjørge Næss fix(preview): remove ReactNode/ReactElement for various preview attributes 6dfd42358f
Bjørge Næss refactor(form): rename ItemWithMissingType => IncompatibleItemType 9853c3b467
Bjørge Næss refactor(form): refactor array inputs to use new apis e595e8fb2e
Bjørge Næss refactor(form): refactor array inputs with predefined options be0e20d17e
Bjørge Næss feat(form): add universal array input and use as fallback 3134898561
Bjørge Næss refactor(form): split up input/field/item resolvers and move renderItem to config level 9d18ac7774
Bjørge Næss fix(form): use default Sanity UI dialog autofocus behavior a83078de28
Bjørge Næss fix(form): properly support modal.type=popover 2be0b8b891
Bjørge Næss fix(form): show incompatible item type header inside popover 32290a2f2c
Bjørge Næss refactor(form): make sure array fields and items uses same logic for initial value resolution a18b99d58a
Bjørge Næss fix(form): call internal handleChange and remove some duplicated logic ba98c2a422
Bjørge Næss fix(form): ensure object array options always gets assigned a _key b51ddbed13
Bjørge Næss docs(form): add tsdoc stability tags cb508c0f17
Bjørge Næss refactor(form): colocate reference item together with reference field and input 55cf0277ed
Bjørge Næss test(form): skip reference input tests for now 3e10797485
Cody Olsen fix: direct link to add cors origin (#3755) 3018c05a8c
Marius Lundgård fix(sanity): remove constrainSize property 5271023865
Herman Wikner refactor(sanity): update callback names 3a232f9f30
Bjørge Næss fix(schema): add strict validation for arrays of mixed types 65fd8f7248
Bjørge Næss fix(schema): add strict checking of predefined options defined on array types af8704596d
Herman Wikner feat(sanity): use sanity/ui MenuButton in ImageActionsMenu ed006187f1
Herman Wikner fix(sanity): focus issues in ImageInput 7210bc23cc
Herman Wikner fix(sanity): lost focus on selected menu item in presence menu fe81089ea8
Bjørge Næss test(form): fix failing test d51d7abd1b
Herman Wikner feat(desk): pass changesOpen to useFormState in order to enable disabling of group tabs 906b326d2d
Herman Wikner feat(form): disable document group tabs when review changes pane is open 4ba718e264
Bjørge Næss test(portable-text-editor): disable react 18 root api for now 419125e5f8
Herman Wikner fix(sanity): update placement on popover in PaneContextMenuButton 66c7e6c1cc
Herman Wikner fix(sanity): PopoverEditDialog ui b839743328
Marius Lundgård fix(sanity): document status bar tooltip placement 30340b6fab
Marius Lundgård chore(deps): update dependencies 3126529e34
sanity - v2.35.0

Published by rexxars about 2 years ago

Upgrade the Command Line Interface (CLI) with:

npm install --global @sanity/cli

Upgrade Sanity Studio with:

sanity upgrade

✨ Highlights

Shared Content

This release introduces support for shared content through cross-dataset references. Read more in the announcement: https://www.sanity.io/blog/shared-content-introduction

Shared Content: Eliminate Content Debt

Improved search

Order search results by relevance, created and last updated date.

Ordering search results

🐛 Notable bugfixes

  • Fixes an issue where split panes might not persist after reloading the studio
  • Fixes a bug causing revision history selector to always display the current version instead of the selected revision

📓 Full changelog

Author Message Commit
Cody Olsen fix: persist split panes on reload 797315a060
Bjørge Næss fix(desk-tool): fix issue with history pane not showing the earlier version (#3759) 3ab221a987
Robin Pyon chore(default-layout): re-enable search sorting (#3765) 3a2fc45d94
Espen Hovlandsdal fix(schema): include _dataset field for cross-dataset references 9c6dd6bfe9
Espen Hovlandsdal feat(core): include (non-materialized) cross-dataset references in GraphQL schemas 5d1e16182f
Fred Carlsen refactor(form-builder): simplify cross dataset reference config (#3670) 6b0afbd5e8
sanity - v2.34.2

Published by RitaDias about 2 years ago

Upgrade the Command Line Interface (CLI) with:

npm install --global @sanity/cli

Upgrade Sanity Studio with:

sanity upgrade

📓 Full changelog

Author Message Commit
RitaDias feat: add empty schema (#3756) c387259179
sanity -

Published by bjoerge about 2 years ago

Upgrade the Command Line Interface (CLI) with:

npm install --global @sanity/cli

Upgrade Sanity Studio with:

sanity upgrade

🐛 Notable bugfixes

  • Fixes an issue causing content to be inserted twice when using custom paste handler

📓 Full changelog

Author Message Commit
Per-Kristian Nordnes chore: upgrade @sanity/portable-text-editor c900f3444f
sanity - v2.34.0

Published by skogsmaskin about 2 years ago

Upgrade the Command Line Interface (CLI) with:

npm install --global @sanity/cli

Upgrade Sanity Studio with:

sanity upgrade

✨ Highlights

Performance improvements

This release includes several performance fixes that should now make the Studio more responsive while editing documents. (See more details in individual PRs #3668, #3662, #3660)

Improved search

Search for documents containing an exact phrase by wrapping text inside double quotes.

Other features

  • Upgrade @sanity/ui to v.0.37.22

🐛 Notable bugfixes

  • Fixes an issue where the scroll position in global search wasn’t being correctly retained in some instances.
  • Fixes an issue in global search that would cause the studio to crash if Local Storage is unavailable.

📓 Full changelog

Author Message Commit
Per-Kristian Nordnes feature(form-builder): throttle onChange form text inputs c8c1ab9565
Per-Kristian Nordnes feature(react-hooks): add low priority modality to useEditState hook c81a61105c
Per-Kristian Nordnes refactor(desk-tool): optimize DocumentPaneProvider 6a53cfbcc3
Bjørge Næss feat(form-builder): add withParent higher order component 0cc0a3829f
Robin Pyon fix(default-layout): apply offset on search spinner wrapping element b36cc9406b
Bjørge Næss test(validation): drop test asserting eager execution of nested validation checks b877b6dcfb
Bjørge Næss fix(validation): add requestIdleCallback shim for Safari bf2eb5b8b8
Bjørge Næss perf(validation): refactor validation to be based on observables instead of promises, run in idle callback 6d2e9b7115
Bjørge Næss lint(validation): rename reduce accumulator ecfddc8e98
Bjørge Næss deps(base): upgrade to latest rxjs-exhaustmap-with-trailing 9df5705378
Bjørge Næss refactor(base): optimize validation scheduling 7998aed71e
Bjørge Næss test(base): tweak tests after validation schedule optimizations 5539bcfbc3
Bjørge Næss fix(base): keep reference existence listener alive between document versions 80a6b1976d
Bjørge Næss fix(base): inline getDocumentExists and make it look up already existing info 834c298e78
Bjørge Næss fix(desk-tool): make sure validation result is about current revision before publishing e8db04f91c
Robin Pyon feat(default-layout): sortable search results, search phrases, experimental config (#3652) d60e29e070
Per-Kristian Nordnes fix(react-hooks): reuse already setup observable 159cee90a7
Per-Kristian Nordnes fix(desk-tool): don't render title until the editState is ready 4237e3b26e
Per-Kristian Nordnes refactor(dashboard): streamline user widget loading spinner with other plugins c14679da6b
Per-Kristian Nordnes chore(default-layout): disable search sort for now ec293d3722
Per-Kristian Nordnes chore: upgrade @sanity/ui to ^0.37.22 adf025a98d
Per-Kristian Nordnes fix(default-layout): fix issue with SearchHeader spinner icon not being correctly aligned a1d9f5f5da
Per-Kristian Nordnes fix(default-login): fix issue with CORS check Spinner misaligning 4c51e19c2b
Per-Kristian Nordnes fix(studio-hints): fix issue with Spinner misaligning 7ba632a85c
sanity - v3.0.0-dev-preview.20

Published by rexxars about 2 years ago

🐛 Notable bugfixes

  • Fixes an issue where the vision plugin would crash when attempting to switch API versions

📓 Full changelog

Author Message Commit
Espen Hovlandsdal fix(vision): allow reconfiguration of vision client 5a49770fa
sanity - v3.0.0-dev-preview.19

Published by rexxars about 2 years ago

🐛 Notable bugfixes

  • Fixes an issue where typescript projects would be initialized with an incorrect compile target, leading to dev server not starting

Other features

  • Brought CLI commands up to date with v2 variants, adding --force flags where missing

📓 Full changelog

Author Message Commit
Espen Hovlandsdal feat(cli): add --no-open flag to login command e59f2b207
Espen Hovlandsdal feat(cli): add --force flag to dataset delete command 316ce0e6d
Espen Hovlandsdal feat(cli): add --force flag to dataset alias unlink command ab675125d
Espen Hovlandsdal feat(cli): add --force flag to dataset alias delete command 025f6b2c0
Espen Hovlandsdal feat(cli): add --force flag to graphql undeploy command a9a8a0aa8
Espen Hovlandsdal chore(cli): sync copy dataset command with v2 146ba5968
Espen Hovlandsdal fix(cli): use es2017 as compile target 71bfe1711
Espen Hovlandsdal chore: allow release notes script to work from v3-current branch 8f1fe4951
sanity - v2.33.3

Published by RitaDias about 2 years ago

Upgrade the Command Line Interface (CLI) with:

npm install --global @sanity/cli

Upgrade Sanity Studio with:

sanity upgrade

✨ Highlights

New CLI flags!

We've added a few new flags to make automation easier!

The --force flag was added to a few already existing commands and will skip the confirmation prompt and proceed with the command:

sanity dataset alias unlink <alias-name> --force

sanity dataset alias delete <alias-name> --force

sanity dataset delete <dataset-name> --force

sanity graphql undeploy --dataset <dataset-name> --force

When added, the --no-open flag prevents the login page from automatically opening in the browser.

sanity login --provider <provider-name> --no-open

📓 Full changelog

Author Message Commit
Per-Kristian Nordnes fix(form-builder): fix dialog issue with toplayer caused by omnipresent layer 0d873807f2
Per-Kristian Nordnes fix(form-builder): workaround weird Chrome bug related to flex and spellchecking a8713a8643
Espen Hovlandsdal feat(cli): add --no-open flag to login command 4c38a3d842
Espen Hovlandsdal feat(cli): add --force flag to sanity dataset delete command bb08c41c02
Espen Hovlandsdal feat(cli): add --force flag for dataset alias unlink command bc012e507a
Espen Hovlandsdal feat(core): add --force flag to dataset alias delete command 6d2a077de8
Fred Carlsen fix(desk-tool): silence warning about animating stroke dash offset 2b9fb7d03b
Fred Carlsen fix(base): tag bifur requests ae7e5603df
Espen Hovlandsdal feat(core): add --force flag to graphql undeploy command eb9684e066
Bjørge Næss perf(desk-tool): optimize useTimeAgo 7a44a7dec7