Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Jul 10, 2025

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
@chromatic-com/storybook 4.1.35.0.0 age confidence
recharts ^2.15.3^3.0.0 age confidence
zod (source) ^3.24.3^4.0.0 age confidence

Release Notes

chromaui/addon-visual-tests (@​chromatic-com/storybook)

v5.0.0

Compare Source

💥 Breaking Change
🐛 Bug Fix
Authors: 2
recharts/recharts (recharts)

v3.7.0

Compare Source

v3.6.0

Compare Source

What's Changed

3.6 🚀 - check out BarStack and ranged stacked bars 📊

Feat
Fix
Chore
  • CartesianAxis: Deprecate CartesianAxis @​PavelVanecek in #​6774
  • Bump to Node 24
  • Lots of undefined checks for progress towards TS strict mode
Docs
  • Docs should be improving on the daily - comments in code + storybook + the website should all be coming closer to in sync thanks to @​PavelVanecek pretty much writing his own documentation generator 🤖 🚀

New Contributors

Full Changelog: recharts/recharts@v3.5.1...v3.6.0

v3.5.1

Compare Source

What's Changed

Fix
  • Pie: add missing Sector index to Pie shape prop by @​ckifer in #​6683
    • This enables customization of specific slices of the Pie similar to activeIndex in 2.x
  • Pie: prevent cross-Pie highlighting in multi-Pie PieCharts with shared dataKeys by @​shreedharbhat98 in #​6678
    • Only marks a specific Sector as active when that sector is hovered
  • TypeScript/Tooltip: update activeLabel type to be a string | number by @​ckifer in #​6691
    • !! NOTE !!: This change may break your types if you relied on it as a string, but this is a bug fix
  • Accessibility/General: add tabIndex -1 on Recharts ZIndex svg portal g tags to prevent extraneous focusable surfaces by @​ckifer in #​6687
  • General: Removed accidental eslint dependency from main dependencies which should remove it from installation with recharts

New Contributors

Full Changelog: recharts/recharts@v3.5.0...v3.5.1

v3.5.0

Compare Source

What's Changed

Mostly fixes and performance improvements this release but check out the deprecation of Pie active/inactiveShape in favor of aligning with the shape prop of other chart elements.

Feat
  • Pie: add shape to align custom Pie sector shapes to other Recharts components by @​ckifer in #​6482
    • This change deprecates activeShape and inactiveShape. Please use the isActive prop passed from the callback to shape to create active Pie sectors.
    • Note: forgot to include the current Sector index, will add in 3.5.1
  • Stacked Charts: implement reverseStackOrder prop in v3 - fixes a regression between recharts 2 and 3 by @​j-shimizu111 in #​6644
  • Typescript/Dot: export ActiveDotProps and DotItemDotProps types by @​simaks in #​6657
Fix
Docs
New Contributors (thanks everyone!)

Full Changelog: recharts/recharts@v3.4.1...v3.4.2

v3.4.1

Compare Source

What's Changed

Forgot some exports for Z Index in 3.4

Full Changelog: recharts/recharts@v3.4.0...v3.4.1

v3.4.0

Compare Source

v3.3.0

Compare Source

What's Changed
Feat
  • ResponsiveContainer is now built-in to all charts by @​PavelVanecek in #​6388
    • add the responsive prop to any chart along with a height and width as if you were using ResponsiveContainer. One less component to wrap things with. ResponsiveContainer will continue to work for the life of 3.x
<BarChart data={data} responsive height={300} width="100%">
  ....
</BarChart>
Fix
Website changes - https://recharts.github.io/

Unfortunately the current contributors and admins do not own recharts.org and the renewal of the domain remains up in the air. To remove that uncertainty we have deployed the website at our github pages URL instead.

New Contributors

Full Changelog: recharts/recharts@v3.2.1...v3.3.0

v3.2.1

Compare Source

What's Changed
Fix
New Contributors

Full Changelog: recharts/recharts@v3.2.0...v3.2.1

v3.2.0

Compare Source

What's Changed

Quite a bit of 3.0 bug fixes in this release along with two new hooks. Thanks to all who've been reporting issues!

Feat
Hooks
Fix
Chore
New Contributors (thanks everyone!)

Full Changelog: recharts/recharts@v3.1.2...v3.1.3

v3.1.2

Compare Source

What's Changed

Fix

Full Changelog: recharts/recharts@v3.1.1...v3.1.2

v3.1.1

Compare Source

What's Changed

Fix
  • General: Don't apply duplicate IDs in the DOM by @​PavelVanecek in #​6111
  • Stacked Area/Bar: give all graphical items their own unique identifier and use that to select stacked data. Fixes issue where stacked charts could not be created from the graphical item data prop #​6073 by @​PavelVanecek
  • Stacked Area/Bar: exclude stacked axis domain when not relevant for axis by @​rinkstiekema in #​6162 fixes issue where numeric stacked charts would not render correctly
  • Area Chart: ranged area chart - show active dot on both points instead of just the top one by @​sroy8091 in #​6116 fixes #​6080
  • Polar Charts/Label: fix Label in polar charts by @​PavelVanecek in #​6126
  • Scatter/ErrorBar: choose implicit Scatter ErrorBar direction based on chart layout (to be the same as 2.x) by @​PavelVanecek in #​6159
  • X/YAxis/Reference Components: allow axis values and reference items to render when there is no data but there is a domain/explicit ticks set by @​ethphan in #​6161
  • X/YAxis: pass axis padding info to custom tick components by @​shreedharbhat98 in #​6163
Chore / Testing
  • good progress on our journey to enable strictNullChecks
  • addition of playwright visual regression tests to CI
  • split Animate into JavascriptAnimate and CSSTransitionAnimate by @​PavelVanecek in #​6175

New Contributors

Full Changelog: recharts/recharts@v3.1.0...v3.1.1

v3.1.0

Compare Source

What's Changed

Bug fixes (old and new) and a few new hooks post 3.0 launch!

Feat

More hooks!

Fix
  • Legend: After hiding and showing legend elements, keep them in the same order as before by @​PavelVanecek in #​6026
  • Bar: add payload as a valid property on BarRectangleItem by @​ckifer in #​6029
  • Accessibility: Remove role=application from recharts wrapper (this was removed in 2.x for accessibility reasons) by @​PavelVanecek in #​6060
  • ResponsiveContainer: Add overflow: visible zero-size wrapper so that ResponsiveContainer can shrink by @​PavelVanecek in #​6068
  • X/YAxis: Fix tickCount and allowDecimals if axis domain does not include the keyword 'auto' by @​PavelVanecek in #​6070
  • Tooltip: Fix active tooltip and dots when there are multiple graphical items each with their own data by @​PavelVanecek in #​6074
Docs
Chore

New Contributors

Full Changelog: recharts/recharts@v3.0.2...v3.1.0

v3.0.2

Compare Source

What's Changed

Please skip 3.0.1 and go straight to 3.0.2 - #​6022. In React.StrictMode charts in 3.0.1 were not rendering at all. This revert should resolve that.

Full Changelog: recharts/recharts@v3.0.1...v3.0.2

v3.0.1

Compare Source

⚠️ Version 3.0.1 has a bug where some charts will not render in React strict mode. Please use 3.0.2 or higher. ⚠️

What's Changed

Lots of fixes from the 3.0 release - thanks for the reports!

Edit: broke something #​6022

Fix
  • Label: fix an issue which caused labelRef to get passed to custom DOM elements which logged an error/warning by @​saurabhraj123 in #​6008
  • Pie->Label: fix issue where pie labels were not rendering correctly when specified as a child of Pie by @​PavelVanecek in #​5987
  • Legend: apply legend itemSorter for custom content as well as default content by @​PavelVanecek in #​6012
    * Legend: keep legend items in the same order when they are hidden and shown by @​PavelVanecek in #​6017
  • Bar->Brush: fix undefined access error when using Brush with stacked bar charts by @​PavelVanecek in #​6009
  • X/YAxis: fix DecimalError when creating vertical oriented charts with a single datapoint by @​ckifer in #​6016
  • X/Y/PolarAngle/PolarRadius Axis: tickFormatter is no longer called with data indexes before the actual data by @​PavelVanecek in #​6019

Full Changelog: recharts/recharts@v3.0.0...v3.0.1

v3.0.0

Compare Source

🚀 Recharts 3 is here!

Huge shoutout to @​PavelVanecek who wrote 95% of the code for this major version release. We re-wrote recharts state management, wrote some 3500 unit tests, fixed a bunch of bugs, and added a few well-requested features.

The intent with 3.0 is that it is now a better/easier place for the community to contribute to. Looking forward to what the future of recharts looks like in 3.x and beyond!

More details and the 3.0 migration guide

BREAKING CHANGES

Please see https://github.com/recharts/recharts/wiki/3.0-migration-guide#breaking-code-changes

tldr;

  • CategoricalChartState (which was access to recharts internal state) no longer exists in event handlers or Customized, etc.
  • <Customized /> no longer receives recharts state/props
  • Removal of internal props that were always supposed to only be internal to recharts
  • Remove previously deprecated props
  • ...see full list linked above
New Features
  • Custom Components - you can now render any react component in the recharts tree structure (but it must still be renderable within an SVG). Previously this was controlled and filtered by recharts
  • Tooltip Portals - you can now use portals to position your tooltip data anywhere you'd like, including outside of your chart
  • Legend Portals - similar to the above, you can now use portals to position your Legend anywhere you'd like, including outside of your chart
  • Accessible by default - accessibilityLayer is now on on all polar and cartesian charts by default. Tab into the chart and use the arrow keys to navigate.
  • Polar charts now support multiple axes (similar to cartesian charts)
  • Tooltip: You can now select which axis your Tooltip belongs to using axisId
  • YAxis: auto width calculation for YAxes - set width="auto"
  • X/YAxis: Add symlog d3 scale type
Bug fixes and improvements

This release fixes some long standing issues in recharts, the easiest way to determine all of them is to take a look at the recharts 3.0 project board

  • Animation improvements
  • Typescript improvements
  • Accessibility fixes/improvements
  • Pie: no more border around pie sectors on click, etc.
  • CartesianGrid: background now renders below the grid lines instead of above
  • and more!

Our 3.0 storybook has a lot of updated examples!

colinhacks/zod (zod)

v4.3.6

Compare Source

Commits:

v4.3.5

Compare Source

Commits:

v4.3.4

Compare Source

Commits:

v4.3.3

Compare Source

v4.3.2

Compare Source

v4.3.1

Compare Source

Commits:

  • 0fe8840 allow non-overwriting extends with refinements. 4.3.1

v4.3.0

Compare Source

This is Zod's biggest release since 4.0. It addresses several of Zod's longest-standing feature requests.

z.fromJSONSchema()

Convert JSON Schema to Zod (#​5534, #​5586)

You can now convert JSON Schema definitions directly into Zod schemas. This function supports JSON Schema "draft-2020-12", "draft-7", "draft-4", and OpenAPI 3.0.

import * as z from "zod";

const schema = z.fromJSONSchema({
  type: "object",
  properties: {
    name: { type: "string", minLength: 1 },
    age: { type: "integer", minimum: 0 },
  },
  required: ["name"],
});

schema.parse({ name: "Alice", age: 30 }); // ✅

The API should be considered experimental. There are no guarantees of 1:1 "round-trip soundness": MySchema > z.toJSONSchema() > z.fromJSONSchema(). There are several features of Zod that don't exist in JSON Schema and vice versa, which makes this virtually impossible.

Features supported:

  • All primitive types (string, number, integer, boolean, null, object, array)
  • String formats (email, uri, uuid, date-time, date, time, ipv4, ipv6, and more)
  • Composition (anyOf, oneOf, allOf)
  • Object constraints (additionalProperties, patternProperties, propertyNames)
  • Array constraints (prefixItems, items, minItems, maxItems)
  • $ref for local references and circular schemas
  • Custom metadata is preserved

z.xor() — exclusive union (#​5534)

A new exclusive union type that requires exactly one option to match. Unlike z.union() which passes if any option matches, z.xor() fails if zero or more than one option matches.

const schema = z.xor([z.string(), z.number()]);

schema.parse("hello"); // ✅
schema.parse(42);      // ✅
schema.parse(true);    // ❌ zero matches

When converted to JSON Schema, z.xor() produces oneOf instead of anyOf.

z.looseRecord() — partial record validation (#​5534)

A new record variant that only validates keys matching the key schema, passing through non-matching keys unchanged. This is used to represent patternProperties in JSON Schema.

const schema = z.looseRecord(z.string().regex(/^S_/), z.string());

schema.parse({ S_name: "John", other: 123 });
// ✅ { S_name: "John", other: 123 }
// only S_name is validated, "other" passes through

.exactOptional() — strict optional properties (#​5589)

A new wrapper that makes a property key-optional (can be omitted) but does not accept undefined as an explicit value.

const schema = z.object({
  a: z.string().optional(),      // accepts `undefined`
  b: z.string().exactOptional(), // does not accept `undefined`
});

schema.parse({});                  // ✅
schema.parse({ a: undefined });    // ✅
schema.parse({ b: undefined });    // ❌

This makes it possible to accurately represent the full spectrum of optionality expressible using exactOptionalPropertyTypes.

.apply()

A utility method for applying arbitrary transformations to a schema, enabling cleaner schema composition. (#​5463)

const setCommonChecks = <T extends z.ZodNumber>(schema: T) => {
  return schema.min(0).max(100);
};

const schema = z.number().apply(setCommonChecks).nullable();

.brand() cardinality

The .brand() method now accepts a second argument to control whether the brand applies to input, output, or both. Closes #​4764, #​4836.

// output only (default)
z.string().brand<"UserId">();           // output is branded (default)
z.string().brand<"UserId", "out">();    // output is branded
z.string().brand<"UserId", "in">();     // input is branded
z.string().brand<"UserId", "inout">();  // both are branded

Type predicates on .refine() (#​5575)

The .refine() method now supports type predicates to narrow the output type:

const schema = z.string().refine((s): s is "a" => s === "a");

type Input = z.input<typeof schema>;   // string
type Output = z.output<typeof schema>; // "a"

ZodMap methods: min, max, nonempty, size (#​5316)

ZodMap now has parity with ZodSet and ZodArray:

const schema = z.map(z.string(), z.number())
  .min(1)
  .max(10)
  .nonempty();

schema.size; // access the size constraint

.with() alias for .check() (359c0db)

A new .with() method has been added as a more readable alias for .check(). Over time, more APIs have been added that don't qualify as "checks". The new method provides a readable alternative that doesn't muddy semantics.

z.string().with(
  z.minLength(5),
  z.toLowerCase()
);

// equivalent to:
z.string().check(
  z.minLength(5),
  z.trim(),
  z.toLowerCase()
);
z.slugify() transform

Transform strings into URL-friendly slugs. Works great with .with():

// Zod
z.string().slugify().parse("Hello World");           // "hello-world"

// Zod Mini
// using .with() for explicit check composition
z.string().with(z.slugify()).parse("Hello World");   // "hello-world"

z.meta() and z.describe() in Zod Mini (947b4eb)

Zod Mini now exports z.meta() and z.describe() as top-level functions for adding metadata to schemas:

import * as z from "zod/mini";

// add description
const schema = z.string().with(
  z.describe("A user's name"),
);

// add arbitrary metadata
const schema2 = z.number().with(
  z.meta({ deprecated: true })
);

New locales

import * as z from "zod";
import { uz } from "zod/locales";

z.config(uz());






Bug fixes

All of these changes fix soundness issues in Zod. As with any bug fix there's some chance of breakage if you were intentionally or unintentionally relying on this unsound behavior.

⚠️ .pick() and .omit() disallowed on object schemas containing refinements (#​5317)

Using .pick() or .omit() on object schemas with refinements now throws an error. Previously, this would silently drop the refinements, leading to unexpected behavior.

const schema = z.object({
  password: z.string(),
  confirmPassword: z.string(),
}).refine(data => data.password === data.confirmPassword);

schema.pick({ password: true });
// 4.2: refinement silently dropped ⚠️
// 4.3: throws error ❌

Migration: The easiest way to migrate is to create a new schema using the shape of the old one.

const newSchema = z.object(schema.shape).pick({ ... })
⚠️ .extend() disallowed on refined schemas (#​5317)

Similarly, .extend() now throws on schemas with refinements. Use .safeExtend() if you need to extend refined schemas.

const schema = z.object({ a: z.string() }).refine(/* ... */);

// 4.2: refinement silently dropped ⚠️
// 4.3: throws error ✅
schema.extend({ b: z.number() });
// error: object schemas containing refinements cannot be extended. use `.safeExtend()` instead.
⚠️ Stricter object masking methods (#​5581)

Object masking methods (.pick(), .omit()) now validate that the keys provided actually exist in the schema:

const schema = z.object({ a: z.string() });

// 4.3: throws error for unrecognized keys
schema.pick({ nonexistent: true });
// error: unrecognized key: "nonexistent"

Additional changes

  • Fixed JSON Schema generation for z.iso.time with minute precision (#​5557)
  • Fixed error details for tuples with extraneous elements (#​5555)
  • Fixed includes method params typing to accept string | $ZodCheckIncludesParams (#​5556)
  • Fixed numeric formats error messages to be inclusive (#​5485)
  • Fixed implementAsync inferred type to always be a promise (#​5476)
  • Tightened E.164 regex to require a non-zero leading digit and 7–15 digits total (#​5524)
  • Fixed Dutch (nl) error strings (#​5529)
  • Convert Date instances to numbers in minimum/maximum checks (#​5351)
  • Improved numeric keys handling in z.record() (#​5585)
  • Lazy initialization of ~standard schema property (#​5363)
  • Functions marked as @__NO_SIDE_EFFECTS__ for better tree-shaking (#​5475)
  • Improved metadata tracking across child-parent relationships (#​5578)
  • Improved locale translation approach (#​5584)
  • Dropped id uniqueness enforcement at registry level (#​5574)

v4.2.1

Compare Source

v4.2.0

Compare Source

Features

Implement Standard JSON Schema

standard-schema/standard-schema#134

Implement z.fromJSONSchema()
const jsonSchema = {
  type: "object",
  properties: {
    name: { type: "string" },
    age: { type: "number" }
  },
  required: ["name"]
};

const schema = z.fromJSONSchema(jsonSchema);
Implement z.xor()
const schema = z.xor(
  z.object({ type: "user", name: z.string() }),
  z.object({ type: "admin", role: z.string() })
);
// Exactly one of the schemas must match
Implement z.looseRecord()
const schema = z.looseRecord(z.string(), z.number());
// Allows additional properties beyond those defined

Commits:

v4.1.13

Compare Source

v4.1.12

Compare Source

Commits:


Configuration

📅 Schedule: Branch creation - "at 19:00 on Friday" in timezone Asia/Tokyo, Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot force-pushed the renovate/major-frontend-update-dependencies branch from e566a61 to 115a70a Compare July 10, 2025 13:01
@renovate renovate bot changed the title fix(deps): update dependency zod to v4 fix(deps): update [frontend] update dependencies (major) Jul 10, 2025
@renovate renovate bot force-pushed the renovate/major-frontend-update-dependencies branch 2 times, most recently from 9d5dacc to 01b02b6 Compare July 14, 2025 10:40
@renovate renovate bot force-pushed the renovate/major-frontend-update-dependencies branch 6 times, most recently from 5699ec0 to 5ddee3e Compare July 30, 2025 09:43
@renovate renovate bot force-pushed the renovate/major-frontend-update-dependencies branch 2 times, most recently from df5ce0c to bb5f79d Compare August 5, 2025 06:44
@renovate renovate bot force-pushed the renovate/major-frontend-update-dependencies branch from bb5f79d to 7abd08c Compare August 5, 2025 08:07
@reg-suit
Copy link

reg-suit bot commented Aug 5, 2025

✨✨ That's perfect, there is no visual difference! ✨✨

Check out the report here.

@renovate renovate bot force-pushed the renovate/major-frontend-update-dependencies branch from 7abd08c to 4840d31 Compare August 5, 2025 16:42
@renovate renovate bot force-pushed the renovate/major-frontend-update-dependencies branch from 4840d31 to 68ff8a9 Compare August 6, 2025 00:52
@renovate renovate bot force-pushed the renovate/major-frontend-update-dependencies branch from 68ff8a9 to c2ebed2 Compare August 7, 2025 14:01
@renovate renovate bot force-pushed the renovate/major-frontend-update-dependencies branch from c2ebed2 to f04deb8 Compare August 9, 2025 01:34
@renovate renovate bot force-pushed the renovate/major-frontend-update-dependencies branch from f04deb8 to 91f1e2a Compare August 9, 2025 20:24
@renovate renovate bot force-pushed the renovate/major-frontend-update-dependencies branch from 91f1e2a to 36d93d8 Compare August 10, 2025 12:41
@renovate renovate bot force-pushed the renovate/major-frontend-update-dependencies branch 4 times, most recently from 78908aa to 0de1180 Compare November 23, 2025 12:31
@renovate renovate bot force-pushed the renovate/major-frontend-update-dependencies branch 7 times, most recently from 94f2546 to ee1157c Compare December 1, 2025 15:01
@renovate renovate bot force-pushed the renovate/major-frontend-update-dependencies branch 5 times, most recently from ac6f943 to 0eb1913 Compare December 6, 2025 09:04
@renovate renovate bot force-pushed the renovate/major-frontend-update-dependencies branch from 0eb1913 to b592c5d Compare December 9, 2025 12:12
@renovate renovate bot force-pushed the renovate/major-frontend-update-dependencies branch 2 times, most recently from aaafbe0 to 8c3161d Compare December 19, 2025 04:34
@renovate renovate bot force-pushed the renovate/major-frontend-update-dependencies branch 4 times, most recently from 967ee94 to 0f60268 Compare January 4, 2026 01:10
@renovate renovate bot force-pushed the renovate/major-frontend-update-dependencies branch from 0f60268 to a06227a Compare January 7, 2026 09:32
@renovate renovate bot force-pushed the renovate/major-frontend-update-dependencies branch 2 times, most recently from 3197a29 to 4e34c58 Compare January 19, 2026 15:05
@renovate renovate bot force-pushed the renovate/major-frontend-update-dependencies branch 2 times, most recently from 8140098 to 9e64dc1 Compare January 24, 2026 21:56
@renovate renovate bot force-pushed the renovate/major-frontend-update-dependencies branch from 9e64dc1 to ef11036 Compare January 25, 2026 22:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant