Sanity Studio – Rapidly configure content workspaces powered by structured content
MIT License
Bot releases are visible (Hide)
⚠️ 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 the v2 version of the Command Line Interface (CLI) with:
npm install --global @sanity/cli@v2
Upgrade Sanity Studio with:
sanity upgrade
Author | Message | Commit |
---|---|---|
Bjørge Næss | fix(base): wait for all chunked requests to arrive before continuing (#4017) | 3b6915b60d |
Published by skogsmaskin almost 2 years ago
To initiate a new Studio without installing the CLI globally:
npx create-sanity@latest
To upgrade a v3 Studio:
npm install sanity@latest
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.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 |
Published by rexxars almost 2 years ago
To initiate a new Studio without installing the CLI globally:
npx create-sanity@latest
To upgrade a v3 Studio:
npm install sanity@latest
createAuthStore
would incorrectly require a client factory to be passedAuthor | 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 |
To initiate a new Studio without installing the CLI globally:
npx create-sanity@latest
To upgrade a v3 Studio:
npm install sanity@latest
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.
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.
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,
},
},
})
defineConfig
) is the component that receives the result of the props passed on with renderDefault
in previous custom components.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 |
⚠️ 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 the v2 version of the Command Line Interface (CLI) with:
npm install --global @sanity/cli@v2
Upgrade Sanity Studio with:
sanity upgrade
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 |
Published by skogsmaskin almost 2 years ago
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.
[sanity](https://www.npmjs.com/package/sanity)
) with JavaScript-based configuration (sanity.config.js|ts
/ sanity.cli.js|ts
)@internal
, @beta
, @public
), new helper functions (defineType,defineField
), and emerging inline documentation with TS DocrenderDefault(props)
and other convenience functions.plugin-kit
) that makes it easier to build, maintain, and publish plugins on npmPublished by skogsmaskin almost 2 years ago
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"
}
}
Removed the client
property from configuration context. Use getClient({apiVersion: '2022-06-07'})
or similar instead.
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]
],
})
modal
option in document actionsIn 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',
}
}
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 |
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
Author | Message | Commit |
---|---|---|
Fred Carlsen | fix(base): skip cross dataset validation on mutations (#3856) | d746aaec49 |
Published by rexxars almost 2 years ago
Author | Message | Commit |
---|---|---|
Espen Hovlandsdal | chore: upgrade @sanity/pkg-utils to 1.17.3 |
29f87668b6 |
Published by rexxars almost 2 years ago
subtitle
, and will not use the dataset name by defaultdefineType
not allowing specified components
sanity --version
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 |
Published by rexxars almost 2 years ago
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.
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
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"
}
}
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.
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.
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.
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 the standard inputs are now exported and available in the sanity package for use when building custom input components.
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 |
Upgrade the Command Line Interface (CLI) with:
npm install --global @sanity/cli
Upgrade Sanity Studio with:
sanity upgrade
rxjs
version 7 is installed as a dependencyAuthor | Message | Commit |
---|---|---|
Herman Wikner | fix(react-hooks): issue with useEditState low priority |
00fb5d651 |
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"
This version introduces several breaking changes that we are really excited to share with everyone:
sanity
package and exportsSchema
namespaceThese 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.
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:
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
).
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.
renderDefault
in schemaThe 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:
sanity
package and exportsThe 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.
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. |
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.
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:
v17
support but unable to adopt v18
features that can't be shimmed on v17
. Such as startTransition
, useTransition
and useDeferredValue
.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.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:
UNSAFE_
prefix, for example UNSAFE_componentWillMount
or UNSAFE_componentWillReceiveProps
. Detailed guide.
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.
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.@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.
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.
You can opt-in to React's Strict Mode checks for your custom studio components in these ways:
reactStrictMode: true
to your sanity.cli.ts
file..env.development
file and add SANITY_STUDIO_REACT_STRICT_MODE=true
to it.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 removedThe 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.
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
})
})
NOTE: Documents listed in search results will no longer resolve custom components for block content and array views
Slug options source
and slugify
are now passed a context parameter as the last argument. It contains getClient
, schema
and currentUser
.
font-family
, and will no longer use serif
in cases where you don't use <Text>
from @sanity/ui
.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 |
Published by rexxars almost 2 years ago
Upgrade the Command Line Interface (CLI) with:
npm install --global @sanity/cli
Upgrade Sanity Studio with:
sanity upgrade
This release introduces support for shared content through cross-dataset references. Read more in the announcement: https://www.sanity.io/blog/shared-content-introduction
Order search results by relevance, created and last updated date.
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 |
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
Author | Message | Commit |
---|---|---|
RitaDias | feat: add empty schema (#3756) | c387259179 |
Upgrade the Command Line Interface (CLI) with:
npm install --global @sanity/cli
Upgrade Sanity Studio with:
sanity upgrade
Author | Message | Commit |
---|---|---|
Per-Kristian Nordnes | chore: upgrade @sanity/portable-text-editor | c900f3444f |
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
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)
Search for documents containing an exact phrase by wrapping text inside double quotes.
@sanity/ui
to v.0.37.22
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 |
Published by rexxars about 2 years ago
Author | Message | Commit |
---|---|---|
Espen Hovlandsdal | fix(vision): allow reconfiguration of vision client | 5a49770fa |
Published by rexxars about 2 years ago
--force
flags where missingAuthor | 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 |
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
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
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 |