Skip to content

chore(deps): bump the all-major group across 1 directory with 3 updates - #135

Merged
damianrosellen1 merged 3 commits into
variant/document-levelfrom
dependabot/npm_and_yarn/variant/document-level/all-major-7f147db957
Jul 6, 2026
Merged

chore(deps): bump the all-major group across 1 directory with 3 updates#135
damianrosellen1 merged 3 commits into
variant/document-levelfrom
dependabot/npm_and_yarn/variant/document-level/all-major-7f147db957

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jul 6, 2026

Copy link
Copy Markdown
Contributor

Bumps the all-major group with 3 updates in the / directory: @sanity/icons, sanity-plugin-media and sanity-plugin-mux-input.

Updates @sanity/icons from 3.7.4 to 5.0.0

Release notes

Sourced from @​sanity/icons's releases.

v5.0.0

Major Changes

  • #215 19689cc Thanks @​stipsan! - The deprecated per-icon barrel exports are removed: import {RocketIcon} from '@sanity/icons' no longer works, import icons from their own export path instead, e.g. import {RocketIcon} from '@sanity/icons/Rocket'. The root entry now only exposes the dynamic pieces – the <Icon> component, the icons map, and their types – and every entry in the icons map is built with React.lazy, so importing the root entry no longer pulls the full icon set into your bundle: each icon loads as its own chunk the first time it renders. <Icon> wraps the lazy icon in a <Suspense> boundary whose fallback is an svg with the same shell (viewBox, width/height and spread props) as the icon it is loading, so the slot reserves its final size and responds to the same styling while the chunk loads – the way an <img> with intrinsic dimensions behaves. When rendering components from the icons map directly, provide your own <Suspense> boundary.

v4.1.0

Minor Changes

  • #182 e7538d4 Thanks @​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, so React.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.0

Major Changes

  • #200 26b9248 Thanks @​stipsan! - Drop CommonJS support and require Node.js >=22.12

    @sanity/icons is now ESM-only. The require export condition and the CommonJS build output (./dist/index.cjs) have been removed, so the package must be consumed via ESM import. The minimum supported Node.js version has been raised to >=22.12 to match sanity.

  • #201 01e3807 Thanks @​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 via React.ComponentPropsWithRef), following React 19's ref-as-prop model. The react peer dependency range is now ^19, and the exported IconComponent type has changed accordingly.

v4.0.0-rc.2

Patch Changes

  • #205 779a513 Thanks @​stipsan! - Migrate build tooling from @sanity/pkg-utils to tsdown (via @sanity/tsdown-config)

    The package is now bundled with tsdown. The redundant top-level main and module fields have been removed in favor of the exports field (types is unchanged); the published exports/publishConfig.exports are now generated by tsdown.

  • #207 ecf246f Thanks @​stipsan! - Remove the unused esm.sh bundling override from package.json. It was added back when the package still shipped a CommonJS build; now that @sanity/icons is ESM-only with a single bundled entry point, esm.sh's default bundling behaviour has nothing extra to bundle, so the override is no longer needed.

v4.0.0-rc.1

Major Changes

  • #201 01e3807 Thanks @​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 via React.ComponentPropsWithRef), following React 19's ref-as-prop model. The react peer dependency range is now ^19, and the exported IconComponent type has changed accordingly.

v4.0.0-rc.0

Major Changes

  • #200 26b9248 Thanks @​stipsan! - Drop CommonJS support and require Node.js >=22.12

    @sanity/icons is now ESM-only. The require export condition and the CommonJS build output (./dist/index.cjs) have been removed, so the package must be consumed via ESM import. The minimum supported Node.js version has been raised to >=22.12 to match sanity.

v3.8.0

Minor Changes

Patch Changes

... (truncated)

Changelog

Sourced from @​sanity/icons's changelog.

5.0.0

Major Changes

  • #215 19689cc Thanks @​stipsan! - The deprecated per-icon barrel exports are removed: import {RocketIcon} from '@sanity/icons' no longer works, import icons from their own export path instead, e.g. import {RocketIcon} from '@sanity/icons/Rocket'. The root entry now only exposes the dynamic pieces – the <Icon> component, the icons map, and their types – and every entry in the icons map is built with React.lazy, so importing the root entry no longer pulls the full icon set into your bundle: each icon loads as its own chunk the first time it renders. <Icon> wraps the lazy icon in a <Suspense> boundary whose fallback is an svg with the same shell (viewBox, width/height and spread props) as the icon it is loading, so the slot reserves its final size and responds to the same styling while the chunk loads – the way an <img> with intrinsic dimensions behaves. When rendering components from the icons map directly, provide your own <Suspense> boundary.

4.1.0

Minor Changes

  • #182 e7538d4 Thanks @​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, so React.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.

4.0.0

Major Changes

  • #200 26b9248 Thanks @​stipsan! - Drop CommonJS support and require Node.js >=22.12

    @sanity/icons is now ESM-only. The require export condition and the CommonJS build output (./dist/index.cjs) have been removed, so the package must be consumed via ESM import. The minimum supported Node.js version has been raised to >=22.12 to match sanity.

  • #201 01e3807 Thanks @​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 via React.ComponentPropsWithRef), following React 19's ref-as-prop model. The react peer dependency range is now ^19, and the exported IconComponent type has changed accordingly.

4.0.0-rc.2

Patch Changes

  • #205 779a513 Thanks @​stipsan! - Migrate build tooling from @sanity/pkg-utils to tsdown (via @sanity/tsdown-config)

    The package is now bundled with tsdown. The redundant top-level main and module fields have been removed in favor of the exports field (types is unchanged); the published exports/publishConfig.exports are now generated by tsdown.

  • #207 ecf246f Thanks @​stipsan! - Remove the unused esm.sh bundling override from package.json. It was added back when the package still shipped a CommonJS build; now that @sanity/icons is ESM-only with a single bundled entry point, esm.sh's default bundling behaviour has nothing extra to bundle, so the override is no longer needed.

4.0.0-rc.1

Major Changes

  • #201 01e3807 Thanks @​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 via React.ComponentPropsWithRef), following React 19's ref-as-prop model. The react peer dependency range is now ^19, and the exported IconComponent type has changed accordingly.

4.0.0-rc.0

Major Changes

  • #200 26b9248 Thanks @​stipsan! - Drop CommonJS support and require Node.js >=22.12

    @sanity/icons is now ESM-only. The require export condition and the CommonJS build output (./dist/index.cjs) have been removed, so the package must be consumed via ESM import. The minimum supported Node.js version has been raised to >=22.12 to match sanity.

... (truncated)

Commits
Maintainer changes

This version was pushed to npm by GitHub Actions, a new releaser for @​sanity/icons since your current version.


Updates sanity-plugin-media from 4.3.1 to 5.0.10

Release notes

Sourced from sanity-plugin-media's releases.

sanity-plugin-media@5.0.10

Patch Changes

  • #1491 2361892 Thanks @​stipsan! - Build with tsdown instead of @sanity/pkg-utils. Internal build-tooling change only, with no intended changes to the public API or runtime behavior.

sanity-plugin-media@5.0.9

Patch Changes

  • #1460 f50f060 Thanks @​stipsan! - Regenerate TypeScript declaration output: isolatedDeclarations is no longer used and declarations are now generated with tsgo (@typescript/native-preview). Internal build-tooling change only, with no runtime behavior or public API changes.

sanity-plugin-media@5.0.8

Patch Changes

  • #1481 0eae652 Thanks @​stipsan! - Upgrade @sanity/pkg-utils to ^10.9.0, enabling tree-shaking of unused styled-components in the published bundle. Tagged template literals are now transpiled to plain call expressions during build, so bundlers can drop styled components this plugin exports but the app doesn't use, reducing bundle size.
Changelog

Sourced from sanity-plugin-media's changelog.

5.0.10

Patch Changes

  • #1491 2361892 Thanks @​stipsan! - Build with tsdown instead of @sanity/pkg-utils. Internal build-tooling change only, with no intended changes to the public API or runtime behavior.

5.0.9

Patch Changes

  • #1460 f50f060 Thanks @​stipsan! - Regenerate TypeScript declaration output: isolatedDeclarations is no longer used and declarations are now generated with tsgo (@typescript/native-preview). Internal build-tooling change only, with no runtime behavior or public API changes.

5.0.8

Patch Changes

  • #1481 0eae652 Thanks @​stipsan! - Upgrade @sanity/pkg-utils to ^10.9.0, enabling tree-shaking of unused styled-components in the published bundle. Tagged template literals are now transpiled to plain call expressions during build, so bundlers can drop styled components this plugin exports but the app doesn't use, reducing bundle size.

5.0.7

Patch Changes

5.0.6

Patch Changes

5.0.5

Patch Changes

5.0.4

Patch Changes

... (truncated)

Commits
Maintainer changes

This version was pushed to npm by GitHub Actions, a new releaser for sanity-plugin-media since your current version.


Updates sanity-plugin-mux-input from 3.0.0 to 4.1.5

Release notes

Sourced from sanity-plugin-mux-input's releases.

sanity-plugin-mux-input@4.1.5

Patch Changes

  • #1491 2361892 Thanks @​stipsan! - Build with tsdown instead of @sanity/pkg-utils. Internal build-tooling change only, with no intended changes to the public API or runtime behavior. The process.env.PKG_VERSION constant is still replaced with the package version at build time.

sanity-plugin-mux-input@4.1.4

Patch Changes

  • #1460 f50f060 Thanks @​stipsan! - Regenerate TypeScript declaration output: isolatedDeclarations is no longer used and declarations are now generated with tsgo (@typescript/native-preview). Internal build-tooling change only, with no runtime behavior or public API changes.

sanity-plugin-mux-input@4.1.3

Patch Changes

  • #1481 0eae652 Thanks @​stipsan! - Upgrade @sanity/pkg-utils to ^10.9.0, enabling tree-shaking of unused styled-components in the published bundle. Tagged template literals are now transpiled to plain call expressions during build, so bundlers can drop styled components this plugin exports but the app doesn't use, reducing bundle size.
Changelog

Sourced from sanity-plugin-mux-input's changelog.

4.1.5

Patch Changes

  • #1491 2361892 Thanks @​stipsan! - Build with tsdown instead of @sanity/pkg-utils. Internal build-tooling change only, with no intended changes to the public API or runtime behavior. The process.env.PKG_VERSION constant is still replaced with the package version at build time.

4.1.4

Patch Changes

  • #1460 f50f060 Thanks @​stipsan! - Regenerate TypeScript declaration output: isolatedDeclarations is no longer used and declarations are now generated with tsgo (@typescript/native-preview). Internal build-tooling change only, with no runtime behavior or public API changes.

4.1.3

Patch Changes

  • #1481 0eae652 Thanks @​stipsan! - Upgrade @sanity/pkg-utils to ^10.9.0, enabling tree-shaking of unused styled-components in the published bundle. Tagged template literals are now transpiled to plain call expressions during build, so bundlers can drop styled components this plugin exports but the app doesn't use, reducing bundle size.

4.1.2

Patch Changes

4.1.1

Patch Changes

  • #1363 f9acf7c Thanks @​stipsan! - Replace React.forwardRef with the React 19 ref-as-prop pattern (internal refactor, no API change)

4.1.0

Minor Changes

  • #1107 36b4d13 Thanks @​y-dpi, @​R-Delfino95! - Add a "Mezzanine" action to enable and download a Mux asset's master-access file

    A new "Mezzanine" section is available in the asset details dialog (next to Captions) and in the player actions menu. It lets editors enable Mux's master access — the highest-quality, near-lossless source copy of the asset, meant for offline editing and archival rather than streaming (unlike the streamable MP4 static renditions). The same surface explains what it is (free, available for 24 hours) and lets the user enable, watch it prepare, and download it, and links to Mux's guide — there's no separate confirmation dialog.

    Enabling and status checks go through the Mux addon proxy (the same authentication as every other addon call), and the resulting master data is stored on the Sanity document — so the status is polled until ready (like captions) and is already present for assets imported from Mux. Because the Mux download URL is short-lived, the Download action re-fetches the asset first: if the file is still available it redirects to it, otherwise it prompts to enable it again.

Patch Changes

4.0.3

... (truncated)

Commits

Bumps the all-major group with 3 updates in the / directory: [@sanity/icons](https://github.com/sanity-io/icons), [sanity-plugin-media](https://github.com/sanity-io/plugins/tree/HEAD/plugins/sanity-plugin-media) and [sanity-plugin-mux-input](https://github.com/sanity-io/plugins/tree/HEAD/plugins/sanity-plugin-mux-input).


Updates `@sanity/icons` from 3.7.4 to 5.0.0
- [Release notes](https://github.com/sanity-io/icons/releases)
- [Changelog](https://github.com/sanity-io/icons/blob/main/CHANGELOG.md)
- [Commits](sanity-io/icons@v3.7.4...v5.0.0)

Updates `sanity-plugin-media` from 4.3.1 to 5.0.10
- [Release notes](https://github.com/sanity-io/plugins/releases)
- [Changelog](https://github.com/sanity-io/plugins/blob/main/plugins/sanity-plugin-media/CHANGELOG.md)
- [Commits](https://github.com/sanity-io/plugins/commits/sanity-plugin-media@5.0.10/plugins/sanity-plugin-media)

Updates `sanity-plugin-mux-input` from 3.0.0 to 4.1.5
- [Release notes](https://github.com/sanity-io/plugins/releases)
- [Changelog](https://github.com/sanity-io/plugins/blob/main/plugins/sanity-plugin-mux-input/CHANGELOG.md)
- [Commits](https://github.com/sanity-io/plugins/commits/sanity-plugin-mux-input@4.1.5/plugins/sanity-plugin-mux-input)

---
updated-dependencies:
- dependency-name: "@sanity/icons"
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: all-major
- dependency-name: sanity-plugin-media
  dependency-version: 5.0.10
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: all-major
- dependency-name: sanity-plugin-mux-input
  dependency-version: 4.1.5
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: all-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot changed the title chore(deps): bump the all-major group with 3 updates chore(deps): bump the all-major group across 1 directory with 3 updates Jul 6, 2026
@dependabot
dependabot Bot force-pushed the dependabot/npm_and_yarn/variant/document-level/all-major-7f147db957 branch from 1bf974f to 62732fb Compare July 6, 2026 10:37
@damianrosellen1

Copy link
Copy Markdown
Collaborator

@claude review this pull request: leave specific findings as review comments on the diff, AND assess the broader impact — how the change fits the wider codebase, architecture and ripple effects, correctness, security, performance, maintainability, and any missing tests or follow-up risks. Summarise the big-picture assessment in a comment.

@claude

claude Bot commented Jul 6, 2026

Copy link
Copy Markdown

Claude finished @damianrosellen1's task in 3m 3s —— View job


Review: chore(deps): bump the all-major group (#135)

Todo list

  • Gather context (diff, changed files, package.json changes)
  • Understand the request (review + broader impact assessment)
  • Inspect @sanity/icons usage across the codebase for breaking-change fallout
  • Inspect sanity-plugin-media / sanity-plugin-mux-input usage for breaking changes
  • Check lockfile consistency
  • Check CI status for this PR
  • Leave specific findings and post big-picture summary

🔴 Blocking finding: @sanity/icons 3→5 breaks the build (confirmed by CI)

studio/package.json bumps @sanity/icons from ^3.7.4 to ^5.0.0. As of v5.0.0, the package removed the deprecated barrel exportsimport { RocketIcon } from "@sanity/icons" no longer works; icons must be imported from their own subpath (import { RocketIcon } from "@sanity/icons/Rocket"), per the v5.0.0 changelog.

This repo has 31 files that still use the old barrel-import pattern, e.g.:

  • studio/config/structure/index.ts:1import { ControlsIcon } from "@sanity/icons"
  • studio/schemas/documents/page.ts:1import { DocumentTextIcon, SearchIcon, TextIcon } from "@sanity/icons"
  • studio/schemas/objects/modules/moduleMedia.ts:1import { ImageIcon, PlayIcon } from "@sanity/icons"
  • studio/schemas/settings/siteSettings.ts:1import { CogIcon, DesktopIcon, SearchIcon } from "@sanity/icons"
  • …and 27 more files under studio/schemas/, studio/config/structure/, studio/schemas/objects/modules/.

I checked the PR's own CI run and this is not theoretical — format • typecheck is already failing on both Node 20 and 22 jobs, with 40+ TS2305: Module '"@sanity/icons"' has no exported member '...' errors, one per icon import (see job log). schema typegen and both build jobs are consequently skipped.

Dependabot's major-version bump correctly identifies the new version but — as expected for a mechanical dependency bump — does not migrate the ~40 call sites. This PR cannot be merged as-is. To land it, either:

  1. Migrate every barrel import to the per-icon subpath import (mechanical, high file-count changeset), or
  2. Pin @sanity/icons back to ^3.x/^4.x (v4.1.0 still supports the deprecated barrel imports) and let this bump land as a follow-up with the migration bundled in.

Fix this →

🟢 Non-issues: sanity-plugin-media and sanity-plugin-mux-input

  • sanity-plugin-media ^4.3.1 → ^5.0.10 and sanity-plugin-mux-input ^3.0.0 → ^4.1.5 are both used only via their top-level plugin factory (media(), muxInput() in studio/sanity.config.ts:8-9,94-95) with no options passed. Neither plugin's changelog (patch/minor entries visible in the PR body — build-tooling migration to tsdown, forwardRef → React 19 ref-as-prop, react-is moved from peer- to regular-dependency, new opt-in "Mezzanine" feature for mux-input) touches this call pattern.
  • Confirmed against the actual CI failure log: zero errors reference either plugin — all 40+ typecheck errors are @sanity/icons-only. These two bumps are safe on their own.
  • Both plugins' current major lines already require React 19 / Sanity v6, which this repo already satisfies (react: ^19.2.7, sanity: ^6.3.0), so no further peer-dependency fallout.

Lockfile review

pnpm-lock.yaml changes are consistent with the package.json bump: resolved versions for the three direct deps update as expected, plus the expected transitive churn (immer 11.1.8→11.1.11, iso-639-1 3.1.5→3.1.6, @hookform/resolvers 3.10.0→4.1.3, dedup of duplicate @sanity/client/groq versions, react-is dropped from sanity-plugin-mux-input's peer set per its own changelog). Nothing unexpected or unrelated to the three bumped packages.

Broader impact / architecture assessment

  • Blast radius: @sanity/icons is used purely for Studio schema/structure icon: props — a cosmetic/editorial-UI concern, not part of the web app, GROQ layer, or the module-pattern render path. So the type of breakage is low-risk (icons, not data), but the scope is wide (31 files) because every module/document/settings schema imports at least one icon.
  • CI/gate design is working as intended: this is a textbook case for why pnpm typecheck is a required CI gate before studio:build/web:build run (per AGENTS.md "Definition of done"). The gate caught the break; it should not be bypassed to merge this PR.
  • Maintainability: once migrated, per-icon subpath imports are strictly better for Studio bundle size (each icon becomes its own lazy-loaded chunk per the v5 release notes) — worth doing rather than pinning back, if there's appetite for a ~31-file mechanical change.
  • Tests/follow-up risk: there's no automated test coverage for Studio icon rendering (expected — it's a thin wrapper), so once typecheck passes, a quick manual check of the Studio desk structure (sidebar icons, document type icons) after migration is the only extra verification needed. No i18n, GROQ, or module-wiring implications — this bump doesn't touch any of the 8 module wiring points.
  • Recommendation: do not merge until the icon imports are migrated (or the @sanity/icons bump is reverted to a compatible minor/major that still has the deprecated barrel export, e.g. ^4.1.0). The sanity-plugin-media/sanity-plugin-mux-input bumps can ship independently once the icons issue is resolved.
    · Failing CI run

@arnespremberg

Copy link
Copy Markdown
Contributor

@cursoragent pls fix

@cursor

cursor Bot commented Jul 6, 2026

Copy link
Copy Markdown

Fixed the CI failure caused by @sanity/icons v5 removing barrel exports.

What changed: Migrated all 33 files that used import { XIcon } from "@sanity/icons" to per-icon subpath imports (e.g. import { CogIcon } from "@sanity/icons/Cog"). Affected areas:

  • studio/config/structure/ (13 files)
  • studio/schemas/ (19 files)
  • packages/scaffold-module/templates/schema.ts.tmpl (so new modules use the correct pattern)

Example:

import { CogIcon } from "@sanity/icons/Cog";
import { DesktopIcon } from "@sanity/icons/Desktop";
import { SearchIcon } from "@sanity/icons/Search";

Verification: pnpm typecheck passes for both studio and web.

Changes are committed and pushed to dependabot/npm_and_yarn/variant/document-level/all-major-7f147db957 (e244a56). CI should pass on the next run. The sanity-plugin-media and sanity-plugin-mux-input bumps required no code changes.

Open in Web Open in Cursor 

@sanity/icons v5 removed deprecated barrel exports. Update all 33
call sites to use per-icon subpath imports (e.g. @sanity/icons/Cog)
so typecheck passes with the dependabot major bump.
The mux-input v4 bump adds mux.masterFile to the extracted schema.
Commit regenerated studio/schema.json and typegen outputs so the
schema typegen CI gate passes.
@damianrosellen1
damianrosellen1 merged commit e790e77 into variant/document-level Jul 6, 2026
6 checks passed
@damianrosellen1
damianrosellen1 deleted the dependabot/npm_and_yarn/variant/document-level/all-major-7f147db957 branch July 6, 2026 14:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants