Vigia

Upgrading victory-core from 37.x to 38.x

Comparison of the public API of victory-core 37.4.1 and 38.0.0, computed automatically from their TypeScript types. A changed signature is a candidate for a breaking change, not a certainty.

Summary

Removed import paths0
Removed exports0
Changed signatures10
Removed class or interface members0
Changed class or interface members5
Newly deprecated0
Requirement changes (engines, peer dependencies)1
New exports1

Removed exports

None detected.

Changed signatures

exportBeforeAfter
victory-core · Text(props: TextProps): JSX.Element(props: TextProps): React.JSX.Element
victory-core · TSpan(props: VictoryCommonPrimitiveProps): JSX.Element(props: VictoryCommonPrimitiveProps): React.JSX.Element
victory-core · ClipPath(props: ClipPathProps): JSX.Element(props: ClipPathProps): React.JSX.Element
victory-core · PortalProvider({ children }: PortalProviderProps): JSX.Element({ children }: PortalProviderProps): React.JSX.Element
victory-core · AnimationEasing"linear" | "back" | "backIn" | "backOut" | "backInOut" | "bounce" | "bounceIn" | "bounceOut" | "bounceInOut" | "circle" | "circleIn" | "circleOut" | "circleInOut" | "linearIn" | "linearOut" | "linearInOut" | "cubic" | "cubicIn" | "cubicOut" | "cubicInOut" | "elastic" | "elasticIn" | "elasticOut" | "elasticInOut" | "exp" | "expIn" | "expOut" | "expInOut" | "poly" | "polyIn" | "polyOut" | "polyInOut" | "quad" | "quadIn" | "quadOut" | "quadInOut" | "sin" | "sinIn" | "sinOut" | "sinInOut""back" | "backIn" | "backOut" | "backInOut" | "bounce" | "bounceIn" | "bounceOut" | "bounceInOut" | "circle" | "circleIn" | "circleOut" | "circleInOut" | "linear" | "linearIn" | "linearOut" | "linearInOut" | "cubic" | "cubicIn" | "cubicOut" | "cubicInOut" | "elastic" | "elasticIn" | "elasticOut" | "elasticInOut" | "exp" | "expIn" | "expOut" | "expInOut" | "poly" | "polyIn" | "polyOut" | "polyInOut" | "quad" | "quadIn" | "quadOut" | "quadInOut" | "sin" | "sinIn" | "sinOut" | "sinInOut"
victory-core · VictoryContainer(initialProps: VictoryContainerProps): JSX.Element(initialProps: VictoryContainerProps): React.JSX.Element
victory-core · PaddingOrCallbacknumber | VictoryPaddingCallback | BlockPropsnumber | BlockProps | VictoryPaddingCallback
victory-core · useVictoryContainer<TProps extends VictoryContainerProps>(initialProps: TProps): { className: string; portalComponent: JSX.Element; portalZIndex: number; responsive: boolean; role: string; } & TProps & { titleId: string; descId: string; dimensions: { width: string; height: string; } | { width: number | undefined; height: number | undefined; }; viewBox: string | undefined; preserveAspectRatio: string | undefined; ariaLabelledBy: string | undefined; ariaDescribedBy: string | undefined; userProps: Record<string, string>; localContainerRef: React.RefObject<HTMLDivElement>; }<TProps extends VictoryContainerProps>(initialProps: TProps): { className: string; portalComponent: React.JSX.Element; portalZIndex: number; responsive: boolean; role: string; } & TProps & { titleId: string; descId: string; dimensions: { width: string; height: string; } | { width: number | undefined; height: number | undefined; }; viewBox: string | undefined; preserveAspectRatio: string | undefined; ariaLabelledBy: string | undefined; ariaDescribedBy: string | undefined; userProps: Record<string, string>; localContainerRef: React.RefObject<HTMLDivElement>; }
victory-core · OrientationOrCallbackVictoryOrientationCallback | OrientationTypesOrientationTypes | VictoryOrientationCallback
victory-core · VictoryAccessibleGroup({ desc, children, tabIndex, className, ...props }: VictoryAccessibleGroupProps): JSX.Element({ desc, children, tabIndex, className, ...props }: VictoryAccessibleGroupProps): React.JSX.Element

Removed class or interface members

None detected.

Changed class or interface members

memberBeforeAfter
VictoryLabelProps.textStringOrNumberOrCallback | string[] | undefinedstring[] | StringOrNumberOrCallback | undefined
VictoryLabelProps.lineHeightStringOrNumberOrCallback | (string | number)[] | undefined(string | number)[] | StringOrNumberOrCallback | undefined
VictoryTransition.render(): JSX.Element(): React.JSX.Element
VictoryClipContainer.static defaultProps{ circleComponent: JSX.Element; rectComponent: JSX.Element; clipPathComponent: JSX.Element; groupComponent: JSX.Element; }{ circleComponent: React.JSX.Element; rectComponent: React.JSX.Element; clipPathComponent: React.JSX.Element; groupComponent: React.JSX.Element; }
EventPropTypeInterface.eventHandlers{ [key: string]: ((event: React.SyntheticEvent<any>, props?: any) => EventCallbackInterface<TTarget, TEventKey>) | ((event: React.SyntheticEvent<any>, props?: any) => EventCallbackInterface<TTarget, TEventKey>[]) | ((event: React.SyntheticEvent<any>, props?: any) => void); }{ [key: string]: ((event: React$1.SyntheticEvent<any>, props?: any) => EventCallbackInterface<TTarget, TEventKey>) | ((event: React$1.SyntheticEvent<any>, props?: any) => EventCallbackInterface<TTarget, TEventKey>[]) | ((event: React$1.SyntheticEvent<any>, props?: any) => void); }

Newly deprecated

None detected.

Requirement changes (engines, peer dependencies)

BeforeAfter
peerDependencies.react>=16.6.0>=18
New exports (1)
importexportkind
victory-coreComponentEventinterface

Changelog between these versions

Text published by the package authors, shown as-is.

38.0.0
### Major Changes

- [#3138](https://github.com/FormidableLabs/victory/pull/3138) [`b7ebc3e`](https://github.com/FormidableLabs/victory/commit/b7ebc3e316d05740f11d4e8b8072d420db6ccfad) - Require React 18 or later: the `react` peer dependency is now `>=18` (was `>=16.6.0`). If you're on React 16 or 17, stay on Victory 37.x until you upgrade React.

- [#3107](https://github.com/FormidableLabs/victory/pull/3107) [`4c436bd`](https://github.com/FormidableLabs/victory/commit/4c436bd47b835e795e96bc205cdf9c590fe92ddb) - Remove the UMD bundles (`dist/<package>.js` and `dist/<package>.min.js`). To use Victory in the browser without a build step, import it as ESM from a CDN with an import map; see [Using Victory in the browser](https://commerce.nearform.com/open-source/victory/docs/introduction/browser).

- [#3108](https://github.com/FormidableLabs/victory/pull/3108) [`8f16467`](https://github.com/FormidableLabs/victory/commit/8f1646767d6059d764541118284cf71cc1da5c95) - Packages are now built with tsdown and published from `dist/`, with an `exports` map:
  
  - ESM is `dist/*.mjs` and CommonJS is `dist/*.cjs`, with matching `.d.mts`/`.d.cts` types. `main`, `module` and `types` still point at them for older tooling.
  - Only the package root (and `package.json`) can be imported. Deep imports into `lib/`, `es/` or `src/` no longer resolve; import from the package root instead (for example `import { Helpers } from "victory-core"`).
  - The output targets ES2022 and is no longer down-leveled further. If you support older browsers, transpile `node_modules` in your bundler.
  - `src/` is no longer published.

### Patch Changes

- [#3108](https://github.com/FormidableLabs/victory/pull/3108) [`8f16467`](https://github.com/FormidableLabs/victory/commit/8f1646767d6059d764541118284cf71cc1da5c95) - Export the `ComponentEvent` type. Component declarations that use it (such as `componentEvents` on `VictoryArea`) now reference `victory-core` instead of an internal path.

- [#3115](https://github.com/FormidableLabs/victory/pull/3115) [`1864919`](https://github.com/FormidableLabs/victory/commit/18649193d7c8d42a8f5f58ade9c63288af68a7f8) - Fix `VictoryLabel`'s default `fontFamily`: an invisible soft hyphen inside `'Seravek'` meant that font never matched. Remove the unused `lodash` dependency from `victory-canvas`, `victory-histogram` and `victory-scatter`.

- [#3123](https://github.com/FormidableLabs/victory/pull/3123) [`4261e04`](https://github.com/FormidableLabs/victory/commit/4261e0453733d19154dc0700f14c03e8e0aad539) - Stop the primitives (`Circle`, `Line`, `Path`, `Rect`, `Text`, `TSpan`) from writing Victory props such as `standalone`, `polar`, `theme` and `stringMap` to the DOM. `VictoryChart`, `VictoryGroup` and `VictoryStack` inject these into every child, so a primitive placed directly in a chart triggered React warnings like "Received `false` for a non-boolean attribute `standalone`" ([#3118](https://github.com/FormidableLabs/victory/issues/3118)).

- [#3132](https

Give your AI agent these facts

Vigia is a free MCP server: your coding agent checks versions, breaking changes and vulnerabilities before it writes code. No signup, no API key.

claude mcp add --transport http vigia https://vigia.coredls.cloud/mcp

Add to CursorAdd to VS Code★ Star on GitHub

Any other MCP client
{ "mcpServers": { "vigia": { "url": "https://vigia.coredls.cloud/mcp" } } }

Agent skill (SKILL.md): tells the agent when to use Vigia · GitHub Action for pull requests

Frequently asked questions

What are the breaking changes when upgrading victory-core from 37 to 38?

Between victory-core 37.4.1 and 38.0.0, Vigia found 0 removed exports, 10 changed signatures and 5 removed or changed class or interface members.

What became deprecated in victory-core 38?

0 exports or members are newly marked as deprecated in victory-core 38.0.0.

For agents

GET https://vigia.coredls.cloud/v1/packages/npm/victory-core/upgrade?from=37.4.1&to=38.0.0