chore(deps): update app dependencies to v4 - #1780
Open
renovate[bot] wants to merge 1 commit into
Open
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
renovate
Bot
force-pushed
the
renovate/major-4-app-dependencies
branch
from
January 29, 2026 13:02
26ce19b to
02a2750
Compare
renovate
Bot
force-pushed
the
renovate/major-4-app-dependencies
branch
from
February 2, 2026 16:35
02a2750 to
5da9f70
Compare
renovate
Bot
force-pushed
the
renovate/major-4-app-dependencies
branch
from
February 12, 2026 14:49
5da9f70 to
047ee4a
Compare
renovate
Bot
force-pushed
the
renovate/major-4-app-dependencies
branch
from
February 17, 2026 18:33
047ee4a to
df3e938
Compare
renovate
Bot
force-pushed
the
renovate/major-4-app-dependencies
branch
from
April 1, 2026 16:02
1d31919 to
f82dd6d
Compare
renovate
Bot
force-pushed
the
renovate/major-4-app-dependencies
branch
from
April 29, 2026 19:55
f82dd6d to
f82aea9
Compare
renovate
Bot
force-pushed
the
renovate/major-4-app-dependencies
branch
from
May 12, 2026 15:37
f82aea9 to
7203c8a
Compare
renovate
Bot
force-pushed
the
renovate/major-4-app-dependencies
branch
from
May 28, 2026 22:12
7203c8a to
933eed0
Compare
renovate
Bot
force-pushed
the
renovate/major-4-app-dependencies
branch
from
June 2, 2026 01:19
933eed0 to
8467e17
Compare
renovate
Bot
force-pushed
the
renovate/major-4-app-dependencies
branch
from
June 11, 2026 12:58
8467e17 to
d821a92
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
3.7.4→4.1.03.0.14→4.0.02.0.1→4.0.63.0.4→4.0.3Release Notes
sanity-io/ui (@sanity/icons)
v4.1.0Minor Changes
e7538d4Thanks @stipsan! - Every icon is now available on its own export path, e.g.import {RocketIcon} from '@sanity/icons/Rocket', letting userland opt in to smaller bundles and faster treeshaking. Each subpath exposes the icon both as a named export (identical to the barrel export) and as the default export, soReact.lazy(() => import('@sanity/icons/Rocket'))works out of the box. Importing individual icons from the root barrel (import {RocketIcon} from '@sanity/icons') still works but is now marked@deprecated, pointing to the per-icon subpath to avoid barrel file performance issues.v4.0.0Major Changes
#200
26b9248Thanks @stipsan! - Drop CommonJS support and require Node.js>=22.12@sanity/iconsis now ESM-only. Therequireexport condition and the CommonJS build output (./dist/index.cjs) have been removed, so the package must be consumed via ESMimport. The minimum supported Node.js version has been raised to>=22.12to matchsanity.#201
01e3807Thanks @stipsan! - Drop React 18 support — React 19 is now required.Icon components no longer use
forwardRef. Refs are now accepted as a regular prop (typed viaReact.ComponentPropsWithRef), following React 19's ref-as-prop model. Thereactpeer dependency range is now^19, and the exportedIconComponenttype has changed accordingly.v3.8.0Minor Changes
812c93bThanks @somerandomdude! - Add double quote iconPatch Changes
57bb44aThanks @mitchuman! - fix: connect diamond icon stroke cornersv3.7.7Patch Changes
5b9d2cbThanks @stipsan! - Bumped@testing-library/react,@types/node, and@types/reactdevDependencies to their latest versions.v3.7.6Bug Fixes
sanity-io/ui (@sanity/ui)
v4.0.0Compare Source
Major Changes
#2505
6069d4eThanks @stipsan! -@sanity/ui4.0. The full upgrade procedure is in the migration guide. TypeScript walks you through most of it: every removed or moved API stays in the types as a@deprecatedtombstone whose message names its replacement.ESM-only. Node.js 22.12+ required.
.cjs/.d.cts) and therequireexport condition are removed — the package now ships ESM only.enginesis now>=22.12, matchingsanity).exports-awaremoduleResolution(node16,nodenext, orbundler): v4 resolves everything through packageexportsand no longer shipstypesVersions, so the legacynode(node10) mode cannot resolve the subpath entry points' types.require(esm), sorequire('@sanity/ui')keeps working; things only break if the Node.js version is too old.React 19.2+ required.
react: ^19.2andreact-dom: ^19.2. The 19.2 floor is set by the new<Activity>component, which shipped in React 19.2.0 and which v4 uses to keep closedTooltipandPopovercontent mounted.'19', which uses React's built-in runtime — thereact-compiler-runtimedependency is dropped.reactandreact-domto 19.2 or later. No code changes needed.New required import:
@sanity/ui/styles.css.Static styles (the ones that don't depend on theme or props) are now extracted into a stylesheet at build time instead of being injected at runtime. The stylesheet is not loaded automatically — add this import once, next to where the app renders
<ThemeProvider>:Without it,
SrOnly,Spinnerand internal text-overflow styling render unstyled. These components have moved off styled-components — more components follow in future 4.x minors, and UI5 ships without styled-components or any other runtime CSS-in-JS.Heavy components moved out of the root entry point.
Importing
@sanity/uino longer pulls in@floating-ui/react-dom,motionorreact-refractor— even without bundler treeshaking. What moved where:@sanity/ui/toast—Toast,ToastProvider,useToast(motion)@sanity/ui/popover—Popover(@floating-ui/react-dom, motion)@sanity/ui/tooltip—Tooltip,TooltipDelayGroupProvider,useTooltipDelayGroup(@floating-ui/react-dom, motion)@sanity/ui/menu—Menu,MenuButton,MenuDivider,MenuGroup,MenuItem(rendersPopover)@sanity/ui/autocomplete—Autocomplete(rendersPopover)@sanity/ui/breadcrumbs—Breadcrumbs(rendersPopover)@sanity/ui/code—Code(lazy-loads react-refractor)Prop, context and message types moved along with their components (
PopoverProps,ToastParams,MenuItemProps,AutocompleteState,TooltipDelayGroupContextValue, …). Update the imports:Also part of this change:
ErrorBoundaryrenders a plain<pre><code>instead of theCodeprimitive, keeping the root entry free of thereact-refractormodule graph.Deprecated props, hooks, and components are removed.
Removed props stay on the public types as
@deprecatednever, so you get the migration message instead of a bare "does not exist" error. The removed hooks andConditionalWrapperare still exported but throw when called. What to replace:space→gapcolumns/rows/column*/row*→gridTemplateColumns/gridTemplateRows/gridColumn*/gridRow*focusFirst/focusLast→shouldFocuspopover={{…}}boundaryElement→floatingBoundary/referenceBoundary(andBoundaryElementProviderfor max-width /constrainSize)allowedAutoPlacements→fallbackPlacementsuseClickOutside→useClickOutsideEventuseElementRect→useElementSizeuseForwardedRef→useRef+useImperativeHandleuseArrayProp(value)→Array.isArray(value) ? value : [value]ConditionalWrapper→ inline the conditional wrapping logicThe private
@sanity/ui/_visual-editingentry point is removed.Import from
@sanity/uiinstead — except the moved components (Menu,MenuDivider,MenuGroup,MenuItem,Popover), which now live on@sanity/ui/menuand@sanity/ui/popover. The slim subset is no longer needed:displayNameside effects are gone, so unused components tree-shake out of consuming bundles.The
@juggle/resize-observerpolyfill is removed — the nativeResizeObserveris used directly.The internal
_ResizeObserverexport is gone. If you imported it, use the globalResizeObserverinstead.TooltipandPopoverkeep closed content mounted with React's<Activity>.animateenabled, hiding is deferred until exit animations finish (viaAnimateActivity, vendored from Motion).contentmust gate the recursion onopen— otherwise they render an infinitely deep hidden tree.All components are plain function components —
refis a regular prop (React 19 semantics).Refs keep working exactly as before. The one observable change: components no longer pass
react-ischecks such asisForwardRef.v3.5.2Compare Source
Patch Changes
#2637
df34007Thanks @squiggler-app! - fix(deps): update dependency vite to ^8.2.1#2609
c3726c9Thanks @stipsan! - fix(deps): update dependency motion to ^13.0.0Motion 13 no longer loads the optional
@emotion/is-prop-validdependency to decide which props amotioncomponent forwards to the DOM; it now only does so when anisValidPropfunction is passedto
MotionConfig.@sanity/uicomposes motion the way the upgrade guide recommends(
motion.create(StyledComponent), neverstyled(motion.div)), so its own components are unaffected:for custom components motion still forwards every non-motion prop and lets the styled component
filter, exactly as before. Apps that wrap a DOM-level motion component in a CSS-in-JS factory —
styled(motion.div)— may need to passisValidProptoMotionConfig, use transient props, orreverse the composition.
#2632
5207572Thanks @stipsan! - fix(deps): update dependency styled-components to ^6.5.0styled-components 6.5 tightens polymorphic call-site and
styleprop typing. Adjust@sanity/uifor the new checks: narrowasatBox/VirtualListcall sites to avoid TS2589, alignCard's$tone/$mutedwith the values actually passed, and drop now-unnecessary assertions onmotion.create(Card)wrappers.v3.5.1Compare Source
Patch Changes
1ecf846Thanks @squiggler-app! - fix(deps): update dependency motion to ^12.43.0v3.5.0Compare Source
Minor Changes
#2457
834c3d6Thanks @stipsan! -TreeItemaccepts a newlinkPropsprop with additional props for the link element that is rendered whenhrefis set — for examplenext/link'sprefetch:<TreeItem linkAs={Link} linkProps={{prefetch: true}} href="…">. Props controlled byTreeItemitself (href,role,tabIndex,aria-expandedand the ref) take precedence.#2440
e72e56bThanks @stipsan! - Ship a'use client'directive on the@sanity/uiand@sanity/ui/_visual-editingentrypoints so React Compiler output loads correctly under Next.js App Router / RSC. Components can now be rendered directly from Server Components without a hand-written client wrapper.@sanity/ui/themeis left unmarked — it remains a pure theme-token export safe for Server Components.Patch Changes
#2461
cf1a9d0Thanks @stipsan! - fix: replace deprecated external APIs instead of suppressing themToastnow orchestrates its child animations withdelayChildren: stagger(interval)instead ofmotion's deprecatedstaggerChildren.useForwardedRefand the internal menu controller type refs asRefObjectinstead of React's deprecatedMutableRefObject(identical shape, so no API change).ToastandAutocompletepassgapinstead of the deprecatedspaceprop internally.#2457
834c3d6Thanks @stipsan! -TreeItemnow renders custom link components passed vialinkAscorrectly. Previously the internal styled wrapper forwarded a strayas="a"prop to the custom component — breaking components likenext/link, which interpretasas a URL override — and dropped thedisplay: block/text-decoration: nonestyles from the rendered link.<TreeItem linkAs={Link} href="…">now behaves like<Button as={Link} href="…">.v3.4.5Compare Source
Patch Changes
f4766f9Thanks @stipsan! - Makereact-isa regular dependency instead of a peer dependencyv3.4.4Compare Source
Patch Changes
#2408
3989592Thanks @stipsan! - The package now declares"type": "module". It continues to ship both ESM (import) and CJS (require) builds with identical entry points and named exports — only the file extensions indistchanged: the ESM build is now.js/.d.ts(was.mjs/.d.mts) and the CJS build is now.cjs/.d.cts(was.js/.d.ts).Updated dependencies [
3989592]:v3.4.3Compare Source
Patch Changes
#2435
f3638b5Thanks @stipsan! - Remove thedisplayNameassignments that followed every component definition. As top-levelComponent.displayName = '…'statements in the published dist they were side effects that pinned every component into consuming bundles, defeating tree-shaking of unused components (see sanity-io/visual-editing#3535 for the kind of workaround this forced downstream). They were also redundant: every component is declared as a named function (e.g.forwardRef(function Button(…) {…})), so React DevTools derives the exact same name fromFunction.name— the build now passeskeepNamesso those function names survive into the dist.If you profile or debug production builds with React DevTools and want component names to survive your own app's minification, configure the bundler to keep identifier names instead of relying on
displayName, e.g. in Vite:v3.4.2Compare Source
Patch Changes
18c0323]:v3.4.1Compare Source
Patch Changes
528c3c9]:v3.4.0Compare Source
Minor Changes
#2410
e151988Thanks @stipsan! - update dependency @sanity/icons to ^5.2.0@sanity/uinow imports every icon from its per-icon export path (e.g.@sanity/icons/Close) instead of the root barrel, so only the handful of icons the components actually render are pulled into your bundle.Patch Changes
4f7947bThanks @stipsan! - fix(deps): update dependency styled-components to ^6.4.4v3.3.6Compare Source
Patch Changes
#2336
94b067cThanks @squiggler-app! - fix(deps): update dependency @floating-ui/react-dom to ^2.1.9#2377
20893cdThanks @stipsan! - Remove unusedesm.shproperty from package.jsonv3.3.5Compare Source
Patch Changes
6546a45Thanks @stipsan! - fix(build): restore named exports indist/theme.d.tssoimport {buildTheme} from '@sanity/ui/theme'type-checks again (TS2460). Shared chunks are now emitted todist/_chunks/so they can no longer take an entry point's.d.tsfilename.v3.3.4Compare Source
Patch Changes
5553766Thanks @stipsan! - fix(deps): update dependency csstype to ^3.2.3, and use regularstyled-componentsinstead of the@sanity/styled-componentsfork for development and testingv3.3.3Compare Source
Patch Changes
#2250
9211258Thanks @squiggler-app! - fix(deps): update dependency @floating-ui/react-dom to ^2.1.8#2255
129e9faThanks @squiggler-app! - fix(deps): update dependency @sanity/icons to ^3.8.0#2257
2f3bc04Thanks @squiggler-app! - fix(deps): update dependency motion to ^12.42.2#2242
e301806Thanks @stipsan! - The npm package no longer ships thesrcandexportsfolders — onlydist(pluspackage.json,README.md, andLICENSE) is published. Nothing resolvable referenced those folders: the publishedexportsmap points exclusively atdist, and the JS sourcemaps embedsourcesContent. This cuts the unpacked package size roughly in half.v3.3.2Compare Source
Patch Changes
edb7248Thanks @stipsan! - The package is now built with tsdown. It continues to ship both CJS (require) and ESM (import) builds with identical entry points and named exports.v3.3.1Compare Source
Patch Changes
e5e508aThanks @stipsan! - Set up Changesets-based releases with npm trusted publishing. No runtime changes.v3.3.0Compare Source
Features
astypings from v4 (#2209) (ae60285)v3.2.0Compare Source
Features
space,columns,rowsand box grid item deprecation warnings (#2182) (2e2013e), closes #2184v3.1.14Compare Source
Bug Fixes
v3.1.13Compare Source
Bug Fixes
v3.1.12Compare Source
Bug Fixes
v3.1.11Compare Source
Bug Fixes
framer-motionwithmotion/react(cc49ab6)v3.1.10Compare Source
Bug Fixes
v3.1.9Compare Source
Bug Fixes
v3.1.8Compare Source
Bug Fixes
v3.1.7Compare Source
Bug Fixes
v3.1.6Compare Source
Bug Fixes
v3.1.5Compare Source
Bug Fixes
v3.1.4Compare Source
Bug Fixes
v3.1.3Compare Source
Bug Fixes
v3.1.2Compare Source
Bug Fixes
v3.1.1Compare Source
Bug Fixes
v3.1.0Compare Source
Features
sanity-io/plugins (@sanity/vercel-protection-bypass)
v4.0.6Compare Source
Patch Changes
7074855Thanks @stipsan! - Fix linter issuesv4.0.5Compare Source
Patch Changes
69a8d2fThanks @stipsan! - Declare support for Studio v5v4.0.4Compare Source
Patch Changes
4399a30Thanks @stipsan! - Improve quality of generated dtsv4.0.3Compare Source
Patch Changes
33d90c3Thanks @stipsan! - Improve react lazy loadingv4.0.2Compare Source
Patch Changes
5307c0dThanks @renovate! - fix(deps): Update dependency @sanity/preview-url-secret to v3v4.0.1Compare Source
Patch Changes
c934098Thanks @stipsan! - Target React 19 in React Compilerv4.0.0Compare Source
Major Changes
#26
32fb288Thanks @stipsan! - Require React 19.2 or later#26
32fb288Thanks @stipsan! - Require Sanity Studio v4v3.1.0Compare Source
Minor Changes
d090d93Thanks @stipsan! - Add schema type for debuggingPatch Changes
4f82b31Thanks @stipsan! - Stop publishing src folder to npmv3.0.0Compare Source
Major Changes
#11
d2283b2Thanks @stipsan! - Set node engines to minimum v22.12 in addition to the existing required v20.19 or later#11
d2283b2Thanks @stipsan! - Remove CJS, this package is now ESM-onlyPatch Changes
#8
17e4495Thanks @renovate! - fix(deps): Update dependency @sanity/preview-url-secret to ^2.1.162bda9e1Thanks @stipsan! - Reduce reliance on@sanity/preview-url-secretv2.1.1Patch Changes
0c47c28Thanks @stipsan! - Setup npm Trusted Publishingv2.1.0Features
v2.0.2Dependencies
sanity-io/visual-editing (@sanity/visual-editing)
v4.0.3Bug Fixes
@vercel/stega(4b8a95c)v4.0.2Dependencies
v4.0.1Dependencies
v4.0.0⚠ BREAKING CHANGES
Bug Fixes
v3.2.4Bug Fixes
v3.2.3Bug Fixes
v3.2.2Bug Fixes
perspectivefor "Open in Studio" links (#3259) (39d5369)Dependencies
v3.2.1Bug Fixes
v3.2.0Features
Dependencies
v3.1.0Features
v3.0.5Bug Fixes
Dependencies
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR has been generated by Mend Renovate using a curated preset maintained by
. View repository job log here