Full Code of FormidableLabs/victory for AI

main 75549cf8c67e cached
981 files
3.2 MB
890.8k tokens
946 symbols
1 requests
Download .txt
Showing preview only (3,543K chars total). Download the full file or copy to clipboard to get everything.
Repository: FormidableLabs/victory
Branch: main
Commit: 75549cf8c67e
Files: 981
Total size: 3.2 MB

Directory structure:
gitextract_8opt94_q/

├── .babelrc.build.js
├── .babelrc.js
├── .babelrc.native.js
├── .changeset/
│   ├── afraid-donuts-tease.md
│   ├── config.json
│   ├── cute-foxes-shop.md
│   └── silver-crabs-deliver.md
├── .editorconfig
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.yml
│   │   ├── config.yml
│   │   ├── feature_request.yml
│   │   └── question.yml
│   ├── actions/
│   │   ├── bundle-size/
│   │   │   └── action.yml
│   │   └── setup/
│   │       └── action.yml
│   └── workflows/
│       ├── chromatic.yml
│       ├── ci.yml
│       ├── issue-stale.yml
│       ├── issue-triage.yml
│       └── release.yml
├── .gitignore
├── .npmrc
├── .prettierignore
├── .prettierrc.json
├── .storybook/
│   ├── main.ts
│   ├── preview.css
│   └── preview.ts
├── CONTRIBUTING.md
├── LICENSE.txt
├── README.md
├── chromatic.config.json
├── config/
│   └── webpack/
│       ├── demo/
│       │   ├── webpack.config.dev.js
│       │   └── webpack.config.hot.js
│       ├── webpack.config.dev.js
│       └── webpack.config.js
├── demo/
│   └── rn/
│       ├── .expo-shared/
│       │   └── assets.json
│       ├── .gitignore
│       ├── App.tsx
│       ├── app.json
│       ├── babel.config.js
│       ├── metro.config.js
│       ├── package.json
│       ├── src/
│       │   ├── data/
│       │   │   └── index.ts
│       │   ├── navigation-config.ts
│       │   ├── screens/
│       │   │   ├── area-screen.tsx
│       │   │   ├── axis-screen.tsx
│       │   │   ├── bar-screen.tsx
│       │   │   ├── box-plot-screen.tsx
│       │   │   ├── brush-line-screen.tsx
│       │   │   ├── chart-screen.tsx
│       │   │   ├── components-screen.tsx
│       │   │   ├── error-bar-screen.tsx
│       │   │   ├── histogram-screen.tsx
│       │   │   ├── legends-screen.tsx
│       │   │   ├── line-screen.tsx
│       │   │   ├── pie-screen.tsx
│       │   │   ├── polar-axis-screen.tsx
│       │   │   ├── root-navigator.tsx
│       │   │   ├── scatter-screen.tsx
│       │   │   └── voronoi-screen.tsx
│       │   └── styles/
│       │       ├── container-view-styles.ts
│       │       └── view-styles.ts
│       └── tsconfig.json
├── eslint.config.mjs
├── package-scripts.js
├── package.json
├── packages/
│   ├── victory/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── index.ts
│   │   │   └── victory.test.ts
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-area/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── area.test.tsx
│   │   │   ├── area.tsx
│   │   │   ├── helper-methods.test.tsx
│   │   │   ├── helper-methods.tsx
│   │   │   ├── index.ts
│   │   │   ├── victory-area.test.tsx
│   │   │   └── victory-area.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-axis/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── helper-methods.tsx
│   │   │   ├── index.ts
│   │   │   └── victory-axis.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-bar/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── bar-helper-methods.ts
│   │   │   ├── bar.test.tsx
│   │   │   ├── bar.tsx
│   │   │   ├── geometry-helper-methods.test.ts
│   │   │   ├── geometry-helper-methods.ts
│   │   │   ├── helper-methods.ts
│   │   │   ├── index.ts
│   │   │   ├── path-helper-methods.ts
│   │   │   ├── victory-bar.test.tsx
│   │   │   └── victory-bar.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-box-plot/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── helper-methods.tsx
│   │   │   ├── index.ts
│   │   │   ├── victory-box-plot.test.tsx
│   │   │   └── victory-box-plot.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-brush-container/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── brush-helpers.test.tsx
│   │   │   ├── brush-helpers.ts
│   │   │   ├── index.ts
│   │   │   └── victory-brush-container.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-brush-line/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── index.ts
│   │   │   └── victory-brush-line.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-candlestick/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── candle.test.tsx
│   │   │   ├── candle.tsx
│   │   │   ├── helper-methods.test.ts
│   │   │   ├── helper-methods.ts
│   │   │   ├── index.ts
│   │   │   ├── victory-candlestick.test.tsx
│   │   │   └── victory-candlestick.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-canvas/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── canvas-bar.tsx
│   │   │   ├── canvas-curve.tsx
│   │   │   ├── canvas-group.tsx
│   │   │   ├── canvas-point.tsx
│   │   │   ├── hooks/
│   │   │   │   └── use-canvas-context.ts
│   │   │   └── index.ts
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-chart/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── helper-methods.test.tsx
│   │   │   ├── helper-methods.tsx
│   │   │   ├── index.ts
│   │   │   ├── victory-chart.test.tsx
│   │   │   └── victory-chart.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-core/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── exports.test.ts
│   │   │   ├── index.ts
│   │   │   ├── types/
│   │   │   │   ├── callbacks.ts
│   │   │   │   └── prop-types.ts
│   │   │   ├── victory-accessible-group/
│   │   │   │   ├── victory-accessible-group.test.tsx
│   │   │   │   └── victory-accessible-group.tsx
│   │   │   ├── victory-animation/
│   │   │   │   ├── util.test.tsx
│   │   │   │   ├── util.ts
│   │   │   │   └── victory-animation.tsx
│   │   │   ├── victory-clip-container/
│   │   │   │   └── victory-clip-container.tsx
│   │   │   ├── victory-container/
│   │   │   │   ├── victory-container.test.tsx
│   │   │   │   └── victory-container.tsx
│   │   │   ├── victory-label/
│   │   │   │   ├── victory-label.test.tsx
│   │   │   │   └── victory-label.tsx
│   │   │   ├── victory-portal/
│   │   │   │   ├── portal-context.tsx
│   │   │   │   ├── portal-outlet.tsx
│   │   │   │   ├── portal.tsx
│   │   │   │   └── victory-portal.tsx
│   │   │   ├── victory-primitives/
│   │   │   │   ├── arc.tsx
│   │   │   │   ├── background.tsx
│   │   │   │   ├── border.tsx
│   │   │   │   ├── circle.tsx
│   │   │   │   ├── clip-path.test.tsx
│   │   │   │   ├── clip-path.tsx
│   │   │   │   ├── index.ts
│   │   │   │   ├── line-segment.tsx
│   │   │   │   ├── line.test.tsx
│   │   │   │   ├── line.tsx
│   │   │   │   ├── path.tsx
│   │   │   │   ├── point.test.tsx
│   │   │   │   ├── point.tsx
│   │   │   │   ├── rect.tsx
│   │   │   │   ├── text.tsx
│   │   │   │   ├── tspan.tsx
│   │   │   │   ├── types.ts
│   │   │   │   └── whisker.tsx
│   │   │   ├── victory-theme/
│   │   │   │   ├── clean.tsx
│   │   │   │   ├── grayscale.tsx
│   │   │   │   ├── material.tsx
│   │   │   │   ├── types.ts
│   │   │   │   └── victory-theme.tsx
│   │   │   ├── victory-transition/
│   │   │   │   └── victory-transition.tsx
│   │   │   └── victory-util/
│   │   │       ├── add-events.tsx
│   │   │       ├── axis.test.tsx
│   │   │       ├── axis.tsx
│   │   │       ├── collection.test.ts
│   │   │       ├── collection.tsx
│   │   │       ├── common-props.tsx
│   │   │       ├── data.test.tsx
│   │   │       ├── data.ts
│   │   │       ├── default-transitions.ts
│   │   │       ├── domain.test.tsx
│   │   │       ├── domain.ts
│   │   │       ├── events.test.ts
│   │   │       ├── events.ts
│   │   │       ├── helpers.test.ts
│   │   │       ├── helpers.ts
│   │   │       ├── hooks/
│   │   │       │   ├── index.ts
│   │   │       │   ├── use-animation-state.ts
│   │   │       │   └── use-previous-props.ts
│   │   │       ├── immutable-types.d.ts
│   │   │       ├── immutable.test.ts
│   │   │       ├── immutable.ts
│   │   │       ├── index.ts
│   │   │       ├── label-helpers.test.tsx
│   │   │       ├── label-helpers.ts
│   │   │       ├── line-helpers.ts
│   │   │       ├── log.ts
│   │   │       ├── merge-refs.ts
│   │   │       ├── point-path-helpers.test.ts
│   │   │       ├── point-path-helpers.ts
│   │   │       ├── scale.test.ts
│   │   │       ├── scale.ts
│   │   │       ├── selection.test.ts
│   │   │       ├── selection.ts
│   │   │       ├── style.test.ts
│   │   │       ├── style.ts
│   │   │       ├── textsize.test.ts
│   │   │       ├── textsize.ts
│   │   │       ├── timer-context.ts
│   │   │       ├── timer.ts
│   │   │       ├── transitions.test.ts
│   │   │       ├── transitions.ts
│   │   │       ├── type-helpers.ts
│   │   │       ├── user-props.ts
│   │   │       ├── wrapper.test.tsx
│   │   │       └── wrapper.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-create-container/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── create-container.tsx
│   │   │   └── index.ts
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-cursor-container/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── cursor-helpers.tsx
│   │   │   ├── index.tsx
│   │   │   └── victory-cursor-container.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-errorbar/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── error-bar.test.tsx
│   │   │   ├── error-bar.tsx
│   │   │   ├── helper-methods.tsx
│   │   │   ├── index.ts
│   │   │   ├── victory-errorbar.tsx
│   │   │   └── victory-errorbars.test.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-group/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── helper-methods.tsx
│   │   │   ├── index.ts
│   │   │   ├── victory-group.test.tsx
│   │   │   └── victory-group.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-histogram/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── helper-methods.ts
│   │   │   ├── index.ts
│   │   │   ├── victory-histogram.test.tsx
│   │   │   └── victory-histogram.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-legend/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── helper-methods.ts
│   │   │   ├── index.ts
│   │   │   ├── victory-legend.test.tsx
│   │   │   └── victory-legend.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-line/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── curve.test.tsx
│   │   │   ├── curve.tsx
│   │   │   ├── helper-methods.ts
│   │   │   ├── index.ts
│   │   │   ├── victory-line.test.tsx
│   │   │   └── victory-line.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-native/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── components/
│   │   │   │   ├── victory-area.tsx
│   │   │   │   ├── victory-axis.tsx
│   │   │   │   ├── victory-bar.tsx
│   │   │   │   ├── victory-boxplot.tsx
│   │   │   │   ├── victory-brush-container.tsx
│   │   │   │   ├── victory-brush-line.tsx
│   │   │   │   ├── victory-candlestick.tsx
│   │   │   │   ├── victory-chart.tsx
│   │   │   │   ├── victory-clip-container.tsx
│   │   │   │   ├── victory-container.tsx
│   │   │   │   ├── victory-cursor-container.tsx
│   │   │   │   ├── victory-errorbar.tsx
│   │   │   │   ├── victory-group.tsx
│   │   │   │   ├── victory-histogram.tsx
│   │   │   │   ├── victory-label.tsx
│   │   │   │   ├── victory-legend.tsx
│   │   │   │   ├── victory-line.tsx
│   │   │   │   ├── victory-pie.tsx
│   │   │   │   ├── victory-polar-axis.tsx
│   │   │   │   ├── victory-portal/
│   │   │   │   │   ├── portal.tsx
│   │   │   │   │   └── victory-portal.tsx
│   │   │   │   ├── victory-primitives/
│   │   │   │   │   ├── arc.tsx
│   │   │   │   │   ├── area.tsx
│   │   │   │   │   ├── background.tsx
│   │   │   │   │   ├── bar.tsx
│   │   │   │   │   ├── border.tsx
│   │   │   │   │   ├── candle.tsx
│   │   │   │   │   ├── circle.tsx
│   │   │   │   │   ├── clip-path.tsx
│   │   │   │   │   ├── curve.tsx
│   │   │   │   │   ├── error-bar.tsx
│   │   │   │   │   ├── flyout.tsx
│   │   │   │   │   ├── line-segment.tsx
│   │   │   │   │   ├── line.tsx
│   │   │   │   │   ├── path.tsx
│   │   │   │   │   ├── point.tsx
│   │   │   │   │   ├── rect.tsx
│   │   │   │   │   ├── slice.tsx
│   │   │   │   │   ├── text.tsx
│   │   │   │   │   ├── tspan.tsx
│   │   │   │   │   ├── types.ts
│   │   │   │   │   ├── voronoi.tsx
│   │   │   │   │   └── whisker.tsx
│   │   │   │   ├── victory-scatter.tsx
│   │   │   │   ├── victory-selection-container.tsx
│   │   │   │   ├── victory-stack.tsx
│   │   │   │   ├── victory-tooltip.tsx
│   │   │   │   ├── victory-voronoi-container.tsx
│   │   │   │   ├── victory-voronoi.tsx
│   │   │   │   └── victory-zoom-container.tsx
│   │   │   ├── helpers/
│   │   │   │   ├── create-container.ts
│   │   │   │   ├── native-helpers.test.ts
│   │   │   │   ├── native-helpers.ts
│   │   │   │   ├── native-zoom-helpers.ts
│   │   │   │   └── wrap-core-component.tsx
│   │   │   └── index.ts
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-pie/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── helper-methods.ts
│   │   │   ├── index.ts
│   │   │   ├── slice.test.tsx
│   │   │   ├── slice.tsx
│   │   │   ├── victory-pie.test.tsx
│   │   │   └── victory-pie.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-polar-axis/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── helper-methods.ts
│   │   │   ├── index.ts
│   │   │   ├── types.ts
│   │   │   └── victory-polar-axis.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-scatter/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── helper-methods.test.tsx
│   │   │   ├── helper-methods.tsx
│   │   │   ├── index.ts
│   │   │   ├── victory-scatter.test.tsx
│   │   │   └── victory-scatter.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-selection-container/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── index.ts
│   │   │   ├── selection-helpers.test.tsx
│   │   │   ├── selection-helpers.tsx
│   │   │   └── victory-selection-container.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-shared-events/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── index.ts
│   │   │   └── victory-shared-events.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-stack/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── helper-methods.tsx
│   │   │   ├── index.ts
│   │   │   ├── victory-stack.test.tsx
│   │   │   └── victory-stack.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-tooltip/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── flyout.test.tsx
│   │   │   ├── flyout.tsx
│   │   │   ├── index.ts
│   │   │   ├── victory-tooltip.test.tsx
│   │   │   └── victory-tooltip.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-vendor/
│   │   ├── .babelrc.js
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── scripts/
│   │   │   └── build.js
│   │   ├── tests/
│   │   │   ├── d3-array.test.ts
│   │   │   ├── d3-ease.test.ts
│   │   │   ├── d3-interpolate.test.ts
│   │   │   ├── d3-scale.test.ts
│   │   │   ├── d3-shape.test.ts
│   │   │   ├── d3-time.test.ts
│   │   │   └── d3-timer.test.ts
│   │   └── tsconfig.json
│   ├── victory-voronoi/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── helper-methods.ts
│   │   │   ├── index.ts
│   │   │   ├── victory-voronoi.test.tsx
│   │   │   ├── victory-voronoi.tsx
│   │   │   └── voronoi.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-voronoi-container/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── index.ts
│   │   │   ├── victory-voronoi-container.tsx
│   │   │   └── voronoi-helpers.ts
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   └── victory-zoom-container/
│       ├── .npmignore
│       ├── CHANGELOG.md
│       ├── README.md
│       ├── jest.config.ts
│       ├── package.json
│       ├── src/
│       │   ├── index.ts
│       │   ├── victory-zoom-container.tsx
│       │   ├── zoom-helpers.test.ts
│       │   └── zoom-helpers.ts
│       ├── tsconfig.build.json
│       └── tsconfig.json
├── patches/
│   └── @changesets__cli@2.24.1.patch
├── pnpm-workspace.yaml
├── scripts/
│   ├── changelog.js
│   ├── release.ts
│   ├── sync-pkgs-wireit-helpers.js
│   └── sync-pkgs-wireit.js
├── stories/
│   ├── utils/
│   │   ├── arg-types.tsx
│   │   ├── data.ts
│   │   └── decorators.tsx
│   └── victory-charts/
│       ├── victory-animation/
│       │   ├── config.ts
│       │   └── default.stories.tsx
│       ├── victory-area/
│       │   ├── config.ts
│       │   ├── data-accessors.stories.tsx
│       │   ├── default.stories.tsx
│       │   ├── disable-inline-styles.stories.tsx
│       │   ├── events.stories.tsx
│       │   ├── interpolation.stories.tsx
│       │   ├── labels.stories.tsx
│       │   ├── log-scale.stories.tsx
│       │   ├── plotting-functions.stories.tsx
│       │   ├── polar-interpolation.stories.tsx
│       │   ├── polar.stories.tsx
│       │   ├── stacked.stories.tsx
│       │   ├── styles.stories.tsx
│       │   ├── theme.stories.tsx
│       │   ├── time-scale.stories.tsx
│       │   └── tooltips.stories.tsx
│       ├── victory-axis/
│       │   ├── axis-value.stories.tsx
│       │   ├── brush-axis-grid-line-styles.stories.tsx
│       │   ├── brush-axis-grid-line-width.stories.tsx
│       │   ├── brush-axis-grid-line-with-domain.stories.tsx
│       │   ├── brush-axis-grid-line.stories.tsx
│       │   ├── brush-axis-with-domain.stories.tsx
│       │   ├── brush-axis.stories.tsx
│       │   ├── config.ts
│       │   ├── default.stories.tsx
│       │   ├── fix-label-overlap.stories.tsx
│       │   ├── offsets.stories.tsx
│       │   ├── orientation.stories.tsx
│       │   ├── style.stories.tsx
│       │   ├── tick-format.stories.tsx
│       │   ├── tick-values.stories.tsx
│       │   ├── with-domain.stories.tsx
│       │   └── with-multiline-labels.stories.tsx
│       ├── victory-bar/
│       │   ├── alignment.stories.tsx
│       │   ├── bar-ratio.stories.tsx
│       │   ├── bar-width.stories.tsx
│       │   ├── config.ts
│       │   ├── corner-radius.stories.tsx
│       │   ├── data.stories.tsx
│       │   ├── default.stories.tsx
│       │   ├── disable-inline-styles.stories.tsx
│       │   ├── domain.stories.tsx
│       │   ├── focus-with-refs.stories.tsx
│       │   ├── get-path.stories.tsx
│       │   ├── grouped-bars.stories.tsx
│       │   ├── labels.stories.tsx
│       │   ├── polar-bars.stories.tsx
│       │   ├── regressions.stories.tsx
│       │   ├── scale.stories.tsx
│       │   ├── sorting.stories.tsx
│       │   ├── stacked-bars.stories.tsx
│       │   ├── style.stories.tsx
│       │   ├── theme.stories.tsx
│       │   └── tooltips.stories.tsx
│       ├── victory-box-plot/
│       │   ├── box-width.stories.tsx
│       │   ├── config.ts
│       │   ├── data.stories.tsx
│       │   ├── default.stories.tsx
│       │   ├── disable-inline-styles.stories.tsx
│       │   ├── domain.stories.tsx
│       │   ├── group.stories.tsx
│       │   ├── labels.stories.tsx
│       │   ├── style.stories.tsx
│       │   ├── theme.stories.tsx
│       │   ├── tooltips.stories.tsx
│       │   └── whisker-width.stories.tsx
│       ├── victory-candlestick/
│       │   ├── candle-colors.stories.tsx
│       │   ├── config.ts
│       │   ├── data.stories.tsx
│       │   ├── default.stories.tsx
│       │   ├── disable-inline-styles.stories.tsx
│       │   ├── domain.stories.tsx
│       │   ├── labels.stories.tsx
│       │   ├── scale.stories.tsx
│       │   ├── style.stories.tsx
│       │   ├── tooltips.stories.tsx
│       │   └── wick-stroke-width.stories.tsx
│       ├── victory-chart/
│       │   ├── axes.stories.tsx
│       │   ├── config.ts
│       │   ├── default.stories.tsx
│       │   ├── domain-from-data.stories.tsx
│       │   ├── domain-padding.stories.tsx
│       │   ├── domain.stories.tsx
│       │   ├── orientations.stories.tsx
│       │   ├── style.stories.tsx
│       │   ├── victory-brush-container-default.stories.tsx
│       │   ├── victory-brush-container-with-brush-style.stories.tsx
│       │   ├── victory-brush-container-with-domain-horizontal.stories.tsx
│       │   ├── victory-brush-container-with-domain.stories.tsx
│       │   ├── victory-cursor-container-default.stories.tsx
│       │   ├── victory-cursor-container-horizontal.stories.tsx
│       │   └── victory-zoom-container-default.stories.tsx
│       ├── victory-container/
│       │   ├── config.ts
│       │   ├── preserve-aspect-ratio.stories.tsx
│       │   └── responsive.stories.tsx
│       ├── victory-errorbar/
│       │   ├── border-width.stories.tsx
│       │   ├── config.ts
│       │   ├── data.stories.tsx
│       │   ├── default.stories.tsx
│       │   ├── disable-inline-styles.stories.tsx
│       │   ├── domain.stories.tsx
│       │   ├── labels.stories.tsx
│       │   ├── style.stories.tsx
│       │   └── theme.stories.tsx
│       ├── victory-histogram/
│       │   ├── bin-spacing.stories.tsx
│       │   ├── config.ts
│       │   ├── corner-radius.stories.tsx
│       │   ├── data.stories.tsx
│       │   ├── data.ts
│       │   ├── date-bins.stories.tsx
│       │   ├── default.stories.tsx
│       │   ├── disable-inline-styles.stories.tsx
│       │   ├── domain.stories.tsx
│       │   ├── empty-data.stories.tsx
│       │   ├── get-path.stories.tsx
│       │   ├── labels.stories.tsx
│       │   ├── mixed-charts.stories.tsx
│       │   ├── numeric-bins.stories.tsx
│       │   ├── scale.stories.tsx
│       │   ├── stacked.stories.tsx
│       │   ├── styles.stories.tsx
│       │   └── theme.stories.tsx
│       ├── victory-label/
│       │   ├── anchors.stories.tsx
│       │   ├── angles.stories.tsx
│       │   ├── background-padding.stories.tsx
│       │   ├── background-styles.stories.tsx
│       │   ├── config.ts
│       │   ├── default-rendering.stories.tsx
│       │   ├── inline.stories.tsx
│       │   ├── line-height.stories.tsx
│       │   ├── positioning.stories.tsx
│       │   └── styles.stories.tsx
│       ├── victory-legend/
│       │   ├── config.ts
│       │   ├── default.stories.tsx
│       │   ├── line-height.stories.tsx
│       │   └── title.stories.tsx
│       ├── victory-line/
│       │   ├── config.ts
│       │   ├── data-accessors.stories.tsx
│       │   ├── default.stories.tsx
│       │   ├── disable-inline-styles.stories.tsx
│       │   ├── events.stories.tsx
│       │   ├── interpolation.stories.tsx
│       │   ├── labels.stories.tsx
│       │   ├── log-scale.stories.tsx
│       │   ├── plotting-functions.stories.tsx
│       │   ├── polar-interpolation.stories.tsx
│       │   ├── polar.stories.tsx
│       │   ├── stacked.stories.tsx
│       │   ├── styles.stories.tsx
│       │   ├── theme.stories.tsx
│       │   ├── time-scale.stories.tsx
│       │   └── tooltips.stories.tsx
│       ├── victory-pie/
│       │   ├── categories.stories.tsx
│       │   ├── config.ts
│       │   ├── corner-radius.stories.tsx
│       │   ├── data.stories.tsx
│       │   ├── default.stories.tsx
│       │   ├── disable-inline-styles.stories.tsx
│       │   ├── inner-radius.stories.tsx
│       │   ├── label-indicator.stories.tsx
│       │   ├── label-placement.stories.tsx
│       │   ├── label-radius.stories.tsx
│       │   ├── labels.stories.tsx
│       │   ├── origin.stories.tsx
│       │   ├── pad-angle.stories.tsx
│       │   ├── radius.stories.tsx
│       │   ├── start-and-end-angles.stories.tsx
│       │   ├── styles.stories.tsx
│       │   ├── theme.stories.tsx
│       │   └── tooltips.stories.tsx
│       ├── victory-polar-axis/
│       │   ├── axis-angle.stories.tsx
│       │   ├── axis-value.stories.tsx
│       │   ├── config.ts
│       │   ├── default.stories.tsx
│       │   ├── domain.stories.tsx
│       │   ├── inner-radius.stories.tsx
│       │   ├── label-placement.stories.tsx
│       │   ├── scale.stories.tsx
│       │   ├── start-and-end-angle.stories.tsx
│       │   ├── style.stories.tsx
│       │   ├── theme.stories.tsx
│       │   ├── tick-format.stories.tsx
│       │   └── tick-values.stories.tsx
│       ├── victory-portal/
│       │   ├── config.ts
│       │   └── default.stories.tsx
│       ├── victory-scatter/
│       │   ├── bubble-charts.stories.tsx
│       │   ├── config.ts
│       │   ├── data-accessors.stories.tsx
│       │   ├── default-rendering.stories.tsx
│       │   ├── disable-inline-styles.stories.tsx
│       │   ├── domain.stories.tsx
│       │   ├── functional-symbols.stories.tsx
│       │   ├── labels.stories.tsx
│       │   ├── log-scale.stories.tsx
│       │   ├── polar.stories.tsx
│       │   ├── stacked.stories.tsx
│       │   ├── styles.stories.tsx
│       │   ├── symbols.stories.tsx
│       │   ├── theme.stories.tsx
│       │   ├── time-scale.stories.tsx
│       │   └── tooltips.stories.tsx
│       └── victory-tooltip/
│           ├── center-offset.stories.tsx
│           ├── config.ts
│           ├── constrain-to-visible-area.stories.tsx
│           ├── corner-radius.stories.tsx
│           ├── default.stories.tsx
│           ├── disable-inline-styles.stories.tsx
│           ├── flyout-height.stories.tsx
│           ├── flyout-padding.stories.tsx
│           ├── flyout-style.stories.tsx
│           ├── flyout-width.stories.tsx
│           ├── pointer-length.stories.tsx
│           ├── pointer-orientation.stories.tsx
│           └── pointer-width.stories.tsx
├── test/
│   ├── helpers/
│   │   ├── index.ts
│   │   ├── svg.ts
│   │   └── wrappers.tsx
│   ├── jest-setup.ts
│   ├── jest.config.ts
│   └── tsconfig.json
├── tsconfig.base.json
├── tsconfig.json
├── tsconfig.storybook.json
├── vercel.json
└── website/
    ├── .gitignore
    ├── README.md
    ├── babel.config.js
    ├── docs/
    │   ├── api/
    │   │   ├── _category_.json
    │   │   ├── victory-accessible-group.mdx
    │   │   ├── victory-animation.mdx
    │   │   ├── victory-area.mdx
    │   │   ├── victory-axis-common-props.mdx
    │   │   ├── victory-axis.mdx
    │   │   ├── victory-bar.mdx
    │   │   ├── victory-boxplot.mdx
    │   │   ├── victory-brush-container.mdx
    │   │   ├── victory-brush-line.mdx
    │   │   ├── victory-candlestick.mdx
    │   │   ├── victory-canvas.mdx
    │   │   ├── victory-chart.mdx
    │   │   ├── victory-clip-container.mdx
    │   │   ├── victory-common-props.mdx
    │   │   ├── victory-common-theme-props.mdx
    │   │   ├── victory-container-props.mdx
    │   │   ├── victory-container.mdx
    │   │   ├── victory-cursor-container.mdx
    │   │   ├── victory-datatable-props.mdx
    │   │   ├── victory-error-bar.mdx
    │   │   ├── victory-group.mdx
    │   │   ├── victory-histogram.mdx
    │   │   ├── victory-label.mdx
    │   │   ├── victory-labelable-props.mdx
    │   │   ├── victory-legend.mdx
    │   │   ├── victory-line.mdx
    │   │   ├── victory-multi-labelable-props.mdx
    │   │   ├── victory-pie.mdx
    │   │   ├── victory-polar-axis.mdx
    │   │   ├── victory-portal.mdx
    │   │   ├── victory-primitives.mdx
    │   │   ├── victory-scatter.mdx
    │   │   ├── victory-selection-container.mdx
    │   │   ├── victory-shared-events.mdx
    │   │   ├── victory-single-labelable-props.mdx
    │   │   ├── victory-stack.mdx
    │   │   ├── victory-style-interface.mdx
    │   │   ├── victory-theme.mdx
    │   │   ├── victory-tooltip.mdx
    │   │   ├── victory-transition.mdx
    │   │   ├── victory-voronoi-container.mdx
    │   │   ├── victory-voronoi.mdx
    │   │   └── victory-zoom-container.mdx
    │   ├── charts/
    │   │   ├── _category_.json
    │   │   ├── area.mdx
    │   │   ├── bar.mdx
    │   │   ├── box-plot.mdx
    │   │   ├── candlestick.mdx
    │   │   ├── error-bar.mdx
    │   │   ├── histogram.mdx
    │   │   ├── line.mdx
    │   │   ├── pie.mdx
    │   │   ├── scatter.mdx
    │   │   └── voronoi.mdx
    │   ├── examples/
    │   │   ├── _category_.json
    │   │   ├── anim-happy-holidays.mdx
    │   │   ├── area-hover.mdx
    │   │   ├── area-stream-graph.mdx
    │   │   ├── axis-parallel-brush.mdx
    │   │   ├── bar-horizontal-stacked.mdx
    │   │   ├── bar-linked-brushing.mdx
    │   │   ├── custom-charts.mdx
    │   │   ├── histogram-with-slider.mdx
    │   │   ├── polar-progress-bar.mdx
    │   │   └── voronoi-tooltips-grouped.mdx
    │   ├── guides/
    │   │   ├── _category_.json
    │   │   ├── accessibility.mdx
    │   │   ├── animations.mdx
    │   │   ├── annotations.mdx
    │   │   ├── axis.mdx
    │   │   ├── containers.mdx
    │   │   ├── custom-components.mdx
    │   │   ├── data-accessors.mdx
    │   │   ├── data-selection.mdx
    │   │   ├── events.mdx
    │   │   ├── legends.mdx
    │   │   ├── localization.mdx
    │   │   ├── pan-and-zoom.mdx
    │   │   ├── polar-charts.mdx
    │   │   ├── themes.mdx
    │   │   ├── tooltips.mdx
    │   │   └── zoom-large-data.mdx
    │   └── introduction/
    │       ├── _category_.json
    │       ├── index.mdx
    │       ├── native.mdx
    │       └── ssr.mdx
    ├── docusaurus.config.ts
    ├── package.json
    ├── sidebars.ts
    ├── src/
    │   ├── components/
    │   │   ├── CalloutBanner.tsx
    │   │   ├── LearnMoreLink.tsx
    │   │   ├── SidebarLeadBanner.tsx
    │   │   ├── badges.tsx
    │   │   ├── button.tsx
    │   │   ├── common-props.tsx
    │   │   ├── link-button.tsx
    │   │   └── slider.tsx
    │   ├── css/
    │   │   └── custom.css
    │   ├── hooks/
    │   │   ├── useClickOutside.tsx
    │   │   └── useLocalStorage.tsx
    │   ├── pages/
    │   │   ├── _components/
    │   │   │   ├── data/
    │   │   │   │   ├── downloads.js
    │   │   │   │   ├── update-downloads.js
    │   │   │   │   ├── update-versions.js
    │   │   │   │   └── versions.js
    │   │   │   ├── landing-banner.tsx
    │   │   │   ├── landing-demo.tsx
    │   │   │   ├── landing-divider.tsx
    │   │   │   ├── landing-featured-projects.tsx
    │   │   │   ├── landing-features.tsx
    │   │   │   ├── landing-hero.tsx
    │   │   │   ├── landing-showcase.tsx
    │   │   │   └── theme.ts
    │   │   ├── index.tsx
    │   │   └── themes/
    │   │       ├── _components/
    │   │       │   ├── accordion.tsx
    │   │       │   ├── alert.tsx
    │   │       │   ├── base-theme-panel.tsx
    │   │       │   ├── card.tsx
    │   │       │   ├── chart-panel.tsx
    │   │       │   ├── checkbox.tsx
    │   │       │   ├── code-block.tsx
    │   │       │   ├── code-panel.tsx
    │   │       │   ├── color-palette-selector.tsx
    │   │       │   ├── color-picker-list.tsx
    │   │       │   ├── color-picker.tsx
    │   │       │   ├── color-scale-override-selector.tsx
    │   │       │   ├── control.tsx
    │   │       │   ├── examples/
    │   │       │   │   ├── area.tsx
    │   │       │   │   ├── axis.tsx
    │   │       │   │   ├── bar.tsx
    │   │       │   │   ├── box-plot.tsx
    │   │       │   │   ├── candlestick.tsx
    │   │       │   │   ├── errorbar.tsx
    │   │       │   │   ├── example.ts
    │   │       │   │   ├── group.tsx
    │   │       │   │   ├── histogram.tsx
    │   │       │   │   ├── index.ts
    │   │       │   │   ├── legend.tsx
    │   │       │   │   ├── line.tsx
    │   │       │   │   ├── pie.tsx
    │   │       │   │   ├── polar-axis-dependent.tsx
    │   │       │   │   ├── polar-axis.tsx
    │   │       │   │   ├── scatter.tsx
    │   │       │   │   ├── stack.tsx
    │   │       │   │   └── voronoi.tsx
    │   │       │   ├── export-panel.tsx
    │   │       │   ├── main.tsx
    │   │       │   ├── options-panel.tsx
    │   │       │   ├── panel-header.tsx
    │   │       │   ├── select.tsx
    │   │       │   ├── sideNavButton.tsx
    │   │       │   ├── sidenav.tsx
    │   │       │   ├── slider.tsx
    │   │       │   ├── theme-preview/
    │   │       │   │   ├── header.tsx
    │   │       │   │   ├── index.tsx
    │   │       │   │   ├── options.tsx
    │   │       │   │   ├── preview-color-scale-select.tsx
    │   │       │   │   └── preview.tsx
    │   │       │   └── toggle.tsx
    │   │       ├── _config/
    │   │       │   ├── axis.tsx
    │   │       │   ├── chart.tsx
    │   │       │   ├── global.tsx
    │   │       │   ├── index.tsx
    │   │       │   └── palette.tsx
    │   │       ├── _const.tsx
    │   │       ├── _icons/
    │   │       │   ├── axis-options-icon.tsx
    │   │       │   ├── chart-options-icon.tsx
    │   │       │   ├── export-icon.tsx
    │   │       │   └── index.tsx
    │   │       ├── _providers/
    │   │       │   ├── alertProvider.tsx
    │   │       │   ├── previewOptionsProvider.tsx
    │   │       │   ├── sideNavProvider.tsx
    │   │       │   └── themeProvider.tsx
    │   │       ├── _utils.ts
    │   │       └── index.tsx
    │   ├── plugins/
    │   │   └── victory-typedoc/
    │   │       ├── components/
    │   │       │   └── api-property.tsx
    │   │       ├── index.ts
    │   │       ├── mdast.ts
    │   │       └── typedoc.ts
    │   └── theme/
    │       ├── DocItem/
    │       │   └── index.tsx
    │       ├── DocSidebar/
    │       │   └── index.tsx
    │       ├── MDXComponents.ts
    │       ├── Playground/
    │       │   ├── index.tsx
    │       │   └── styles.module.css
    │       ├── README.md
    │       ├── ReactLiveScope/
    │       │   ├── index.tsx
    │       │   └── scope-map.ts
    │       ├── prism-diff-highlight.css
    │       ├── prism-diff-highlight.ts
    │       └── prism-include-languages.ts
    ├── static/
    │   ├── .nojekyll
    │   └── favicon/
    │       ├── browserconfig.xml
    │       └── site.webmanifest
    ├── tailwind.config.ts
    ├── tsconfig.json
    └── vendors.d.ts

================================================
FILE CONTENTS
================================================

================================================
FILE: .babelrc.build.js
================================================
module.exports = {
  extends: "./.babelrc.js",
  ignore: [/^.*(.test.)[j|t]sx?$/],
};


================================================
FILE: .babelrc.js
================================================
module.exports = {
  presets: [
    [
      "@babel/preset-env",
      {
        loose: true,
        exclude: [
          // only enabled in commonjs targets
          // see the section on `env` below
          "@babel/plugin-transform-modules-commonjs",

          // do not use this plugin with webpack
          // ref: https://babeljs.io/docs/babel-plugin-proposal-dynamic-import
          "@babel/plugin-proposal-dynamic-import",
        ],
      },
    ],
    "@babel/preset-react",
    "@babel/preset-typescript",
  ],
  ignore: ["**/*.d.ts"],
  env: {
    commonjs: {
      plugins: [
        [
          "@babel/transform-modules-commonjs",
          {
            strict: false,
            allowTopLevelThis: true,
          },
        ],
      ],
    },
  },
};


================================================
FILE: .babelrc.native.js
================================================
module.exports = {
  presets: ["module:metro-react-native-babel-preset"],
  plugins: [
    "@babel/plugin-transform-export-namespace-from",
    "@babel/plugin-transform-flow-strip-types",
  ],
};


================================================
FILE: .changeset/afraid-donuts-tease.md
================================================
---
"victory-errorbar": patch
---

add default borderwidth value


================================================
FILE: .changeset/config.json
================================================
{
  "$schema": "https://unpkg.com/@changesets/config@2.0.0/schema.json",
  "changelog": ["../scripts/changelog.js", { "repo": "FormidableLabs/victory" }],
  "access": "public",
  "baseBranch": "main",
  "fixed": [["victory*"]],
  "ignore": ["rn-demo", "victory-docs"]
}


================================================
FILE: .changeset/cute-foxes-shop.md
================================================
---
"victory-native": patch
---

fix native container prop forwarding


================================================
FILE: .changeset/silver-crabs-deliver.md
================================================
---
"victory-candlestick": minor
---

Handle undefined labelStyle properties in VictoryCandlestick. Fixes #3039


================================================
FILE: .editorconfig
================================================
# editorconfig.org
root = true

[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
max_line_length = 80

[*.md]
trim_trailing_whitespace = false

================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.yml
================================================
name: Bug report
description: Create a report to help us improve
projects: FormidableLabs/38
labels: ["Type: Bug :bug:"]
body:
  - type: markdown
    attributes:
      value: |
        Thanks for taking the time to report a bug! Please fill out the sections below.

  - type: checkboxes
    attributes:
      label: Is there an existing issue for this?
      description: Please search to see if an issue already exists for the bug you encountered.
      options:
        - label: I have searched the existing issues
          required: true

  - type: checkboxes
    id: terms
    attributes:
      label: Code of Conduct
      description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/FormidableLabs/victory/blob/main/CONTRIBUTING.md#contributor-covenant-code-of-conduct)
      options:
        - label: I agree to follow this project's Code of Conduct
          required: true

  - type: input
    attributes:
      label: Victory version
    validations:
      required: true

  - type: input
    attributes:
      label: Code Sandbox link
      description: |
        Please include a code sandbox link or a similar reproduction if possible.
        Issues with sandbox links are typically resolved faster.
        You can use our preset [here](https://codesandbox.io/s/dj4f7t).

  - type: textarea
    attributes:
      render: markdown
      label: Bug report
      description: |
        A clear and concise description of what the bug is. Please include any
        screenshots or code snippets that may help us understand the issue.
    validations:
      required: true

  - type: textarea
    attributes:
      render: markdown
      label: Steps to reproduce
      placeholder: |
        Steps to reproduce the behavior:
        1. Go to '...'
        2. Click on '....'
        3. Scroll down to '....'
        4. See error

  - type: textarea
    attributes:
      render: markdown
      label: Expected behavior
      description: A clear and concise description of what you expected to happen.

  - type: textarea
    attributes:
      render: markdown
      label: Actual behavior
      description: A clear and concise description of what actually happened.

  - type: textarea
    attributes:
      render: markdown
      label: Environment
      description: |
        examples:
          - **Device**: Desktop
          - **OS**: Ubuntu 20.04
          - **Browser**: Chrome
          - **Version**: 22
      value: |
        - Device:
        - OS:
        - Node:
        - npm:


================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false
contact_links:
  - name: Victory Issues Board
    url: https://github.com/FormidableLabs/victory/issues
    about: Please ask and answer questions here.


================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.yml
================================================
name: Feature request
description: Suggest a feature for this project
projects: FormidableLabs/38
labels: ["Type: Enhancement :pencil2:"]
body:
  - type: checkboxes
    attributes:
      label: Is there an existing issue for this?
      description: Please search to see if an issue already exists for the feature you are requesting.
      options:
        - label: I have searched the existing issues
          required: true

  - type: checkboxes
    id: terms
    attributes:
      label: Code of Conduct
      description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/FormidableLabs/victory/blob/main/CONTRIBUTING.md#contributor-covenant-code-of-conduct)
      options:
        - label: I agree to follow this project's Code of Conduct
          required: true

  - type: textarea
    attributes:
      render: markdown
      label: Feature Request
      description: |
        **Is your feature request related to a problem? Please describe.**
        A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

        **Describe the solution you'd like**
        A clear and concise description of what you want to happen.

        **Describe alternatives you've considered**
        A clear and concise description of any alternative solutions or features you've considered.

        **Additional context**
        Add any other context or screenshots about the feature request here.
    validations:
      required: true


================================================
FILE: .github/ISSUE_TEMPLATE/question.yml
================================================
name: Question
description: Ask a question about using Victory.
projects: FormidableLabs/38
labels: ["Type: Question :grey_question:"]
body:
  - type: checkboxes
    attributes:
      label: Is there an existing issue for this?
      description: Please search to see if an issue already exists for the question you have.
      options:
        - label: I have searched the existing issues
          required: true

  - type: checkboxes
    id: terms
    attributes:
      label: Code of Conduct
      description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/FormidableLabs/victory/blob/main/CONTRIBUTING.md#contributor-covenant-code-of-conduct)
      options:
        - label: I agree to follow this project's Code of Conduct
          required: true

  - type: textarea
    attributes:
      render: markdown
      label: Question
      description: |
        Any background information that might help us answer your questions.
        Please include any screenshots or code snippets that may help us understand the issue.
    validations:
      required: true


================================================
FILE: .github/actions/bundle-size/action.yml
================================================
name: "Bundle size reporter"
description: "Post bundle size difference compared to another branch"
inputs:
  branch:
    description: 'Branch to compare to'
    required: true
    default: 'main'
  paths:
    description: "Paths to json file bundle size report or folder containing bundles"
    required: true
    default: "/"
  onlyDiff:
    description: "Report only different sizes"
    required: false
    default: "false"
  filter:
    description: "Regex filter based on file path"
    required: false
  unit:
    description: "Size unit"
    required: false
    default: "KB"

  # Comment inputs
  comment:
    description: "Post comment"
    required: false
    default: "true"
  header:
    description: "Comment header"
    required: false
    default: "Bundle size report"
  append:
    description: "Append comment"
    required: false
    default: "false"
  ghToken:
    description: "Github token"
    required: false

runs:
  using: "composite"
  steps:
    # Checkout branch to compare to [required]
    - name: Checkout base branch
      uses: actions/checkout@v4
      with:
        ref: ${{ inputs.branch }}
        path: br-base

    # build main under it's checkout location, in ./br-base
    - name: Build main
      shell: bash
      run: cd br-base && pnpm install && pnpm build

    # Generate the bundle size difference report [required]
    - name: Generate report
      id: bundleSize
      uses: nejcm/bundle-size-reporter-action@v1.4.1
      with:
        paths: ${{ inputs.paths }}
        onlyDiff: ${{ inputs.onlyDiff }}

    # Post github action summary
    - name: Post summary
      if: ${{ steps.bundleSize.outputs.hasDifferences == 'true' }} # post only in case of changes
      run: |
        echo '${{ steps.bundleSize.outputs.summary }}' >> $GITHUB_STEP_SUMMARY
      shell: bash

    # Post github action comment
    - name: Post comment
      uses: marocchino/sticky-pull-request-comment@v2
      if: ${{ steps.bundleSize.outputs.hasDifferences == 'true' }} # post only in case of changes
      with:
        number: ${{ github.event.pull_request.number }}
        header: ${{ inputs.header }}
        append: ${{ inputs.append }}
        message: "${{ steps.bundleSize.outputs.summary }}"


================================================
FILE: .github/actions/setup/action.yml
================================================
name: Setup
description: Setup Build Step
inputs:
  node-version:
    default: "18.x"
    description: "The version of nodejs to use."
    required: true

runs:
  using: "composite"
  steps:
    - uses: pnpm/action-setup@v4

    - name: Use Node.js
      uses: actions/setup-node@v4
      with:
        node-version: ${{ inputs.node-version }}
        cache: 'pnpm'

    # Wireit cache
    - uses: google/wireit@setup-github-actions-caching/v1

    - name: Install dependencies
      shell: bash
      run: pnpm install


================================================
FILE: .github/workflows/chromatic.yml
================================================
name: Chromatic

# Runs chromatic on:
# - every push to main (to create a chromatic baseline)
# - every pull request where there are changes in stories/ or packages/ and the PR is not in draft mode
on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main
    paths:
      - "stories/**"
      - "packages/**"

jobs:
  chromatic:
    name: Storybook Publish
    if: github.event.pull_request.draft == false && github.repository == 'FormidableLabs/victory'
    runs-on: ubuntu-latest
    steps:
      # requires all branches and tags to be fetched for chromatic
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - uses: ./.github/actions/setup
        with:
          node-version: 18.x

      - name: Build Victory
        run: pnpm run build:lib:esm

      - name: Publish to Chromatic
        uses: chromaui/action@v1
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}


================================================
FILE: .github/workflows/ci.yml
================================================
name: CI

# Runs build and test on:
#   every push to main
#   every pull request with main branch as the base
on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: ./.github/actions/setup

      - name: Check all package.json's and tsconfig.json's are in sync.
        run: |
          pnpm sync
          git diff --no-ext-diff --quiet --exit-code

      - name: Build libraries and distributions
        run: pnpm build

      - name: Types
        run: pnpm types:check

      - name: 📄 Bundle size report
        uses: ./.github/actions/bundle-size # path to composite action
        with:
          paths: "packages/victory/dist/victory.min.js"
          onlyDiff: "true"
          header: "Bundle size report" # PR comment header

  lint:
    needs: [build]
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: ./.github/actions/setup

      - name: Lint
        run: pnpm lint

  test:
    needs: [build]
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: ./.github/actions/setup

      - name: Test
        run: pnpm jest


================================================
FILE: .github/workflows/issue-stale.yml
================================================
name: Close inactive issues
on:
  workflow_dispatch:
  schedule:
    - cron: "0 0 * * *"

jobs:
  close-issues:
    runs-on: ubuntu-22.04
    permissions:
      contents: write
      issues: write
      pull-requests: write

    steps:
      - uses: actions/stale@v9
        with:
          ascending: false
          operations-per-run: 100
          days-before-issue-stale: 90
          days-before-issue-close: 7
          stale-issue-label: 'Issue: Stale'
          exempt-issue-labels: 'Issue: Accepted'
          stale-issue-message: 'This issue is stale because it has been open for 90 days with no activity. If there is no activity in the next 7 days, the issue will be closed.'
          close-issue-message: 'This issue was closed because it has been inactive for 7 days since being marked as stale. Please open a new issue if you believe you are encountering a related problem.'
          days-before-pr-stale: -1
          days-before-pr-close: -1
          enable-statistics: true


================================================
FILE: .github/workflows/issue-triage.yml
================================================
name: Issue Triage
on:
  issues:
    types: [labeled]

jobs:
  needs-repro:
    runs-on: ubuntu-22.04
    if: "${{ contains(github.event.label.name, 'Status: Needs More Info :hand:') }}"
    steps:
      - uses: actions/github-script@v7
        with:
          github-token: ${{ secrets.CHANGESETS_GITHUB_TOKEN }}
          script: |
            github.rest.issues.createComment({
              issue_number: context.issue.number,
              owner: context.repo.owner,
              repo: context.repo.repo,
              body: `Hi there! It looks like your issue requires a minimal reproducible example, but it is invalid or absent. Please prepare such an example and share it with us.

              **The best way to get attention to your issue is to provide a clean and easy way for a developer to reproduce the issue on their own machine.** Please do not provide your entire project, or a project with more code than is necessary to reproduce the issue.

              A side benefit of going through the process of narrowing down the minimal amount of code needed to reproduce the issue is that you may get lucky and discover that the bug is due to a mistake in your application code that you can quickly fix on your own.

              ### Resources

              - ["How to create a Minimal, Reproducible Example"](https://stackoverflow.com/help/minimal-reproducible-example)
              - ["Codesandbox Starterkit for Victory"](https://codesandbox.io/p/sandbox/victory-starter-dj4f7t)

              ### Common concerns

              #### "I didn't have time to create one"

              That's understandable, it can take some time to prepare. We ask that you hold off on filing an issue until you are able to fully complete the required fields in the issue template.

              #### "You can reproduce it by yourself by creating a project and following these steps"

              This is useful knowledge, but it's still valuable to have the resulting project that is produced from running the steps, where you have verified you can reproduce the issue.
            `})


================================================
FILE: .github/workflows/release.yml
================================================
name: Release

on:
  push:
    branches:
      - main

jobs:
  release:
    runs-on: ubuntu-latest
    permissions:
      contents: write
      id-token: write
      issues: write
      repository-projects: write
      deployments: write
      packages: write
      pull-requests: write

    steps:
      - uses: actions/checkout@v4
        with:
          token: ${{ secrets.CHANGESETS_TOKEN }}

      - uses: ./.github/actions/setup

      - name: Build packages
        run: pnpm run build

      - name: PR or Publish
        id: changesets
        uses: changesets/action@v1
        with:
          version: pnpm run version
          publish: pnpm run publish
        env:
          GITHUB_TOKEN: ${{ secrets.CHANGESETS_TOKEN }}
          NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

      # Note: We run a custom release notes script so we can generate a single aggregate
      # release notes file for all packages. This can be removed when `changesets` supports
      # this feature natively.
      - name: Github Release notes
        if: steps.changesets.outputs.published == 'true'
        run: npm run release-notes
        env:
          GITHUB_TOKEN: ${{ secrets.CHANGESETS_TOKEN }}


================================================
FILE: .gitignore
================================================
### SublimeText ###
*.sublime-workspace

### IntelliJ / WebStorm ###
.idea/

### OSX ###
.AppleDouble
.DS_Store
.LSOverride
Icon

# Thumbnails
._*

# Files that might appear on external disk
.Spotlight-V100
.tmp
.Trashes

### Windows ###
# Windows image file caches
ehthumbs.db
Thumbs.db

# Folder config file
Desktop.ini

# Recycle Bin used on file shares
$RECYCLE.BIN/

# App specific
.vscode
bower_components
coverage
dist
lib
es
node_modules
.pnpm-debug.log*
npm-debug.log*
lerna-debug.log*
yarn-error.log*
.cache
storybook-static
build-storybook.log*
artifacts
tmp

# Wireit + caches
.wireit
.eslintcache

# Ignore all yarn2+
.yarn/*
.yarnrc*
.pnp.*


================================================
FILE: .npmrc
================================================
auto-install-peers=true
link-workspace-packages=deep
prefer-workspace-packages=true


================================================
FILE: .prettierignore
================================================
.cache
.changeset
.docusaurus
.expo
.storybook
.wireit
.vscode
coverage
dist
build
lib
lib-vendor
es
packages/victory-vendor/d3-*
node_modules
.pnpm-debug.log*
npm-debug.log*
lerna-debug.log*
yarn-error.log*
lerna.json
tsconfig.json
tsconfig.*.json
storybook-static
public
artifacts


================================================
FILE: .prettierrc.json
================================================
{
  "arrowParens": "always",
  "trailingComma": "all",
  "printWidth": 80,
  "overrides": [
    {
      "files": "*.mdx",
      "options": {
        "printWidth": 40
      }
    }
  ]
}


================================================
FILE: .storybook/main.ts
================================================
import type { StorybookConfig } from "@storybook/react-webpack5";

/* globals __dirname:false */
const path = require("path");
const ROOT = path.resolve(__dirname, "..");
const STORIES = path.resolve(ROOT, "stories");

const getAbsolutePath = (packageName: string): any =>
  path.dirname(require.resolve(path.join(packageName, 'package.json')));

const config: StorybookConfig = {
  addons: [
    getAbsolutePath("@storybook/addon-essentials"),
    {
      name: "@storybook/addon-storysource",
      options: {
        rule: {
          test: [/\.stories\.(jsx?|tsx?)$/],
          include: [STORIES],
        },
        loaderOptions: {
          prettierConfig: { printWidth: 80, singleQuote: false },
        },
      },
    },
    getAbsolutePath("@storybook/addon-webpack5-compiler-swc"),
    getAbsolutePath("@chromatic-com/storybook"),
  ],

  framework: {
    name: getAbsolutePath("@storybook/react-webpack5"),
    options: {
      builder: {},
    },
  },

  stories: ["../stories/**/*.stories.tsx"],

  typescript: {
    check: false,
    checkOptions: {
      typescript: {
        configFile: path.resolve(ROOT, "tsconfig.storybook.json"),
      },
    },
  },

  webpackFinal: async (config) => {
    if (config.resolve) {
      config.resolve.alias = {
        ...config.resolve.alias,
        "@": path.resolve(__dirname, "../packages"),
      };
    }
    return config;
  },
};

export default config;


================================================
FILE: .storybook/preview.css
================================================
.VictoryContainer {
  border: 1px solid #ccc;
}

/** Custom styles for the visual style tests */

.fill-purple {
  fill: rgb(87, 4, 143);
}

.fill-green {
  fill: rgb(33, 212, 9);
}

.stroke-purple {
  stroke: rgb(87, 4, 143);
}

.stroke-green {
  stroke: rgb(33, 212, 9);
}


================================================
FILE: .storybook/preview.ts
================================================
import { Preview } from "@storybook/react";

import "./preview.css";

const preview: Preview = {
  args: {
    height: 350,
    themeKey: "grayscale",
    width: 400,
  },
  parameters: {
    controls: {
      sort: 'alpha'
    },
  },
};

export default preview;


================================================
FILE: CONTRIBUTING.md
================================================
# Contributing

## How to Contribute

Victory is open to pull requests, issue reports, and questions from the community. Here are some good ways to get help if you need it.

- If you have a question, please [open a new Q&A discussion thread](https://github.com/FormidableLabs/victory/discussions/new)
- If you think you have found a bug, [open a new issue](https://github.com/FormidableLabs/victory/issues/new)

If you are a new contributor looking to learn more about Victory, check out our [good first issues board](https://github.com/FormidableLabs/victory/projects/2).

### Current goals and initiatives

There are some parts of Victory that are in need of a little extra attention right now, including state management, transitions and animations, and pan and zoom behavior. These larger goals are being tracked in [milestones](https://github.com/FormidableLabs/victory/milestones). The goal for these milestones is re-work parts of Victory to make them more performant, easier to fix, and more accessible for new contributors. If your issue is related to one of these milestones, we may not be able to push up a fix right away, but we will label it accordingly and address it as a part of this larger scope of work.

## Monorepo!

Victory is a monorepo built with [Wireit](https://github.com/google/wireit) and [pnpm](https://pnpm.io/) workspaces. All `victory-*` packages live in the `packages` directory, and each has its own `package.json`. Installing this repo with `pnpm install` will automatically link all interdependent `victory-*` packages. **You must use `pnpm` rather than `npm` or `yarn` when installing and running `package.json` scripts in this project.**

### Requirements

- [Node.js](https://nodejs.org/) 18 or higher.
- [pnpm](https://pnpm.io/) version specified by [corepack](https://github.com/nodejs/corepack) in the `package.json`.

### Setup

Clone this repo:

```sh
$ git clone https://github.com/FormidableLabs/victory.git
$ cd victory
```

Enable corepack (if not already):

```sh
$ corepack enable
```

Use [pnpm](https://pnpm.io/) to install dependencies:

```sh
$ pnpm install
```

## Development

### Dev demo app

We have some dev servers available for a sample development environment.

> Note: The demo app is deprecated, all development should occur in storybook or the docs

```sh
# watch mode / HMR
$ pnpm storybook:dev

# storybook standalone
$ pnpm storybook:start
```

### Running Docs locally

You can run the documentation website locally with the following command. It is linked to the Victory package via PNPM and will reflect changes in packages when they are rebuilt.

```sh
$ pnpm start:docs
```

### Build and checks

Our task system mostly takes care of all task dependencies and things you need. When you first clone this repo or a new branch, run:

```sh
# Run all checks. Re-run this command for your normal workflow.
$ pnpm run check
# ... or add in a `--watch` to watch & re-run checks for only what you change!
$ pnpm run check --watch

# Build libraries and UMD distributions.
# Really only needed to double-check the webpack build still works.
$ pnpm run build
# ... or add in a `--watch` to watch & re-run the parts of the build that changed!
$ pnpm run build --watch
```

This will do all the build, seeding the task cache so subsequent tasks are fast, and checks that everything is correctly working. Your Victory workflow could reasonably just be (1) making some changes to files + tests, and then (2) re-running `pnpm run check`!

Here are some other useful tasks (with or without a `--watch` flag):

```sh
# Quality checks
$ pnpm run format
$ pnpm run format --watch
$ pnpm run lint
$ pnpm run lint --watch
$ pnpm run types:check
$ pnpm run types:check --watch

# Tests
$ pnpm run jest
$ pnpm run jest --watch
```

We also have some helper tasks to fix issues that are fixable.

```sh
$ pnpm run format:fix
$ pnpm run lint:fix
```

### Victory Native

To develop against `victory-native`, please see the package [README](./packages/victory-native/README.md).

### Tips and tricks

#### Scripts can be run from the _root_ AND from inside any _package_ folder

For example, when working on a single package like `victory-core`, you can run `pnpm run check --watch` from the `packages/victory-core` directory, and it will only check the core.  Example:  

```sh
$ cd packages/victory-core
$ pnpm run check --watch
```

This is especially helpful when you're making changes to any package that is _depended upon_, like `victory-core` or `victory-vendor`, and don't want to run every single script during development.


#### My IDE shows outdated TypeScript errors

It seems like VS Code and WebStorm both struggle to update their internal cache, whenever the **built types** change.  For example, when making changes to `victory-core`, the TypeScript changes won't be picked up by your IDE automatically.

Instead of restarting your IDE completely, try restarting the TypeScript Service.

#### My computer grinds to a halt!

The initial build/check, or one where something that is part of a lot of cache keys changes, can really slow down your computer, especially if you've got an older model. To allow you to do other work on your computer at the same time, consider using the `WIREIT_PARALLEL=<NUM_PROCESS>` environment variable like:

```sh
$ WIREIT_PARALLEL=4 pnpm run check
```

A good rubric is "number of cores" for max speed while still a mostly usable system or one less than that number for a much more usable system.

#### Unit of work/caching

Wireit is a flexible tool that caches at the task level. So that means that out-of-the box any wireit task will run the entire task again if any of the input `files` change. This leads us to two tips:

1. **Decompose tasks to package level**: Jest could be run over the whole monorepo in one command, but we instead break it out per-package, so that we only re-run Jest tests for packages that have actually changed (or have dependencies that have changed).
2. **Use tool-specific caching**: Tools like eslint and tsc can cache within a subtask run, so we like to leverage this within single tasks to make subtask re-runs faster.

#### What happens if a check/subtask fails?

The neat thing about wireit caching, is that for any high-level task, all of the sub-tasks that succeeded don't need to be re-run. So, if you're trying to run `pnpm run check` and get a single package lint error, just fix that package lint error and run `pnpm run check` again -- and then repeat until you get a pass! All of the work along the way that _succeeds_ will be cached and won't be run again!

#### What should be a package script? What should be a wireit script?

If you look at our `package.json:scripts.start` command, you'll notice that we use both a wireit-based script (`pnpm run build:lib:esm`) as well as a normal shell command (`webpack serve ...`). This is a good example of the types of things that should and shouldn't be wireit script tasks.

1. **Wireit tasks**: Tasks that should run on input file **changes** and then not run again should be wireit tasks. E.g. "transpile files", "lint files".
2. **Normal script tasks**: Tasks that should _always_ run regardless of the state of cache task execution. E.g. "start a webpack dev server".

#### Cache issues

We use tools caching within subtasks wherever we can. However, that can sometimes lead to weird errors. Here are some familiar ones with remedies.

*Everything*

If you want to make sure globally you're not hitting a cache issue, this command cleans the wireit cache as well as all the tool caches:

```sh
$ pnpm run clean:cache
```

Your next `pnpm run build|check` will be a full (long) rebuild from scratch.

*Eslint*

If you hit something like:

```
/PATH/TO/victory/test/jest-setup.ts
  0:0  error  Parsing error: Debug Failure. False expression: /PATH/TO/victory/packages/victory-native/node_modules/victory-area/es/index.js linked to nonexistent file /PATH/TO/victory/packages/victory-area/es/index.js

✖ 1 problem (1 error, 0 warnings)
```

Then you've hit an eslint issue that can be fixed with:

```sh
$ pnpm run clean:cache:lint
```

## Authoring tasks

Our task system is optimized for fast, easy developer experience, at the acknowledged cost of **extra maintainer burden** when we change task structure, add tasks, etc. If you are editing the scripts in a `package.json` or `package-scripts.js` you'll need to read up on [Wireit](https://github.com/google/wireit) and probably want to talk to an existing Victory maintainer.

We use three tools and some custom scripts as follows:

- `pnpm` to `run` or `exec` scripts
- `wireit` to cache tasks and run dependent tasks.
- `nps` to place one off script tasks in the root `/project-scripts.js` in a manner that can be called from within a workspace.
- `scripts/sync-pkgs-wireit*.js`: Scripts run with `pnpm run sync` to automate dependency management. This is where most of your work for task management will take place.

For our packages, we primarily focus on four types of package.json files:

- `package.json`: Define root tasks here and aggregate workspace tasks here. Note that instead of relying on `pnpm -r run` to concurrently run tasks in each workspace, we instead rely on `wireit` alone to have dependencies in aggregate tasks on all subtasks. This is more efficient to have `wireit` command concurrency and the task dependency graph.
- `packages/victory*/package.json`: These package scripts are generated by `scripts/sync-pkgs-wireit-helpers.js`. If you want to change them, edit that script and run `pnpm run sync`.
- `packages/victory-native/package.json`: A custom package.json that must have implementations or no-ops for all things in `victory-core`.
- `packages/victory-vendor/package.json`: A custom package.json that must have implementations or no-ops for all things in `victory-core`.

## Visual Tests

Victory relies heavily on visual regression testing with [Storybook](https://storybook.js.org/) and [Chromatic](https://www.chromaticqa.com/).

Write visual tests for new features by adding them in the `stories` directory. Run storybooks and check out changes. Storybooks are served from http://localhost:6006/

```sh
$ pnpm run storybook:server
```

This task also watches and rebuilds all Victory source files so you can more easily develop against storybook.

[Chromatic](https://www.chromaticqa.com/) provides automated visual testing. All internal PRs will trigger a new Chromatic build, which will be displayed along with CI status. Chromatic builds for Victory may be viewed in more detail here: https://www.chromaticqa.com/builds?appId=5b4acf7c54c0490024d5980b. Chromatic requires a secret app code to run, so PRs from external contributors will not automatically trigger a Chromatic build. For this reason, changes from external contributors will be checked out and opened as separate PRs so Chromatic may be used to verify any changes. Developers with access to the secret app code may also trigger a chromatic build manually with:

```sh
$ pnpm run chromatic
```

Note that Chromatic internally runs `npm run build-storybook` around which we have a custom `package.json:scripts.build-storybook` task that is meant to work within Chromatic.

## Release

We use [changesets](https://github.com/changesets/changesets) to create package versions and publish them.

### Using changesets

Our official release path is to use automation to perform the actual publishing of our packages. The steps are to:

1. A human developer adds a changeset. Ideally this is as a part of a PR that will have a version impact on a package.
2. On merge of a PR our automation system opens a "Version Packages" PR.
3. On merging the "Version Packages" PR, the automation system publishes the packages.

Here are more details:

### Add a changeset

When you would like to add a changeset (which creates a file indicating the type of change), in your branch/PR issue this command:

```sh
$ pnpm run changeset
```

to produce an interactive menu. Navigate the packages with arrow keys and hit `<space>` to select 1+ packages. Hit `<return>` when done. Select semver versions for packages and add appropriate messages. From there, you'll be prompted to enter a summary of the change. Some tips for this summary:

1. Aim for a single line, 1+ sentences as appropriate.
2. Include issue links in GH format (e.g. `#123`).
3. You don't need to reference the current pull request or whatnot, as that will be added later automatically.

After this, you'll see a new uncommitted file in `.changesets` like:

```sh
$ git status
# ....
Untracked files:
  (use "git add <file>..." to include in what will be committed)
	.changeset/flimsy-pandas-marry.md
```

Review the file, make any necessary adjustments, and commit it to source. When we eventually do a package release, the changeset notes and version will be incorporated!

### Creating versions

On a merge of a feature PR, the changesets GitHub action will open a new PR titled `"Version Packages"`. This PR is automatically kept up to date with additional PRs with changesets. So, if you're not ready to publish yet, just keep merging feature PRs and then merge the version packages PR later.

### Publishing packages

On the merge of a version packages PR, the changesets GitHub action will publish the packages to npm.

### The manual version

For exceptional circumstances, here is a quick guide to manually publishing from a local computer using changesets.

1. Add a changeset with `pnpm run changeset`. Add changeset file, review file, tweak, and commit.
2. Make a version. Due to our changelog plugin you will need to create a personal GitHub token and pass it to the environment.

    ```sh
    $ GITHUB_TOKEN=<INSERT TOKEN> pnpm run version
    ```

    Review git changes, tweak, and commit.

3. Publish.

    First, build necessary files:

    ```sh
    # Build everything
    $ pnpm run build
    ```

    Then publish:

    ```sh
    # Test things out first
    $ pnpm -r publish --dry-run

    # The real publish
    # This first does a single git tag (if not already present), then publishes
    $ pnpm run publish --otp=<insert otp code>
    ```

    Note that publishing multiple packages via `changeset` to npm with an OTP code can often fail with `429 Too Many Requests` rate limiting error. Take a 5+ minute coffee break, then come back and try again.

    Then issue the following to also push git tags:

    ```sh
    $ git push && git push --tags
    ```


================================================
FILE: LICENSE.txt
================================================
The MIT License (MIT)

Copyright (c) 2015-2020 Formidable Labs.

Copyright (c) 2016-2020 Alexey Svetliakov <https://github.com/asvetliakov>,
snerks <https://github.com/snerks>, Krzysztof Cebula <https://github.com
Havret>, Vitaliy Polyanskiy <https://github.com/alreadyExisted>, James Lismore
<https://github.com/jlismore>, Stack Builders <https://github.com
stackbuilders>, Esteban Ibarra <https://github.com/ibarrae>, Dominic Lee
<https://github.com/dominictwlee>, Dave Vedder <https://github.com
veddermatic>, Alec Flett <https://github.com/alecf> and potentially other
DefinitelyTyped contributors.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

================================================
FILE: README.md
================================================
<div align="center">
  <a href="https://commerce.nearform.com/open-source/" target="_blank">
    <img alt="Victory — Formidable, We build the modern web" src="https://oss.nearform.com/api/banner.svg?badge=victory&bg=9c2f1e" />
  </a>

  <strong>
    an ecosystem of composable React components for building interactive data visualizations.
  </strong>

  <br />
  <br />

  <a href="https://npmjs.com/package/victory">
    <img alt="weekly downloads" src="https://img.shields.io/npm/dw/victory.svg">
  </a>
  <a href="https://npmjs.com/package/victory">
    <img alt="current version" src="https://img.shields.io/npm/v/victory.svg">
  </a>
  <a href="https://github.com/FormidableLabs/victory/actions">
    <img alt="build status" src="https://github.com/FormidableLabs/victory/actions/workflows/ci.yml/badge.svg">
  </a>

  <a href="https://github.com/FormidableLabs/victory#maintenance-status">
    <img alt="Maintenance Status" src="https://img.shields.io/badge/maintenance-active-green.svg" />
  </a>

  <br />
  <br />
</div>

# `Victory`

## Contents

- [Getting Started](#getting-started)
- [Victory Native](#victory-native)
- [API Documentation](http://commerce.nearform.com/open-source/victory/docs)
- [Guides](http://commerce.nearform.com/open-source/victory/guides)
- [Contributing](#contributing)

* See the **docs and examples** on the website: https://commerce.nearform.com/open-source/victory
* **Experiment** with all Victory components in this [code sandbox](https://codesandbox.io/s/dj4f7t)

## Getting started

1. Add Victory to your project:

```sh
# npm
$ npm i --save victory
# or yarn
$ yarn add victory
```

2. Add your first Victory component:

```js
import React from "react";
import { render } from "react-dom";
import { VictoryPie } from "victory";

const PieChart = () => {
  return <VictoryPie />;
};

render(<PieChart />, document.getElementById("app"));
```

3. `VictoryPie` component will be rendered, and you should see:

<p align="center">
  <img align="center" width="471" alt="pie" src="https://cloud.githubusercontent.com/assets/3719995/20915779/b51e3652-bb3c-11e6-8243-6e7521a59115.png">
</p>

<br />

## Requirements

Projects using Victory should also depend on [React][]. As of `victory@34.0.0` Victory requires React version `16.3.0` or above

## Victory Native

Victory Native shares most of its code with Victory, and has a nearly identical API! To learn more, check out the [Victory Native package README](./packages/victory-native/README.md).

## Contributing

Please see the [Contributing guide](CONTRIBUTING.md).

## Maintenance Status

**Active:** Formidable is actively working on this project, and we expect to continue to work for the foreseeable future. Bug reports, feature requests and pull requests are welcome.

[react]: https://facebook.github.io/react/


================================================
FILE: chromatic.config.json
================================================
{
  "onlyChanged": true,
  "projectId": "Project:5b4acf7c54c0490024d5980b",
  "zip": true
}


================================================
FILE: config/webpack/demo/webpack.config.dev.js
================================================
"use strict";

const path = require("path");
const glob = require("glob");
const LodashModuleReplacementPlugin = require("lodash-webpack-plugin");
const ForkTsCheckerWebpackPlugin = require("fork-ts-checker-webpack-plugin");

const ROOT = path.resolve(__dirname, "../../..");
const PKGS = path.join(ROOT, "packages");
const VICTORY_GLOB = path
  .join(PKGS, "victory*/package.json")
  .replace(/\\/g, "/");
// Read all the victory packages and alias.
const VICTORY_ALIASES = glob.sync(VICTORY_GLOB).reduce((memo, pkgPath) => {
  const key = path.dirname(path.relative(PKGS, pkgPath));
  memo[key] = path.resolve(path.dirname(pkgPath));
  return memo;
}, {});
const DEMO = path.resolve("demo");
const WDS_PORT = 3000;

module.exports = {
  mode: "development",
  cache: true,
  devServer: {
    port: WDS_PORT,
  },
  output: {
    path: DEMO,
    pathinfo: true,
    filename: "main.js",
    publicPath: "/assets/",
  },
  devtool: "source-map",
  stats: {
    colors: true,
    reasons: true,
  },
  resolve: {
    alias: VICTORY_ALIASES,
    extensions: [".ts", ".tsx", ".js", ".json"],
  },
  module: {
    rules: [
      {
        // Transform source
        test: /(\.js|\.tsx?)$/,
        // Use include specifically of our sources.
        // Do _not_ use an `exclude` here.
        include: [DEMO],
        use: {
          loader: "babel-loader",

          options: require("../../../.babelrc.js"),
        },
      },
      {
        test: /\.css$/,
        use: ["style-loader", "css-loader", "postcss-loader"],
      },
    ],
  },
  plugins: [
    new ForkTsCheckerWebpackPlugin({
      typescript: {
        configFile: path.resolve(ROOT, "demo", "ts", "tsconfig.json"),
      },
    }),
    new LodashModuleReplacementPlugin({
      shorthands: true,
      currying: true,
      flattening: true,
      paths: true,
      placeholders: true,
    }),
  ],
};


================================================
FILE: config/webpack/demo/webpack.config.hot.js
================================================
"use strict";

const _ = require("lodash");
const base = require("./webpack.config.dev");

// Clone our own module object.
const mod = _.cloneDeep(base.module);
const firstLoader = mod.rules[0];

// Update rules array. First loader needs react-hot-loader.
firstLoader.rules = [require.resolve("react-hot-loader")]
  .concat(firstLoader.loader ? [firstLoader.loader] : [])
  .concat(firstLoader.rules || []);

// Remove single loader if any.
firstLoader.loader = null;

module.exports = _.merge({}, _.omit(base, "entry", "module"), {
  entry: {
    app: [require.resolve("webpack/hot/only-dev-server"), "./demo/js/app"],
  },

  module: mod,
});


================================================
FILE: config/webpack/webpack.config.dev.js
================================================
"use strict";

const config = require("./webpack.config");
const LodashModuleReplacementPlugin = require("lodash-webpack-plugin");

// **WARNING**: Mutates base configuration.
// We do this because lodash isn't available in `production` mode.
config.output.filename = config.output.filename.replace(/\.min\.js$/, ".js");
config.mode = "development";
config.devtool = false;
config.plugins = [
  new LodashModuleReplacementPlugin({
    currying: true,
    flattening: true,
    paths: true,
    placeholders: true,
    shorthands: true,
  }),
];

// Export mutated base.
module.exports = config;


================================================
FILE: config/webpack/webpack.config.js
================================================
"use strict";

const path = require("path");
const webpack = require("webpack");
const LodashModuleReplacementPlugin = require("lodash-webpack-plugin");

const SRC = path.resolve("src");

// **Little Hacky**: Infer the filename and library name from the package name.
//
// Assumptions:
// - `package.json`'s `name` field is name of dist files.
// - PascalCased version of that name is exported class name.
const PKG = require(path.resolve("package.json"));
const libPath = (PKG.name || "").toLowerCase();
if (!libPath) {
  throw new Error("Need package.json:name field");
}
// PascalCase (with first character capitalized).
const libName = libPath
  .replace(/^\s+|\s+$/g, "")
  .replace(/(^|[-_ ])+(.)/g, (match, first, second) => {
    // Second match group is the character we want to change. Throw away first.
    return second.toUpperCase();
  });

module.exports = {
  cache: true,
  context: SRC,
  entry: "./index",
  externals: {
    react: {
      root: "React",
      commonjs2: "react",
      commonjs: "react",
      amd: "react",
    },
    "react-native": "react-native",
  },
  resolve: {
    extensions: [".ts", ".tsx", ".js", ".jsx"],
  },
  output: {
    path: path.resolve("dist"),
    filename: `${libPath}.min.js`,
    library: libName,
    libraryTarget: "umd",
  },
  module: {
    rules: [
      {
        // Transform source
        test: /(\.js|\.tsx?)$/,
        // Use include specifically of our sources.
        // Do _not_ use an `exclude` here.
        include: [SRC],
        use: {
          loader: "babel-loader",

          options: require("../../.babelrc.js"),
        },
      },
    ],
  },
  mode: "production",
  plugins: [
    new LodashModuleReplacementPlugin({
      currying: true,
      flattening: true,
      paths: true,
      placeholders: true,
      shorthands: true,
    }),
    new webpack.DefinePlugin({
      // Signal production, so that webpack removes non-production code that
      // is in condtionals like: `if (process.env.NODE_ENV === "production")`
      "process.env.NODE_ENV": JSON.stringify("production"),
    }),
    new webpack.SourceMapDevToolPlugin({
      filename: "[file].map",
    }),
  ],
};


================================================
FILE: demo/rn/.expo-shared/assets.json
================================================
{
  "12bb71342c6255bbf50437ec8f4441c083f47cdb74bd89160c15e4f43e52a1cb": true,
  "40b842e832070c58deac6aa9e08fa459302ee3f9da492c7e77d93d2fbf4a56fd": true
}


================================================
FILE: demo/rn/.gitignore
================================================
node_modules/
.expo/
dist/
npm-debug.*
*.jks
*.p8
*.p12
*.key
*.mobileprovision
*.orig.*
web-build/

# macOS
.DS_Store


================================================
FILE: demo/rn/App.tsx
================================================
import React from "react";
import { LogBox } from "react-native";
import { NavigationContainer } from "@react-navigation/native";
import { RootNavigator } from "./src/screens/root-navigator";
import { registerRootComponent } from "expo";

LogBox.ignoreLogs(["Require cycle: ../../packages/victory"]);

const App = () => {
  return (
    <NavigationContainer>
      <RootNavigator />
    </NavigationContainer>
  );
};

registerRootComponent(App);


================================================
FILE: demo/rn/app.json
================================================
{
  "expo": {
    "name": "rn-demo",
    "slug": "rn-demo",
    "version": "1.0.0",
    "orientation": "portrait",
    "icon": "./assets/icon.png",
    "userInterfaceStyle": "light",
    "splash": {
      "image": "./assets/splash.png",
      "resizeMode": "contain",
      "backgroundColor": "#ffffff"
    },
    "updates": {
      "fallbackToCacheTimeout": 0
    },
    "assetBundlePatterns": ["**/*"],
    "ios": {
      "supportsTablet": true
    },
    "android": {
      "adaptiveIcon": {
        "foregroundImage": "./assets/adaptive-icon.png",
        "backgroundColor": "#FFFFFF"
      }
    },
    "web": {
      "favicon": "./assets/favicon.png"
    }
  }
}


================================================
FILE: demo/rn/babel.config.js
================================================
module.exports = function (api) {
  api.cache(true);
  return {
    presets: ["babel-preset-expo"],
  };
};


================================================
FILE: demo/rn/metro.config.js
================================================
// https://docs.expo.dev/guides/monorepos/#modify-the-metro-config
const { getDefaultConfig } = require("expo/metro-config");
const path = require("path");

// Find the project and workspace directories
const projectRoot = __dirname;
// Find the monorepo root
const monorepoRoot = path.resolve(projectRoot, "../..");

const config = getDefaultConfig(projectRoot);

// 1. Watch all files within the monorepo
config.watchFolders = [monorepoRoot];
// 2. Let Metro know where to resolve packages and in what order
config.resolver.nodeModulesPaths = [
  path.resolve(projectRoot, "node_modules"),
  path.resolve(monorepoRoot, "node_modules"),
];

module.exports = config;


================================================
FILE: demo/rn/package.json
================================================
{
  "name": "rn-demo",
  "version": "1.0.0",
  "sideEffects": false,
  "main": "App.tsx",
  "scripts": {
    "start": "expo start --reset-cache",
    "android": "expo start --android --reset-cache",
    "ios": "expo start --ios --reset-cache",
    "web": "expo start --web --reset-cache",
    "eject": "expo eject"
  },
  "dependencies": {
    "@expo/metro-runtime": "~3.1.3",
    "@react-navigation/native": "^6.1.17",
    "@react-navigation/native-stack": "^6.9.26",
    "expo": "~50.0.17",
    "expo-status-bar": "~1.11.1",
    "lodash": "^4.17.21",
    "react": "18.2.0",
    "react-dom": "18.2.0",
    "react-native": "0.73.5",
    "react-native-gesture-handler": "~2.16.0",
    "react-native-safe-area-context": "4.10.1",
    "react-native-screens": "~3.31.1",
    "react-native-svg": "14.1.0",
    "react-native-web": "~0.19.6",
    "victory": "workspace:*",
    "victory-area": "workspace:*",
    "victory-axis": "workspace:*",
    "victory-bar": "workspace:*",
    "victory-box-plot": "workspace:*",
    "victory-brush-container": "workspace:*",
    "victory-brush-line": "workspace:*",
    "victory-candlestick": "workspace:*",
    "victory-chart": "workspace:*",
    "victory-core": "workspace:*",
    "victory-create-container": "workspace:*",
    "victory-cursor-container": "workspace:*",
    "victory-errorbar": "workspace:*",
    "victory-group": "workspace:*",
    "victory-histogram": "workspace:*",
    "victory-legend": "workspace:*",
    "victory-line": "workspace:*",
    "victory-native": "workspace:*",
    "victory-pie": "workspace:*",
    "victory-polar-axis": "workspace:*",
    "victory-scatter": "workspace:*",
    "victory-selection-container": "workspace:*",
    "victory-shared-events": "workspace:*",
    "victory-stack": "workspace:*",
    "victory-tooltip": "workspace:*",
    "victory-voronoi": "workspace:*",
    "victory-voronoi-container": "workspace:*",
    "victory-zoom-container": "workspace:*"
  },
  "devDependencies": {
    "@babel/core": "^7.20.0",
    "@babel/runtime": "^7.22.15",
    "@types/lodash": "^4.14.182",
    "glob": "^8.0.3",
    "typescript": "~5.3.3"
  },
  "private": true
}


================================================
FILE: demo/rn/src/data/index.ts
================================================
import { range, random } from "lodash";

export const getData = () =>
  range(1, 10).map((i) => ({ x: i, y: random(1, 10) }));

export const getBoxPlotData = () =>
  range(5).map((i) => ({ x: i, y: range(20).map(() => random(1, 100)) }));

export const generateRandomData = (points = 6) =>
  range(1, points + 1).map((i) => ({ x: i, y: i + random(-1, 2) }));

export const getTransitionData = () => {
  const n = random(4, 10);
  return range(n).map((i) => {
    return {
      x: i,
      y: random(2, 10),
    };
  });
};

export const getYFunction = () => {
  const n = random(2, 7);
  return (data: { x: number }) =>
    Math.exp(-n * data.x) * Math.sin(2 * n * Math.PI * data.x);
};

export const getStyles = () => {
  const colors = ["red", "orange", "magenta", "gold", "blue", "purple"];
  return {
    stroke: colors[random(0, 5)],
    strokeWidth: random(1, 5),
  };
};


================================================
FILE: demo/rn/src/navigation-config.ts
================================================
export type RootStackNavigatorParams = {
  Components: undefined;
  Pie: undefined;
  Chart: undefined;
  Line: undefined;
  Area: undefined;
  Bar: undefined;
  Histogram: undefined;
  Scatter: undefined;
  BoxPlot: undefined;
  ErrorBar: undefined;
  Voronoi: undefined;
  BrushLine: undefined;

  Legends: undefined;
  Axis: undefined;
  PolarAxis: undefined;
};


================================================
FILE: demo/rn/src/screens/area-screen.tsx
================================================
import * as React from "react";
import { ScrollView } from "react-native";
import { VictoryArea, VictoryGroup, VictoryStack } from "victory-native";
import viewStyles from "../styles/view-styles";
import { getData } from "../data";

export const AreaScreen: React.FC = () => {
  const [data, setData] = React.useState(getData());

  React.useEffect(() => {
    const updateDataHandle = setInterval(() => {
      setData(getData());
    }, 3000);
    return () => {
      clearInterval(updateDataHandle);
    };
  }, []);

  return (
    <ScrollView style={viewStyles.container}>
      <VictoryArea
        interpolation="basis"
        animate={{
          onLoad: { duration: 3500 },
          duration: 1500,
        }}
        data={data}
      />

      <VictoryArea />

      <VictoryArea
        data={[
          { x: 1, y: 1 },
          { x: 2, y: 2 },
          { x: 3, y: 3 },
          { x: 4, y: 1 },
          { x: 5, y: 3 },
          { x: 6, y: 4 },
          { x: 7, y: 2 },
        ]}
      />

      <VictoryArea
        data={[
          { amount: 1, yield: 1, error: 0.5 },
          { amount: 2, yield: 2, error: 1.1 },
          { amount: 3, yield: 3, error: 0 },
          { amount: 4, yield: 2, error: 0.1 },
          { amount: 5, yield: 1, error: 1.5 },
        ]}
        x={"amount"}
        y={(d) => d.yield + d.error}
      />

      <VictoryGroup width={300} height={375} style={{ data: { opacity: 0.3 } }}>
        <VictoryArea
          data={[
            { x: 1, y: 1 },
            { x: 2, y: 2 },
            { x: 3, y: 3 },
          ]}
        />
        <VictoryArea
          data={[
            { x: 1, y: 2 },
            { x: 2, y: 1 },
            { x: 3, y: 1 },
          ]}
        />
        <VictoryArea
          data={[
            { x: 1, y: 3 },
            { x: 2, y: 4 },
            { x: 3, y: 2 },
          ]}
        />
      </VictoryGroup>

      <VictoryStack width={300} height={375}>
        <VictoryArea
          data={[
            { x: 1, y: 1 },
            { x: 2, y: 2 },
            { x: 3, y: 3 },
          ]}
        />
        <VictoryArea
          data={[
            { x: 1, y: 2 },
            { x: 2, y: 1 },
            { x: 3, y: 1 },
          ]}
        />
        <VictoryArea
          data={[
            { x: 1, y: 3 },
            { x: 2, y: 4 },
            { x: 3, y: 2 },
          ]}
        />
      </VictoryStack>

      <VictoryStack
        width={300}
        height={450}
        style={{
          data: {
            strokeDasharray: "5,5",
            strokeWidth: 2,
            fillOpacity: 0.4,
          },
        }}
      >
        <VictoryArea
          style={{
            data: {
              fill: "tomato",
              stroke: "tomato",
            },
          }}
          data={[
            { x: 1, y: 1 },
            { x: 2, y: 2 },
            { x: 3, y: 3 },
          ]}
        />
        <VictoryArea
          style={{
            data: {
              fill: "orange",
              stroke: "orange",
            },
          }}
          data={[
            { x: 1, y: 2 },
            { x: 2, y: 1 },
            { x: 3, y: 1 },
          ]}
        />
        <VictoryArea
          style={{
            data: {
              fill: "gold",
              stroke: "gold",
            },
          }}
          data={[
            { x: 1, y: 3 },
            { x: 2, y: 4 },
            { x: 3, y: 2 },
          ]}
        />
      </VictoryStack>
    </ScrollView>
  );
};


================================================
FILE: demo/rn/src/screens/axis-screen.tsx
================================================
import * as React from "react";
import { ScrollView } from "react-native";
import { VictoryAxis } from "victory-native";
import Svg from "react-native-svg";
import viewStyles from "../styles/view-styles";

export const AxisScreen: React.FC = () => {
  return (
    <ScrollView style={viewStyles.container}>
      <VictoryAxis height={100} />

      <VictoryAxis
        height={100}
        scale="time"
        tickValues={[
          new Date(1980, 1, 1),
          new Date(1990, 1, 1),
          new Date(2000, 1, 1),
          new Date(2010, 1, 1),
          new Date(2020, 1, 1),
        ]}
        tickFormat={(x) => x.getFullYear()}
      />

      <Svg width={320} height={320}>
        <VictoryAxis
          width={320}
          height={320}
          domain={[-10, 10]}
          crossAxis
          offsetY={160}
          standalone={false}
        />
        <VictoryAxis
          dependentAxis
          width={320}
          height={320}
          domain={[-10, 10]}
          crossAxis
          offsetX={160}
          standalone={false}
        />
      </Svg>

      <VictoryAxis
        dependentAxis
        padding={{ left: 50, top: 20, bottom: 20 }}
        scale="log"
        domain={[1, 5]}
      />
    </ScrollView>
  );
};


================================================
FILE: demo/rn/src/screens/bar-screen.tsx
================================================
import * as React from "react";
import { Text } from "react-native";
import { ScrollView } from "react-native";
import { VictoryBar, VictoryGroup, VictoryStack } from "victory-native";
import viewStyles from "../styles/view-styles";

export const BarScreen: React.FC = () => {
  return (
    <ScrollView style={viewStyles.container}>
      <VictoryBar />

      <VictoryBar
        data={[
          { x: 1, y: 1 },
          { x: 2, y: 2 },
          { x: 3, y: 3 },
          { x: 4, y: 2 },
          { x: 5, y: 1 },
        ]}
      />

      <VictoryGroup
        width={300}
        height={375}
        offset={20}
        colorScale={"qualitative"}
      >
        <VictoryBar
          data={[
            { x: 1, y: 1 },
            { x: 2, y: 2 },
            { x: 3, y: 3 },
          ]}
        />
        <VictoryBar
          data={[
            { x: 1, y: 2 },
            { x: 2, y: 1 },
            { x: 3, y: 1 },
          ]}
        />
        <VictoryBar
          data={[
            { x: 1, y: 3 },
            { x: 2, y: 4 },
            { x: 3, y: 2 },
          ]}
        />
      </VictoryGroup>

      <VictoryStack width={300} height={375} colorScale={"qualitative"}>
        <VictoryBar
          data={[
            { x: 1, y: 1 },
            { x: 2, y: 2 },
            { x: 3, y: 3 },
          ]}
        />
        <VictoryBar
          data={[
            { x: 1, y: 2 },
            { x: 2, y: 1 },
            { x: 3, y: 1 },
          ]}
        />
        <VictoryBar
          data={[
            { x: 1, y: 3 },
            { x: 2, y: 4 },
            { x: 3, y: 2 },
          ]}
        />
      </VictoryStack>

      <VictoryBar
        height={375}
        padding={75}
        style={{
          data: {
            fill: ({ datum }: { datum: { y: number } }) =>
              datum.y > 2 ? "red" : "blue",
          },
        }}
        data={[
          { x: 1, y: 1 },
          { x: 2, y: 2 },
          { x: 3, y: 3 },
          { x: 4, y: 2 },
          { x: 5, y: 1 },
        ]}
      />
    </ScrollView>
  );
};


================================================
FILE: demo/rn/src/screens/box-plot-screen.tsx
================================================
import * as React from "react";
import { ScrollView } from "react-native";
import { VictoryChart, VictoryBoxPlot } from "victory-native";
import viewStyles from "../styles/view-styles";
import { getBoxPlotData } from "../data";

export const BoxPlotScreen: React.FC = () => {
  const [data, setData] = React.useState(getBoxPlotData());

  React.useEffect(() => {
    const updateDataHandle = setInterval(() => {
      setData(getBoxPlotData());
    }, 3000);
    return () => {
      clearInterval(updateDataHandle);
    };
  }, []);

  return (
    <ScrollView style={viewStyles.container}>
      <VictoryChart domainPadding={50}>
        <VictoryBoxPlot
          minLabels
          maxLabels
          boxWidth={10}
          data={[
            { x: "red", y: [5, 10, 9, 2] },
            { x: "blue", y: [1, 15, 6, 8] },
            { x: "green", y: [3, 5, 6, 9] },
            { x: "yellow", y: [5, 20, 8, 12] },
            { x: "white", y: [2, 11, 12, 13] },
          ]}
        />
      </VictoryChart>
      <VictoryChart domainPadding={50}>
        <VictoryBoxPlot
          labels
          boxWidth={10}
          horizontal
          y="type"
          data={[
            { type: 1, min: 1, max: 18, median: 8, q1: 5, q3: 15 },
            { type: 2, min: 4, max: 20, median: 10, q1: 7, q3: 15 },
            { type: 3, min: 3, max: 12, median: 6, q1: 5, q3: 10 },
          ]}
        />
      </VictoryChart>
      <VictoryBoxPlot animate boxWidth={10} data={data} />
    </ScrollView>
  );
};


================================================
FILE: demo/rn/src/screens/brush-line-screen.tsx
================================================
import * as React from "react";
import { Dimensions, ScrollView } from "react-native";
import {
  VictoryAxis,
  VictoryBrushLine,
  VictoryChart,
  VictoryScatter,
  VictoryLine,
  VictoryLabel,
  VictoryBar,
  VictoryContainer,
} from "victory-native";
import { DomainTuple } from "victory-core";
import _ from "lodash";

import viewStyles from "../styles/view-styles";
import { VictoryBrushLineProps } from "victory-brush-line";

type DataType = {
  name: string;
  strength: number;
  intelligence: number;
  speed: number;
  luck: number;
}[];

interface DataSet {
  name: string;
  data: { x: string; y: number }[];
}

const data: DataType = [
  { name: "Adrien", strength: 5, intelligence: 30, speed: 500, luck: 3 },
  { name: "Brice", strength: 1, intelligence: 13, speed: 550, luck: 2 },
  { name: "Casey", strength: 4, intelligence: 15, speed: 80, luck: 1 },
  { name: "Drew", strength: 3, intelligence: 25, speed: 600, luck: 5 },
  { name: "Erin", strength: 9, intelligence: 50, speed: 350, luck: 4 },
  { name: "Francis", strength: 2, intelligence: 40, speed: 200, luck: 2 },
];

type Attribute = "strength" | "intelligence" | "speed" | "luck";
const attributes: Attribute[] = ["strength", "intelligence", "speed", "luck"];

type Filter = Record<Attribute, number[] | undefined>;

const width = Dimensions.get("window").width;
const padding: { [key: string]: number } = {
  top: 100,
  left: 50,
  right: 50,
  bottom: 50,
};

function normalizeData(maximumValues: number[]) {
  // construct normalized datasets by dividing the value for each attribute by the maximum value
  return data.map((datum) => ({
    name: datum.name,
    data: attributes.map((attribute, i) => ({
      x: attribute,
      y: datum[attribute] / maximumValues[i],
    })),
  }));
}

function getMaximumValues() {
  return attributes.map((attribute) => {
    return data.reduce((memo, datum) => {
      return datum[attribute] > memo ? datum[attribute] : memo;
    }, -Infinity);
  });
}

function getAxisOffset(index: number) {
  const step = (width - padding.left - padding.right) / (attributes.length - 1);
  return step * index + padding.left;
}

export const BrushLineScreen: React.FC = () => {
  const [scrollEnabled, setScrollEnabled] = React.useState(true);
  const [maximumValues] = React.useState(getMaximumValues());
  const [datasets] = React.useState<DataSet[]>(normalizeData(maximumValues));
  const [filters, setFilters] = React.useState<Filter>({
    intelligence: undefined,
    strength: undefined,
    luck: undefined,
    speed: undefined,
  });
  const [isFiltered, setIsFiltered] = React.useState(false);
  const [activeDatasets, setActiveDatasets] = React.useState<string[]>([]);

  const onDomainChange = (
    domain: DomainTuple,
    props: VictoryBrushLineProps | undefined,
  ) => {
    const filters = addNewFilters(domain, props);
    const isFiltered = !_.isEmpty(_.values(filters).filter(Boolean));
    const activeDatasets = isFiltered
      ? getActiveDatasets(filters)
      : datasets.map((x) => x.name);
    setFilters(filters);
    setIsFiltered(isFiltered);
    setActiveDatasets(activeDatasets);
  };

  const addNewFilters = (
    domain: DomainTuple,
    props: VictoryBrushLineProps | undefined,
  ): Filter => {
    if (!domain) return filters;
    if (typeof domain[0] != "number") return filters;
    if (typeof domain[1] != "number") return filters;
    if (!props) return filters;

    const dm = domain as [number, number];
    const currentFilters = filters;
    const extent = dm && Math.abs(dm[1] - dm[0]);
    const minVal = 1 / Number.MAX_VALUE;

    currentFilters[props.name as Attribute] = extent <= minVal ? undefined : dm;

    return currentFilters;
  };

  const getActiveDatasets = (filters: Filter): string[] => {
    // Return the names from all datasets that have values within all filters
    const isActive = (dataset: DataSet): (string | null | undefined)[] => {
      return Object.keys(filters).reduce((memo: any, name) => {
        let filter = name as keyof Filter;

        if (!memo || !Array.isArray(filters[filter])) {
          return memo;
        }
        const point = _.find(dataset.data, (d) => d.x === filter);
        let tuple = filters[filter];
        return (
          point &&
          tuple &&
          Math.max(...tuple) >= point.y &&
          Math.min(...tuple) <= point.y
        );
      }, true);
    };

    return datasets
      .map((dataset) => (isActive(dataset) ? dataset.name : null))
      .filter(Boolean) as string[];
  };

  const isActive = (dataset: DataSet): boolean => {
    // Determine whether a given dataset is active
    return !isFiltered ? true : _.includes(activeDatasets, dataset.name);
  };

  const max = maximumValues || [];

  return (
    <ScrollView scrollEnabled={scrollEnabled} style={viewStyles.container}>
      <VictoryChart
        containerComponent={
          <VictoryContainer
            onTouchStart={() => setScrollEnabled(false)}
            onTouchEnd={() => setScrollEnabled(true)}
          />
        }
        domain={{ y: [0, 1.1] }}
        width={width}
        padding={padding}
      >
        <VictoryAxis
          style={{
            tickLabels: { fontSize: 20 },
            axis: { stroke: "none" },
          }}
          tickLabelComponent={<VictoryLabel y={padding.top - 40} />}
        />
        {datasets.map((dataset: DataSet) => (
          <VictoryLine
            key={dataset.name}
            name={dataset.name}
            data={dataset.data}
            style={{
              data: {
                stroke: "tomato",
                opacity: isActive(dataset) ? 1 : 0.2,
              },
            }}
          />
        ))}
        {attributes.map((attribute, index) => (
          <VictoryAxis
            dependentAxis
            name={attribute}
            key={index}
            axisComponent={
              <VictoryBrushLine
                name={attribute}
                width={20}
                onTouchStart={() => setScrollEnabled(false)}
                onTouchEnd={() => setScrollEnabled(true)}
                onBrushDomainChange={onDomainChange}
              />
            }
            offsetX={getAxisOffset(index)}
            style={{
              tickLabels: {
                fontSize: 15,
                padding: 15,
                pointerEvents: "none",
              },
            }}
            tickValues={[0.2, 0.4, 0.6, 0.8, 1]}
            tickFormat={(tick) => Math.round(tick * max[index])}
          />
        ))}
      </VictoryChart>
      <VictoryChart>
        <VictoryScatter
          data={[
            { x: "one", y: 0 },
            { x: "two", y: 2 },
            { x: "three", y: 4 },
          ]}
        />
        <VictoryAxis
          gridComponent={
            <VictoryBrushLine
              onTouchStart={() => setScrollEnabled(false)}
              onTouchEnd={() => setScrollEnabled(true)}
              brushWidth={20}
            />
          }
        />
      </VictoryChart>
      <VictoryChart domainPadding={{ x: 80 }}>
        <VictoryBar
          data={[
            { x: "one", y: 4 },
            { x: "two", y: 5 },
            { x: "three", y: 6 },
          ]}
        />
        <VictoryAxis
          dependentAxis
          axisComponent={
            <VictoryBrushLine
              onTouchStart={() => setScrollEnabled(false)}
              onTouchEnd={() => setScrollEnabled(true)}
              brushWidth={20}
              brushDomain={[2, 3]}
            />
          }
        />
      </VictoryChart>
      <VictoryChart domainPadding={50}>
        <VictoryScatter
          size={4}
          style={{ data: { fill: "tomato" } }}
          data={[
            { x: 1, y: 1 },
            { x: 2, y: 2 },
            { x: 3, y: 4 },
          ]}
        />
        <VictoryAxis
          tickValues={[1, 2, 3]}
          gridComponent={
            <VictoryBrushLine
              onTouchStart={() => setScrollEnabled(false)}
              onTouchEnd={() => setScrollEnabled(true)}
              width={30}
            />
          }
        />
      </VictoryChart>

      <VictoryAxis
        standalone
        gridComponent={
          <VictoryBrushLine
            onTouchStart={() => setScrollEnabled(false)}
            onTouchEnd={() => setScrollEnabled(true)}
            brushWidth={10}
            brushDomain={[0, 10]}
          />
        }
      />
    </ScrollView>
  );
};


================================================
FILE: demo/rn/src/screens/chart-screen.tsx
================================================
import * as React from "react";
import { ScrollView } from "react-native";
import {
  Background,
  VictoryChart,
  VictoryBar,
  VictoryGroup,
  VictoryLine,
  VictoryScatter,
  VictoryArea,
  VictoryStack,
  VictoryTooltip,
  VictoryZoomContainer,
} from "victory-native";
import viewStyles from "../styles/view-styles";
import { getTransitionData, generateRandomData } from "../data";

export const ChartScreen: React.FC = () => {
  const [transitionData, setTransitionData] =
    React.useState(getTransitionData());

  React.useEffect(() => {
    const updateDataHandle = setInterval(() => {
      setTransitionData(getTransitionData());
    }, 3000);
    return () => {
      clearInterval(updateDataHandle);
    };
  }, []);

  return (
    <ScrollView style={viewStyles.container}>
      <VictoryChart>
        <VictoryBar />
        <VictoryLine />
      </VictoryChart>

      <VictoryChart domain={{ x: [0, 4] }}>
        <VictoryGroup
          labels={["a", "b", "c"]}
          offset={10}
          colorScale={"qualitative"}
        >
          <VictoryBar
            data={[
              { x: 1, y: 1 },
              { x: 2, y: 2 },
              { x: 3, y: 5 },
            ]}
          />
          <VictoryBar
            data={[
              { x: 1, y: 2 },
              { x: 2, y: 1 },
              { x: 3, y: 7 },
            ]}
          />
          <VictoryBar
            data={[
              { x: 1, y: 3 },
              { x: 2, y: 4 },
              { x: 3, y: 9 },
            ]}
          />
        </VictoryGroup>
      </VictoryChart>

      <VictoryChart>
        <VictoryScatter
          labelComponent={<VictoryTooltip />}
          style={{
            data: { fill: ({ datum }) => datum.fill },
          }}
          data={[
            {
              x: 1,
              y: 3,
              fill: "red",
              symbol: "plus",
              size: 6,
              label: "Red",
            },
            {
              x: 2,
              y: 5,
              fill: "magenta",
              size: 9,
              opacity: 0.4,
              label: "Magenta",
            },
            {
              x: 3,
              y: 4,
              fill: "orange",
              size: 5,
              label: "Orange",
            },
            {
              x: 4,
              y: 2,
              fill: "brown",
              symbol: "square",
              size: 6,
              label: "Brown",
            },
            {
              x: 5,
              y: 5,
              fill: "black",
              symbol: "triangleUp",
              size: 5,
              label: "Black",
            },
          ]}
        />
      </VictoryChart>
      <VictoryChart animate={{ duration: 2000 }}>
        <VictoryArea data={transitionData} />
      </VictoryChart>
      <VictoryChart animate={{ duration: 2000 }}>
        <VictoryBar
          labels={() => "Hi"}
          data={transitionData}
          style={{
            data: {
              fill: "tomato",
              width: 12,
            },
          }}
          animate={{
            onExit: {
              duration: 500,
              before: () => ({
                y: 0,
                fill: "orange",
                label: "BYE",
              }),
            },
          }}
        />
      </VictoryChart>

      <VictoryChart>
        <VictoryStack>
          <VictoryArea
            data={[
              { x: "a", y: 2 },
              { x: "b", y: 3 },
              { x: "c", y: 5 },
              { x: "d", y: 4 },
              { x: "e", y: 7 },
            ]}
          />
          <VictoryArea
            data={[
              { x: "a", y: 1 },
              { x: "b", y: 4 },
              { x: "c", y: 5 },
              { x: "d", y: 7 },
              { x: "e", y: 5 },
            ]}
          />
          <VictoryArea
            data={[
              { x: "a", y: 3 },
              { x: "b", y: 2 },
              { x: "c", y: 6 },
              { x: "d", y: 2 },
              { x: "e", y: 6 },
            ]}
          />
          <VictoryArea
            data={[
              { x: "a", y: 2 },
              { x: "b", y: 3 },
              { x: "c", y: 3 },
              { x: "d", y: 4 },
              { x: "e", y: 7 },
            ]}
          />
        </VictoryStack>
      </VictoryChart>
      <VictoryChart
        polar
        backgroundComponent={<Background />}
        style={{ background: { fill: "pink" } }}
      >
        <VictoryBar />
      </VictoryChart>
      <VictoryChart
        containerComponent={
          <VictoryZoomContainer
            zoomDimension="x"
            zoomDomain={{
              x: [0, 5],
            }}
          />
        }
      >
        <VictoryBar barRatio={1.2} data={generateRandomData(10)} />
      </VictoryChart>
    </ScrollView>
  );
};


================================================
FILE: demo/rn/src/screens/components-screen.tsx
================================================
import * as React from "react";
import {
  ListRenderItem,
  Platform,
  SectionList,
  SectionListRenderItem,
  Text,
  TouchableOpacity,
  View,
} from "react-native";
import styles from "../styles/container-view-styles";
import { useNavigation } from "@react-navigation/native";
import { NativeStackNavigationProp } from "@react-navigation/native-stack";
import { RootStackNavigatorParams } from "../navigation-config";

export const ComponentsScreen: React.FC = () => {
  const rootNavigation =
    useNavigation<NativeStackNavigationProp<RootStackNavigatorParams>>();

  const renderItem = React.useCallback<
    SectionListRenderItem<DataItem, SectionItem>
  >(({ item }) => {
    return (
      <TouchableOpacity
        onPress={() => {
          // @ts-ignore
          rootNavigation.navigate(item.key);
        }}
      >
        <View style={styles.item}>
          <Text style={styles.itemText}>{item.title}</Text>
          {/*{Platform.select({ ios: <ChevronIcon /> })}*/}
        </View>
      </TouchableOpacity>
    );
  }, []);

  const renderSectionHeader = React.useCallback(
    ({ section }: { section: SectionItem }) => {
      return (
        <View style={styles.sectionHeader}>
          <Text style={styles.sectionHeaderText}>{section.title}</Text>
        </View>
      );
    },
    [],
  );

  return (
    <SectionList
      style={styles.container}
      sections={sections}
      renderSectionHeader={renderSectionHeader}
      renderItem={renderItem}
    />
  );
};

type DataItem = { key: string; title: string };
type SectionItem = {
  title: string;
  data: DataItem[];
};

const sections: SectionItem[] = [
  {
    data: [
      { key: "Pie", title: "VictoryPie" },
      { key: "Chart", title: "VictoryChart" },
      { key: "Line", title: "VictoryLine" },
      { key: "Area", title: "VictoryArea" },
      { key: "Bar", title: "VictoryBar" },
      { key: "Histogram", title: "VictoryHistogram" },
      { key: "Scatter", title: "VictoryScatter" },
      { key: "BoxPlot", title: "VictoryBoxPlot" },
      { key: "ErrorBar", title: "VictoryErrorBar" },
      { key: "Voronoi", title: "VictoryVoronoi" },
      { key: "BrushLine", title: "VictoryBrushLine" },
    ],
    title: "Charts",
  },
  // {
  //   data: [
  //     { key: "ContainersView", title: "Built–in Containers" },
  //     { key: "CreateContainerView", title: "Custom Containers" }
  //   ],
  //   title: "Containers"
  // },
  {
    data: [
      { key: "Legends", title: "Legends" },
      { key: "Axis", title: "Axis" },
      { key: "PolarAxis", title: "VictoryPolarAxis" },
      // { key: "ErrorsTooltipsView", title: "Errors & Tooltips" }
    ],
    title: "Other",
  },
];


================================================
FILE: demo/rn/src/screens/error-bar-screen.tsx
================================================
import * as React from "react";
import { ScrollView, Text } from "react-native";
import { VictoryChart, VictoryErrorBar, VictoryTheme } from "victory-native";
import viewStyles from "../styles/view-styles";

export const ErrorBarScreen: React.FC = () => {
  return (
    <ScrollView style={viewStyles.container}>
      <VictoryChart domainPadding={15} theme={VictoryTheme.material}>
        <VictoryErrorBar
          data={data}
          errorX={(datum) => datum.error * datum.x}
          errorY={(datum) => datum.error * datum.y}
        />
      </VictoryChart>
    </ScrollView>
  );
};

const data = [
  { x: 15, y: 35000, error: 0.2 },
  { x: 20, y: 42000, error: 0.05 },
  { x: 25, y: 30000, error: 0.1 },
  { x: 30, y: 35000, error: 0.2 },
  { x: 35, y: 22000, error: 0.15 },
];


================================================
FILE: demo/rn/src/screens/histogram-screen.tsx
================================================
import * as React from "react";
import { ScrollView } from "react-native";
import { VictoryStack, VictoryHistogram } from "victory-native";
import viewStyles from "../styles/view-styles";

const randomDate = (start: Date, end: Date) => {
  return new Date(
    start.getTime() + Math.random() * (end.getTime() - start.getTime()),
  );
};
const getRandomDateData = () =>
  Array.from({ length: 100 }, () => ({
    x: randomDate(new Date(2016, 0, 1), new Date(2020, 5, 1)),
  }));
const getRandomData = () =>
  Array.from({ length: 100 }, () => ({
    x: Math.floor(Math.random() * 100),
  }));

const numericData = getRandomData();
const numericData2 = getRandomData();
const dateData = getRandomDateData();
const dateData2 = getRandomDateData();

export const HistogramScreen: React.FC = () => {
  return (
    <ScrollView style={viewStyles.container}>
      <VictoryHistogram
        data={numericData}
        style={{
          data: { stroke: "#833B61", strokeWidth: 3, fill: "#F67E7D" },
        }}
        cornerRadius={10}
      />

      <VictoryHistogram
        data={numericData}
        style={{
          data: { stroke: "#833B61", strokeWidth: 3, fill: "#F67E7D" },
        }}
        binSpacing={20}
      />

      <VictoryHistogram data={numericData2} bins={3} />

      <VictoryHistogram
        data={dateData}
        bins={[
          new Date(2016, 0, 1),
          new Date(2017, 0, 1),
          new Date(2018, 0, 1),
          new Date(2019, 0, 1),
          new Date(2020, 0, 1),
        ]}
      />

      <VictoryHistogram
        data={dateData2}
        style={{ data: { stroke: "#f67280", strokeWidth: 4, fill: "#355c7d" } }}
      />

      <VictoryStack colorScale="qualitative">
        <VictoryHistogram data={numericData} />
        <VictoryHistogram data={numericData2} />
      </VictoryStack>
    </ScrollView>
  );
};


================================================
FILE: demo/rn/src/screens/legends-screen.tsx
================================================
import * as React from "react";
import { ScrollView, Dimensions } from "react-native";
import { VictoryLegend } from "victory-native";
import Svg from "react-native-svg";
import viewStyles from "../styles/view-styles";

const legendData = [
  {
    name: "Series 1",
    symbol: {
      type: "circle",
      fill: "green",
    },
  },
  {
    name: "Long Series Name",
    symbol: {
      type: "triangleUp",
      fill: "blue",
    },
  },
  {
    name: "Series 3",
    symbol: {
      type: "diamond",
      fill: "pink",
    },
  },
  {
    name: "Series 4",
    symbol: {
      type: "plus",
    },
  },
  {
    name: "Series 5",
    symbol: {
      type: "star",
      fill: "red",
    },
    labels: {
      fill: "purple",
    },
  },
  {
    name: "Series 6",
    symbol: {
      type: "circle",
      fill: "orange",
    },
    labels: {
      fill: "blue",
    },
  },
];

const legendStyle = { border: { stroke: "black" } };

export const LegendsScreen: React.FC = () => {
  return (
    <ScrollView style={viewStyles.container}>
      <Svg width={Dimensions.get("window").width} height={300}>
        <VictoryLegend
          x={5}
          y={10}
          standalone={false}
          data={legendData}
          style={legendStyle}
        />
        <VictoryLegend
          x={5}
          y={200}
          data={legendData}
          standalone={false}
          itemsPerRow={3}
          style={legendStyle}
        />
      </Svg>
    </ScrollView>
  );
};


================================================
FILE: demo/rn/src/screens/line-screen.tsx
================================================
import * as React from "react";
import { ScrollView } from "react-native";
import { VictoryLine } from "victory-native";
import { getStyles, getYFunction } from "../data";
import viewStyles from "../styles/view-styles";

export const LineScreen: React.FC = () => {
  const [y, setY] = React.useState(getYFunction);
  const [styles, setStyles] = React.useState(getStyles());

  React.useEffect(() => {
    const updateDataHandle = setInterval(() => {
      setY(getYFunction);
      setStyles(getStyles());
    }, 3000);
    return () => {
      clearInterval(updateDataHandle);
    };
  }, []);

  return (
    <ScrollView style={viewStyles.container}>
      <VictoryLine />

      <VictoryLine
        data={[
          { x: 0, y: 1 },
          { x: 1, y: 3 },
          { x: 2, y: 2 },
          { x: 3, y: 4 },
          { x: 4, y: 3 },
          { x: 5, y: 5 },
        ]}
      />

      <VictoryLine
        data={[
          { amount: 1, yield: 1, error: 0.5 },
          { amount: 2, yield: 2, error: 1.1 },
          { amount: 3, yield: 3, error: 0 },
          { amount: 4, yield: 2, error: 0.1 },
          { amount: 5, yield: 1, error: 1.5 },
        ]}
        x={"amount"}
        y={(data) => data.yield + data.error}
      />

      <VictoryLine y={(data) => Math.sin(2 * Math.PI * data.x)} />

      <VictoryLine
        height={300}
        domain={[0, 5]}
        padding={75}
        data={[
          { x: 0, y: 1 },
          { x: 1, y: 3 },
          { x: 2, y: 2 },
          { x: 3, y: 4 },
          { x: 4, y: 3 },
          { x: 5, y: 5 },
        ]}
        interpolation="cardinal"
        labels={() => "LINE"}
        style={{
          data: {
            stroke: "#822722",
            strokeWidth: 3,
          },
          labels: { fontSize: 12 },
        }}
      />

      <VictoryLine
        width={300}
        style={{
          data: { stroke: "blue", strokeWidth: 4 },
        }}
        data={[
          { x: 0, y: 1 },
          { x: 1, y: 3 },
          { x: 2, y: 2 },
          { x: 3, y: 4 },
          { x: 4, y: 3 },
          { x: 5, y: 5 },
        ]}
      />

      <VictoryLine
        style={{
          data: { stroke: "red", strokeWidth: 9 },
        }}
        interpolation={"linear"}
        data={[
          { x: 0, y: 1 },
          { x: 1, y: 3 },
          { x: 2, y: 2 },
          { x: 3, y: 4 },
          { x: 4, y: 3 },
          { x: 5, y: 5 },
        ]}
      />

      <VictoryLine
        style={{ data: styles }}
        interpolation="basis"
        animate={{ duration: 1500 }}
        y={y}
      />
    </ScrollView>
  );
};


================================================
FILE: demo/rn/src/screens/pie-screen.tsx
================================================
import * as React from "react";
import { ScrollView } from "react-native";
import { VictoryPie } from "victory-native";
import viewStyles from "../styles/view-styles";
import { generateRandomData } from "../data/";

export const PieScreen: React.FC = () => {
  const [data, setData] = React.useState(generateRandomData());

  React.useEffect(() => {
    const updateDataHandle = setInterval(() => {
      setData(generateRandomData());
    }, 3000);
    return () => {
      clearInterval(updateDataHandle);
    };
  }, []);

  return (
    <ScrollView style={viewStyles.container}>
      <VictoryPie
        innerRadius={75}
        labelRadius={125}
        style={{ labels: { fontSize: 20 } }}
        data={data}
        animate={{ duration: 1500 }}
      />

      <VictoryPie
        style={{
          data: {
            stroke: "none",
            opacity: 0.3,
          },
        }}
      />
      <VictoryPie innerRadius={90} />
      <VictoryPie endAngle={90} startAngle={-90} />
      <VictoryPie
        endAngle={90}
        innerRadius={90}
        padAngle={5}
        startAngle={-90}
      />
      <VictoryPie
        style={{
          labels: {
            fill: "white",
            stroke: "none",
            fontSize: 15,
            fontWeight: "bold",
          },
        }}
        data={[
          { x: "<5", y: 6279 },
          { x: "5-13", y: 9182 },
          { x: "14-17", y: 5511 },
          { x: "18-24", y: 7164 },
          { x: "25-44", y: 6716 },
          { x: "45-64", y: 4263 },
          { x: "≥65", y: 7502 },
        ]}
        innerRadius={70}
        labelRadius={100}
        colorScale={[
          "#D85F49",
          "#F66D3B",
          "#D92E1D",
          "#D73C4C",
          "#FFAF59",
          "#E28300",
          "#F6A57F",
        ]}
      />
      <VictoryPie
        style={{
          data: {
            stroke: ({ datum }) => (datum.y > 75 ? "black" : "none"),
            opacity: ({ datum }) => (datum.y > 75 ? 1 : 0.4),
          },
        }}
        data={[
          { x: "Cat", y: 62 },
          { x: "Dog", y: 91 },
          { x: "Fish", y: 55 },
          { x: "Bird", y: 55 },
        ]}
      />
    </ScrollView>
  );
};


================================================
FILE: demo/rn/src/screens/polar-axis-screen.tsx
================================================
import * as React from "react";
import { ScrollView } from "react-native";
import viewStyles from "../styles/view-styles";
import {
  VictoryBar,
  VictoryChart,
  VictoryPolarAxis,
  VictoryTheme,
} from "victory-native";

export const PolarAxisScreen: React.FC = () => {
  return (
    <ScrollView style={viewStyles.container}>
      <VictoryChart polar theme={VictoryTheme.material}>
        {["cat", "dog", "bird", "dog", "frog", "fish"].map((d, i) => {
          return (
            <VictoryPolarAxis
              dependentAxis
              key={i}
              label={d}
              labelPlacement="perpendicular"
              style={{ tickLabels: { fill: "none" } }}
              axisValue={d}
            />
          );
        })}
        <VictoryBar
          style={{ data: { fill: "tomato", width: 25 } }}
          data={[
            { x: "cat", y: 10 },
            { x: "dog", y: 25 },
            { x: "bird", y: 40 },
            { x: "frog", y: 50 },
            { x: "fish", y: 50 },
          ]}
        />
      </VictoryChart>
    </ScrollView>
  );
};


================================================
FILE: demo/rn/src/screens/root-navigator.tsx
================================================
import * as React from "react";
import { RootStackNavigatorParams } from "../navigation-config";
import { createNativeStackNavigator } from "@react-navigation/native-stack";
import { BarScreen } from "./bar-screen";
import { ComponentsScreen } from "./components-screen";
import { PieScreen } from "./pie-screen";
import { ChartScreen } from "./chart-screen";
import { LineScreen } from "./line-screen";
import { AreaScreen } from "./area-screen";
import { HistogramScreen } from "./histogram-screen";
import { LegendsScreen } from "./legends-screen";
import { AxisScreen } from "./axis-screen";
import { ScatterScreen } from "./scatter-screen";
import { BoxPlotScreen } from "./box-plot-screen";
import { ErrorBarScreen } from "./error-bar-screen";
import { PolarAxisScreen } from "./polar-axis-screen";
import { VoronoiScreen } from "./voronoi-screen";
import { BrushLineScreen } from "./brush-line-screen";

export const RootNavigator: React.FC = () => {
  return (
    <RootStack.Navigator>
      <RootStack.Screen name="Components" component={ComponentsScreen} />
      <RootStack.Screen
        name="Pie"
        component={PieScreen}
        options={{ title: "VictoryPie" }}
      />
      <RootStack.Screen
        name="Chart"
        component={ChartScreen}
        options={{ title: "VictoryChart" }}
      />
      <RootStack.Screen
        name="Line"
        component={LineScreen}
        options={{ title: "VictoryLine" }}
      />
      <RootStack.Screen
        name="Area"
        component={AreaScreen}
        options={{ title: "VictoryArea" }}
      />
      <RootStack.Screen
        name="Bar"
        component={BarScreen}
        options={{ title: "VictoryBar" }}
      />
      <RootStack.Screen
        name="Histogram"
        component={HistogramScreen}
        options={{ title: "VictoryHistogram" }}
      />
      <RootStack.Screen
        name="Scatter"
        component={ScatterScreen}
        options={{ title: "VictoryScatter" }}
      />
      <RootStack.Screen
        name="BoxPlot"
        component={BoxPlotScreen}
        options={{ title: "VictoryBoxPlot" }}
      />
      <RootStack.Screen
        name="ErrorBar"
        component={ErrorBarScreen}
        options={{ title: "VictoryErrorBar" }}
      />
      <RootStack.Screen
        name="Voronoi"
        component={VoronoiScreen}
        options={{ title: "VictoryVoronoi" }}
      />
      <RootStack.Screen
        name="BrushLine"
        component={BrushLineScreen}
        options={{ title: "VictoryBrushLine" }}
      />

      {/* Other */}
      <RootStack.Screen
        name="Legends"
        component={LegendsScreen}
        options={{ title: "Legends" }}
      />
      <RootStack.Screen
        name="Axis"
        component={AxisScreen}
        options={{ title: "Axis" }}
      />
      <RootStack.Screen
        name="PolarAxis"
        component={PolarAxisScreen}
        options={{ title: "VictoryPolarAxis" }}
      />
    </RootStack.Navigator>
  );
};

const RootStack = createNativeStackNavigator<RootStackNavigatorParams>();


================================================
FILE: demo/rn/src/screens/scatter-screen.tsx
================================================
import * as React from "react";
import { ScrollView, View } from "react-native";
import { VictoryScatter } from "victory-native";
import viewStyles from "../styles/view-styles";
import { generateRandomData } from "../data";

export const ScatterScreen: React.FC = () => {
  const [data, setData] = React.useState(generateRandomData());

  React.useEffect(() => {
    const updateDataHandle = setInterval(() => {
      setData(generateRandomData());
    }, 3000);
    return () => {
      clearInterval(updateDataHandle);
    };
  }, []);

  return (
    <ScrollView style={viewStyles.container}>
      <View pointerEvents="none">
        <VictoryScatter />

        <VictoryScatter data={data} animate={{ duration: 1500 }} />

        <VictoryScatter y={(d) => Math.sin(2 * Math.PI * d.x)} />

        <VictoryScatter
          data={[
            { x: 1, y: 3 },
            { x: 2, y: 5 },
            { x: 3, y: 4 },
            { x: 4, y: 2 },
            { x: 5, y: 5 },
          ]}
          size={8}
          symbol="star"
          style={{
            data: {
              fill: "gold",
              stroke: "orange",
              strokeWidth: 3,
            },
          }}
        />

        <VictoryScatter
          style={{
            data: {
              fill: ({ datum }) => (datum.y > 0 ? "red" : "blue"),
            },
          }}
          symbol={({ datum }) => (datum.y > 0 ? "triangleUp" : "triangleDown")}
          y={(d) => Math.sin(2 * Math.PI * d.x)}
          samples={25}
        />
      </View>
    </ScrollView>
  );
};


================================================
FILE: demo/rn/src/screens/voronoi-screen.tsx
================================================
import * as React from "react";
import { ScrollView } from "react-native";
import viewStyles from "../styles/view-styles";
import { VictoryTheme, VictoryVoronoi, VictoryChart } from "victory-native";

export const VoronoiScreen: React.FC = () => {
  return (
    <ScrollView style={viewStyles.container}>
      <VictoryChart
        theme={VictoryTheme.material}
        domain={{ x: [0, 5], y: [0, 7] }}
      >
        <VictoryVoronoi
          style={{ data: { stroke: "#c43a31", strokeWidth: 2 } }}
          data={[
            { x: 1, y: 2 },
            { x: 2, y: 3 },
            { x: 3, y: 5 },
            { x: 4, y: 4 },
            { x: 5, y: 7 },
          ]}
        />
      </VictoryChart>
    </ScrollView>
  );
};


================================================
FILE: demo/rn/src/styles/container-view-styles.ts
================================================
import { Platform, StyleSheet } from "react-native";

export default StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: "#fff",
  },
  sectionHeader: {
    paddingHorizontal: 15,
    paddingVertical: 10,
    backgroundColor: "#eee",
    borderBottomColor: "#ccc",
    borderBottomWidth: StyleSheet.hairlineWidth,
  },
  sectionHeaderText: {
    fontWeight: "bold",
  },
  item: {
    backgroundColor: "#fff",
    borderBottomColor: "#ccc",
    borderBottomWidth: StyleSheet.hairlineWidth,
    justifyContent: "space-between",
    alignItems: "center",
    flexDirection: "row",
    ...Platform.select({
      ios: { marginLeft: 15, paddingRight: 15, paddingVertical: 15 },
      android: { padding: 15 },
    }),
  },
  itemText: {
    fontSize: 16,
  },
});


================================================
FILE: demo/rn/src/styles/view-styles.ts
================================================
import { Platform, StyleSheet } from "react-native";

export default StyleSheet.create({
  container: {
    flex: 1,
  },
  monospace: {
    fontFamily: Platform.OS === "ios" ? "Menlo" : "monospace",
  },
  contentContainer: {
    alignItems: "center",
  },
  header: {
    fontWeight: "600",
    padding: 15,
    fontSize: 18,
  },
});


================================================
FILE: demo/rn/tsconfig.json
================================================
{
  "extends": "expo/tsconfig.base",
  "compilerOptions": {
    "strict": true
  }
}


================================================
FILE: eslint.config.mjs
================================================
import eslint from "@eslint/js";
import prettier from "eslint-plugin-prettier/recommended";
import pluginJest from "eslint-plugin-jest";
import pluginPromise from "eslint-plugin-promise";
import react from "eslint-plugin-react";
import reactHooks from "eslint-plugin-react-hooks";
import tseslint from "typescript-eslint";
import globals from "globals";

export default tseslint.config(
  // enforce formatting
  prettier,

  // global ignores
  {
    ignores: [
      "**/*.d.ts",
      "**/.wireit/",
      "**/.docusaurus/",
      "**/artifacts/",
      "**/coverage/",
      "**/demo/rn/",
      "**/dist/",
      "**/build/",
      "**/es/",
      "**/lib/",
      "**/lib-vendor/",
      "**/public/",
      "**/storybook-static/",
      "**/tmp/",
      "website/src/theme/",
      "website/src/plugins/",
    ],
  },

  // Typescript and React Rules
  {
    files: ["**/*.{js,jsx,mjs,cjs,ts,tsx}"],
    extends: [
      eslint.configs.recommended,
      ...tseslint.configs.recommended,
      react.configs.flat.recommended,
      pluginPromise.configs["flat/recommended"],
    ],
    plugins: {
      react,
      "react-hooks": reactHooks,
    },
    settings: {
      react: {
        version: "detect",
      },
    },
    languageOptions: {
      parserOptions: {
        ecmaFeatures: {
          jsx: true,
        },
      },
      globals: {
        ...globals.browser,
        ...globals.node,
      },
    },
    rules: {
      // eslint overrides
      eqeqeq: "error",
      "max-depth": ["error", 4],
      "max-nested-callbacks": ["error", 3],
      "max-params": ["error", 3],
      "no-console": "error",
      "no-magic-numbers": [
        "error",
        { ignore: [-1, 0, 0.5, 1, 2, 90, 180, 270, 360] },
      ],
      "no-nested-ternary": "error",
      "no-prototype-builtins": "off",
      "no-param-reassign": "error",
      "no-restricted-imports": [
        "error",
        {
          paths: [
            {
              name: "lodash",
              message:
                "Be sure to import specific lodash functions, not the entire library!",
            },
          ],
          patterns: [
            {
              group: ["victory*/src", "victory*/src/**"],
              message:
                "Be sure to import directly from Victory packages, not from /src folders!",
            },
          ],
        },
      ],
      "no-shadow": "error",
      "no-undef": "error",
      "no-useless-escape": "off",
      "prefer-arrow-callback": "error",

      // react overrides
      "react/display-name": "off",
      "react/prop-types": "off",
      "react/no-multi-comp": "error",
      ...reactHooks.configs.recommended.rules,

      // @typescript-eslint overrides
      "@typescript-eslint/no-explicit-any": "off",
      "@typescript-eslint/no-unsafe-declaration-merging": "off",
    },
  },

  // Overrides for JS files
  {
    files: ["**/*.js"],
    rules: {
      "@typescript-eslint/no-require-imports": "off",
    },
  },

  // Overrides for Test files
  {
    files: ["**/*.test.*", "**/test/**/*", "**/jest-native-setup.tsx"],
    plugins: { jest: pluginJest },
    languageOptions: {
      globals: pluginJest.environments.globals.globals,
    },
    rules: {
      "react/sort-comp": "off",
      "no-magic-numbers": "off",
      "max-statements": "off",
      "import/no-unresolved": "off",
      "no-undef": "off",
      "max-nested-callbacks": "off",
    },
  },

  // Overrides for Storybook
  {
    files: ["**/stories/**/*.ts", "**/stories/**/*.stories.tsx"],
    rules: {
      "no-magic-numbers": "off",
    },
  },
);


================================================
FILE: package-scripts.js
================================================
/**
 * We generally use `nps` for scripts that we:
 * 1. define at the root of the monorepo
 * 2. that are meant to execute _within_ a workspace
 *
 * ... or ...
 *
 * - That could use a little JS magic that we don't want to write a full
 *   node script for 😂
 *
 * For more cases, if you have an actual root task, define it in root
 * `package.json:scripts`.
 */

// For publishing, use the core package's version.
const coreVersion = require("./packages/victory-core/package.json").version;
if (!coreVersion) {
  throw new Error("Unable to read core version");
}
const coreTag = `v${coreVersion}`;

module.exports = {
  scripts: {
    // Root tasks.
    // Try to find an existing tag (from previous attempts, etc.), and if not, create one.
    "git:tag": `git show-ref ${coreTag} || git tag -a ${coreTag} -m \"Version ${coreVersion}\"`,

    // Build.
    // - Libraries
    "build:lib:esm":
      "cross-env BABEL_ENV=es babel src --out-dir es --config-file ../../.babelrc.build.js --extensions .tsx,.ts,.jsx,.js",
    "build:lib:cjs":
      "cross-env BABEL_ENV=commonjs babel src --out-dir lib --config-file ../../.babelrc.build.js --extensions .tsx,.ts,.jsx,.js",
    // - UMD distributions
    // TODO(2375): Add / verify caching
    // https://github.com/FormidableLabs/victory/issues/2375
    "build:dist:dev":
      "webpack --bail --config ../../config/webpack/webpack.config.dev.js",
    "build:dist:min":
      "webpack --bail --config ../../config/webpack/webpack.config.js",

    // - TypeScript
    // TODO(2375): Can we cache / incremental?
    // https://github.com/FormidableLabs/victory/issues/2375
    // Check for errors (includes test files):
    "types:pkg:check": "tsc --pretty --noEmit",
    // To create types, we must do the following:
    // 1. Copy all *.d.ts files to the es folder
    // 2. Compile all *.ts files to the es folder
    // 3. Copy all output from the es folder to the lib folder
    "types:pkg:create":
      "nps types:pkg:copy types:pkg:compile types:pkg:cjs-copy",
    "types:pkg:copy": 'cpx "src/**/*.d.ts" es',
    "types:pkg:compile":
      "tsc --pretty -p ./tsconfig.build.json --emitDeclarationOnly --rootDir src --outDir es || nps types:warning",
    "types:warning":
      'echo "Warning: found TypeScript errors during build. Continuing anyway!"',
    "types:pkg:cjs-copy": 'cpx "es/**/*{.d.ts,.d.ts.map}" lib',
  },
};


================================================
FILE: package.json
================================================
{
  "name": "victory-monorepo",
  "version": "0.0.0",
  "description": "Data viz for React",
  "keywords": [
    "data visualization",
    "React",
    "d3",
    "charting"
  ],
  "repository": {
    "type": "git",
    "url": "https://github.com/formidablelabs/victory.git"
  },
  "private": true,
  "author": "Formidable",
  "license": "MIT",
  "bugs": {
    "url": "https://github.com/formidablelabs/victory/issues"
  },
  "homepage": "https://commerce.nearform.com/open-source/victory",
  "packageManager": "pnpm@9.13.0",
  "dependencies": {
    "clsx": "^2.1.1"
  },
  "devDependencies": {
    "@babel/cli": "7.23.9",
    "@babel/core": "7.23.9",
    "@babel/plugin-transform-export-namespace-from": "7.23.4",
    "@babel/plugin-transform-modules-commonjs": "7.23.3",
    "@babel/preset-env": "7.23.9",
    "@babel/preset-react": "7.23.3",
    "@babel/preset-typescript": "7.23.3",
    "@changesets/cli": "^2.24.1",
    "@chromatic-com/storybook": "^3.2.2",
    "@eslint/js": "^9.14.0",
    "@storybook/addon-essentials": "^8.4.1",
    "@storybook/addon-storysource": "^8.4.1",
    "@storybook/addon-webpack5-compiler-swc": "1.0.5",
    "@storybook/react": "^8.4.1",
    "@storybook/react-webpack5": "^8.4.1",
    "@svitejs/changesets-changelog-github-compact": "^0.1.1",
    "@testing-library/dom": "^10.4.0",
    "@testing-library/jest-dom": "^6.6.3",
    "@testing-library/react": "^16.0.1",
    "@types/fs-extra": "^11.0.3",
    "@types/jest": "^29.5.12",
    "@types/lodash": "^4.14.149",
    "@types/node": "^18.6.1",
    "@types/prop-types": "^15.7.5",
    "@types/react": "^18.0.15",
    "@types/react-dom": "^18.0.6",
    "babel-jest": "29.7.0",
    "babel-loader": "9.1.3",
    "babel-plugin-module-resolver": "5.0.0",
    "babel-preset-react-native": "4.0.1",
    "chromatic": "^11.16.3",
    "concurrently": "^9.0.1",
    "cpx2": "^4.2.0",
    "cross-env": "^7.0.3",
    "eslint": "^9.14.0",
    "eslint-config-prettier": "^9.1.0",
    "eslint-plugin-jest": "^28.9.0",
    "eslint-plugin-prettier": "^5.2.1",
    "eslint-plugin-promise": "^7.1.0",
    "eslint-plugin-react": "^7.37.2",
    "eslint-plugin-react-hooks": "^5.0.0",
    "fork-ts-checker-webpack-plugin": "^8.0.0",
    "fs-extra": "^10.0.0",
    "glob": "8.0.3",
    "globals": "^15.12.0",
    "immutable": "^3.8.2",
    "jest": "^29.7.0",
    "jest-environment-jsdom": "^29.7.0",
    "lodash": "^4.17.19",
    "lodash-webpack-plugin": "^0.11.6",
    "mdast-util-to-string": "^1.0.6",
    "metro-react-native-babel-preset": "0.77.0",
    "nps": "^5.9.0",
    "octokit": "^3.1.1",
    "prettier": "^3.3.3",
    "prop-types": "^15.8.1",
    "react": "^18.1.0",
    "react-dom": "^18.1.0",
    "react-hot-loader": "4.13.0",
    "react-icons": "^5.3.0",
    "react-test-renderer": "^18.1.0",
    "remark-parse": "^7.0.1",
    "remark-stringify": "^7.0.3",
    "rimraf": "^3.0.2",
    "seedrandom": "^3.0.5",
    "storybook": "^8.4.1",
    "ts-jest": "^29.2.5",
    "ts-loader": "^9.3.0",
    "ts-node": "^10.9.1",
    "typescript": "^5.7.2",
    "typescript-eslint": "^8.13.0",
    "unified": "^8.3.2",
    "victory-vendor": "*",
    "victory-voronoi": "*",
    "webpack": "^5.74.0",
    "webpack-cli": "^4.9.2",
    "webpack-dev-server": "^4.9.0",
    "wireit": "^0.7.1"
  },
  "pnpm": {
    "overrides": {
      "@types/eslint": "8.4.3"
    },
    "patchedDependencies": {
      "@changesets/cli@2.24.1": "patches/@changesets__cli@2.24.1.patch"
    }
  },
  "browserslist": [
    "> 0.5%",
    "last 2 versions",
    "Firefox ESR",
    "not dead"
  ],
  "scripts": {
    "version": "pnpm changeset version && pnpm install --no-frozen-lockfile",
    "publish": "nps git:tag && pnpm changeset publish --no-git-tag",
    "changeset": "changeset",
    "start": "webpack serve --config ./config/webpack/demo/webpack.config.dev.js --static demo/ts --entry ./demo/ts/app",
    "start:docs": "wireit",
    "check": "wireit",
    "check:debug": "cross-env WIREIT_PARALLEL=1 pnpm check",
    "clean:build": "rimraf coverage \"packages/*/{dist,es,lib}\"",
    "clean:cache": "wireit",
    "clean:cache:lint": "rimraf .eslintcache \"{demo,packages}/*/.eslintcache\"",
    "clean:cache:wireit": "rimraf .wireit \"{demo,packages}/*/.wireit\"",
    "clean:cache:modules": "rimraf node_modules/.cache \"{demo,packages}/*/node_modules/.cache\"",
    "build": "wireit",
    "build:lib:esm": "wireit",
    "build:typescript": "wireit",
    "build:docs": "wireit",
    "format": "wireit",
    "format:fix": "wireit",
    "lint": "wireit",
    "lint:fix": "wireit",
    "lint:root": "wireit",
    "lint:root:fix": "wireit",
    "lint:pkgs": "wireit",
    "lint:pkgs:fix": "wireit",
    "jest": "wireit",
    "jest:root": "wireit",
    "jest:pkgs": "wireit",
    "types:check": "wireit",
    "types:create": "wireit",
    "build-storybook": "storybook build",
    "storybook:typecheck": "tsc -p tsconfig.storybook.json",
    "storybook:build": "wireit",
    "storybook:dev": "concurrently --raw \"pnpm:build:lib:esm --watch\" \"pnpx storybook dev -p 6006\"",
    "storybook:start": "storybook dev -p 6006 --no-open",
    "sync": "wireit",
    "sync:pkgs": "node ./scripts/sync-pkgs-wireit.js",
    "sync:tsconfig": "pnpm -r --filter !victory-core  --filter !victory-vendor --filter !victory-native exec -- cpx ../victory-core/tsconfig.* .",
    "release-notes": "ts-node ./scripts/release.ts"
  },
  "wireit": {
    "clean:cache": {
      "dependencies": [
        "clean:cache:wireit",
        "clean:cache:lint",
        "clean:cache:modules"
      ]
    },
    "check": {
      "dependencies": [
        "format",
        "lint",
        "jest",
        "types:check"
      ]
    },
    "build": {
      "dependencies": [
        "./packages/victory-native:build",
        "./packages/victory-vendor:build",
        "./packages/victory:build",
        "./packages/victory-area:build",
        "./packages/victory-axis:build",
        "./packages/victory-bar:build",
        "./packages/victory-box-plot:build",
        "./packages/victory-brush-container:build",
        "./packages/victory-brush-line:build",
        "./packages/victory-candlestick:build",
        "./packages/victory-canvas:build",
        "./packages/victory-chart:build",
        "./packages/victory-core:build",
        "./packages/victory-create-container:build",
        "./packages/victory-cursor-container:build",
        "./packages/victory-errorbar:build",
        "./packages/victory-group:build",
        "./packages/victory-histogram:build",
        "./packages/victory-legend:build",
        "./packages/victory-line:build",
        "./packages/victory-pie:build",
        "./packages/victory-polar-axis:build",
        "./packages/victory-scatter:build",
        "./packages/victory-selection-container:build",
        "./packages/victory-shared-events:build",
        "./packages/victory-stack:build",
        "./packages/victory-tooltip:build",
        "./packages/victory-voronoi:build",
        "./packages/victory-voronoi-container:build",
        "./packages/victory-zoom-container:build"
      ]
    },
    "build:lib:esm": {
      "dependencies": [
        "./packages/victory-native:build:lib:esm",
        "./packages/victory-vendor:build:lib:esm",
        "./packages/victory:build:lib:esm",
        "./packages/victory-area:build:lib:esm",
        "./packages/victory-axis:build:lib:esm",
        "./packages/victory-bar:build:lib:esm",
        "./packages/victory-box-plot:build:lib:esm",
        "./packages/victory-brush-container:build:lib:esm",
        "./packages/victory-brush-line:build:lib:esm",
        "./packages/victory-candlestick:build:lib:esm",
        "./packages/victory-canvas:build:lib:esm",
        "./packages/victory-chart:build:lib:esm",
        "./packages/victory-core:build:lib:esm",
        "./packages/victory-create-container:build:lib:esm",
        "./packages/victory-cursor-container:build:lib:esm",
        "./packages/victory-errorbar:build:lib:esm",
        "./packages/victory-group:build:lib:esm",
        "./packages/victory-histogram:build:lib:esm",
        "./packages/victory-legend:build:lib:esm",
        "./packages/victory-line:build:lib:esm",
        "./packages/victory-pie:build:lib:esm",
        "./packages/victory-polar-axis:build:lib:esm",
        "./packages/victory-scatter:build:lib:esm",
        "./packages/victory-selection-container:build:lib:esm",
        "./packages/victory-shared-events:build:lib:esm",
        "./packages/victory-stack:build:lib:esm",
        "./packages/victory-tooltip:build:lib:esm",
        "./packages/victory-voronoi:build:lib:esm",
        "./packages/victory-voronoi-container:build:lib:esm",
        "./packages/victory-zoom-container:build:lib:esm"
      ]
    },
    "build:typescript": {
      "dependencies": [
        "build:lib:esm",
        "types:create"
      ]
    },
    "build:docs": {
      "command": "pnpm run --filter victory-docs build",
      "dependencies": [
        "build:lib:esm"
      ]
    },
    "format": {
      "command": "prettier --config .prettierrc.json --ignore-path .prettierignore --check \"./**/*.{js,jsx,json,ts,tsx}\""
    },
    "format:fix": {
      "command": "prettier --config .prettierrc.json --ignore-path .prettierignore --write \"./**/*.{js,jsx,json,ts,tsx}\""
    },
    "lint": {
      "dependencies": [
        "lint:root",
        "lint:pkgs"
      ]
    },
    "lint:fix": {
      "dependencies": [
        "lint:root:fix",
        "lint:pkgs:fix"
      ]
    },
    "lint:root": {
      "command": "eslint --color *.js scripts config stories test website",
      "files": [
        "*.js",
        "scripts",
        "config",
        "stories",
        "test",
        "website",
        "!**/node_modules/**"
      ],
      "output": [],
      "packageLocks": [
        "pnpm-lock.yaml"
      ]
    },
    "lint:root:fix": {
      "command": "eslint --color --fix *.js scripts config stories test website",
      "files": [
        "*.js",
        "scripts",
        "config",
        "stories",
        "test",
        "website",
        "!**/node_modules/**"
      ],
      "output": [],
      "packageLocks": [
        "pnpm-lock.yaml"
      ]
    },
    "lint:pkgs": {
      "command": "eslint --color packages",
      "dependencies": [
        "build"
      ]
    },
    "lint:pkgs:fix": {
      "command": "eslint --color --fix packages",
      "dependencies": [
        "build"
      ]
    },
    "jest": {
      "dependencies": [
        "jest:pkgs"
      ]
    },
    "jest:pkgs": {
      "dependencies": [
        "./packages/victory-native:jest",
        "./packages/victory-vendor:jest",
        "./packages/victory:jest",
        "./packages/victory-area:jest",
        "./packages/victory-axis:jest",
        "./packages/victory-bar:jest",
        "./packages/victory-box-plot:jest",
        "./packages/victory-brush-container:jest",
        "./packages/victory-brush-line:jest",
        "./packages/victory-candlestick:jest",
        "./packages/victory-canvas:jest",
        "./packages/victory-chart:jest",
        "./packages/victory-core:jest",
        "./packages/victory-create-container:jest",
        "./packages/victory-cursor-container:jest",
        "./packages/victory-errorbar:jest",
        "./packages/victory-group:jest",
        "./packages/victory-histogram:jest",
        "./packages/victory-legend:jest",
        "./packages/victory-line:jest",
        "./packages/victory-pie:jest",
        "./packages/victory-polar-axis:jest",
        "./packages/victory-scatter:jest",
        "./packages/victory-selection-container:jest",
        "./packages/victory-shared-events:jest",
        "./packages/victory-stack:jest",
        "./packages/victory-tooltip:jest",
        "./packages/victory-voronoi:jest",
        "./packages/victory-voronoi-container:jest",
        "./packages/victory-zoom-container:jest"
      ]
    },
    "storybook:build": {
      "command": "storybook build",
      "files": [
        ".storybook",
        "stories",
        "packages/victory*/src/**/*.stories.*"
      ],
      "output": [
        "storybook-static"
      ],
      "dependencies": [
        "build:lib:esm"
      ],
      "packageLocks": [
        "pnpm-lock.yaml"
      ]
    },
    "sync": {
      "dependencies": [
        "sync:pkgs",
        "sync:tsconfig"
      ]
    },
    "types:check": {
      "dependencies": [
        "./packages/victory-native:types:check",
        "./packages/victory-vendor:types:check",
        "./packages/victory:types:check",
        "./packages/victory-area:types:check",
        "./packages/victory-axis:types:check",
        "./packages/victory-bar:types:check",
        "./packages/victory-box-plot:types:check",
        "./packages/victory-brush-container:types:check",
        "./packages/victory-brush-line:types:check",
        "./packages/victory-candlestick:types:check",
        "./packages/victory-canvas:types:check",
        "./packages/victory-chart:types:check",
        "./packages/victory-core:types:check",
        "./packages/victory-create-container:types:check",
        "./packages/victory-cursor-container:types:check",
        "./packages/victory-errorbar:types:check",
        "./packages/victory-group:types:check",
        "./packages/victory-histogram:types:check",
        "./packages/victory-legend:types:check",
        "./packages/victory-line:types:check",
        "./packages/victory-pie:types:check",
        "./packages/victory-polar-axis:types:check",
        "./packages/victory-scatter:types:check",
        "./packages/victory-selection-container:types:check",
        "./packages/victory-shared-events:types:check",
        "./packages/victory-stack:types:check",
        "./packages/victory-tooltip:types:check",
        "./packages/victory-voronoi:types:check",
        "./packages/victory-voronoi-container:types:check",
        "./packages/victory-zoom-container:types:check"
      ]
    },
    "types:create": {
      "dependencies": [
        "./packages/victory-native:types:create",
        "./packages/victory-vendor:types:create",
        "./packages/victory:types:create",
        "./packages/victory-area:types:create",
        "./packages/victory-axis:types:create",
        "./packages/victory-bar:types:create",
        "./packages/victory-box-plot:types:create",
        "./packages/victory-brush-container:types:create",
        "./packages/victory-brush-line:types:create",
        "./packages/victory-candlestick:types:create",
        "./packages/victory-canvas:types:create",
        "./packages/victory-chart:types:create",
        "./packages/victory-core:types:create",
        "./packages/victory-create-container:types:create",
        "./packages/victory-cursor-container:types:create",
        "./packages/victory-errorbar:types:create",
        "./packages/victory-group:types:create",
        "./packages/victory-histogram:types:create",
        "./packages/victory-legend:types:create",
        "./packages/victory-line:types:create",
        "./packages/victory-pie:types:create",
        "./packages/victory-polar-axis:types:create",
        "./packages/victory-scatter:types:create",
        "./packages/victory-selection-container:types:create",
        "./packages/victory-shared-events:types:create",
        "./packages/victory-stack:types:create",
        "./packages/victory-tooltip:types:create",
        "./packages/victory-voronoi:types:create",
        "./packages/victory-voronoi-container:types:create",
        "./packages/victory-zoom-container:types:create"
      ]
    },
    "start:docs": {
      "command": "pnpm run --filter victory-docs start",
      "dependencies": [
        "build:lib:esm"
      ]
    },
    "engines": {
      "node": ">=18.0.0"
    }
  }
}


================================================
FILE: packages/victory/.npmignore
================================================
/*
!/dist
!/es
!/lib
!/src
!LICENSE.txt
!CHANGELOG.md
!README.md
!package.json
*.map
**/*.test.*


================================================
FILE: packages/victory/CHANGELOG.md
================================================
# victory

## 37.3.6

## 37.3.5

## 37.3.4

## 37.3.3

## 37.3.2

## 37.3.1

## 37.3.0

## 37.2.0

## 37.1.2

### Patch Changes

- Fix victory-native container styles ([`eae3fe5dd`](https://github.com/FormidableLabs/victory/commit/eae3fe5dde175e68e146576655cb2e8054ad6456))

## 37.1.1

## 37.1.0

### Minor Changes

- Refactor containers and portal to function components ([#2799](https://github.com/FormidableLabs/victory/pull/2799))

* Pin all internal victory package versions ([#2876](https://github.com/FormidableLabs/victory/pull/2876))

## 37.0.2

## 37.0.1

## 37.0.0

### Major Changes

- Upgrade babel dependencies and build target to modern browsers ([#2804](https://github.com/FormidableLabs/victory/pull/2804))

## 36.9.2

## 36.9.1

## 36.9.0

### Minor Changes

- Remove prop-types definitions and dependency ([#2758](https://github.com/FormidableLabs/victory/pull/2758))

## 36.8.6

### Patch Changes

- Update victory package.json source to the correct index file ([#2765](https://github.com/FormidableLabs/victory/pull/2765))

## 36.8.5

### Patch Changes

- Replace instances of lodash.assign with Object.assign ([#2757](https://github.com/FormidableLabs/victory/pull/2757))

## 36.8.4

## 36.8.3

## 36.8.2

## 36.8.1

## 36.8.0

## 36.7.0

### Patch Changes

- Fix Date equality in axis ([#2642](https://github.com/FormidableLabs/victory/pull/2642))

## 36.6.12

### Patch Changes

- Add aria-hidden flag to svg for textsize util to fix accessibility issue ([#2661](https://github.com/FormidableLabs/victory/pull/2661))

## 36.6.11

## 36.6.10

### Patch Changes

- Setup NPM Provenance ([#2590](https://github.com/FormidableLabs/victory/pull/2590))

## 36.6.9

### Patch Changes

- Setup NPM Provenance ([#2587](https://github.com/FormidableLabs/victory/pull/2587))

* Setup NPM Provenance ([#2587](https://github.com/FormidableLabs/victory/pull/2587))

## 36.6.8

### Patch Changes

- Updated dependencies [[`c5b4f660c`](https://github.com/FormidableLabs/victory/commit/c5b4f660cb91d8d1979d216b846a44f0c5030ec1), [`1da86d186`](https://github.com/FormidableLabs/victory/commit/1da86d18615bf75db35cfc55cc8e3d5c0b5772b6)]:
  - victory-zoom-container@36.6.8
  - victory-stack@36.6.8
  - victory-area@36.6.8
  - victory-axis@36.6.8
  - victory-bar@36.6.8
  - victory-box-plot@36.6.8
  - victory-brush-container@36.6.8
  - victory-brush-line@36.6.8
  - victory-candlestick@36.6.8
  - victory-canvas@36.6.8
  - victory-chart@36.6.8
  - victory-core@36.6.8
  - victory-create-container@36.6.8
  - victory-cursor-container@36.6.8
  - victory-errorbar@36.6.8
  - victory-group@36.6.8
  - victory-histogram@36.6.8
  - victory-legend@36.6.8
  - victory-line@36.6.8
  - victory-pie@36.6.8
  - victory-polar-axis@36.6.8
  - victory-scatter@36.6.8
  - victory-selection-container@36.6.8
  - victory-shared-events@36.6.8
  - victory-tooltip@36.6.8
  - victory-voronoi@36.6.8
  - victory-voronoi-container@36.6.8

## 36.6.7

### Patch Changes

- Updated dependencies [[`3f476632f`](https://github.com/FormidableLabs/victory/commit/3f476632fcd41c31cb69fcfae74d1bbaaa78103d)]:
  - victory-line@36.6.7
  - victory-area@36.6.7
  - victory-axis@36.6.7
  - victory-bar@36.6.7
  - victory-box-plot@36.6.7
  - victory-brush-container@36.6.7
  - victory-brush-line@36.6.7
  - victory-candlestick@36.6.7
  - victory-canvas@36.6.7
  - victory-chart@36.6.7
  - victory-core@36.6.7
  - victory-create-container@36.6.7
  - victory-cursor-container@36.6.7
  - victory-errorbar@36.6.7
  - victory-group@36.6.7
  - victory-histogram@36.6.7
  - victory-legend@36.6.7
  - victory-pie@36.6.7
  - victory-polar-axis@36.6.7
  - victory-scatter@36.6.7
  - victory-selection-container@36.6.7
  - victory-shared-events@36.6.7
  - victory-stack@36.6.7
  - victory-tooltip@36.6.7
  - victory-voronoi@36.6.7
  - victory-voronoi-container@36.6.7
  - victory-zoom-container@36.6.7

## 36.6.6

### Patch Changes

- Updated dependencies [[`6c6764f73`](https://github.com/FormidableLabs/victory/commit/6c6764f734b9655170c75798b7fe1c6d9e63f2a5)]:
  - victory-brush-container@36.6.6
  - victory-cursor-container@36.6.6
  - victory-selection-container@36.6.6
  - victory-voronoi-container@36.6.6
  - victory-zoom-container@36.6.6
  - victory-area@36.6.6
  - victory-axis@36.6.6
  - victory-bar@36.6.6
  - victory-box-plot@36.6.6
  - victory-brush-line@36.6.6
  - victory-candlestick@36.6.6
  - victory-canvas@36.6.6
  - victory-chart@36.6.6
  - victory-core@36.6.6
  - victory-create-container@36.6.6
  - victory-errorbar@36.6.6
  - victory-group@36.6.6
  - victory-histogram@36.6.6
  - victory-legend@36.6.6
  - victory-line@36.6.6
  - victory-pie@36.6.6
  - victory-polar-axis@36.6.6
  - victory-scatter@36.6.6
  - victory-shared-events@36.6.6
  - victory-stack@36.6.6
  - victory-tooltip@36.6.6
  - victory-voronoi@36.6.6

## 36.6.5

### Patch Changes

- Updated dependencies [[`6f4972123`](https://github.com/FormidableLabs/victory/commit/6f49721238332bb5ee879571a45b34a04e44d416), [`6f4972123`](https://github.com/FormidableLabs/victory/commit/6f49721238332bb5ee879571a45b34a04e44d416)]:
  - victory-zoom-container@36.6.5
  - victory-core@36.6.5
  - victory-area@36.6.5
  - victory-axis@36.6.5
  - victory-bar@36.6.5
  - victory-box-plot@36.6.5
  - victory-brush-container@36.6.5
  - victory-brush-line@36.6.5
  - victory-candlestick@36.6.5
  - victory-canvas@36.6.5
  - victory-chart@36.6.5
  - victory-create-container@36.6.5
  - victory-cursor-container@36.6.5
  - victory-errorbar@36.6.5
  - victory-group@36.6.5
  - victory-histogram@36.6.5
  - victory-legend@36.6.5
  - victory-line@36.6.5
  - victory-pie@36.6.5
  - victory-polar-axis@36.6.5
  - victory-scatter@36.6.5
  - victory-selection-container@36.6.5
  - victory-shared-events@36.6.5
  - victory-stack@36.6.5
  - victory-tooltip@36.6.5
  - victory-voronoi@36.6.5
  - victory-voronoi-container@36.6.5

## 36.6.4

### Patch Changes

- Added explicit `any` type defs (fixes [#2358](https://github.com/FormidableLabs/victory/issues/2358)) ([`57ed0fe30`](https://github.com/FormidableLabs/victory/commit/57ed0fe304dbc8753da1126a02d44de8004e96aa))

* Allow data accessors to accept any data types (fixes [#2360](https://github.com/FormidableLabs/victory/issues/2360)) ([#2436](https://github.com/FormidableLabs/victory/pull/2436))

* Updated dependencies [[`57ed0fe30`](https://github.com/FormidableLabs/victory/commit/57ed0fe304dbc8753da1126a02d44de8004e96aa), [`9a6319cff`](https://github.com/FormidableLabs/victory/commit/9a6319cffbc480711b8c286dcae00575081170f0)]:
  - victory-canvas@36.6.4
  - victory-create-container@36.6.4
  - victory-selection-container@36.6.4
  - victory-voronoi-container@36.6.4
  - victory-zoom-container@36.6.4
  - victory-core@36.6.4
  - victory-area@36.6.4
  - victory-axis@36.6.4
  - victory-bar@36.6.4
  - victory-box-plot@36.6.4
  - victory-brush-container@36.6.4
  - victory-brush-line@36.6.4
  - victory-candlestick@36.6.4
  - victory-chart@36.6.4
  - victory-cursor-container@36.6.4
  - victory-errorbar@36.6.4
  - victory-group@36.6.4
  - victory-histogram@36.6.4
  - victory-legend@36.6.4
  - victory-line@36.6.4
  - victory-pie@36.6.4
  - victory-polar-axis@36.6.4
  - victory-scatter@36.6.4
  - victory-shared-events@36.6.4
  - victory-stack@36.6.4
  - victory-tooltip@36.6.4
  - victory-voronoi@36.6.4

## 36.6.3

### Patch Changes

- Do not generate \*.js.map sourcemaps (fixes [#2346](https://github.com/FormidableLabs/victory/issues/2346)) ([#2432](https://github.com/FormidableLabs/victory/pull/2432))

- Updated dependencies [[`4bfc65df5`](https://github.com/FormidableLabs/victory/commit/4bfc65df5a10aa6a10084882ed5c6d0d894dec6f)]:
  - victory-area@36.6.3
  - victory-axis@36.6.3
  - victory-bar@36.6.3
  - victory-box-plot@36.6.3
  - victory-brush-container@36.6.3
  - victory-brush-line@36.6.3
  - victory-candlestick@36.6.3
  - victory-canvas@36.6.3
  - victory-chart@36.6.3
  - victory-core@36.6.3
  - victory-create-container@36.6.3
  - victory-cursor-container@36.6.3
  - victory-errorbar@36.6.3
  - victory-group@36.6.3
  - victory-histogram@36.6.3
  - victory-legend@36.6.3
  - victory-line@36.6.3
  - victory-pie@36.6.3
  - victory-polar-axis@36.6.3
  - victory-scatter@36.6.3
  - victory-selection-container@36.6.3
  - victory-shared-events@36.6.3
  - victory-stack@36.6.3
  - victory-tooltip@36.6.3
  - victory-voronoi@36.6.3
  - victory-voronoi-container@36.6.3
  - victory-zoom-container@36.6.3

## 36.6.2

### Patch Changes

- Updated dependencies [[`877c16923`](https://github.com/FormidableLabs/victory/commit/877c169230c24ab02f570a21dca10a2dce0dcf4e)]:
  - victory-cursor-container@36.6.2
  - victory-area@36.6.2
  - victory-axis@36.6.2
  - victory-bar@36.6.2
  - victory-box-plot@36.6.2
  - victory-brush-container@36.6.2
  - victory-brush-line@36.6.2
  - victory-candlestick@36.6.2
  - victory-canvas@36.6.2
  - victory-chart@36.6.2
  - victory-core@36.6.2
  - victory-create-container@36.6.2
  - victory-errorbar@36.6.2
  - victory-group@36.6.2
  - victory-histogram@36.6.2
  - victory-legend@36.6.2
  - victory-line@36.6.2
  - victory-pie@36.6.2
  - victory-polar-axis@36.6.2
  - victory-scatter@36.6.2
  - victory-selection-container@36.6.2
  - victory-shared-events@36.6.2
  - victory-stack@36.6.2
  - victory-tooltip@36.6.2
  - victory-voronoi@36.6.2
  - victory-voronoi-container@36.6.2
  - victory-zoom-container@36.6.2

## 36.6.1

### Patch Changes

- Updated dependencies [[`f7d50fa38`](https://github.com/FormidableLabs/victory/commit/f7d50fa381998c068a8b91af9818a6bc726b0dcd), [`f7d50fa38`](https://github.com/FormidableLabs/victory/commit/f7d50fa381998c068a8b91af9818a6bc726b0dcd), [`d1f281104`](https://github.com/FormidableLabs/victory/commit/d1f281104c7598c43e220dafd57546ab03daeeb5)]:
  - victory-group@36.6.1
  - victory-stack@36.6.1
  - victory-core@36.6.1
  - victory-axis@36.6.1
  - victory-errorbar@36.6.1
  - victory-scatter@36.6.1
  - victory-cursor-container@36.6.1
  - victory-area@36.6.1
  - victory-bar@36.6.1
  - victory-box-plot@36.6.1
  - victory-brush-container@36.6.1
  - victory-brush-line@36.6.1
  - victory-candlestick@36.6.1
  - victory-canvas@36.6.1
  - victory-chart@36.6.1
  - victory-create-container@36.6.1
  - victory-histogram@36.6.1
  - victory-legend@36.6.1
  - victory-line@36.6.1
  - victory-pie@36.6.1
  - victory-polar-axis@36.6.1
  - victory-selection-container@36.6.1
  - victory-shared-events@36.6.1
  - victory-tooltip@36.6.1
  - victory-voronoi@36.6.1
  - victory-voronoi-container@36.6.1
  - victory-zoom-container@36.6.1

## 36.6.0

### Patch Changes

- Updated dependencies [[`0c827edb4`](https://github.com/FormidableLabs/victory/commit/0c827edb4daf6fa61ee2a561df27ddf89ccc649f), [`fed5a5072`](https://github.com/FormidableLabs/victory/commit/fed5a507299b337846eed3d873ec7eb91bc69668), [`f7bf134e5`](https://github.com/FormidableLabs/victory/commit/f7bf134e58bc1660c28f83f0eede3b19048d2656), [`a2f48555a`](https://github.com/FormidableLabs/victory/commit/a2f48555adfed15bdb004dc0793f197d90c950a2)]:
  - victory-box-plot@36.6.0
  - victory-core@36.6.0
  - victory-errorbar@36.6.0
  - victory-brush-container@36.6.0
  - victory-brush-line@36.6.0
  - victory-area@36.6.0
  - victory-axis@36.6.0
  - victory-bar@36.6.0
  - victory-candlestick@36.6.0
  - victory-canvas@36.6.0
  - victory-create-container@36.6.0
  - victory-cursor-container@36.6.0
  - victory-legend@36.6.0
  - victory-line@36.6.0
  - victory-pie@36.6.0
  - victory-polar-axis@36.6.0
  - victory-scatter@36.6.0
  - victory-selection-container@36.6.0
  - victory-shared-events@36.6.0
  - victory-stack@36.6.0
  - victory-tooltip@36.6.0
  - victory-voronoi@36.6.0
  - victory-voronoi-container@36.6.0
  - victory-zoom-container@36.6.0
  - victory-chart@36.6.0
  - victory-group@36.6.0
  - victory-histogram@36.6.0

## 36.5.3 and earlier

Change history for version 36.5.3 and earlier can be found in our root [CHANGELOG.md](https://github.com/FormidableLabs/victory/blob/main/CHANGELOG.md).


================================================
FILE: packages/victory/README.md
================================================
## [Victory Documentation](https://commerce.nearform.com/open-source/victory)

## Getting started

1. Add Victory to your project:

```sh
$ npm install victory --save
```

2. Add your first Victory component:

```js
import React, { Component } from "react";
import { render } from "react-dom";
import { VictoryPie } from "victory";

class PieChart extends Component {
  render() {
    return <VictoryPie />;
  }
}

render(<PieChart />, document.getElementById("app"));
```

3. `VictoryPie` component will be rendered, and you should see:

<p align="center">
  <img align="center" width="471" alt="pie" src="https://cloud.githubusercontent.com/assets/3719995/20915779/b51e3652-bb3c-11e6-8243-6e7521a59115.png">
</p>

For detailed documentation and examples please see [Victory Documentation](https://commerce.nearform.com/open-source/victory)

## Requirements

Projects using Victory should also depend on [React][] and [prop-types][].

## Victory Native

Want to use `Victory` with React Native? Check out [victory-native-xl](https://github.com/FormidableLabs/victory-native-xl)

If you would like to use this version of `Victory` with React Native, you can install the legacy version using the `legacy` npm tag. See the [available versions in npm](https://www.npmjs.com/package/victory-native?activeTab=versions).

## [Contributing](CONTRIBUTING.md)

[react]: https://facebook.github.io/react/
[prop-types]: https://github.com/reactjs/prop-types


================================================
FILE: packages/victory/jest.config.ts
================================================
import rootConfig from "../../test/jest.config";

export default {
  ...rootConfig,
};


================================================
FILE: packages/victory/package.json
================================================
{
  "name": "victory",
  "version": "37.3.6",
  "description": "Data viz for React",
  "keywords": [
    "data visualization",
    "React",
    "d3",
    "charting"
  ],
  "repository": {
    "type": "git",
    "url": "https://github.com/FormidableLabs/victory"
  },
  "homepage": "https://commerce.nearform.com/open-source/victory",
  "source": "src/index.ts",
  "sideEffects": false,
  "main": "lib/index.js",
  "module": "es/index.js",
  "jsnext:main": "es/index.js",
  "author": "Formidable",
  "license": "MIT",
  "dependencies": {
    "victory-area": "37.3.6",
    "victory-axis": "37.3.6",
    "victory-bar": "37.3.6",
    "victory-box-plot": "37.3.6",
    "victory-brush-container": "37.3.6",
    "victory-brush-line": "37.3.6",
    "victory-candlestick": "37.3.6",
    "victory-canvas": "37.3.6",
    "victory-chart": "37.3.6",
    "victory-core": "37.3.6",
    "victory-create-container": "37.3.6",
    "victory-cursor-container": "37.3.6",
    "victory-errorbar": "37.3.6",
    "victory-group": "37.3.6",
    "victory-histogram": "37.3.6",
    "victory-legend": "37.3.6",
    "victory-line": "37.3.6",
    "victory-pie": "37.3.6",
    "victory-polar-axis": "37.3.6",
    "victory-scatter": "37.3.6",
    "victory-selection-container": "37.3.6",
    "victory-shared-events": "37.3.6",
    "victory-stack": "37.3.6",
    "victory-tooltip": "37.3.6",
    "victory-voronoi": "37.3.6",
    "victory-voronoi-container": "37.3.6",
    "victory-zoom-container": "37.3.6"
  },
  "peerDependencies": {
    "react": ">=16.6.0"
  },
  "publishConfig": {
    "provenance": true
  },
  "scripts": {
    "###            THESE SCRIPTS ARE GENERATED           ###": "true",
    "###            DO NOT MODIFY THESE MANUALLY          ###": "true",
    "build": "wireit",
    "build:lib": "wireit",
    "build:lib:esm": "wireit",
    "build:lib:cjs": "wireit",
    "build:dist": "wireit",
    "build:dist:dev": "wireit",
    "build:dist:min": "wireit",
    "check": "wireit",
    "types:check": "wireit",
    "types:create": "wireit",
    "lint": "wireit",
    "lint:fix": "wireit",
    "jest": "wireit"
  },
  "wireit": {
    "###            THESE WIREIT CONFIGS ARE GENERATED        ####": {},
    "###            DO NOT MODIFY THESE MANUALLY              ####": {},
    "build": {
      "dependencies": [
        "build:lib",
        "build:dist",
        "types:create"
      ]
    },
    "build:lib": {
      "dependencies": [
        "build:lib:esm",
        "build:lib:cjs"
      ]
    },
    "build:lib:esm": {
      "command": "nps build:lib:esm",
      "files": [
        "src/**",
        "!src/**/*.test.*",
        "../../.babelrc.build.js",
        "../../.babelrc.js",
        "../../package-scripts.js"
      ],
      "output": [
        "es/**/*.js",
        "es/**/*.js.map"
      ],
      "dependencies": [
        "../victory-area:build:lib:esm",
        "../victory-axis:build:lib:esm",
        "../victory-bar:build:lib:esm",
        "../victory-box-plot:build:lib:esm",
        "../victory-brush-container:build:lib:esm",
        "../victory-brush-line:build:lib:esm",
        "../victory-candlestick:build:lib:esm",
        "../victory-canvas:build:lib:esm",
        "../victory-chart:build:lib:esm",
        "../victory-core:build:lib:esm",
        "../victory-create-container:build:lib:esm",
        "../victory-cursor-container:build:lib:esm",
        "../victory-errorbar:build:lib:esm",
        "../victory-group:build:lib:esm",
        "../victory-histogram:build:lib:esm",
        "../victory-legend:build:lib:esm",
        "../victory-line:build:lib:esm",
        "../victory-pie:build:lib:esm",
        "../victory-polar-axis:build:lib:esm",
        "../victory-scatter:build:lib:esm",
        "../victory-selection-container:build:lib:esm",
        "../victory-shared-events:build:lib:esm",
        "../victory-stack:build:lib:esm",
        "../victory-tooltip:build:lib:esm",
        "../victory-voronoi:build:lib:esm",
        "../victory-voronoi-container:build:lib:esm",
        "../victory-zoom-container:build:lib:esm"
      ],
      "packageLocks": [
        "pnpm-lock.yaml"
      ]
    },
    "build:lib:cjs": {
      "command": "nps build:lib:cjs",
      "files": [
        "src/**",
        "!src/**/*.test.*",
        "../../.babelrc.build.js",
        "../../.babelrc.js",
        "../../package-scripts.js"
      ],
      "output": [
        "lib/**/*.js",
        "lib/**/*.js.map"
      ],
      "dependencies": [
        "../victory-area:build:lib:cjs",
        "../victory-axis:build:lib:cjs",
        "../victory-bar:build:lib:cjs",
        "../victory-box-plot:build:lib:cjs",
        "../victory-brush-container:build:lib:cjs",
        "../victory-brush-line:build:lib:cjs",
        "../victory-candlestick:build:lib:cjs",
        "../victory-canvas:build:lib:cjs",
        "../victory-chart:build:lib:cjs",
        "../victory-core:build:lib:cjs",
        "../victory-create-container:build:lib:cjs",
        "../victory-cursor-container:build:lib:cjs",
        "../victory-errorbar:build:lib:cjs",
        "../victory-group:build:lib:cjs",
        "../victory-histogram:build:lib:cjs",
        "../victory-legend:build:lib:cjs",
        "../victory-line:build:lib:cjs",
        "../victory-pie:build:lib:cjs",
        "../victory-polar-axis:build:lib:cjs",
        "../victory-scatter:build:lib:cjs",
        "../victory-selection-container:build:lib:cjs",
        "../victory-shared-events:build:lib:cjs",
        "../victory-stack:build:lib:cjs",
        "../victory-tooltip:build:lib:cjs",
        "../victory-voronoi:build:lib:cjs",
        "../victory-voronoi-container:build:lib:cjs",
        "../victory-zoom-container:build:lib:cjs"
      ],
      "packageLocks": [
        "pnpm-lock.yaml"
      ]
    },
    "build:dist": {
      "dependencies": [
        "build:dist:dev",
        "build:dist:min"
      ]
    },
    "build:dist:dev": {
      "command": "nps build:dist:dev",
      "files": [
        "src/**",
        "!src/**/*.test.*",
        "../../.babelrc.build.js",
        "../../.babelrc.js",
        "../../package-scripts.js",
        "../../config/webpack.config.js",
        "../../config/webpack.config.dev.js"
      ],
      "output": [
        "dist/victory*.js",
        "!dist/victory*.min.js*"
      ],
      "dependencies": [
        "../victory-area:build:lib:esm",
        "../victory-axis:build:lib:esm",
        "../victory-bar:build:lib:esm",
        "../victory-box-plot:build:lib:esm",
        "../victory-brush-container:build:lib:esm",
        "../victory-brush-line:build:lib:esm",
        "../victory-candlestick:build:lib:esm",
        "../victory-canvas:build:lib:esm",
        "../victory-chart:build:lib:esm",
        "../victory-core:build:lib:esm",
        "../victory-create-container:build:lib:esm",
        "../victory-cursor-container:build:lib:esm",
        "../victory-errorbar:build:lib:esm",
        "../victory-group:build:lib:esm",
        "../victory-histogram:build:lib:esm",
        "../victory-legend:build:lib:esm",
        "../victory-line:build:lib:esm",
        "../victory-pie:build:lib:esm",
        "../victory-polar-axis:build:lib:esm",
        "../victory-scatter:build:lib:esm",
        "../victory-selection-container:build:lib:esm",
        "../victory-shared-events:build:lib:esm",
        "../victory-stack:build:lib:esm",
        "../victory-tooltip:build:lib:esm",
        "../victory-voronoi:build:lib:esm",
        "../victory-voronoi-container:build:lib:esm",
        "../victory-zoom-container:build:lib:esm"
      ],
      "packageLocks": [
        "pnpm-lock.yaml"
      ]
    },
    "build:dist:min": {
      "command": "nps build:dist:min",
      "files": [
        "src/**",
        "!src/**/*.test.*",
        "../../.babelrc.build.js",
        "../../.babelrc.js",
        "../../package-scripts.js",
        "../../config/webpack.config.js"
      ],
      "output": [
        "dist/victory*.min.js*"
      ],
      "dependencies": [
        "../victory-area:build:lib:esm",
        "../victory-axis:build:lib:esm",
        "../victory-bar:build:lib:esm",
        "../victory-box-plot:build:lib:esm",
        "../victory-brush-container:build:lib:esm",
        "../victory-brush-line:build:lib:esm",
        "../victory-candlestick:build:lib:esm",
        "../victory-canvas:build:lib:esm",
        "../victory-chart:build:lib:esm",
        "../victory-core:build:lib:esm",
        "../victory-create-container:build:lib:esm",
        "../victory-cursor-container:build:lib:esm",
        "../victory-errorbar:build:lib:esm",
        "../victory-group:build:lib:esm",
        "../victory-histogram:build:lib:esm",
        "../victory-legend:build:lib:esm",
        "../victory-line:build:lib:esm",
        "../victory-pie:build:lib:esm",
        "../victory-polar-axis:build:lib:esm",
        "../victory-scatter:build:lib:esm",
        "../victory-selection-container:build:lib:esm",
        "../victory-shared-events:build:lib:esm",
        "../victory-stack:build:lib:esm",
        "../victory-tooltip:build:lib:esm",
        "../victory-voronoi:build:lib:esm",
        "../victory-voronoi-container:build:lib:esm",
        "../victory-zoom-container:build:lib:esm"
      ],
      "packageLocks": [
        "pnpm-lock.yaml"
      ]
    },
    "check": {
      "dependencies": [
        "types:check",
        "jest",
        "format",
        "lint"
      ]
    },
    "types:check": {
      "command": "nps types:pkg:check",
      "files": [
        "src/**/*.{ts,tsx}",
        "../../tsconfig.base.json",
        "tsconfig.json"
      ],
      "dependencies": [
        "types:create",
        "../victory-area:types:create",
        "../victory-axis:types:create",
        "../victory-bar:types:create",
        "../victory-box-plot:types:create",
        "../victory-brush-container:types:create",
        "../victory-brush-line:types:create",
        "../victory-candlestick:types:create",
        "../victory-canvas:types:create",
        "../victory-chart:types:create",
        "../victory-core:types:create",
        "../victory-create-container:types:create",
        "../victory-cursor-container:types:create",
        "../victory-errorbar:types:create",
        "../victory-group:types:create",
        "../victory-histogram:types:create",
        "../victory-legend:types:create",
        "../victory-line:types:create",
        "../victory-pie:types:create",
        "../victory-polar-axis:types:create",
        "../victory-scatter:types:create",
        "../victory-selection-container:types:create",
        "../victory-shared-events:types:create",
        "../victory-stack:types:create",
        "../victory-tooltip:types:create",
        "../victory-voronoi:types:create",
        "../victory-voronoi-container:types:create",
        "../victory-zoom-container:types:create",
        "../victory-vendor:types:create"
      ],
      "output": [],
      "packageLocks": [
        "pnpm-lock.yaml"
      ]
    },
    "types:create": {
      "command": "nps types:pkg:create",
      "files": [
        "src/**",
        "!src/**/*.test.*",
        "../../tsconfig.base.json",
        "tsconfig.build.json"
      ],
      "output": [
        "es/**/*.d.ts",
        "es/**/*.d.ts.map",
        "lib/**/*.d.ts",
        "lib/**/*.d.ts.map"
      ],
      "dependencies": [
        "../victory-area:types:create",
        "../victory-axis:types:create",
        "../victory-bar:types:create",
        "../victory-box-plot:types:create",
        "../victory-brush-container:types:create",
        "../victory-brush-line:types:create",
        "../victory-candlestick:types:create",
        "../victory-canvas:types:create",
        "../victory-chart:types:create",
        "../victory-core:types:create",
        "../victory-create-container:types:create",
        "../victory-cursor-container:types:create",
        "../victory-errorbar:types:create",
        "../victory-group:types:create",
        "../victory-histogram:types:create",
        "../victory-legend:types:create",
        "../victory-line:types:create",
        "../victory-pie:types:create",
        "../victory-polar-axis:types:create",
        "../victory-scatter:types:create",
        "../victory-selection-container:types:create",
        "../victory-shared-events:types:create",
        "../victory-stack:types:create",
        "../victory-tooltip:types:create",
        "../victory-voronoi:types:create",
        "../victory-voronoi-container:types:create",
        "../victory-zoom-container:types:create"
      ],
      "packageLocks": [
        "pnpm-lock.yaml"
      ]
    },
    "lint": {
      "command": "eslint src",
      "files": [
        "src/**"
      ],
      "output": [],
      "dependencies": [
        "../victory-area:types:create",
        "../victory-axis:types:create",
        "../victory-bar:types:create",
        "../victory-box-plot:types:create",
        "../victory-brush-container:types:create",
        "../victory-brush-line:types:create",
        "../victory-candlestick:types:create",
        "../victory-canvas:types:create",
        "../victory-chart:types:create",
        "../victory-core:types:create",
        "../victory-create-container:types:create",
        "../victory-cursor-container:types:create",
        "../victory-errorbar:types:create",
        "../victory-group:types:create",
        "../victory-histogram:types:create",
        "../victory-legend:types:create",
        "../victory-line:types:create",
        "../victory-pie:types:create",
        "../victory-polar-axis:types:create",
        "../victory-scatter:types:create",
        "../victory-selection-container:types:create",
        "../victory-shared-events:types:create",
        "../victory-stack:types:create",
        "../victory-tooltip:types:create",
        "../victory-voronoi:types:create",
        "../victory-voronoi-container:types:create",
        "../victory-zoom-container:types:create",
        "../victory-vendor:types:create"
      ],
      "packageLocks": [
        "pnpm-lock.yaml"
      ]
    },
    "lint:fix": {
      "command": "eslint --fix src",
      "files": [
        "src/**"
      ],
      "output": [],
      "dependencies": [
        "../victory-area:types:create",
        "../victory-axis:types:create",
        "../victory-bar:types:create",
        "../victory-box-plot:types:create",
        "../victory-brush-container:types:create",
        "../victory-brush-line:types:create",
        "../victory-candlestick:types:create",
        "../victory-canvas:types:create",
        "../victory-chart:types:create",
        "../victory-core:types:create",
        "../victory-create-container:types:create",
        "../victory-cursor-container:types:create",
        "../victory-errorbar:types:create",
        "../victory-group:types:create",
        "../victory-histogram:types:create",
        "../victory-legend:types:create",
        "../victory-line:types:create",
        "../victory-pie:types:create",
        "../victory-polar-axis:types:create",
        "../victory-scatter:types:create",
        "../victory-selection-container:types:create",
        "../victory-shared-events:types:create",
        "../victory-stack:types:create",
        "../victory-tooltip:types:create",
        "../victory-voronoi:types:create",
        "../victory-voronoi-container:types:create",
        "../victory-zoom-container:types:create",
        "../victory-vendor:types:create"
      ],
      "packageLocks": [
        "pnpm-lock.yaml"
      ]
    },
    "jest": {
      "command": "jest --passWithNoTests",
      "files": [
        "src/**/*.test.*",
        "../../.babelrc.js",
        "../../test/jest-config.js",
        "../../test/jest-setup.ts"
      ],
      "output": [],
      "dependencies": [
        "../victory-area:build",
        "../victory-axis:build",
        "../victory-bar:build",
        "../victory-box-plot:build",
        "../victory-brush-container:build",
        "../victory-brush-line:build",
        "../victory-candlestick:build",
        "../victory-canvas:build",
        "../victory-chart:build",
        "../victory-core:build",
        "../victory-create-container:build",
        "../victory-cursor-container:build",
        "../victory-errorbar:build",
        "../victory-group:build",
        "../victory-histogram:build",
        "../victory-legend:build",
        "../victory-line:build",
        "../victory-pie:build",
        "../victory-polar-axis:build",
        "../victory-scatter:build",
        "../victory-selection-container:build",
        "../victory-shared-events:build",
        "../victory-stack:build",
        "../victory-tooltip:build",
        "../victory-voronoi:build",
        "../victory-voronoi-container:build",
        "../victory-zoom-container:build",
        "../victory-vendor:build"
      ],
      "packageLocks": [
        "pnpm-lock.yaml"
      ]
    }
  },
  "engines": {
    "node": ">=18.0.0"
  }
}


================================================
FILE: packages/victory/src/index.ts
================================================
export * from "victory-area";
export * from "victory-axis";
export * from "victory-bar";
export * from "victory-box-plot";
export * from "victory-brush-container";
export * from "victory-brush-line";
export * from "victory-candlestick";
export * from "victory-canvas";
export * from "victory-chart";
export * from "victory-core";
export * from "victory-create-container";
export * from "victory-cursor-container";
export * from "victory-errorbar";
export * from "victory-group";
export * from "victory-histogram";
export * from "victory-legend";
export * from "victory-line";
export * from "victory-pie";
export * from "victory-polar-axis";
export * from "victory-scatter";
export * from "victory-selection-container";
export * from "victory-shared-events";
export * from "victory-stack";
export * from "victory-tooltip";
export * from "victory-voronoi";
export * from "victory-voronoi-container";
export * from "victory-zoom-container";


================================================
FILE: packages/victory/src/victory.test.ts
================================================
/* eslint-disable @typescript-eslint/no-unused-vars */
import * as Victory from "./index";
import {
  Arc,
  ArcProps,
  Area,
  AreaProps,
  Axis,
  Background,
  BackgroundProps,
  Bar,
  BarProps,
  Border,
  BorderProps,
  Box,
  BoxProps,
  BrushHelpers,
  Candle,
  CandleProps,
  CanvasBar,
  CanvasBarProps,
  CanvasCurve,
  CanvasCurveProps,
  CanvasGroup,
  CanvasGroupProps,
  CanvasPoint,
  CanvasPointProps,
  Circle,
  ClipPath,
  ClipPathProps,
  Collection,
  ContainerType,
  CursorHelpers,
  Curve,
  CurveProps,
  Data,
  DefaultTransitions,
  Domain,
  ErrorBar,
  ErrorBarProps,
  Events,
  Flyout,
  FlyoutProps,
  Helpers,
  LabelHelpers,
  Line,
  LineSegment,
  LineSegmentProps,
  Log,
  Path,
  Point,
  PointProps,
  Portal,
  RawZoomHelpers,
  Rect,
  Scale,
  Selection,
  SelectionHelpers,
  Slice,
  SliceProps,
  Style,
  TSpan,
  Text,
  TextProps,
  TextSize,
  Transitions,
  UserProps,
  VictoryAccessibleGroup,
  VictoryAccessibleGroupProps,
  VictoryAnimation,
  VictoryAnimationProps,
  VictoryArea,
  VictoryAreaProps,
  VictoryAxis,
  VictoryAxisProps,
  VictoryBar,
  VictoryBarProps,
  VictoryBoxPlot,
  VictoryBoxPlotProps,
  VictoryBrushContainer,
  VictoryBrushContainerProps,
  VictoryBrushLine,
  VictoryBrushLineProps,
  VictoryCandlestick,
  VictoryCandlestickProps,
  VictoryChart,
  VictoryChartProps,
  VictoryClipContainer,
  VictoryClipContainerProps,
  VictoryContainer,
  VictoryContainerProps,
  VictoryCursorContainer,
  VictoryCursorContainerProps,
  VictoryErrorBar,
  VictoryErrorBarProps,
  VictoryGroup,
  VictoryGroupProps,
  VictoryHistogram,
  VictoryHistogramProps,
  VictoryLabel,
  VictoryLabelProps,
  VictoryLegend,
  VictoryLegendProps,
  VictoryLine,
  VictoryLineProps,
  VictoryPie,
  VictoryPieProps,
  VictoryPolarAxis,
  VictoryPolarAxisProps,
  VictoryPortal,
  VictoryPortalProps,
  VictoryScatter,
  VictoryScatterProps,
  VictorySelectionContainer,
  VictorySelectionContainerProps,
  VictorySharedEvents,
  VictorySharedEventsProps,
  VictoryStack,
  VictoryStackProps,
  VictoryTheme,
  VictoryThemeDefinition,
  VictoryTooltip,
  VictoryTooltipProps,
  VictoryTransition,
  VictoryVoronoi,
  VictoryVoronoiContainer,
  VictoryVoronoiContainerProps,
  VictoryVoronoiProps,
  VictoryZoomContainer,
  VictoryZoomContainerProps,
  Voronoi,
  VoronoiHelpers,
  VoronoiProps,
  Whisker,
  WhiskerProps,
  Wrapper,
  ZoomHelpers,
  addEvents,
  createContainer,
  makeCreateContainerFunction,
  useCanvasContext,
  useVictoryBrushContainer,
  useVictoryCursorContainer,
  useVictorySelectionContainer,
  useVictoryVoronoiContainer,
  useVictoryZoomContainer,
  VICTORY_BRUSH_CONTAINER_DEFAULT_PROPS,
  VICTORY_CURSOR_CONTAINER_DEFAULT_PROPS,
  VICTORY_SELECTION_CONTAINER_DEFAULT_PROPS,
  VICTORY_VORONOI_CONTAINER_DEFAULT_PROPS,
  VICTORY_ZOOM_CONTAINER_DEFAULT_PROPS,
  mergeRefs,
  useVictoryContainer,
} from "./index";

describe("victory", () => {
  it("ensure it has named exports", () => {
    expect(Area).toBeInstanceOf(Function);
  });
  xit("ensure all components have valid types", () => {
    /*
     * See https://github.com/FormidableLabs/victory/issues/2411
     * It's easy for some of our Components to accidentally get typed as 'any'.
     * This seems to be due to our use of mixins, especially `addEvents`.
     *
     * This test is designed to catch those errors, so that we can be sure
     * that all of our components are exported with the proper types.
     */

    let shouldNotBeTypedAsAny: { SHOULD_NOT_BE_TYPED_AS_ANY: true };

    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryAccessibleGroup;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryAccessibleGroupProps;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryAnimation;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryAnimationProps;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryArea;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryAreaProps;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryAxis;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryAxisProps;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryBar;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryBarProps;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryBoxPlot;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryBoxPlotProps;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryBrushContainer;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryBrushContainerProps;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryBrushLine;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryBrushLineProps;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryCandlestick;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryCandlestickProps;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryChart;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryChartProps;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryClipContainer;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryClipContainerProps;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryContainer;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryContainerProps;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryCursorContainer;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryCursorContainerProps;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryErrorBar;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryErrorBarProps;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryGroup;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryGroupProps;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryHistogram;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryHistogramProps;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryLabel;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryLabelProps;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryLegend;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryLegendProps;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryLine;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryLineProps;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryPie;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryPieProps;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryPolarAxis;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryPolarAxisProps;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryPortal;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryPortalProps;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryScatter;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryScatterProps;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictorySelectionContainer;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictorySelectionContainerProps;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictorySharedEvents;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictorySharedEventsProps;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryStack;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryStackProps;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryTheme;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryThemeDefinition;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryTooltip;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryTooltipProps;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryTransition;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryVoronoi;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryVoronoiContainer;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryVoronoiContainerProps;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryVoronoiProps;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryZoomContainer;
    // @ts-expect-error This will fail if the component is typed as 'any':
    shouldNotBeTypedAsAny = VictoryZoomContainerProps;
  });
  it("ensure everything is exported correctly", () => {
    expect(Object.keys(Victory).sort()).toMatchInlineSnapshot(`
      [
        "Arc",
        "Area",
        "Axis",
        "Background",
        "Bar",
        "Border",
        "Box",
        "BrushHelpers",
        "Candle",
        "CanvasBar",
        "CanvasCurve",
        "CanvasGroup",
        "CanvasPoint",
        "Circle",
        "ClipPath",
        "Collection",
        "CursorHelpers",
        "Curve",
        "Data",
        "DefaultTransitions",
        "Domain",
        "ErrorBar",
        "Events",
        "Flyout",
        "Helpers",
        "Hooks",
        "Immutable",
        "LabelHelpers",
        "Line",
        "LineHelpers",
        "LineSegment",
        "Log",
        "Path",
        "Point",
        "PointPathHelpers",
        "Portal",
        "PortalContext",
        "PortalOutlet",
        "PortalProvider",
        "RawZoomHelpers",
        "Rect",
        "Scale",
        "Selection",
        "SelectionHelpers",
        "Slice",
        "Style",
        "TSpan",
        "Text",
        "TextSize",
        "Timer",
        "TimerContext",
        "Transitions",
        "UserProps",
        "VICTORY_BRUSH_CONTAINER_DEFAULT_PROPS",
        "VICTORY_CURSOR_CONTAINER_DEFAULT_PROPS",
        "VICTORY_SELECTION_CONTAINER_DEFAULT_PROPS",
        "VICTORY_VORONOI_CONTAINER_DEFAULT_PROPS",
        "VICTORY_ZOOM_CONTAINER_DEFAULT_PROPS",
        "VictoryAccessibleGroup",
        "VictoryAnimation",
        "VictoryArea",
        "VictoryAxis",
        "VictoryBar",
        "VictoryBoxPlot",
        "VictoryBrushContainer",
        "VictoryBrushLine",
        "VictoryCandlestick",
        "VictoryChart",
        "VictoryClipContainer",
        "VictoryContainer",
        "VictoryCursorContainer",
        "VictoryErrorBar",
        "VictoryGroup",
        "VictoryHistogram",
        "VictoryLabel",
        "VictoryLegend",
        "VictoryLine",
        "VictoryPie",
        "VictoryPolarAxis",
        "VictoryPortal",
        "VictoryScatter",
        "VictorySelectionContainer",
        "VictorySharedEvents",
        "VictoryStack",
        "VictoryTheme",
        "VictoryTooltip",
        "VictoryTransition",
        "VictoryVoronoi",
        "VictoryVoronoiContainer",
        "VictoryZoomContainer",
        "Voronoi",
        "VoronoiHelpers",
        "Whisker",
        "Wrapper",
        "ZoomHelpers",
        "addEvents",
        "createContainer",
        "getBarPath",
        "getBarPosition",
        "getBarWidth",
        "getCornerRadius",
        "getCustomBarPath",
        "getHorizontalBarPath",
        "getPolarBarPath",
        "getStyle",
        "getVerticalBarPath",
        "getVerticalPolarBarPath",
        "makeCreateContainerFunction",
        "mergeRefs",
        "useCanvasContext",
        "usePortalContext",
        "useVictoryBrushContainer",
        "useVictoryContainer",
        "useVictoryCursorContainer",
        "useVictorySelectionContainer",
        "useVictoryVoronoiContainer",
        "useVictoryZoomContainer",
      ]
    `);
  });
});


================================================
FILE: packages/victory/tsconfig.build.json
================================================
{
  "extends": "../../tsconfig.base.json",
  "exclude": ["**/*.test.*", "es", "lib", "jest.config.ts"]
}


================================================
FILE: packages/victory/tsconfig.json
================================================
{
  "extends": "../../tsconfig.base.json",
  "exclude": ["es", "lib", "jest.config.ts"]
}


================================================
FILE: packages/victory-area/.npmignore
================================================
/*
!/dist
!/es
!/lib
!/src
!LICENSE.txt
!CHANGELOG.md
!README.md
!package.json
*.map
**/*.test.*


================================================
FILE: packages/victory-area/CHANGELOG.md
================================================
# victory-area

## 37.3.6

## 37.3.5

## 37.3.4

## 37.3.3

### Patch Changes

- Upgrade typescript to 5.7.2 ([#2997](https://github.com/FormidableLabs/victory/pull/2997))

* Remove deprecated babel-plugin-lodash plugin ([#2965](https://github.com/FormidableLabs/victory/pull/2965))

## 37.3.2

## 37.3.1

### Patch Changes

- Remove duplicate types from interfaces ([#2940](https://github.com/FormidableLabs/victory/pull/2940))

## 37.3.0

## 37.2.0

## 37.1.2

### Patch Changes

- Fix victory-native container styles ([`eae3fe5dd`](https://github.com/FormidableLabs/victory/commit/eae3fe5dde175e68e146576655cb2e8054ad6456))

## 37.1.1

## 37.1.0

### Minor Changes

- Pin all internal victory package versions ([#2876](https://github.com/FormidableLabs/victory/pull/2876))

## 37.0.2

### Patch Changes

- Ensure undefined props do not overwrite defaults ([#2852](https://github.com/FormidableLabs/victory/pull/2852))

## 37.0.1

### Patch Changes

- Fix the signature of class static functions in components ([#2840](https://github.com/FormidableLabs/victory/pull/2840))

## 37.0.0

### Major Changes

- Upgrade babel dependencies and build target to modern browsers ([#2804](https://github.com/FormidableLabs/victory/pull/2804))

## 36.9.2

### Patch Changes

- Replace lodash isNil and isNan with native code ([#2800](https://github.com/FormidableLabs/victory/pull/2800))

* Replace lodash isFunction with native code ([#2802](https://github.com/FormidableLabs/victory/pull/2802))

## 36.9.1

## 36.9.0

### Minor Changes

- Remove prop-types definitions and dependency ([#2758](https://github.com/FormidableLabs/victory/pull/2758))

## 36.8.6

### Patch Changes

- Migrate victory-native to TypeScript ([#2739](https://github.com/FormidableLabs/victory/pull/2739))

## 36.8.5

### Patch Changes

- Replace instances of lodash.assign with Object.assign ([#2757](https://github.com/FormidableLabs/victory/pull/2757))

* Replace instances of lodash.range with equivalent native code ([#2760](https://github.com/FormidableLabs/victory/pull/2760))

## 36.8.4

## 36.8.3

## 36.8.2

## 36.8.1

## 36.8.0

### Patch Changes

- Remove usage of defaultProps from components ([#2679](https://github.com/FormidableLabs/victory/pull/2679))

## 36.7.0

## 36.6.12

## 36.6.11

## 36.6.10

### Patch Changes

- Setup NPM Provenance ([#2590](https://github.com/FormidableLabs/victory/pull/2590))

## 36.6.9

### Patch Changes

- Setup NPM Provenance ([#2587](https://github.com/FormidableLabs/victory/pull/2587))

## 36.6.8

### Patch Changes

- Updated dependencies []:
  - victory-core@36.6.8
  - victory-vendor@36.6.8

## 36.6.7

### Patch Changes

- Updated dependencies []:
  - victory-core@36.6.7
  - victory-vendor@36.6.7

## 36.6.6

### Patch Changes

- Updated dependencies []:
  - victory-core@36.6.6
  - victory-vendor@36.6.6

## 36.6.5

### Patch Changes

- Updated dependencies [[`6f4972123`](https://github.com/FormidableLabs/victory/commit/6f49721238332bb5ee879571a45b34a04e44d416), [`6f4972123`](https://github.com/FormidableLabs/victory/commit/6f49721238332bb5ee879571a45b34a04e44d416)]:
  - victory-core@36.6.5
  - victory-vendor@36.6.5

## 36.6.4

### Patch Changes

- Allow data accessors to accept any data types (fixes [#2360](https://github.com/FormidableLabs/victory/issues/2360)) ([#2436](https://github.com/FormidableLabs/victory/pull/2436))

- Updated dependencies [[`9a6319cff`](https://github.com/FormidableLabs/victory/commit/9a6319cffbc480711b8c286dcae00575081170f0)]:
  - victory-core@36.6.4
  - victory-vendor@36.6.4

## 36.6.3

### Patch Changes

- Do not generate \*.js.map sourcemaps (fixes [#2346](https://github.com/FormidableLabs/victory/issues/2346)) ([#2432](https://github.com/FormidableLabs/victory/pull/2432))

- Updated dependencies [[`4bfc65df5`](https://github.com/FormidableLabs/victory/commit/4bfc65df5a10aa6a10084882ed5c6d0d894dec6f)]:
  - victory-core@36.6.3
  - victory-vendor@36.6.3

## 36.6.2

### Patch Changes

- Updated dependencies []:
  - victory-core@36.6.2
  - victory-vendor@36.6.2

## 36.6.1

### Patch Changes

- Updated dependencies [[`d1f281104`](https://github.com/FormidableLabs/victory/commit/d1f281104c7598c43e220dafd57546ab03daeeb5)]:
  - victory-core@36.6.1
  - victory-vendor@36.6.1

## 36.6.0

### Patch Changes

- Update source code with minor lint-based improvements (see [#2236](https://github.com/FormidableLabs/victory/issues/2236)). ([#2403](https://github.com/FormidableLabs/victory/pull/2403))

- Updated dependencies [[`fed5a5072`](https://github.com/FormidableLabs/victory/commit/fed5a507299b337846eed3d873ec7eb91bc69668), [`a2f48555a`](https://github.com/FormidableLabs/victory/commit/a2f48555adfed15bdb004dc0793f197d90c950a2)]:
  - victory-core@36.6.0
  - victory-vendor@36.6.0

## 36.5.3 and earlier

Change history for version 36.5.3 and earlier can be found in our root [CHANGELOG.md](https://github.com/FormidableLabs/victory/blob/main/CHANGELOG.md).


================================================
FILE: packages/victory-area/README.md
================================================
# VictoryArea

`victory-area@^30.0.0` exports `VictoryArea` and `Area` components

To view documentation for `VictoryArea` please see https://commerce.nearform.com/open-source/victory/docs/victory-area

To suggest an addition or correction to this documentation please see https://github.com/FormidableLabs/victory/blob/main/docs/src/content/docs/victory-area.md


================================================
FILE: packages/victory-area/jest.config.ts
================================================
import rootConfig from "../../test/jest.config";

export default {
  ...rootConfig,
};


================================================
FILE: packages/victory-area/package.json
================================================
{
  "name": "victory-area",
  "version": "37.3.6",
  "description": "Area Component for Victory",
  "keywords": [
    "data visualization",
    "React",
    "d3",
    "charting"
  ],
  "repository": {
    "type": "git",
    "url": "https://github.com/FormidableLabs/victory"
  },
  "homepage": "https://commerce.nearform.com/open-source/victory",
  "sideEffects": false,
  "main": "lib/index.js",
  "module": "es/index.js",
  "jsnext:main": "es/index.js",
  "author": "Formidable",
  "license": "MIT",
  "dependencies": {
    "lodash": "^4.17.19",
    "victory-core": "37.3.6",
    "victory-vendor": "37.3.6"
  },
  "peerDependencies": {
    "react": ">=16.6.0"
  },
  "devDependencies": {
    "victory-chart": "*"
  },
  "publishConfig": {
    "provenance": true
  },
  "scripts": {
    "###            THESE SCRIPTS ARE GENERATED           ###": "true",
    "###            DO NOT MODIFY THESE MANUALLY          ###": "true",
    "build": "wireit",
    "build:lib": "wireit",
    "build:lib:esm": "wireit",
    "build:lib:cjs": "wireit",
    "build:dist": "wireit",
    "build:dist:dev": "wireit",
    "build:dist:min": "wireit",
    "check": "wireit",
    "types:check": "wireit",
    "types:create": "wireit",
    "lint": "wireit",
    "lint:fix": "wireit",
    "jest": "wireit"
  },
  "wireit": {
    "###            THESE WIREIT CONFIGS ARE GENERATED        ####": {},
    "###            DO NOT MODIFY THESE MANUALLY              ####": {},
    "build": {
      "dependencies": [
        "build:lib",
        "build:dist",
        "types:create"
      ]
    },
    "build:lib": {
      "dependencies": [
        "build:lib:esm",
        "build:lib:cjs"
      ]
    },
    "build:lib:esm": {
      "command": "nps build:lib:esm",
      "files": [
        "src/**",
        "!src/**/*.test.*",
        "../../.babelrc.build.js",
        "../../.babelrc.js",
        "../../package-scripts.js"
      ],
      "output": [
        "es/**/*.js",
        "es/**/*.js.map"
      ],
      "dependencies": [
        "../victory-core:build:lib:esm",
        "../victory-vendor:build:lib:esm"
      ],
      "packageLocks": [
        "pnpm-lock.yaml"
      ]
    },
    "build:lib:cjs": {
      "command": "nps build:lib:cjs",
      "files": [
        "src/**",
        "!src/**/*.test.*",
        "../../.babelrc.build.js",
        "../../.babelrc.js",
        "../../package-scripts.js"
      ],
      "output": [
        "lib/**/*.js",
        "lib/**/*.js.map"
      ],
      "dependencies": [
        "../victory-core:build:lib:cjs",
        "../victory-vendor:build:lib:cjs"
      ],
      "packageLocks": [
        "pnpm-lock.yaml"
      ]
    },
    "build:dist": {
      "dependencies": [
        "build:dist:dev",
        "build:dist:min"
      ]
    },
    "build:dist:dev": {
      "command": "nps build:dist:dev",
      "files": [
        "src/**",
        "!src/**/*.test.*",
        "../../.babelrc.build.js",
        "../../.babelrc.js",
        "../../package-scripts.js",
        "../../config/webpack.config.js",
        "../../config/webpack.config.dev.js"
      ],
      "output": [
        "dist/victory*.js",
        "!dist/victory*.min.js*"
      ],
      "dependencies": [
        "../victory-core:build:lib:esm",
        "../victory-vendor:build:lib:esm"
      ],
      "packageLocks": [
        "pnpm-lock.yaml"
      ]
    },
    "build:dist:min": {
      "command": "nps build:dist:min",
      "files": [
        "src/**",
        "!src/**/*.test.*",
        "../../.babelrc.build.js",
        "../../.babelrc.js",
        "../../package-scripts.js",
        "../../config/webpack.config.js"
      ],
      "output": [
        "dist/victory*.min.js*"
      ],
      "dependencies": [
        "../victory-core:build:lib:esm",
        "../victory-vendor:build:lib:esm"
      ],
      "packageLocks": [
        "pnpm-lock.yaml"
      ]
    },
    "check": {
      "dependencies": [
        "types:check",
        "jest",
        "format",
        "lint"
      ]
    },
    "types:check": {
      "command": "nps types:pkg:check",
      "files": [
        "src/**/*.{ts,tsx}",
        "../../tsconfig.base.json",
        "tsconfig.json"
      ],
      "dependencies": [
        "types:create",
        "../victory-core:types:create",
        "../victory-vendor:types:create",
        "../victory-chart:types:create",
        "../victory-voronoi:types:create"
      ],
      "output": [],
      "packageLocks": [
        "pnpm-lock.yaml"
      ]
    },
    "types:create": {
      "command": "nps types:pkg:create",
      "files": [
        "src/**",
        "!src/**/*.test.*",
        "../../tsconfig.base.json",
        "tsconfig.build.json"
      ],
      "output": [
        "es/**/*.d.ts",
        "es/**/*.d.ts.map",
        "lib/**/*.d.ts",
        "lib/**/*.d.ts.map"
      ],
      "dependencies": [
        "../victory-core:types:create",
        "../victory-vendor:types:create"
      ],
      "packageLocks": [
        "pnpm-lock.yaml"
      ]
    },
    "lint": {
      "command": "eslint src",
      "files": [
        "src/**"
      ],
      "output": [],
      "dependencies": [
        "../victory-vendor:build",
        "../victory-core:types:create",
        "../victory-vendor:types:create",
        "../victory-chart:types:create",
        "../victory-voronoi:types:create"
      ],
      "packageLocks": [
        "pnpm-lock.yaml"
      ]
    },
    "lint:fix": {
      "command": "eslint --fix src",
      "files": [
        "src/**"
      ],
      "output": [],
      "dependencies": [
        "../victory-vendor:build",
        "../victory-core:types:create",
        "../victory-vendor:types:create",
        "../victory-chart:types:create",
        "../victory-voronoi:types:create"
      ],
      "packageLocks": [
        "pnpm-lock.yaml"
      ]
    },
    "jest": {
      "command": "jest --passWithNoTests",
      "files": [
        "src/**/*.test.*",
        "../../.babelrc.js",
        "../../test/jest-config.js",
        "../../test/jest-setup.ts"
      ],
      "output": [],
      "dependencies": [
        "../victory-core:build",
        "../victory-vendor:build",
        "../victory-chart:build",
        "../victory-voronoi:build"
      ],
      "packageLocks": [
        "pnpm-lock.yaml"
      ]
    }
  },
  "engines": {
    "node": ">=18.0.0"
  }
}


================================================
FILE: packages/victory-area/src/area.test.tsx
================================================
import React from "react";
import { render } from "@testing-library/react";
import { VictoryContainer } from "victory-core";
import * as d3Scale from "victory-vendor/d3-scale";

import { Area } from "./area";

describe("victory-primitives/area", () => {
  const baseProps = {
    data: [
      { _x1: 1, x1: 1, _y1: 4, y1: 4, _y0: 0, eventKey: 0 },
      { _x1: 2, x1: 2, _y1: 5, y1: 5, _y0: 0, eventKey: 1 },
      { _x1: 3, x1: 3, _y1: 7, y1: 7, _y0: 0, eventKey: 2 },
      { _x1: 4, x1: 4, _y1: 10, y1: 10, _y0: 0, eventKey: 3 },
      { _x1: 5, x1: 5, _y1: 15, y1: 15, _y0: 0, eventKey: 4 },
    ],
    scale: {
      x: d3Scale.scaleLinear(),
      y: d3Scale.scaleLinear(),
    },
    interpolation: "basis",
    style: {
      stroke: "tomato",
    },
  };

  it("should render a single area and no line when no line style is given", () => {
    const props = Object.assign({}, baseProps, {
      style: {
        stroke: "none",
      },
    });

    const { container } = render(
      <VictoryContainer>
        <Area {...props} />
      </VictoryContainer>,
    );
    expect(container.querySelectorAll("path")).toHaveLength(1);
  });

  it("should render an area and line when a line style is given", () => {
    const { container } = render(
      <VictoryContainer>
        <Area {...baseProps} />
      </VictoryContainer>,
    );
    // multiple paths should be grouped
    expect(container.querySelectorAll("path")).toHaveLength(2);
  });
});


================================================
FILE: packages/victory-area/src/area.tsx
================================================
/* eslint no-magic-numbers: ["error", { "ignore": [-1, 0, 1, 2] }]*/
import React from "react";
import defaults from "lodash/defaults";
import * as d3Shape from "victory-vendor/d3-shape";
import {
  Helpers,
  Path,
  UserProps,
  VictoryCommonPrimitiveProps,
  LineHelpers,
  VictoryCommonThemeProps,
} from "victory-core";

const defined = (d) => {
  const y = d._y1 !== undefined ? d._y1 : d._y;
  return y !== null && y !== undefined && d._y0 !== null;
};

const getXAccessor = (scale) => {
  return (d) => scale.x(d._x1 !== undefined ? d._x1 : d._x);
};

const getYAccessor = (scale) => {
  return (d) => scale.y(d._y1 !== undefined ? d._y1 : d._y);
};

const getY0Accessor = (scale) => {
  return (d) => scale.y(d._y0);
};

const getAngleAccessor = (scale) => {
  return (d) => {
    const x = scale.x(d._x1 !== undefined ? d._x1 : d._x);
    return -1 * x + Math.PI / 2;
  };
};

const getCartesianArea = (props: AreaProps) => {
  const { horizontal, scale } = props;
  const interpolationFunction = LineHelpers.getInterpolationFunction(props);
  return horizontal
    ? d3Shape
        .area()
        .defined(defined)
        .curve(interpolationFunction)
        .x0(getY0Accessor(scale))
        .x1(getYAccessor(scale))
        .y(getXAccessor(scale))
    : d3Shape
        .area()
        .defined(defined)
        .curve(interpolationFunction)
        .x(getXAccessor(scale))
        .y1(getYAccessor(scale))
        .y0(getY0Accessor(scale));
};

const getAreaFunction = (props: AreaProps) => {
  const { polar, scale } = props;
  const interpolationFunction = LineHelpers.getInterpolationFunction(props);
  return polar
    ? d3Shape
        .radialArea()
        .defined(defined)
        .curve(interpolationFunction)
        .angle(getAngleAccessor(scale))
        .outerRadius(getYAccessor(scale))
        .innerRadius(getY0Accessor(scale))
    : getCartesianArea(props);
};

const evaluateProps = (props: AreaProps) => {
  /**
   * Potential evaluated props are:
   * `ariaLabel`
   * `desc`
   * `id`
   * `style`
   * `tabIndex`
   */
  const ariaLabel = Helpers.evaluateProp(props.ariaLabel, props);
  const desc = Helpers.evaluateProp(props.desc, props);
  const id = Helpers.evaluateProp(props.id, props);
  const style = Helpers.evaluateStyle(
    Object.assign({ fill: "black" }, props.style),
    props,
  );
  const tabIndex = Helpers.evaluateProp(props.tabIndex, props);

  return Object.assign({}, props, { ariaLabel, desc, id, style, tabIndex });
};

const defaultProps = {
  groupComponent: <g />,
  pathComponent: <Path />,
  role: "presentation",
  shapeRendering: "auto",
};

/**
 * The area primitive used by VictoryArea
 */
export const Area: React.FC<AreaProps> = (initialProps) => {
  const props = evaluateProps(defaults({}, initialProps, defaultProps));
  const {
    ariaLabel,
    role,
    shapeRendering,
    className,
    polar,
    origin,
    data,
    pathComponent,
    events,
    groupComponent,
    clipPath,
    id,
    style,
    desc,
    tabIndex,
  } = props;
  const userProps = UserProps.getSafeUserProps(props);
  const defaultTransform =
    polar && origin ? `translate(${origin.x}, ${origin.y})` : undefined;
  const transform = props.transform || defaultTransform;
  const renderLine =
    style.stroke && style.stroke !== "none" && style.stroke !== "transparent";
  const areaFunction = getAreaFunction(props);
  const lineFunction = renderLine && LineHelpers.getLineFunction(props);

  const areaStroke = style.stroke ? "none" : style.fill;

  const sharedProps = {
    "aria-label": ariaLabel,
    className,
    role,
    shapeRendering,
    transform,
    ...events,
    clipPath,
    tabIndex,
  };

  const area = React.cloneElement(
    pathComponent!,
    Object.assign(
      {
        key: `${id}-area`,
        style: Object.assign({}, style, { stroke: areaStroke }),
        d: areaFunction(data),
        desc,
        tabIndex,
      },
      sharedProps,
      userProps,
    ),
  );

  const line = renderLine
    ? React.cloneElement(
        pathComponent!,
        Object.assign(
          {
            key: `${id}-area-stroke`,
            style: Object.assign({}, style, { fill: "none" }),
            d: lineFunction(data),
          },
          sharedProps,
        ),
      )
    : null;

  return renderLine
    ? React.cloneElement(groupComponent!, userProps, [area, line])
    : area;
};

export interface AreaProps extends VictoryCommonPrimitiveProps {
  horizontal?: VictoryCommonThemeProps["horizontal"];
  groupComponent?: React.ReactElement;
  // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
  interpolation?: string | Function;
  pathComponent?: React.ReactElement;
}


================================================
FILE: packages/victory-area/src/helper-methods.test.tsx
================================================
import * as d3Scale from "victory-vendor/d3-scale";

import { getDataWithBaseline } from "./helper-methods";

describe("victory-area/helper-methods", () => {
  describe("getDataWithBaseline", () => {
    const data = [
      { _x: 1, _y: 1 },
      { _x: 2, _y: 1 },
    ];
    const stackedData = [
      { _x: 1, _x0: 0, _x1: 1, _y: 1, _y0: 1, _y1: 2 },
      { _x: 2, _x0: 0, _x1: 2, _y: 1, _y0: 1, _y1: 2 },
    ];
    const defaultDomain = { x: [0, 10], y: [0, 10] };
    const nonZeroDomain = { x: [0, 10], y: [1, 10] };
    const negativeDomain = { x: [0, 10], y: [-1, 10] };
    const scale = (domain) => {
      return {
        x: d3Scale.scaleLinear().domain(domain.x),
        y: d3Scale.scaleLinear().domain(domain.y),
      };
    };

    it("should return the minimum if yOffset is not present", () => {
      const props = { data };
      const result = getDataWithBaseline(props, scale(defaultDomain));
      const expectedResult = [
        { _y0: 0, _y1: 1, _y: 1, _x: 1, _x0: 0, _x1: 1 },
        { _y0: 0, _y1: 1, _y: 1, _x: 2, _x0: 0, _x1: 2 },
      ];
      expect(result).toEqual(expectedResult);
    });

    it("should return the domain minimum when it is greater than zero", () => {
      const props = { data };
      const result = getDataWithBaseline(props, scale(nonZeroDomain));
      const expectedResult = [
        { _y0: 1, _y1: 1, _y: 1, _x: 1, _x0: 0, _x1: 1 },
        { _y0: 1, _y1: 1, _y: 1, _x: 2, _x0: 0, _x1: 2 },
      ];
      expect(result).toEqual(expectedResult);
    });

    it("should return zero when the domain minimum is negative", () => {
      const props = { data };
      const result = getDataWithBaseline(props, scale(negativeDomain));
      const expectedResult = [
        { _y0: 0, _y1: 1, _y: 1, _x: 1, _x0: 0, _x1: 1 },
        { _y0: 0, _y1: 1, _y: 1, _x: 2, _x0: 0, _x1: 2 },
      ];
      expect(result).toEqual(expectedResult);
    });

    it("should return yOffset if present", () => {
      const props = { data: stackedData };
      const result = getDataWithBaseline(props, scale(defaultDomain));
      const expectedResult = stackedData;
      expect(result).toEqual(expectedResult);
    });
  });
});


================================================
FILE: packages/victory-area/src/helper-methods.tsx
================================================
import {
  Helpers,
  LabelHelpers,
  Data,
  Domain,
  Scale,
  Collection,
} from "victory-core";

export const getDataWithBaseline = (props, scale) => {
  let data = Data.getData(props);
  if (data.length < 2) {
    data = [];
  }
  const getDefaultMin = (axis) => {
    const defaultZero =
      Scale.getType(scale[axis]) === "log" ? 1 / Number.MAX_SAFE_INTEGER : 0;
    const domain = scale[axis].domain();
    const minY = Collection.getMinValue(domain);
    const maxY = Collection.getMaxValue(domain);
    let defaultMin: typeof minY = defaultZero;
    if (minY.valueOf() < 0 && maxY.valueOf() <= 0) {
      defaultMin = maxY;
    } else if (minY.valueOf() >= 0 && maxY.valueOf() > 0) {
      defaultMin = minY;
    }
    return Collection.containsDates(domain) ? new Date(defaultMin) : defaultMin;
  };

  return data.map((datum) => {
    const _y1 = datum._y1 !== undefined ? datum._y1 : datum._y;
    const _y0 = datum._y0 !== undefined ? datum._y0 : getDefaultMin("y");
    const _x1 = datum._x1 !== undefined ? datum._x1 : datum._x;
    const _x0 = datum._x0 !== undefined ? datum._x0 : getDefaultMin("x");
    return Object.assign({}, datum, { _y0, _y1, _x0, _x1 });
  });
};

const getCalculatedValues = (props) => {
  const { polar } = props;
  const defaultStyles = Helpers.getDefaultStyles(props, "area");
  const style = Helpers.getStyles(props.style, defaultStyles);
  const range = {
    x: Helpers.getRange(props, "x"),
    y: Helpers.getRange(props, "y"),
  };
  const domain = {
    x: Domain.getDomainWithZero(props, "x"),
    y: Domain.getDomainWithZero(props, "y"),
  };
  const scale = {
    x: Scale.getBaseScale(props, "x")
      .domain(domain.x)
      .range(props.horizontal ? range.y : range.x),
    y: Scale.getBaseScale(props, "y")
      .domain(domain.y)
      .range(props.horizontal ? range.x : range.y),
  };
  const origin = polar
    ? props.origin || Helpers.getPolarOrigin(props)
    : undefined;
  const data = getDataWithBaseline(props, scale);
  return { style, data, scale, domain, origin };
};

export const getBaseProps = (initialProps, fallbackProps) => {
  const modifiedProps = Helpers.modifyProps(
    initialProps,
    fallbackProps,
    "area",
  );
  const props = Object.assign(
    {},
    modifiedProps,
    getCalculatedValues(modifiedProps),
  );
  const {
    data,
    domain,
    events,
    groupComponent,
    height,
    horizontal,
    interpolation,
    origin,
    padding,
    polar,
    scale,
    sharedEvents,
    standalone,
    style,
    theme,
    width,
    labels,
    name,
    disableInlineStyles,
  } = props;
  const initialChildProps = {
    parent: {
      style: style.parent,
      width,
      height,
      scale,
      data,
      domain,
      standalone,
      theme,
      polar,
      origin,
      padding,
      name,
      horizontal,
    },
    all: {
      data: {
        horizontal,
        polar,
        origin,
        scale,
        data,
        interpolation,
        groupComponent,
        style: disableInlineStyles ? {} : style.data,
        disableInlineStyles,
      },
    },
  };
  return data.reduce((childProps, datum, index) => {
    const text = LabelHelpers.getText(props, datum, index);
    if (
      (text !== undefined && text !== null) ||
      (labels && (events || sharedEvents))
    ) {
      const eventKey = !Helpers.isNil(datum.eventKey) ? datum.eventKey : index;
      childProps[eventKey] = { labels: LabelHelpers.getProps(props, index) };
    }
    return childProps;
  }, initialChildProps);
};


================================================
FILE: packages/victory-area/src/index.ts
================================================
export * from "./victory-area";
export * from "./area";


================================================
FILE: packages/victory-area/src/victory-area.test.tsx
================================================
import { fireEvent, render, screen } from "@testing-library/react";
import React from "react";
import { VictoryChart } from "victory-chart";
import { Helpers } from "victory-core";
import { curveCatmullRom } from "victory-vendor/d3-shape";

import { calculateD3Path } from "../../../test/helpers/svg";
import { Area } from "./area";
import { VictoryArea, VictoryAreaProps } from "./victory-area";

describe("components/victory-area", () => {
  describe("default component rendering", () => {
    it("attaches safe user props to the container component", () => {
      render(
        <VictoryArea
          data-testid="victory-area"
          aria-label="Chart"
          unsafe-prop="test"
        />,
      );

      const container = screen.getByTestId("victory-area");
      expect(screen.getByLabelText("Chart")).toBeDefined();
      expect(container).not.toHaveAttribute("unsafe-prop");
      expect(container.nodeName).toEqual("svg");
    });

    it("attaches safe user props to the group component if the component is rendered inside a VictoryChart", () => {
      render(
        <VictoryArea
          data-testid="victory-area"
          aria-label="Chart"
          unsafe-prop="test"
        />,
        { wrapper: VictoryChart as any },
      );

      const container = screen.getByTestId("victory-area");
      expect(screen.getByLabelText("Chart")).toBeDefined();
      expect(container).not.toHaveAttribute("unsafe-prop");
      expect(container.nodeName).toEqual("g");
    });

    it("renders an svg with the correct viewbox", () => {
      const { container } = render(<VictoryArea />);
      const viewBoxValue = `0 0 ${450} ${300}`;
      expect(container.querySelector("svg")!.getAttribute("viewBox")).toEqual(
        viewBoxValue,
      );
    });
  });

  describe("component rendering with data", () => {
    it("renders the correct d3 path", () => {
      const props: VictoryAreaProps = {
        width: 400,
        height: 300,
        padding: 50,
        scale: "linear",
        interpolation: "linear",
        data: [
          { x: 0, y: 0, y0: 0 },
          { x: 2, y: 3, y0: 0 },
          { x: 4, y: 1, y0: 0 },
        ],
      };
      const { container } = render(<VictoryArea {...props} />);
      expect(container.querySelector("path")!.getAttribute("d")).toEqual(
        calculateD3Path(props, "area"),
      );
    });

    it("renders the correct d3 path with custom interpolation string property", () => {
      const props: VictoryAreaProps = {
        interpolation: "catmullRom",
        width: 400,
        height: 300,
        padding: 50,
        scale: "linear",
        data: [
          { x: 0, y: 0, y0: 0 },
          { x: 2, y: 3, y0: 0 },
          { x: 4, y: 1, y0: 0 },
        ],
      };

      const { container } = render(<VictoryArea {...props} />);

      expect(container.querySelector("path")!.getAttribute("d")).toEqual(
        calculateD3Path(props, "area"),
      );
    });

    it("renders the correct d3 path with custom interpolation function", () => {
      const props: VictoryAreaProps = {
        interpolation: curveCatmullRom,
        width: 400,
        height: 300,
        padding: 50,
        scale: "linear",
        data: [
          { x: 0, y: 0, y0: 0 },
          { x: 2, y: 3, y0: 0 },
          { x: 4, y: 1, y0: 0 },
        ],
      };

      const { container } = render(<VictoryArea {...props} />);

      expect(container.querySelector("path")!.getAttribute("d")).toEqual(
        calculateD3Path(props, "area"),
      );
    });

    it("sorts data according to sortKey prop", () => {
      const props: VictoryAreaProps = {
        scale: "linear",
        interpolation: "linear",
        sortKey: "x",
        data: Helpers.range(5)

          .map((i) => ({ x: i, y: i, y0: 0 }))
          .reverse(),
      };
      render(
        <VictoryArea
          {...props}
          dataComponent={
            <Area
              data-testid="area"
              data-json={({ data }) => JSON.stringify(data)}
            />
          }
        />,
      );

      const area = screen.getByTestId("area");
      const data = JSON.parse(area.getAttribute("data-json")!);
      const xValues = data.map((d) => d._x);

      expect(xValues).toEqual([0, 1, 2, 3, 4]);
    });

    it("sorts data according to sortOrder prop", () => {
      const props: VictoryAreaProps = {
        scale: "linear",
        interpolation: "linear",
        sortKey: "x",
        sortOrder: "descending",
        data: Helpers.range(5)
          .map((i) => ({ x: i, y: i, y0: 0 }))
          .reverse(),
      };
      render(
        <VictoryArea
          {...props}
          dataComponent={
            <Area
              data-testid="area"
              data-json={({ data }) => JSON.stringify(data)}
            />
          }
        />,
      );

      const area = screen.getByTestId("area");
      const data = JSON.parse(area.getAttribute("data-json")!);
      const xValues = data.map((d) => d._x);

      expect(xValues).toEqual([4, 3, 2, 1, 0]);
    });
  });

  describe("event handling", () => {
    it("attaches an event to the parent svg", () => {
      const clickHandler = jest.fn();
      render(
        <VictoryArea
          data-testid="container"
          events={[
            {
              target: "parent",
              eventHandlers: { onClick: clickHandler },
            },
          ]}
        />,
      );
      const svg = screen.getByTestId("container");
      fireEvent.click(svg);
      expect(clickHandler).toHaveBeenCalled();
    });

    it("attaches an event to data", () => {
      const clickHandler = jest.fn();
      render(
        <VictoryArea
          dataComponent={<Area data-testid="data" />}
          events={[
            {
              target: "data",
              eventHandlers: { onClick: clickHandler },
            },
          ]}
        />,
      );
      const dataComponent = screen.getByTestId("data");

      fireEvent.click(dataComponent);
      expect(clickHandler).toHaveBeenCalled();
    });

    it("attaches an event to a label", () => {
      const clickHandler = jest.fn();
      render(
        <VictoryArea
          data={[
            { x: 1, y: 1 },
            { x: 2, y: 2 },
          ]}
          labels={({ datum }) => datum.x}
          events={[
            {
              target: "labels",
              eventHandlers: { onClick: clickHandler },
            },
          ]}
        />,
      );
      fireEvent.click(screen.getByText("1"));

      expect(clickHandler).toHaveBeenCalled();
    });
  });

  describe("accessibility", () 
Download .txt
gitextract_8opt94_q/

├── .babelrc.build.js
├── .babelrc.js
├── .babelrc.native.js
├── .changeset/
│   ├── afraid-donuts-tease.md
│   ├── config.json
│   ├── cute-foxes-shop.md
│   └── silver-crabs-deliver.md
├── .editorconfig
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.yml
│   │   ├── config.yml
│   │   ├── feature_request.yml
│   │   └── question.yml
│   ├── actions/
│   │   ├── bundle-size/
│   │   │   └── action.yml
│   │   └── setup/
│   │       └── action.yml
│   └── workflows/
│       ├── chromatic.yml
│       ├── ci.yml
│       ├── issue-stale.yml
│       ├── issue-triage.yml
│       └── release.yml
├── .gitignore
├── .npmrc
├── .prettierignore
├── .prettierrc.json
├── .storybook/
│   ├── main.ts
│   ├── preview.css
│   └── preview.ts
├── CONTRIBUTING.md
├── LICENSE.txt
├── README.md
├── chromatic.config.json
├── config/
│   └── webpack/
│       ├── demo/
│       │   ├── webpack.config.dev.js
│       │   └── webpack.config.hot.js
│       ├── webpack.config.dev.js
│       └── webpack.config.js
├── demo/
│   └── rn/
│       ├── .expo-shared/
│       │   └── assets.json
│       ├── .gitignore
│       ├── App.tsx
│       ├── app.json
│       ├── babel.config.js
│       ├── metro.config.js
│       ├── package.json
│       ├── src/
│       │   ├── data/
│       │   │   └── index.ts
│       │   ├── navigation-config.ts
│       │   ├── screens/
│       │   │   ├── area-screen.tsx
│       │   │   ├── axis-screen.tsx
│       │   │   ├── bar-screen.tsx
│       │   │   ├── box-plot-screen.tsx
│       │   │   ├── brush-line-screen.tsx
│       │   │   ├── chart-screen.tsx
│       │   │   ├── components-screen.tsx
│       │   │   ├── error-bar-screen.tsx
│       │   │   ├── histogram-screen.tsx
│       │   │   ├── legends-screen.tsx
│       │   │   ├── line-screen.tsx
│       │   │   ├── pie-screen.tsx
│       │   │   ├── polar-axis-screen.tsx
│       │   │   ├── root-navigator.tsx
│       │   │   ├── scatter-screen.tsx
│       │   │   └── voronoi-screen.tsx
│       │   └── styles/
│       │       ├── container-view-styles.ts
│       │       └── view-styles.ts
│       └── tsconfig.json
├── eslint.config.mjs
├── package-scripts.js
├── package.json
├── packages/
│   ├── victory/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── index.ts
│   │   │   └── victory.test.ts
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-area/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── area.test.tsx
│   │   │   ├── area.tsx
│   │   │   ├── helper-methods.test.tsx
│   │   │   ├── helper-methods.tsx
│   │   │   ├── index.ts
│   │   │   ├── victory-area.test.tsx
│   │   │   └── victory-area.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-axis/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── helper-methods.tsx
│   │   │   ├── index.ts
│   │   │   └── victory-axis.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-bar/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── bar-helper-methods.ts
│   │   │   ├── bar.test.tsx
│   │   │   ├── bar.tsx
│   │   │   ├── geometry-helper-methods.test.ts
│   │   │   ├── geometry-helper-methods.ts
│   │   │   ├── helper-methods.ts
│   │   │   ├── index.ts
│   │   │   ├── path-helper-methods.ts
│   │   │   ├── victory-bar.test.tsx
│   │   │   └── victory-bar.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-box-plot/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── helper-methods.tsx
│   │   │   ├── index.ts
│   │   │   ├── victory-box-plot.test.tsx
│   │   │   └── victory-box-plot.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-brush-container/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── brush-helpers.test.tsx
│   │   │   ├── brush-helpers.ts
│   │   │   ├── index.ts
│   │   │   └── victory-brush-container.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-brush-line/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── index.ts
│   │   │   └── victory-brush-line.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-candlestick/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── candle.test.tsx
│   │   │   ├── candle.tsx
│   │   │   ├── helper-methods.test.ts
│   │   │   ├── helper-methods.ts
│   │   │   ├── index.ts
│   │   │   ├── victory-candlestick.test.tsx
│   │   │   └── victory-candlestick.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-canvas/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── canvas-bar.tsx
│   │   │   ├── canvas-curve.tsx
│   │   │   ├── canvas-group.tsx
│   │   │   ├── canvas-point.tsx
│   │   │   ├── hooks/
│   │   │   │   └── use-canvas-context.ts
│   │   │   └── index.ts
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-chart/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── helper-methods.test.tsx
│   │   │   ├── helper-methods.tsx
│   │   │   ├── index.ts
│   │   │   ├── victory-chart.test.tsx
│   │   │   └── victory-chart.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-core/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── exports.test.ts
│   │   │   ├── index.ts
│   │   │   ├── types/
│   │   │   │   ├── callbacks.ts
│   │   │   │   └── prop-types.ts
│   │   │   ├── victory-accessible-group/
│   │   │   │   ├── victory-accessible-group.test.tsx
│   │   │   │   └── victory-accessible-group.tsx
│   │   │   ├── victory-animation/
│   │   │   │   ├── util.test.tsx
│   │   │   │   ├── util.ts
│   │   │   │   └── victory-animation.tsx
│   │   │   ├── victory-clip-container/
│   │   │   │   └── victory-clip-container.tsx
│   │   │   ├── victory-container/
│   │   │   │   ├── victory-container.test.tsx
│   │   │   │   └── victory-container.tsx
│   │   │   ├── victory-label/
│   │   │   │   ├── victory-label.test.tsx
│   │   │   │   └── victory-label.tsx
│   │   │   ├── victory-portal/
│   │   │   │   ├── portal-context.tsx
│   │   │   │   ├── portal-outlet.tsx
│   │   │   │   ├── portal.tsx
│   │   │   │   └── victory-portal.tsx
│   │   │   ├── victory-primitives/
│   │   │   │   ├── arc.tsx
│   │   │   │   ├── background.tsx
│   │   │   │   ├── border.tsx
│   │   │   │   ├── circle.tsx
│   │   │   │   ├── clip-path.test.tsx
│   │   │   │   ├── clip-path.tsx
│   │   │   │   ├── index.ts
│   │   │   │   ├── line-segment.tsx
│   │   │   │   ├── line.test.tsx
│   │   │   │   ├── line.tsx
│   │   │   │   ├── path.tsx
│   │   │   │   ├── point.test.tsx
│   │   │   │   ├── point.tsx
│   │   │   │   ├── rect.tsx
│   │   │   │   ├── text.tsx
│   │   │   │   ├── tspan.tsx
│   │   │   │   ├── types.ts
│   │   │   │   └── whisker.tsx
│   │   │   ├── victory-theme/
│   │   │   │   ├── clean.tsx
│   │   │   │   ├── grayscale.tsx
│   │   │   │   ├── material.tsx
│   │   │   │   ├── types.ts
│   │   │   │   └── victory-theme.tsx
│   │   │   ├── victory-transition/
│   │   │   │   └── victory-transition.tsx
│   │   │   └── victory-util/
│   │   │       ├── add-events.tsx
│   │   │       ├── axis.test.tsx
│   │   │       ├── axis.tsx
│   │   │       ├── collection.test.ts
│   │   │       ├── collection.tsx
│   │   │       ├── common-props.tsx
│   │   │       ├── data.test.tsx
│   │   │       ├── data.ts
│   │   │       ├── default-transitions.ts
│   │   │       ├── domain.test.tsx
│   │   │       ├── domain.ts
│   │   │       ├── events.test.ts
│   │   │       ├── events.ts
│   │   │       ├── helpers.test.ts
│   │   │       ├── helpers.ts
│   │   │       ├── hooks/
│   │   │       │   ├── index.ts
│   │   │       │   ├── use-animation-state.ts
│   │   │       │   └── use-previous-props.ts
│   │   │       ├── immutable-types.d.ts
│   │   │       ├── immutable.test.ts
│   │   │       ├── immutable.ts
│   │   │       ├── index.ts
│   │   │       ├── label-helpers.test.tsx
│   │   │       ├── label-helpers.ts
│   │   │       ├── line-helpers.ts
│   │   │       ├── log.ts
│   │   │       ├── merge-refs.ts
│   │   │       ├── point-path-helpers.test.ts
│   │   │       ├── point-path-helpers.ts
│   │   │       ├── scale.test.ts
│   │   │       ├── scale.ts
│   │   │       ├── selection.test.ts
│   │   │       ├── selection.ts
│   │   │       ├── style.test.ts
│   │   │       ├── style.ts
│   │   │       ├── textsize.test.ts
│   │   │       ├── textsize.ts
│   │   │       ├── timer-context.ts
│   │   │       ├── timer.ts
│   │   │       ├── transitions.test.ts
│   │   │       ├── transitions.ts
│   │   │       ├── type-helpers.ts
│   │   │       ├── user-props.ts
│   │   │       ├── wrapper.test.tsx
│   │   │       └── wrapper.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-create-container/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── create-container.tsx
│   │   │   └── index.ts
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-cursor-container/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── cursor-helpers.tsx
│   │   │   ├── index.tsx
│   │   │   └── victory-cursor-container.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-errorbar/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── error-bar.test.tsx
│   │   │   ├── error-bar.tsx
│   │   │   ├── helper-methods.tsx
│   │   │   ├── index.ts
│   │   │   ├── victory-errorbar.tsx
│   │   │   └── victory-errorbars.test.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-group/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── helper-methods.tsx
│   │   │   ├── index.ts
│   │   │   ├── victory-group.test.tsx
│   │   │   └── victory-group.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-histogram/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── helper-methods.ts
│   │   │   ├── index.ts
│   │   │   ├── victory-histogram.test.tsx
│   │   │   └── victory-histogram.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-legend/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── helper-methods.ts
│   │   │   ├── index.ts
│   │   │   ├── victory-legend.test.tsx
│   │   │   └── victory-legend.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-line/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── curve.test.tsx
│   │   │   ├── curve.tsx
│   │   │   ├── helper-methods.ts
│   │   │   ├── index.ts
│   │   │   ├── victory-line.test.tsx
│   │   │   └── victory-line.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-native/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── components/
│   │   │   │   ├── victory-area.tsx
│   │   │   │   ├── victory-axis.tsx
│   │   │   │   ├── victory-bar.tsx
│   │   │   │   ├── victory-boxplot.tsx
│   │   │   │   ├── victory-brush-container.tsx
│   │   │   │   ├── victory-brush-line.tsx
│   │   │   │   ├── victory-candlestick.tsx
│   │   │   │   ├── victory-chart.tsx
│   │   │   │   ├── victory-clip-container.tsx
│   │   │   │   ├── victory-container.tsx
│   │   │   │   ├── victory-cursor-container.tsx
│   │   │   │   ├── victory-errorbar.tsx
│   │   │   │   ├── victory-group.tsx
│   │   │   │   ├── victory-histogram.tsx
│   │   │   │   ├── victory-label.tsx
│   │   │   │   ├── victory-legend.tsx
│   │   │   │   ├── victory-line.tsx
│   │   │   │   ├── victory-pie.tsx
│   │   │   │   ├── victory-polar-axis.tsx
│   │   │   │   ├── victory-portal/
│   │   │   │   │   ├── portal.tsx
│   │   │   │   │   └── victory-portal.tsx
│   │   │   │   ├── victory-primitives/
│   │   │   │   │   ├── arc.tsx
│   │   │   │   │   ├── area.tsx
│   │   │   │   │   ├── background.tsx
│   │   │   │   │   ├── bar.tsx
│   │   │   │   │   ├── border.tsx
│   │   │   │   │   ├── candle.tsx
│   │   │   │   │   ├── circle.tsx
│   │   │   │   │   ├── clip-path.tsx
│   │   │   │   │   ├── curve.tsx
│   │   │   │   │   ├── error-bar.tsx
│   │   │   │   │   ├── flyout.tsx
│   │   │   │   │   ├── line-segment.tsx
│   │   │   │   │   ├── line.tsx
│   │   │   │   │   ├── path.tsx
│   │   │   │   │   ├── point.tsx
│   │   │   │   │   ├── rect.tsx
│   │   │   │   │   ├── slice.tsx
│   │   │   │   │   ├── text.tsx
│   │   │   │   │   ├── tspan.tsx
│   │   │   │   │   ├── types.ts
│   │   │   │   │   ├── voronoi.tsx
│   │   │   │   │   └── whisker.tsx
│   │   │   │   ├── victory-scatter.tsx
│   │   │   │   ├── victory-selection-container.tsx
│   │   │   │   ├── victory-stack.tsx
│   │   │   │   ├── victory-tooltip.tsx
│   │   │   │   ├── victory-voronoi-container.tsx
│   │   │   │   ├── victory-voronoi.tsx
│   │   │   │   └── victory-zoom-container.tsx
│   │   │   ├── helpers/
│   │   │   │   ├── create-container.ts
│   │   │   │   ├── native-helpers.test.ts
│   │   │   │   ├── native-helpers.ts
│   │   │   │   ├── native-zoom-helpers.ts
│   │   │   │   └── wrap-core-component.tsx
│   │   │   └── index.ts
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-pie/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── helper-methods.ts
│   │   │   ├── index.ts
│   │   │   ├── slice.test.tsx
│   │   │   ├── slice.tsx
│   │   │   ├── victory-pie.test.tsx
│   │   │   └── victory-pie.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-polar-axis/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── helper-methods.ts
│   │   │   ├── index.ts
│   │   │   ├── types.ts
│   │   │   └── victory-polar-axis.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-scatter/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── helper-methods.test.tsx
│   │   │   ├── helper-methods.tsx
│   │   │   ├── index.ts
│   │   │   ├── victory-scatter.test.tsx
│   │   │   └── victory-scatter.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-selection-container/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── index.ts
│   │   │   ├── selection-helpers.test.tsx
│   │   │   ├── selection-helpers.tsx
│   │   │   └── victory-selection-container.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-shared-events/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── index.ts
│   │   │   └── victory-shared-events.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-stack/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── helper-methods.tsx
│   │   │   ├── index.ts
│   │   │   ├── victory-stack.test.tsx
│   │   │   └── victory-stack.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-tooltip/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── flyout.test.tsx
│   │   │   ├── flyout.tsx
│   │   │   ├── index.ts
│   │   │   ├── victory-tooltip.test.tsx
│   │   │   └── victory-tooltip.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-vendor/
│   │   ├── .babelrc.js
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── scripts/
│   │   │   └── build.js
│   │   ├── tests/
│   │   │   ├── d3-array.test.ts
│   │   │   ├── d3-ease.test.ts
│   │   │   ├── d3-interpolate.test.ts
│   │   │   ├── d3-scale.test.ts
│   │   │   ├── d3-shape.test.ts
│   │   │   ├── d3-time.test.ts
│   │   │   └── d3-timer.test.ts
│   │   └── tsconfig.json
│   ├── victory-voronoi/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── helper-methods.ts
│   │   │   ├── index.ts
│   │   │   ├── victory-voronoi.test.tsx
│   │   │   ├── victory-voronoi.tsx
│   │   │   └── voronoi.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── victory-voronoi-container/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── jest.config.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── index.ts
│   │   │   ├── victory-voronoi-container.tsx
│   │   │   └── voronoi-helpers.ts
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   └── victory-zoom-container/
│       ├── .npmignore
│       ├── CHANGELOG.md
│       ├── README.md
│       ├── jest.config.ts
│       ├── package.json
│       ├── src/
│       │   ├── index.ts
│       │   ├── victory-zoom-container.tsx
│       │   ├── zoom-helpers.test.ts
│       │   └── zoom-helpers.ts
│       ├── tsconfig.build.json
│       └── tsconfig.json
├── patches/
│   └── @changesets__cli@2.24.1.patch
├── pnpm-workspace.yaml
├── scripts/
│   ├── changelog.js
│   ├── release.ts
│   ├── sync-pkgs-wireit-helpers.js
│   └── sync-pkgs-wireit.js
├── stories/
│   ├── utils/
│   │   ├── arg-types.tsx
│   │   ├── data.ts
│   │   └── decorators.tsx
│   └── victory-charts/
│       ├── victory-animation/
│       │   ├── config.ts
│       │   └── default.stories.tsx
│       ├── victory-area/
│       │   ├── config.ts
│       │   ├── data-accessors.stories.tsx
│       │   ├── default.stories.tsx
│       │   ├── disable-inline-styles.stories.tsx
│       │   ├── events.stories.tsx
│       │   ├── interpolation.stories.tsx
│       │   ├── labels.stories.tsx
│       │   ├── log-scale.stories.tsx
│       │   ├── plotting-functions.stories.tsx
│       │   ├── polar-interpolation.stories.tsx
│       │   ├── polar.stories.tsx
│       │   ├── stacked.stories.tsx
│       │   ├── styles.stories.tsx
│       │   ├── theme.stories.tsx
│       │   ├── time-scale.stories.tsx
│       │   └── tooltips.stories.tsx
│       ├── victory-axis/
│       │   ├── axis-value.stories.tsx
│       │   ├── brush-axis-grid-line-styles.stories.tsx
│       │   ├── brush-axis-grid-line-width.stories.tsx
│       │   ├── brush-axis-grid-line-with-domain.stories.tsx
│       │   ├── brush-axis-grid-line.stories.tsx
│       │   ├── brush-axis-with-domain.stories.tsx
│       │   ├── brush-axis.stories.tsx
│       │   ├── config.ts
│       │   ├── default.stories.tsx
│       │   ├── fix-label-overlap.stories.tsx
│       │   ├── offsets.stories.tsx
│       │   ├── orientation.stories.tsx
│       │   ├── style.stories.tsx
│       │   ├── tick-format.stories.tsx
│       │   ├── tick-values.stories.tsx
│       │   ├── with-domain.stories.tsx
│       │   └── with-multiline-labels.stories.tsx
│       ├── victory-bar/
│       │   ├── alignment.stories.tsx
│       │   ├── bar-ratio.stories.tsx
│       │   ├── bar-width.stories.tsx
│       │   ├── config.ts
│       │   ├── corner-radius.stories.tsx
│       │   ├── data.stories.tsx
│       │   ├── default.stories.tsx
│       │   ├── disable-inline-styles.stories.tsx
│       │   ├── domain.stories.tsx
│       │   ├── focus-with-refs.stories.tsx
│       │   ├── get-path.stories.tsx
│       │   ├── grouped-bars.stories.tsx
│       │   ├── labels.stories.tsx
│       │   ├── polar-bars.stories.tsx
│       │   ├── regressions.stories.tsx
│       │   ├── scale.stories.tsx
│       │   ├── sorting.stories.tsx
│       │   ├── stacked-bars.stories.tsx
│       │   ├── style.stories.tsx
│       │   ├── theme.stories.tsx
│       │   └── tooltips.stories.tsx
│       ├── victory-box-plot/
│       │   ├── box-width.stories.tsx
│       │   ├── config.ts
│       │   ├── data.stories.tsx
│       │   ├── default.stories.tsx
│       │   ├── disable-inline-styles.stories.tsx
│       │   ├── domain.stories.tsx
│       │   ├── group.stories.tsx
│       │   ├── labels.stories.tsx
│       │   ├── style.stories.tsx
│       │   ├── theme.stories.tsx
│       │   ├── tooltips.stories.tsx
│       │   └── whisker-width.stories.tsx
│       ├── victory-candlestick/
│       │   ├── candle-colors.stories.tsx
│       │   ├── config.ts
│       │   ├── data.stories.tsx
│       │   ├── default.stories.tsx
│       │   ├── disable-inline-styles.stories.tsx
│       │   ├── domain.stories.tsx
│       │   ├── labels.stories.tsx
│       │   ├── scale.stories.tsx
│       │   ├── style.stories.tsx
│       │   ├── tooltips.stories.tsx
│       │   └── wick-stroke-width.stories.tsx
│       ├── victory-chart/
│       │   ├── axes.stories.tsx
│       │   ├── config.ts
│       │   ├── default.stories.tsx
│       │   ├── domain-from-data.stories.tsx
│       │   ├── domain-padding.stories.tsx
│       │   ├── domain.stories.tsx
│       │   ├── orientations.stories.tsx
│       │   ├── style.stories.tsx
│       │   ├── victory-brush-container-default.stories.tsx
│       │   ├── victory-brush-container-with-brush-style.stories.tsx
│       │   ├── victory-brush-container-with-domain-horizontal.stories.tsx
│       │   ├── victory-brush-container-with-domain.stories.tsx
│       │   ├── victory-cursor-container-default.stories.tsx
│       │   ├── victory-cursor-container-horizontal.stories.tsx
│       │   └── victory-zoom-container-default.stories.tsx
│       ├── victory-container/
│       │   ├── config.ts
│       │   ├── preserve-aspect-ratio.stories.tsx
│       │   └── responsive.stories.tsx
│       ├── victory-errorbar/
│       │   ├── border-width.stories.tsx
│       │   ├── config.ts
│       │   ├── data.stories.tsx
│       │   ├── default.stories.tsx
│       │   ├── disable-inline-styles.stories.tsx
│       │   ├── domain.stories.tsx
│       │   ├── labels.stories.tsx
│       │   ├── style.stories.tsx
│       │   └── theme.stories.tsx
│       ├── victory-histogram/
│       │   ├── bin-spacing.stories.tsx
│       │   ├── config.ts
│       │   ├── corner-radius.stories.tsx
│       │   ├── data.stories.tsx
│       │   ├── data.ts
│       │   ├── date-bins.stories.tsx
│       │   ├── default.stories.tsx
│       │   ├── disable-inline-styles.stories.tsx
│       │   ├── domain.stories.tsx
│       │   ├── empty-data.stories.tsx
│       │   ├── get-path.stories.tsx
│       │   ├── labels.stories.tsx
│       │   ├── mixed-charts.stories.tsx
│       │   ├── numeric-bins.stories.tsx
│       │   ├── scale.stories.tsx
│       │   ├── stacked.stories.tsx
│       │   ├── styles.stories.tsx
│       │   └── theme.stories.tsx
│       ├── victory-label/
│       │   ├── anchors.stories.tsx
│       │   ├── angles.stories.tsx
│       │   ├── background-padding.stories.tsx
│       │   ├── background-styles.stories.tsx
│       │   ├── config.ts
│       │   ├── default-rendering.stories.tsx
│       │   ├── inline.stories.tsx
│       │   ├── line-height.stories.tsx
│       │   ├── positioning.stories.tsx
│       │   └── styles.stories.tsx
│       ├── victory-legend/
│       │   ├── config.ts
│       │   ├── default.stories.tsx
│       │   ├── line-height.stories.tsx
│       │   └── title.stories.tsx
│       ├── victory-line/
│       │   ├── config.ts
│       │   ├── data-accessors.stories.tsx
│       │   ├── default.stories.tsx
│       │   ├── disable-inline-styles.stories.tsx
│       │   ├── events.stories.tsx
│       │   ├── interpolation.stories.tsx
│       │   ├── labels.stories.tsx
│       │   ├── log-scale.stories.tsx
│       │   ├── plotting-functions.stories.tsx
│       │   ├── polar-interpolation.stories.tsx
│       │   ├── polar.stories.tsx
│       │   ├── stacked.stories.tsx
│       │   ├── styles.stories.tsx
│       │   ├── theme.stories.tsx
│       │   ├── time-scale.stories.tsx
│       │   └── tooltips.stories.tsx
│       ├── victory-pie/
│       │   ├── categories.stories.tsx
│       │   ├── config.ts
│       │   ├── corner-radius.stories.tsx
│       │   ├── data.stories.tsx
│       │   ├── default.stories.tsx
│       │   ├── disable-inline-styles.stories.tsx
│       │   ├── inner-radius.stories.tsx
│       │   ├── label-indicator.stories.tsx
│       │   ├── label-placement.stories.tsx
│       │   ├── label-radius.stories.tsx
│       │   ├── labels.stories.tsx
│       │   ├── origin.stories.tsx
│       │   ├── pad-angle.stories.tsx
│       │   ├── radius.stories.tsx
│       │   ├── start-and-end-angles.stories.tsx
│       │   ├── styles.stories.tsx
│       │   ├── theme.stories.tsx
│       │   └── tooltips.stories.tsx
│       ├── victory-polar-axis/
│       │   ├── axis-angle.stories.tsx
│       │   ├── axis-value.stories.tsx
│       │   ├── config.ts
│       │   ├── default.stories.tsx
│       │   ├── domain.stories.tsx
│       │   ├── inner-radius.stories.tsx
│       │   ├── label-placement.stories.tsx
│       │   ├── scale.stories.tsx
│       │   ├── start-and-end-angle.stories.tsx
│       │   ├── style.stories.tsx
│       │   ├── theme.stories.tsx
│       │   ├── tick-format.stories.tsx
│       │   └── tick-values.stories.tsx
│       ├── victory-portal/
│       │   ├── config.ts
│       │   └── default.stories.tsx
│       ├── victory-scatter/
│       │   ├── bubble-charts.stories.tsx
│       │   ├── config.ts
│       │   ├── data-accessors.stories.tsx
│       │   ├── default-rendering.stories.tsx
│       │   ├── disable-inline-styles.stories.tsx
│       │   ├── domain.stories.tsx
│       │   ├── functional-symbols.stories.tsx
│       │   ├── labels.stories.tsx
│       │   ├── log-scale.stories.tsx
│       │   ├── polar.stories.tsx
│       │   ├── stacked.stories.tsx
│       │   ├── styles.stories.tsx
│       │   ├── symbols.stories.tsx
│       │   ├── theme.stories.tsx
│       │   ├── time-scale.stories.tsx
│       │   └── tooltips.stories.tsx
│       └── victory-tooltip/
│           ├── center-offset.stories.tsx
│           ├── config.ts
│           ├── constrain-to-visible-area.stories.tsx
│           ├── corner-radius.stories.tsx
│           ├── default.stories.tsx
│           ├── disable-inline-styles.stories.tsx
│           ├── flyout-height.stories.tsx
│           ├── flyout-padding.stories.tsx
│           ├── flyout-style.stories.tsx
│           ├── flyout-width.stories.tsx
│           ├── pointer-length.stories.tsx
│           ├── pointer-orientation.stories.tsx
│           └── pointer-width.stories.tsx
├── test/
│   ├── helpers/
│   │   ├── index.ts
│   │   ├── svg.ts
│   │   └── wrappers.tsx
│   ├── jest-setup.ts
│   ├── jest.config.ts
│   └── tsconfig.json
├── tsconfig.base.json
├── tsconfig.json
├── tsconfig.storybook.json
├── vercel.json
└── website/
    ├── .gitignore
    ├── README.md
    ├── babel.config.js
    ├── docs/
    │   ├── api/
    │   │   ├── _category_.json
    │   │   ├── victory-accessible-group.mdx
    │   │   ├── victory-animation.mdx
    │   │   ├── victory-area.mdx
    │   │   ├── victory-axis-common-props.mdx
    │   │   ├── victory-axis.mdx
    │   │   ├── victory-bar.mdx
    │   │   ├── victory-boxplot.mdx
    │   │   ├── victory-brush-container.mdx
    │   │   ├── victory-brush-line.mdx
    │   │   ├── victory-candlestick.mdx
    │   │   ├── victory-canvas.mdx
    │   │   ├── victory-chart.mdx
    │   │   ├── victory-clip-container.mdx
    │   │   ├── victory-common-props.mdx
    │   │   ├── victory-common-theme-props.mdx
    │   │   ├── victory-container-props.mdx
    │   │   ├── victory-container.mdx
    │   │   ├── victory-cursor-container.mdx
    │   │   ├── victory-datatable-props.mdx
    │   │   ├── victory-error-bar.mdx
    │   │   ├── victory-group.mdx
    │   │   ├── victory-histogram.mdx
    │   │   ├── victory-label.mdx
    │   │   ├── victory-labelable-props.mdx
    │   │   ├── victory-legend.mdx
    │   │   ├── victory-line.mdx
    │   │   ├── victory-multi-labelable-props.mdx
    │   │   ├── victory-pie.mdx
    │   │   ├── victory-polar-axis.mdx
    │   │   ├── victory-portal.mdx
    │   │   ├── victory-primitives.mdx
    │   │   ├── victory-scatter.mdx
    │   │   ├── victory-selection-container.mdx
    │   │   ├── victory-shared-events.mdx
    │   │   ├── victory-single-labelable-props.mdx
    │   │   ├── victory-stack.mdx
    │   │   ├── victory-style-interface.mdx
    │   │   ├── victory-theme.mdx
    │   │   ├── victory-tooltip.mdx
    │   │   ├── victory-transition.mdx
    │   │   ├── victory-voronoi-container.mdx
    │   │   ├── victory-voronoi.mdx
    │   │   └── victory-zoom-container.mdx
    │   ├── charts/
    │   │   ├── _category_.json
    │   │   ├── area.mdx
    │   │   ├── bar.mdx
    │   │   ├── box-plot.mdx
    │   │   ├── candlestick.mdx
    │   │   ├── error-bar.mdx
    │   │   ├── histogram.mdx
    │   │   ├── line.mdx
    │   │   ├── pie.mdx
    │   │   ├── scatter.mdx
    │   │   └── voronoi.mdx
    │   ├── examples/
    │   │   ├── _category_.json
    │   │   ├── anim-happy-holidays.mdx
    │   │   ├── area-hover.mdx
    │   │   ├── area-stream-graph.mdx
    │   │   ├── axis-parallel-brush.mdx
    │   │   ├── bar-horizontal-stacked.mdx
    │   │   ├── bar-linked-brushing.mdx
    │   │   ├── custom-charts.mdx
    │   │   ├── histogram-with-slider.mdx
    │   │   ├── polar-progress-bar.mdx
    │   │   └── voronoi-tooltips-grouped.mdx
    │   ├── guides/
    │   │   ├── _category_.json
    │   │   ├── accessibility.mdx
    │   │   ├── animations.mdx
    │   │   ├── annotations.mdx
    │   │   ├── axis.mdx
    │   │   ├── containers.mdx
    │   │   ├── custom-components.mdx
    │   │   ├── data-accessors.mdx
    │   │   ├── data-selection.mdx
    │   │   ├── events.mdx
    │   │   ├── legends.mdx
    │   │   ├── localization.mdx
    │   │   ├── pan-and-zoom.mdx
    │   │   ├── polar-charts.mdx
    │   │   ├── themes.mdx
    │   │   ├── tooltips.mdx
    │   │   └── zoom-large-data.mdx
    │   └── introduction/
    │       ├── _category_.json
    │       ├── index.mdx
    │       ├── native.mdx
    │       └── ssr.mdx
    ├── docusaurus.config.ts
    ├── package.json
    ├── sidebars.ts
    ├── src/
    │   ├── components/
    │   │   ├── CalloutBanner.tsx
    │   │   ├── LearnMoreLink.tsx
    │   │   ├── SidebarLeadBanner.tsx
    │   │   ├── badges.tsx
    │   │   ├── button.tsx
    │   │   ├── common-props.tsx
    │   │   ├── link-button.tsx
    │   │   └── slider.tsx
    │   ├── css/
    │   │   └── custom.css
    │   ├── hooks/
    │   │   ├── useClickOutside.tsx
    │   │   └── useLocalStorage.tsx
    │   ├── pages/
    │   │   ├── _components/
    │   │   │   ├── data/
    │   │   │   │   ├── downloads.js
    │   │   │   │   ├── update-downloads.js
    │   │   │   │   ├── update-versions.js
    │   │   │   │   └── versions.js
    │   │   │   ├── landing-banner.tsx
    │   │   │   ├── landing-demo.tsx
    │   │   │   ├── landing-divider.tsx
    │   │   │   ├── landing-featured-projects.tsx
    │   │   │   ├── landing-features.tsx
    │   │   │   ├── landing-hero.tsx
    │   │   │   ├── landing-showcase.tsx
    │   │   │   └── theme.ts
    │   │   ├── index.tsx
    │   │   └── themes/
    │   │       ├── _components/
    │   │       │   ├── accordion.tsx
    │   │       │   ├── alert.tsx
    │   │       │   ├── base-theme-panel.tsx
    │   │       │   ├── card.tsx
    │   │       │   ├── chart-panel.tsx
    │   │       │   ├── checkbox.tsx
    │   │       │   ├── code-block.tsx
    │   │       │   ├── code-panel.tsx
    │   │       │   ├── color-palette-selector.tsx
    │   │       │   ├── color-picker-list.tsx
    │   │       │   ├── color-picker.tsx
    │   │       │   ├── color-scale-override-selector.tsx
    │   │       │   ├── control.tsx
    │   │       │   ├── examples/
    │   │       │   │   ├── area.tsx
    │   │       │   │   ├── axis.tsx
    │   │       │   │   ├── bar.tsx
    │   │       │   │   ├── box-plot.tsx
    │   │       │   │   ├── candlestick.tsx
    │   │       │   │   ├── errorbar.tsx
    │   │       │   │   ├── example.ts
    │   │       │   │   ├── group.tsx
    │   │       │   │   ├── histogram.tsx
    │   │       │   │   ├── index.ts
    │   │       │   │   ├── legend.tsx
    │   │       │   │   ├── line.tsx
    │   │       │   │   ├── pie.tsx
    │   │       │   │   ├── polar-axis-dependent.tsx
    │   │       │   │   ├── polar-axis.tsx
    │   │       │   │   ├── scatter.tsx
    │   │       │   │   ├── stack.tsx
    │   │       │   │   └── voronoi.tsx
    │   │       │   ├── export-panel.tsx
    │   │       │   ├── main.tsx
    │   │       │   ├── options-panel.tsx
    │   │       │   ├── panel-header.tsx
    │   │       │   ├── select.tsx
    │   │       │   ├── sideNavButton.tsx
    │   │       │   ├── sidenav.tsx
    │   │       │   ├── slider.tsx
    │   │       │   ├── theme-preview/
    │   │       │   │   ├── header.tsx
    │   │       │   │   ├── index.tsx
    │   │       │   │   ├── options.tsx
    │   │       │   │   ├── preview-color-scale-select.tsx
    │   │       │   │   └── preview.tsx
    │   │       │   └── toggle.tsx
    │   │       ├── _config/
    │   │       │   ├── axis.tsx
    │   │       │   ├── chart.tsx
    │   │       │   ├── global.tsx
    │   │       │   ├── index.tsx
    │   │       │   └── palette.tsx
    │   │       ├── _const.tsx
    │   │       ├── _icons/
    │   │       │   ├── axis-options-icon.tsx
    │   │       │   ├── chart-options-icon.tsx
    │   │       │   ├── export-icon.tsx
    │   │       │   └── index.tsx
    │   │       ├── _providers/
    │   │       │   ├── alertProvider.tsx
    │   │       │   ├── previewOptionsProvider.tsx
    │   │       │   ├── sideNavProvider.tsx
    │   │       │   └── themeProvider.tsx
    │   │       ├── _utils.ts
    │   │       └── index.tsx
    │   ├── plugins/
    │   │   └── victory-typedoc/
    │   │       ├── components/
    │   │       │   └── api-property.tsx
    │   │       ├── index.ts
    │   │       ├── mdast.ts
    │   │       └── typedoc.ts
    │   └── theme/
    │       ├── DocItem/
    │       │   └── index.tsx
    │       ├── DocSidebar/
    │       │   └── index.tsx
    │       ├── MDXComponents.ts
    │       ├── Playground/
    │       │   ├── index.tsx
    │       │   └── styles.module.css
    │       ├── README.md
    │       ├── ReactLiveScope/
    │       │   ├── index.tsx
    │       │   └── scope-map.ts
    │       ├── prism-diff-highlight.css
    │       ├── prism-diff-highlight.ts
    │       └── prism-include-languages.ts
    ├── static/
    │   ├── .nojekyll
    │   └── favicon/
    │       ├── browserconfig.xml
    │       └── site.webmanifest
    ├── tailwind.config.ts
    ├── tsconfig.json
    └── vendors.d.ts
Download .txt
SYMBOL INDEX (946 symbols across 213 files)

FILE: .storybook/main.ts
  constant ROOT (line 5) | const ROOT = path.resolve(__dirname, "..");
  constant STORIES (line 6) | const STORIES = path.resolve(ROOT, "stories");

FILE: config/webpack/demo/webpack.config.dev.js
  constant ROOT (line 8) | const ROOT = path.resolve(__dirname, "../../..");
  constant PKGS (line 9) | const PKGS = path.join(ROOT, "packages");
  constant VICTORY_GLOB (line 10) | const VICTORY_GLOB = path
  constant VICTORY_ALIASES (line 14) | const VICTORY_ALIASES = glob.sync(VICTORY_GLOB).reduce((memo, pkgPath) => {
  constant DEMO (line 19) | const DEMO = path.resolve("demo");
  constant WDS_PORT (line 20) | const WDS_PORT = 3000;

FILE: config/webpack/webpack.config.js
  constant SRC (line 7) | const SRC = path.resolve("src");
  constant PKG (line 14) | const PKG = require(path.resolve("package.json"));

FILE: demo/rn/src/navigation-config.ts
  type RootStackNavigatorParams (line 1) | type RootStackNavigatorParams = {

FILE: demo/rn/src/screens/brush-line-screen.tsx
  type DataType (line 19) | type DataType = {
  type DataSet (line 27) | interface DataSet {
  type Attribute (line 41) | type Attribute = "strength" | "intelligence" | "speed" | "luck";
  type Filter (line 44) | type Filter = Record<Attribute, number[] | undefined>;
  function normalizeData (line 54) | function normalizeData(maximumValues: number[]) {
  function getMaximumValues (line 65) | function getMaximumValues() {
  function getAxisOffset (line 73) | function getAxisOffset(index: number) {

FILE: demo/rn/src/screens/components-screen.tsx
  type DataItem (line 59) | type DataItem = { key: string; title: string };
  type SectionItem (line 60) | type SectionItem = {

FILE: packages/victory-area/src/area.tsx
  type AreaProps (line 178) | interface AreaProps extends VictoryCommonPrimitiveProps {

FILE: packages/victory-area/src/victory-area.tsx
  type VictoryAreaTTargetType (line 40) | type VictoryAreaTTargetType = "data" | "labels" | "parent";
  type VictoryAreaProps (line 42) | interface VictoryAreaProps
  type VictoryAreaBase (line 54) | interface VictoryAreaBase extends EventsMixinClass<VictoryAreaProps> {}
    method getBaseProps (line 90) | static getBaseProps(props) {
    method shouldAnimate (line 101) | shouldAnimate() {
    method render (line 105) | render() {
  class VictoryAreaBase (line 60) | class VictoryAreaBase extends React.Component<VictoryAreaProps> {
    method getBaseProps (line 90) | static getBaseProps(props) {
    method shouldAnimate (line 101) | shouldAnimate() {
    method render (line 105) | render() {

FILE: packages/victory-axis/src/victory-axis.tsx
  type VictoryAxisTTargetType (line 38) | type VictoryAxisTTargetType =
  type VictoryAxisProps (line 46) | interface VictoryAxisProps
  type VictoryAxisBase (line 59) | interface VictoryAxisBase extends EventsMixinClass<VictoryAxisProps> {}
    method getStyles (line 103) | static getStyles(props) {
    method getBaseProps (line 106) | static getBaseProps(props) {
    method renderLine (line 119) | renderLine(props) {
    method renderLabel (line 125) | renderLabel(props) {
    method renderGridAndTicks (line 138) | renderGridAndTicks(props) {
    method fixLabelOverlap (line 177) | fixLabelOverlap(gridAndTicks, props) {
    method shouldAnimate (line 226) | shouldAnimate() {
    method render (line 230) | render(): React.ReactElement {
  class VictoryAxisBase (line 61) | class VictoryAxisBase extends React.Component<VictoryAxisProps> {
    method getStyles (line 103) | static getStyles(props) {
    method getBaseProps (line 106) | static getBaseProps(props) {
    method renderLine (line 119) | renderLine(props) {
    method renderLabel (line 125) | renderLabel(props) {
    method renderGridAndTicks (line 138) | renderGridAndTicks(props) {
    method fixLabelOverlap (line 177) | fixLabelOverlap(gridAndTicks, props) {
    method shouldAnimate (line 226) | shouldAnimate() {
    method render (line 230) | render(): React.ReactElement {

FILE: packages/victory-bar/src/bar-helper-methods.ts
  constant DEFAULT_BAR_WIDTH (line 9) | const DEFAULT_BAR_WIDTH = 8;
  function isCornerRadiusObject (line 63) | function isCornerRadiusObject(

FILE: packages/victory-bar/src/bar.tsx
  type BarProps (line 16) | interface BarProps extends VictoryCommonPrimitiveProps {

FILE: packages/victory-bar/src/geometry-helper-methods.ts
  method distance (line 7) | distance(p1: { x: number; y: number }) {
  method add (line 11) | add(p1: { x: number; y: number }) {
  method subtract (line 16) | subtract(p1: { x: number; y: number }) {
  method scalarMult (line 20) | scalarMult(n: number) {
  method scalarDivide (line 23) | scalarDivide(n: number) {
  method equals (line 29) | equals(p1: { x: number; y: number }) {
  type Center (line 34) | type Center = ReturnType<typeof point>;
  method hasIntersection (line 42) | hasIntersection(circle1: { center: Center; radius: number }) {
  method equals (line 57) | equals(circle1: { center: Center; radius: number }) {
  method intersection (line 68) | intersection(circle1: { center: Center; radius: number }) {
  method solveX (line 90) | solveX(y: number) {
  method solveY (line 96) | solveY(x: number) {

FILE: packages/victory-bar/src/victory-bar.tsx
  type VictoryBarCornerRadiusKey (line 24) | type VictoryBarCornerRadiusKey =
  type VictoryBarCornerRadiusObject (line 32) | type VictoryBarCornerRadiusObject = Partial<
  type VictoryBarTTargetType (line 36) | type VictoryBarTTargetType = "data" | "labels" | "parent";
  type VictoryBarAlignmentType (line 38) | type VictoryBarAlignmentType = "start" | "middle" | "end";
  type VictoryBarProps (line 40) | interface VictoryBarProps
  type VictoryBarBase (line 71) | interface VictoryBarBase extends EventsMixinClass<VictoryBarProps> {}
    method getBaseProps (line 122) | static getBaseProps(props: VictoryBarProps) {
    method shouldAnimate (line 135) | shouldAnimate() {
    method render (line 139) | render(): React.ReactElement {
  class VictoryBarBase (line 77) | class VictoryBarBase extends React.Component<VictoryBarProps> {
    method getBaseProps (line 122) | static getBaseProps(props: VictoryBarProps) {
    method shouldAnimate (line 135) | shouldAnimate() {
    method render (line 139) | render(): React.ReactElement {

FILE: packages/victory-box-plot/src/helper-methods.tsx
  constant TYPES (line 14) | const TYPES = ["max", "min", "median", "q1", "q3"];

FILE: packages/victory-box-plot/src/victory-box-plot.test.tsx
  constant TEST_GROUP_ID (line 8) | const TEST_GROUP_ID = "test-group-id";

FILE: packages/victory-box-plot/src/victory-box-plot.tsx
  type VictoryBoxPlotLabelType (line 58) | type VictoryBoxPlotLabelType =
  type VictoryBoxPlotStyleInterface (line 64) | interface VictoryBoxPlotStyleInterface {
  type VictoryBoxPlotLabelOrientationInterface (line 80) | interface VictoryBoxPlotLabelOrientationInterface {
  type VictoryBoxPlotProps (line 88) | interface VictoryBoxPlotProps
  type VictoryBoxPlotBase (line 126) | interface VictoryBoxPlotBase extends EventsMixinClass<VictoryBoxPlotProp...
    method getDomain (line 164) | static getDomain(props, axis) {
    method getData (line 167) | static getData(props) {
    method getBaseProps (line 170) | static getBaseProps(props) {
    method renderBoxPlot (line 188) | renderBoxPlot(props) {
    method shouldAnimate (line 238) | shouldAnimate() {
    method shouldRenderDatum (line 242) | shouldRenderDatum(datum) {
    method render (line 255) | render(): React.ReactElement {
  class VictoryBoxPlotBase (line 128) | class VictoryBoxPlotBase extends React.Component<VictoryBoxPlotProps> {
    method getDomain (line 164) | static getDomain(props, axis) {
    method getData (line 167) | static getData(props) {
    method getBaseProps (line 170) | static getBaseProps(props) {
    method renderBoxPlot (line 188) | renderBoxPlot(props) {
    method shouldAnimate (line 238) | shouldAnimate() {
    method shouldRenderDatum (line 242) | shouldRenderDatum(datum) {
    method render (line 255) | render(): React.ReactElement {

FILE: packages/victory-brush-container/src/brush-helpers.ts
  method getDimension (line 8) | getDimension(props) {
  method withinBounds (line 16) | withinBounds(point, bounds, padding?) {
  method getDomainBox (line 28) | getDomainBox(props, fullDomain, selectedDomain?) {
  method getHandles (line 58) | getHandles(props, domainBox) {
  method getActiveHandles (line 94) | getActiveHandles(point, props, domainBox) {
  method getResizeMutation (line 106) | getResizeMutation(box, handles) {
  method getMinimumDomain (line 119) | getMinimumDomain() {
  method getDefaultBrushArea (line 126) | getDefaultBrushArea(targetProps, cachedDomain, evt) {
  method getSelectionMutation (line 157) | getSelectionMutation(point, box, brushDimension) {
  method panBox (line 168) | panBox(props, point) {
  method constrainBox (line 194) | constrainBox(box, fullDomainBox) {
  method constrainPoint (line 204) | constrainPoint(point, fullDomainBox) {
  method hasMoved (line 212) | hasMoved(props) {
  method onMouseDown (line 227) | onMouseDown(evt, targetProps) {
  method onGlobalMouseMove (line 328) | onGlobalMouseMove(evt, targetProps) {
  method onGlobalMouseUp (line 419) | onGlobalMouseUp(evt, targetProps) {

FILE: packages/victory-brush-container/src/victory-brush-container.tsx
  type VictoryBrushContainerProps (line 14) | interface VictoryBrushContainerProps extends VictoryContainerProps {
  type VictoryBrushContainerMutatedProps (line 41) | interface VictoryBrushContainerMutatedProps extends VictoryBrushContaine...
  constant VICTORY_BRUSH_CONTAINER_DEFAULT_PROPS (line 47) | const VICTORY_BRUSH_CONTAINER_DEFAULT_PROPS = {

FILE: packages/victory-brush-line/src/victory-brush-line.tsx
  type VictoryBrushLineTargetType (line 18) | type VictoryBrushLineTargetType = "data" | "labels" | "parent";
  type VictoryBrushLineProps (line 19) | interface VictoryBrushLineProps {
  constant SMALL_NUMBER (line 50) | const SMALL_NUMBER = 1 / Number.MAX_SAFE_INTEGER;
  type ReduceReturnType (line 116) | type ReduceReturnType = {
  class VictoryBrushLine (line 178) | class VictoryBrushLine<
    method getRectDimensions (line 490) | getRectDimensions(props, brushWidth, domain?) {
    method getHandleDimensions (line 524) | getHandleDimensions(props) {
    method getCursor (line 549) | getCursor(props) {
    method renderHandles (line 560) | renderHandles(props) {
    method renderBrush (line 608) | renderBrush(props) {
    method renderBrushArea (line 630) | renderBrushArea(props) {
    method renderLine (line 657) | renderLine(props) {
    method render (line 671) | render() {

FILE: packages/victory-candlestick/src/candle.tsx
  type CandleProps (line 12) | interface CandleProps extends VictoryCommonPrimitiveProps {

FILE: packages/victory-candlestick/src/helper-methods.ts
  constant TYPES (line 14) | const TYPES = ["close", "open", "high", "low"];
  constant DEFAULT_CANDLE_WIDTH (line 16) | const DEFAULT_CANDLE_WIDTH = 8;

FILE: packages/victory-candlestick/src/victory-candlestick.tsx
  type VictoryCandlestickStyleInterface (line 24) | interface VictoryCandlestickStyleInterface {
  type VictoryCandlestickLabelsType (line 38) | type VictoryCandlestickLabelsType =
  type VictoryCandlestickProps (line 43) | interface VictoryCandlestickProps
  type VictoryCandlestickBase (line 131) | interface VictoryCandlestickBase
    method getDomain (line 170) | static getDomain(props, axis) {
    method getData (line 173) | static getData(props) {
    method getBaseProps (line 176) | static getBaseProps(props: VictoryCandlestickProps) {
    method shouldAnimate (line 191) | shouldAnimate() {
    method renderCandleData (line 205) | renderCandleData(
    method render (line 290) | render(): React.ReactElement {
  class VictoryCandlestickBase (line 138) | class VictoryCandlestickBase extends React.Component<VictoryCandlestickP...
    method getDomain (line 170) | static getDomain(props, axis) {
    method getData (line 173) | static getData(props) {
    method getBaseProps (line 176) | static getBaseProps(props: VictoryCandlestickProps) {
    method shouldAnimate (line 191) | shouldAnimate() {
    method renderCandleData (line 205) | renderCandleData(
    method render (line 290) | render(): React.ReactElement {

FILE: packages/victory-canvas/src/canvas-bar.tsx
  type CanvasBarProps (line 15) | interface CanvasBarProps extends VictoryCommonPrimitiveProps {

FILE: packages/victory-canvas/src/canvas-curve.tsx
  type CanvasCurveProps (line 11) | interface CanvasCurveProps extends VictoryCommonPrimitiveProps {

FILE: packages/victory-canvas/src/canvas-group.tsx
  type CanvasGroupProps (line 5) | interface CanvasGroupProps {

FILE: packages/victory-canvas/src/canvas-point.tsx
  type CanvasPointProps (line 10) | interface CanvasPointProps extends VictoryCommonPrimitiveProps {

FILE: packages/victory-canvas/src/hooks/use-canvas-context.ts
  type CanvasContextValue (line 3) | type CanvasContextValue = {

FILE: packages/victory-chart/src/helper-methods.tsx
  function getAxisProps (line 11) | function getAxisProps(child, props, calculatedProps) {
  function getBackgroundWithProps (line 25) | function getBackgroundWithProps(props, calculatedProps) {
  function getChildProps (line 61) | function getChildProps(child, props, calculatedProps) {
  function getStyles (line 71) | function getStyles(props) {
  function getCalculatedProps (line 83) | function getCalculatedProps(initialProps, childComponents) {
  function getChildren (line 133) | function getChildren(props, childComponents, calculatedProps) {

FILE: packages/victory-chart/src/victory-chart.tsx
  type AxesType (line 208) | type AxesType = {
  type VictoryChartProps (line 213) | interface VictoryChartProps extends VictoryCommonProps {

FILE: packages/victory-core/src/types/callbacks.ts
  type CallbackArgs (line 11) | interface CallbackArgs {
  type VictoryStringOrNumberCallback (line 31) | type VictoryStringOrNumberCallback = (
  type VictoryStringCallback (line 35) | type VictoryStringCallback = (args: CallbackArgs) => string;
  type StringOrNumberOrCallback (line 36) | type StringOrNumberOrCallback =
  type StringOrCallback (line 40) | type StringOrCallback = string | VictoryStringCallback;
  type SliceNumberOrCallback (line 41) | type SliceNumberOrCallback<
  type VictoryNumberCallback (line 45) | type VictoryNumberCallback = (args: CallbackArgs) => number;
  type VictoryPaddingCallback (line 46) | type VictoryPaddingCallback = (
  type VictoryOrientationCallback (line 49) | type VictoryOrientationCallback = (
  type NumberOrCallback (line 52) | type NumberOrCallback = number | VictoryNumberCallback;
  type PaddingOrCallback (line 53) | type PaddingOrCallback = number | BlockProps | VictoryPaddingCallback;
  type OrientationOrCallback (line 54) | type OrientationOrCallback =

FILE: packages/victory-core/src/types/prop-types.ts
  type AxisType (line 14) | type AxisType = "x" | "y";
  type DatumValue (line 15) | type DatumValue = number | string | Date | null | undefined;
  type Datum (line 16) | type Datum = any;
  type ForAxes (line 17) | type ForAxes<T> = T | { x?: T; y?: T };
  type ID (line 18) | type ID = number | string;
  type ValueOrAccessor (line 19) | type ValueOrAccessor<ValueType, PropsType = CallbackArgs> =
  type Tuple (line 22) | type Tuple<T> = [T, T];
  type ValueOrAxes (line 23) | type ValueOrAxes<T> = T | ForAxes<T>;
  type DomainPaddingPropType (line 25) | type DomainPaddingPropType = ValueOrAxes<PaddingType>;
  type DomainPropType (line 26) | type DomainPropType = ValueOrAxes<DomainTuple>;
  type DomainValue (line 27) | type DomainValue = number | Date;
  type DomainTuple (line 30) | type DomainTuple = Tuple<number> | Tuple<Date>;
  type PaddingType (line 31) | type PaddingType = number | Tuple<number>;
  type RangePropType (line 32) | type RangePropType = ValueOrAxes<RangeTuple>;
  type RangeTuple (line 33) | type RangeTuple = number[];
  type StringOrNumberOrList (line 34) | type StringOrNumberOrList = string | number | (string | number)[];
  type Padding (line 36) | interface Padding {
  type AnimatePropTypeInterface (line 43) | interface AnimatePropTypeInterface {
  type EventCallbackInterface (line 65) | interface EventCallbackInterface<TTarget, TEventKey> {
  type EventPropTypeInterface (line 73) | interface EventPropTypeInterface<TTarget, TEventKey> {
  type NumberValue (line 97) | type NumberValue = number | { valueOf(): number };
  type D3Scale (line 101) | interface D3Scale<TRange = any> {
  type D3ScaleFn (line 118) | type D3ScaleFn<TRange = any, TOutput = any> = () =>
  type ScaleName (line 124) | type ScaleName = "linear" | "time" | "log" | "sqrt";
  type ScalePropType (line 125) | type ScalePropType = ScaleName;
  type ScaleXYPropType (line 126) | type ScaleXYPropType = {
  type CategoryPropType (line 131) | type CategoryPropType =
  type DataGetterPropType (line 140) | type DataGetterPropType = ValueOrAccessor<
  type InterpolationPropType (line 145) | type InterpolationPropType =
  type ColorScalePropType (line 166) | type ColorScalePropType =
  type SortOrderPropType (line 177) | type SortOrderPropType = "ascending" | "descending";
  type VictoryLabelableProps (line 179) | interface VictoryLabelableProps {
  type VictoryMultiLabelableProps (line 183) | interface VictoryMultiLabelableProps extends VictoryLabelableProps {
  type VictorySingleLabelableProps (line 190) | interface VictorySingleLabelableProps extends VictoryLabelableProps {
  type CoordinatesPropType (line 194) | type CoordinatesPropType = {
  type VictoryEventHandler (line 199) | type VictoryEventHandler = (

FILE: packages/victory-core/src/victory-accessible-group/victory-accessible-group.tsx
  type VictoryAccessibleGroupProps (line 3) | interface VictoryAccessibleGroupProps {

FILE: packages/victory-core/src/victory-animation/victory-animation.tsx
  type AnimationStyle (line 9) | type AnimationStyle = { [key: string]: string | number };
  type AnimationData (line 14) | type AnimationData = AnimationStyle | AnimationStyle[];
  type AnimationEasing (line 16) | type AnimationEasing =
  type VictoryAnimationProps (line 58) | interface VictoryAnimationProps {
  type VictoryAnimationState (line 67) | interface VictoryAnimationState {
  type AnimationInfo (line 72) | interface AnimationInfo {
  type VictoryAnimation (line 78) | interface VictoryAnimation {
  constant DEFAULT_DURATION (line 88) | const DEFAULT_DURATION = 1000;

FILE: packages/victory-core/src/victory-clip-container/victory-clip-container.tsx
  type VictoryClipContainerProps (line 14) | interface VictoryClipContainerProps {
  type VictoryClipContainerState (line 34) | interface VictoryClipContainerState {
  class VictoryClipContainer (line 38) | class VictoryClipContainer extends React.Component<
    method constructor (line 53) | constructor(props: VictoryClipContainerProps) {
    method componentDidMount (line 63) | componentDidMount() {
    method calculateAttributes (line 69) | calculateAttributes(props) {
    method renderClippedGroup (line 94) | renderClippedGroup(props, clipId) {
    method renderGroup (line 123) | renderGroup(props) {
    method renderClipComponent (line 149) | renderClipComponent(props, clipId) {
    method getClipValue (line 188) | getClipValue(props, axis) {
    method getTranslateValue (line 197) | getTranslateValue(props, axis) {
    method render (line 205) | render() {

FILE: packages/victory-core/src/victory-container/victory-container.tsx
  type VictoryContainerProps (line 12) | interface VictoryContainerProps {
  function useVictoryContainer (line 54) | function useVictoryContainer<TProps extends VictoryContainerProps>(

FILE: packages/victory-core/src/victory-label/victory-label.tsx
  type TextAnchorType (line 28) | type TextAnchorType = "start" | "middle" | "end" | "inherit";
  type OriginType (line 29) | type OriginType = { x: number; y: number };
  type LabelOrientationType (line 30) | type LabelOrientationType = "parallel" | "perpendicular" | "vertical";
  type VictoryLabelProps (line 32) | interface VictoryLabelProps {

FILE: packages/victory-core/src/victory-portal/portal-context.tsx
  type PortalContextValue (line 3) | interface PortalContextValue {
  type PortalProviderProps (line 19) | interface PortalProviderProps {

FILE: packages/victory-core/src/victory-portal/portal-outlet.tsx
  type PortalOutletProps (line 4) | interface PortalOutletProps {

FILE: packages/victory-core/src/victory-portal/portal.tsx
  type PortalProps (line 3) | interface PortalProps {

FILE: packages/victory-core/src/victory-portal/victory-portal.tsx
  type VictoryPortalProps (line 9) | interface VictoryPortalProps {

FILE: packages/victory-core/src/victory-primitives/arc.tsx
  type ArcProps (line 9) | interface ArcProps extends VictoryCommonPrimitiveProps {

FILE: packages/victory-core/src/victory-primitives/background.tsx
  type BackgroundProps (line 9) | interface BackgroundProps extends VictoryCommonPrimitiveProps {

FILE: packages/victory-core/src/victory-primitives/border.tsx
  type BorderProps (line 8) | interface BorderProps extends VictoryCommonPrimitiveProps {

FILE: packages/victory-core/src/victory-primitives/clip-path.tsx
  type ClipPathProps (line 4) | interface ClipPathProps extends VictoryCommonPrimitiveProps {

FILE: packages/victory-core/src/victory-primitives/line-segment.tsx
  type LineSegmentProps (line 8) | interface LineSegmentProps extends VictoryCommonPrimitiveProps {

FILE: packages/victory-core/src/victory-primitives/point.tsx
  type PointProps (line 11) | interface PointProps extends VictoryCommonPrimitiveProps {

FILE: packages/victory-core/src/victory-primitives/text.tsx
  type TextProps (line 5) | interface TextProps extends VictoryCommonPrimitiveProps {

FILE: packages/victory-core/src/victory-primitives/types.ts
  type ScatterSymbolType (line 3) | type ScatterSymbolType =
  type VictoryPrimitiveShapeProps (line 14) | interface VictoryPrimitiveShapeProps

FILE: packages/victory-core/src/victory-primitives/whisker.tsx
  type WhiskerAxes (line 8) | type WhiskerAxes = {
  type WhiskerProps (line 15) | interface WhiskerProps extends VictoryCommonPrimitiveProps {

FILE: packages/victory-core/src/victory-theme/types.ts
  type BlockProps (line 14) | type BlockProps = {
  type PaddingProps (line 20) | type PaddingProps = number | BlockProps;
  type OrientationTypes (line 21) | type OrientationTypes = "top" | "bottom" | "left" | "right";
  type VictoryStyleObject (line 22) | type VictoryStyleObject = {
  type LabelProps (line 25) | type LabelProps = React.CSSProperties & {
  type VictoryLabelStyleObject (line 29) | type VictoryLabelStyleObject = {
  type VictoryStyleInterface (line 36) | interface VictoryStyleInterface {
  type TickProps (line 43) | type TickProps = React.CSSProperties & { size?: number };
  type VictoryTickStyleObject (line 44) | type VictoryTickStyleObject = {
  type VictoryAxisCommonProps (line 48) | interface VictoryAxisCommonProps {
  type VerticalAnchorType (line 73) | type VerticalAnchorType = "start" | "middle" | "end";
  type VictoryThemePaletteKeys (line 76) | type VictoryThemePaletteKeys =
  type VictoryThemePalette (line 87) | type VictoryThemePalette = {
  type VictoryThemeDefinition (line 91) | interface VictoryThemeDefinition {

FILE: packages/victory-core/src/victory-transition/victory-transition.tsx
  type VictoryTransitionChild (line 13) | type VictoryTransitionChild = React.ReactElement<
  type VictoryTransitionProps (line 26) | interface VictoryTransitionProps {
  type VictoryTransitionState (line 32) | interface VictoryTransitionState {
  type VictoryTransition (line 43) | interface VictoryTransition {
    method constructor (line 58) | constructor(props, context) {
    method componentDidMount (line 70) | componentDidMount() {
    method shouldComponentUpdate (line 74) | shouldComponentUpdate(nextProps: VictoryTransitionProps) {
    method componentWillUnmount (line 84) | componentWillUnmount() {
    method getTransitionState (line 88) | private getTransitionState(
    method getDomainFromChildren (line 118) | private getDomainFromChildren(
    method pickProps (line 156) | pickProps() {
    method pickDomainProps (line 165) | private pickDomainProps(props: VictoryTransitionProps) {
    method getClipWidth (line 177) | getClipWidth(props, child) {
    method render (line 188) | render() {
  class VictoryTransition (line 47) | class VictoryTransition extends React.Component<
    method constructor (line 58) | constructor(props, context) {
    method componentDidMount (line 70) | componentDidMount() {
    method shouldComponentUpdate (line 74) | shouldComponentUpdate(nextProps: VictoryTransitionProps) {
    method componentWillUnmount (line 84) | componentWillUnmount() {
    method getTransitionState (line 88) | private getTransitionState(
    method getDomainFromChildren (line 118) | private getDomainFromChildren(
    method pickProps (line 156) | pickProps() {
    method pickDomainProps (line 165) | private pickDomainProps(props: VictoryTransitionProps) {
    method getClipWidth (line 177) | getClipWidth(props, child) {
    method render (line 188) | render() {

FILE: packages/victory-core/src/victory-util/add-events.tsx
  type MixinOptions (line 32) | type MixinOptions = {
  type EventMixinCommonProps (line 39) | interface EventMixinCommonProps
  type EventsMixinClass (line 53) | interface EventsMixinClass<TProps> {
  type EventMixinCalculatedValues (line 77) | interface EventMixinCalculatedValues {
  type VictoryComponentCommonRole (line 89) | type VictoryComponentCommonRole =
  type VictoryComponentRole (line 104) | type VictoryComponentRole = VictoryComponentCommonRole | string;
  type VictoryComponentConfiguration (line 109) | interface VictoryComponentConfiguration<TProps> {
  type WrappedComponentClass (line 124) | interface WrappedComponentClass<TProps>
  function addEvents (line 129) | function addEvents<

FILE: packages/victory-core/src/victory-util/axis.tsx
  function identity (line 17) | function identity<T>(value: T): T {
  function getAxis (line 27) | function getAxis(props) {
  function findAxisComponents (line 38) | function findAxisComponents(childComponents, predicate?) {
  function getAxisComponent (line 66) | function getAxisComponent(childComponents, axis) {
  function getAxisComponentsWithParent (line 81) | function getAxisComponentsWithParent(childComponents, type) {
  function getOrigin (line 105) | function getOrigin(domain) {
  function getOriginSign (line 122) | function getOriginSign(origin, domain) {
  function isVertical (line 133) | function isVertical(props) {
  function stringTicks (line 144) | function stringTicks(props) {
  function getDefaultTickFormat (line 151) | function getDefaultTickFormat(props) {
  function getStringTicks (line 170) | function getStringTicks(props) {
  function getTickArray (line 186) | function getTickArray(props) {
  function getTickFormat (line 245) | function getTickFormat(props, scale) {
  function downsampleTicks (line 277) | function downsampleTicks(ticks: number[], tickCount: number) {
  function getTicks (line 285) | function getTicks(props, scale: D3Scale, filterZero = false) {
  function getDomainFromData (line 321) | function getDomainFromData(props, axis) {
  function getDomain (line 353) | function getDomain(props, axis?) {
  function getAxisValue (line 361) | function getAxisValue(props, axis) {
  function modifyProps (line 382) | function modifyProps(props, fallbackProps) {

FILE: packages/victory-core/src/victory-util/collection.tsx
  function isNonEmptyArray (line 1) | function isNonEmptyArray<T>(
  function containsStrings (line 7) | function containsStrings<T>(collection: Array<T>) {
  function containsDates (line 14) | function containsDates(collection: Array<number | Date>): boolean {
  function containsNumbers (line 21) | function containsNumbers(collection) {
  function containsOnlyStrings (line 28) | function containsOnlyStrings(
  function difference (line 43) | function difference<T>(a: Array<T>, b: Array<T>): Array<T> {
  function isArrayOfArrays (line 50) | function isArrayOfArrays<T>(
  function removeUndefined (line 59) | function removeUndefined(arr) {
  function getMaxValue (line 63) | function getMaxValue(
  function getMinValue (line 73) | function getMinValue(

FILE: packages/victory-core/src/victory-util/common-props.tsx
  type VictoryDatableProps (line 20) | interface VictoryDatableProps {
  type VictoryCommonThemeProps (line 33) | interface VictoryCommonThemeProps {
  type VictoryCommonProps (line 66) | interface VictoryCommonProps extends VictoryCommonThemeProps {
  type VictoryCommonPrimitiveProps (line 69) | interface VictoryCommonPrimitiveProps {

FILE: packages/victory-core/src/victory-util/data.test.tsx
  class TestDataComponent (line 369) | class TestDataComponent extends React.Component {
  class TestFooComponent (line 378) | class TestFooComponent extends React.Component {

FILE: packages/victory-core/src/victory-util/data.ts
  function parseDatum (line 18) | function parseDatum(datum) {
  function getLength (line 29) | function getLength(data: unknown[]) {
  function generateDataArray (line 34) | function generateDataArray(props, axis) {
  function sortData (line 50) | function sortData(dataset, sortKey, sortOrder = "ascending") {
  function cleanData (line 65) | function cleanData(dataset, props) {
  function getEventKey (line 94) | function getEventKey(key) {
  function addEventKeys (line 107) | function addEventKeys(props, data) {
  function formatDataFromDomain (line 126) | function formatDataFromDomain(dataset, domain, defaultBaseline?) {
  function createStringMap (line 179) | function createStringMap(props, axis) {
  function downsample (line 205) | function downsample(data, maxPoints, startingIndex = 0) {
  function formatData (line 227) | function formatData(
  function generateData (line 320) | function generateData(props) {
  function getCategories (line 335) | function getCategories(props, axis) {
  function getData (line 346) | function getData(props) {
  function getStringsFromAxes (line 358) | function getStringsFromAxes(props, axis) {
  function getStringsFromCategories (line 375) | function getStringsFromCategories(props, axis) {
  function getStringsFromData (line 391) | function getStringsFromData(props, axis) {
  function isDataComponent (line 430) | function isDataComponent(component) {

FILE: packages/victory-core/src/victory-util/default-transitions.ts
  function continuousTransitions (line 3) | function continuousTransitions(): AnimatePropTypeInterface {
  function continuousPolarTransitions (line 17) | function continuousPolarTransitions(): AnimatePropTypeInterface {
  function discreteTransitions (line 61) | function discreteTransitions(): AnimatePropTypeInterface {

FILE: packages/victory-core/src/victory-util/domain.test.tsx
  class TestDomainComponent (line 325) | class TestDomainComponent extends React.Component {
  class TestFooComponent (line 334) | class TestFooComponent extends React.Component {

FILE: packages/victory-core/src/victory-util/domain.ts
  function cleanDomain (line 13) | function cleanDomain(domain, props, axis) {
  function getDomainPadding (line 33) | function getDomainPadding(props, axis) {
  function getFlatData (line 45) | function getFlatData(dataset, axis: "x" | "y") {
  function getExtremeFromData (line 54) | function getExtremeFromData(dataset, axis, type = "min") {
  function padDomain (line 72) | function padDomain(domain, props, axis) {
  function createDomainFunction (line 177) | function createDomainFunction(
  function formatDomain (line 207) | function formatDomain(domain, props, axis) {
  function getDomain (line 217) | function getDomain(props, axis) {
  function getDomainFromCategories (line 228) | function getDomainFromCategories(props, axis, categories?) {
  function getDomainFromData (line 270) | function getDomainFromData(props, axis, dataset) {
  function getDomainFromMinMax (line 300) | function getDomainFromMinMax(min, max) {
  function getDomainFromProps (line 326) | function getDomainFromProps(props, axis) {
  function getDomainWithZero (line 346) | function getDomainWithZero(props, axis) {
  function getMaxFromProps (line 398) | function getMaxFromProps(props, axis) {
  function getMinFromProps (line 413) | function getMinFromProps(props, axis) {
  function getSymmetricDomain (line 429) | function getSymmetricDomain(domain, values: number[]) {
  function isDomainComponent (line 440) | function isDomainComponent(component) {

FILE: packages/victory-core/src/victory-util/events.ts
  constant GLOBAL_EVENT_REGEX (line 10) | const GLOBAL_EVENT_REGEX = /^onGlobal(.*)$/;
  type ComponentEventKey (line 12) | type ComponentEventKey = string | number;
  type ComponentEvent (line 13) | interface ComponentEvent {
  type ComponentEventName (line 19) | type ComponentEventName = string;
  type ComponentEventHandlers (line 20) | interface ComponentEventHandlers {
  type ComponentEventHandler (line 23) | type ComponentEventHandler = (
  type UpdatedProps (line 29) | type UpdatedProps = any;
  type ComponentWithEvents (line 31) | interface ComponentWithEvents extends EventMixinCalculatedValues {
  function getEvents (line 43) | function getEvents(
  function getScopedEvents (line 125) | function getScopedEvents(
  function getPartialEvents (line 298) | function getPartialEvents(
  type PartialEvents (line 312) | interface PartialEvents {
  function getEventState (line 320) | function getEventState(
  function getExternalMutationsWithChildren (line 352) | function getExternalMutationsWithChildren(
  function getExternalMutations (line 382) | function getExternalMutations(
  function getExternalMutation (line 438) | function getExternalMutation(
  function getComponentEvents (line 485) | function getComponentEvents(props, components) {
  function getGlobalEventNameFromKey (line 502) | function getGlobalEventNameFromKey(key) {

FILE: packages/victory-core/src/victory-util/helpers.ts
  type ElementPadding (line 8) | type ElementPadding = {
  type MaybePointData (line 15) | type MaybePointData = {
  function getCartesianRange (line 35) | function getCartesianRange(options: {
  function getPolarRange (line 51) | function getPolarRange(options: {
  function invert (line 79) | function invert(original: Record<string, string | number>) {
  function omit (line 93) | function omit<T, Keys extends keyof T>(
  function getPoint (line 115) | function getPoint(datum: MaybePointData): MaybePointData {
  function scalePoint (line 133) | function scalePoint(
  function getPadding (line 160) | function getPadding(
  function isTooltip (line 176) | function isTooltip(component?: { type?: { role?: string } }) {
  function getDefaultStyles (line 181) | function getDefaultStyles(props, role) {
  function getStyles (line 192) | function getStyles(style, defaultStyles) {
  function evaluateProp (line 212) | function evaluateProp<TValue>(
  function evaluateStyle (line 219) | function evaluateStyle(style, props) {
  function degreesToRadians (line 232) | function degreesToRadians(degrees) {
  function radiansToDegrees (line 236) | function radiansToDegrees(radians) {
  function getRadius (line 243) | function getRadius(options: {
  function getPolarOrigin (line 256) | function getPolarOrigin(props: {
  function getRange (line 275) | function getRange(
  function isNil (line 315) | function isNil(value: any): boolean {
  function isFunction (line 327) | function isFunction(value: any): value is (...args: any[]) => any {
  function createAccessor (line 331) | function createAccessor(key) {
  function modifyProps (line 344) | function modifyProps(props, fallbackProps?, role?) {
  function getCurrentAxis (line 358) | function getCurrentAxis(axis, horizontal) {
  function mapValues (line 367) | function mapValues<T>(
  function range (line 389) | function range(start: number, end?: number, increment?: number) {
  function reduceChildren (line 420) | function reduceChildren<
  function isHorizontal (line 506) | function isHorizontal(props: {

FILE: packages/victory-core/src/victory-util/hooks/use-animation-state.ts
  constant INITIAL_STATE (line 7) | const INITIAL_STATE: AnimationState = {
  type AnyObject (line 13) | type AnyObject = Record<string, any>;
  type AnimationState (line 15) | type AnimationState = {

FILE: packages/victory-core/src/victory-util/hooks/use-previous-props.ts
  function usePreviousProps (line 3) | function usePreviousProps<T>(props: T): T | undefined {

FILE: packages/victory-core/src/victory-util/immutable-types.d.ts
  type List (line 144) | interface List<T> extends Collection.Indexed<T> {
  type Map (line 438) | interface Map<K, V> extends Collection.Keyed<K, V> {
  type OrderedMap (line 739) | interface OrderedMap<K, V> extends Map<K, V> {}
  type Set (line 783) | interface Set<T> extends Collection.Set<T> {
  type OrderedSet (line 892) | interface OrderedSet<T> extends Set<T> {}
  type Stack (line 934) | interface Stack<T> extends Collection.Indexed<T> {
  type Class (line 1091) | interface Class {
  type Keyed (line 1190) | interface Keyed<K, V> extends Seq<K, V>, Iterable.Keyed<K, V> {
  type Indexed (line 1221) | interface Indexed<T> extends Seq<number, T>, Iterable.Indexed<T> {
  type Set (line 1252) | interface Set<T> extends Seq<T, T>, Iterable.Set<T> {
  type Seq (line 1281) | interface Seq<K, V> extends Iterable<K, V> {
  type Keyed (line 1386) | interface Keyed<K, V> extends Iterable<K, V> {
  type Indexed (line 1468) | interface Indexed<T> extends Iterable<number, T> {
  type Set (line 1647) | interface Set<T> extends Iterable<T, T> {
  type Iterable (line 1682) | interface Iterable<K, V> {
  type Keyed (line 2467) | interface Keyed<K, V> extends Collection<K, V>, Iterable.Keyed<K, V> {
  type Indexed (line 2480) | interface Indexed<T>
  type Set (line 2497) | interface Set<T> extends Collection<T, T>, Iterable.Set<T> {
  type Collection (line 2506) | interface Collection<K, V> extends Iterable<K, V> {
  type Iterator (line 2521) | interface Iterator<T> {

FILE: packages/victory-core/src/victory-util/immutable.test.ts
  function noop (line 6) | function noop(arg: unknown) {}
  function typeChecks (line 8) | function typeChecks() {

FILE: packages/victory-core/src/victory-util/immutable.ts
  constant IMMUTABLE_ITERABLE (line 3) | const IMMUTABLE_ITERABLE = "@@__IMMUTABLE_ITERABLE__@@";
  constant IMMUTABLE_RECORD (line 4) | const IMMUTABLE_RECORD = "@@__IMMUTABLE_RECORD__@@";
  constant IMMUTABLE_LIST (line 5) | const IMMUTABLE_LIST = "@@__IMMUTABLE_LIST__@@";
  constant IMMUTABLE_MAP (line 6) | const IMMUTABLE_MAP = "@@__IMMUTABLE_MAP__@@";
  function isIterable (line 8) | function isIterable(x): x is Iterable<unknown, unknown> {
  function isRecord (line 12) | function isRecord(x): x is Record<string, unknown> {
  function isImmutable (line 16) | function isImmutable(
  function isList (line 22) | function isList(x): x is List<unknown> {
  function isMap (line 26) | function isMap(x): x is Map<unknown, unknown> {
  function shallowToJS (line 30) | function shallowToJS(x, whitelist?: Record<string, boolean | unknown>) {

FILE: packages/victory-core/src/victory-util/label-helpers.ts
  function getVerticalAnchor (line 7) | function getVerticalAnchor(props, datum: VictoryLabelProps["datum"] = {}) {
  function getTextAnchor (line 18) | function getTextAnchor(props, datum: VictoryLabelProps["datum"] = {}) {
  function getAngle (line 30) | function getAngle(props, datum: VictoryLabelProps["datum"] = {}) {
  function getPadding (line 35) | function getPadding(props, datum: VictoryLabelProps["datum"] = {}) {
  function getOffset (line 46) | function getOffset(props, datum) {
  function getPosition (line 58) | function getPosition(props, datum) {
  function getPolarPadding (line 71) | function getPolarPadding(props, datum) {
  function getLabelPlacement (line 83) | function getLabelPlacement(props) {
  function getPolarOrientation (line 92) | function getPolarOrientation(degrees) {
  function getText (line 108) | function getText(props, datum: VictoryLabelProps["datum"] = {}, index) {
  function getPolarTextAnchor (line 115) | function getPolarTextAnchor(props, degrees) {
  function getPolarVerticalAnchor (line 126) | function getPolarVerticalAnchor(props, degrees) {
  function getPolarAngle (line 139) | function getPolarAngle(props, baseAngle?) {
  function getDegrees (line 159) | function getDegrees(props, datum) {
  function getProps (line 164) | function getProps(props, index) {

FILE: packages/victory-core/src/victory-util/line-helpers.ts
  type CurveName (line 23) | type CurveName =
  type ShapeMethod (line 38) | type ShapeMethod = keyof Pick<
  type ShapeMethodClosed (line 54) | type ShapeMethodClosed = keyof Pick<

FILE: packages/victory-core/src/victory-util/log.ts
  function warn (line 4) | function warn(message: string) {

FILE: packages/victory-core/src/victory-util/merge-refs.ts
  type Ref (line 5) | type Ref<T> = React.MutableRefObject<T> | React.LegacyRef<T> | undefined...
  function mergeRefs (line 15) | function mergeRefs<T>(refs: Ref<T>[]): React.RefCallback<T> {

FILE: packages/victory-core/src/victory-util/point-path-helpers.ts
  function circle (line 5) | function circle(x: number, y: number, size: number) {
  function square (line 12) | function square(x: number, y: number, size: number) {
  function diamond (line 24) | function diamond(x: number, y: number, size: number) {
  function triangleDown (line 35) | function triangleDown(x: number, y: number, size: number) {
  function triangleUp (line 47) | function triangleUp(x: number, y: number, size: number) {
  function plus (line 59) | function plus(x: number, y: number, size: number) {
  function cross (line 78) | function cross(x: number, y: number, size: number) {
  function minus (line 97) | function minus(x: number, y: number, size: number) {
  function star (line 110) | function star(x: number, y: number, size: number) {

FILE: packages/victory-core/src/victory-util/scale.ts
  type D3ScaleMethods (line 9) | type D3ScaleMethods = Pick<
  function toNewName (line 16) | function toNewName(scale: ScaleName): keyof D3ScaleMethods {
  function validScale (line 22) | function validScale(
  function isScaleDefined (line 37) | function isScaleDefined(props, axis: "x" | "y") {
  function getScaleTypeFromProps (line 46) | function getScaleTypeFromProps(props, axis: "x" | "y"): string | undefin...
  function getScaleFromDomain (line 54) | function getScaleFromDomain(props, axis: "x" | "y"): ScaleName | undefin...
  function getScaleTypeFromData (line 67) | function getScaleTypeFromData(props, axis): ScaleName {
  function getScaleFromName (line 83) | function getScaleFromName(name: ScaleName | string): D3Scale {
  function getBaseScale (line 92) | function getBaseScale(props, axis: "x" | "y") {
  function getDefaultScale (line 102) | function getDefaultScale() {
  function getScaleFromProps (line 106) | function getScaleFromProps(props, axis): D3Scale | undefined {
  function getScaleType (line 117) | function getScaleType(props, axis): string {
  constant DUCK_TYPES (line 126) | const DUCK_TYPES = [
  function getType (line 138) | function getType(scale) {

FILE: packages/victory-core/src/victory-util/selection.ts
  function transformTarget (line 9) | function transformTarget(
  function getTransformationMatrix (line 18) | function getTransformationMatrix(svg: SVGGraphicsElement): DOMMatrix {
  type ReactNativeTouchEvent (line 22) | interface ReactNativeTouchEvent extends Event {
  function isNativeTouchEvent (line 27) | function isNativeTouchEvent(
  function isReactTouchEvent (line 35) | function isReactTouchEvent(evt: React.SyntheticEvent): evt is React.Touc...
  function getParentSVG (line 44) | function getParentSVG(
  function getSVGEventCoordinates (line 61) | function getSVGEventCoordinates(
  function getDomainCoordinates (line 85) | function getDomainCoordinates(
  function getDataCoordinates (line 107) | function getDataCoordinates(
  function getBounds (line 131) | function getBounds(props: ComputedCommonProps): SVGCoordinateBounds {
  type SVGCoordinateType (line 147) | type SVGCoordinateType = { x: number; y: number };
  type SVGCoordinateBounds (line 148) | type SVGCoordinateBounds = {
  type ComputedCommonProps (line 153) | type ComputedCommonProps = {

FILE: packages/victory-core/src/victory-util/style.ts
  function getColorScale (line 44) | function getColorScale(

FILE: packages/victory-core/src/victory-util/textsize.ts
  type TextSizeStyleInterface (line 356) | interface TextSizeStyleInterface {

FILE: packages/victory-core/src/victory-util/timer.ts
  type TimerCallback (line 3) | type TimerCallback = (elapsed: number, duration: number) => void;
  class Timer (line 5) | class Timer {
    method constructor (line 15) | constructor() {
    method bypassAnimation (line 22) | bypassAnimation() {
    method resumeAnimation (line 26) | resumeAnimation() {
    method start (line 36) | start() {
    method stop (line 42) | stop() {
    method subscribe (line 49) | subscribe(callback: TimerCallback, duration: number) {
    method unsubscribe (line 60) | unsubscribe(id) {

FILE: packages/victory-core/src/victory-util/transitions.ts
  function getDatumKey (line 7) | function getDatumKey(datum, idx) {
  function getKeyedData (line 11) | function getKeyedData(data) {
  function getKeyedDataDifference (line 19) | function getKeyedDataDifference(a, b) {
  function getNodeTransitions (line 44) | function getNodeTransitions(oldData, nextData) {
  function getChildData (line 56) | function getChildData(child) {
  function getInitialTransitionState (line 79) | function getInitialTransitionState(oldChildren, nextChildren) {
  type TransitionProps (line 126) | type TransitionProps = {
  function getInitialChildProps (line 132) | function getInitialChildProps(animate, data): TransitionProps {
  function getChildBeforeLoad (line 143) | function getChildBeforeLoad(animate, child, data, cb): TransitionProps {
  function getChildOnLoad (line 161) | function getChildOnLoad(animate, data, cb): TransitionProps {
  function getChildPropsOnExit (line 179) | function getChildPropsOnExit(
  function getChildPropsBeforeEnter (line 213) | function getChildPropsBeforeEnter(
  function getChildPropsOnEnter (line 245) | function getChildPropsOnEnter(
  function getTransitionPropsFactory (line 294) | function getTransitionPropsFactory(props, state, setState) {

FILE: packages/victory-core/src/victory-util/type-helpers.ts
  function hasValueForAxis (line 9) | function hasValueForAxis<T = unknown>(
  function isTuple (line 19) | function isTuple<T = unknown>(value: unknown): value is Tuple<T> {
  function getValueForAxis (line 23) | function getValueForAxis<T = unknown>(
  function isDate (line 33) | function isDate(value: unknown): value is Date {
  function isKeyValueObject (line 37) | function isKeyValueObject(

FILE: packages/victory-core/src/victory-util/user-props.ts
  constant USER_PROPS_SAFELIST (line 10) | const USER_PROPS_SAFELIST = {
  type SafeAttribute (line 16) | type SafeAttribute = string;
  function assert (line 63) | function assert<T>(

FILE: packages/victory-core/src/victory-util/wrapper.tsx
  function addBinsToParentPropsIfHistogram (line 17) | function addBinsToParentPropsIfHistogram({
  function getDataFromChildren (line 73) | function getDataFromChildren(props, childComponents) {
  function getData (line 129) | function getData(props, childComponents) {
  function getWidth (line 139) | function getWidth(props, groupLength?, seriesLength?) {
  function getDefaultDomainPadding (line 155) | function getDefaultDomainPadding(props, axis, childComponents) {
  function getDomainFromChildren (line 194) | function getDomainFromChildren(props, axis, childComponents) {
  function getDomain (line 239) | function getDomain(props, axis, childComponents) {
  function getScale (line 269) | function getScale(props, axis, childComponents?) {
  function getAllEvents (line 292) | function getAllEvents(props) {
  function getColor (line 305) | function getColor(calculatedProps, child, index, theme) {
  function getStyle (line 324) | function getStyle(theme, style, role) {
  function getChildStyle (line 331) | function getChildStyle(child, index, calculatedProps, theme) {
  function getStringsFromChildrenCategories (line 362) | function getStringsFromChildrenCategories(childComponents, axis) {
  function getStringsFromData (line 373) | function getStringsFromData(childComponents) {
  function getCategoryAndAxisStringsFromChildren (line 412) | function getCategoryAndAxisStringsFromChildren(
  function getStringsFromChildren (line 428) | function getStringsFromChildren(props, childComponents) {
  function getCategories (line 442) | function getCategories(props, childComponents, allStrings?) {

FILE: packages/victory-create-container/src/create-container.tsx
  function ensureArray (line 34) | function ensureArray<T>(thing: T): [] | T | T[] {
  type ContainerType (line 85) | type ContainerType =
  constant CONTAINER_HOOKS (line 97) | const CONTAINER_HOOKS = {
  constant CONTAINER_COMPONENTS_WEB (line 110) | const CONTAINER_COMPONENTS_WEB = {
  type ContainerComponents (line 118) | type ContainerComponents = Record<
  function makeCreateContainerFunction (line 125) | function makeCreateContainerFunction<

FILE: packages/victory-cursor-container/src/cursor-helpers.tsx
  constant ON_MOUSE_MOVE_THROTTLE_MS (line 4) | const ON_MOUSE_MOVE_THROTTLE_MS = 16;
  class CursorHelpersClass (line 6) | class CursorHelpersClass {
    method getDimension (line 7) | getDimension(props) {
    method withinBounds (line 15) | withinBounds(point, bounds) {

FILE: packages/victory-cursor-container/src/victory-cursor-container.tsx
  type CursorCoordinatesPropType (line 19) | type CursorCoordinatesPropType = CoordinatesPropType | number;
  type VictoryCursorContainerProps (line 21) | interface VictoryCursorContainerProps extends VictoryContainerProps {
  type VictoryCursorContainerMutatedProps (line 37) | interface VictoryCursorContainerMutatedProps
  constant VICTORY_CURSOR_CONTAINER_DEFAULT_PROPS (line 43) | const VICTORY_CURSOR_CONTAINER_DEFAULT_PROPS = {

FILE: packages/victory-errorbar/src/error-bar.tsx
  type ErrorBarProps (line 88) | interface ErrorBarProps extends VictoryCommonPrimitiveProps {
  type ErrorProps (line 100) | interface ErrorProps {
  type ErrorBar (line 108) | interface ErrorBar extends EventsMixinClass<ErrorBarProps> {}

FILE: packages/victory-errorbar/src/victory-errorbar.tsx
  type VictoryErrorBarTTargetType (line 35) | type VictoryErrorBarTTargetType = "data" | "labels" | "parent";
  type ErrorType (line 36) | type ErrorType =
  type VictoryErrorBarProps (line 40) | interface VictoryErrorBarProps
  type VictoryErrorBarBase (line 55) | interface VictoryErrorBarBase extends EventsMixinClass<VictoryErrorBarPr...
    method getDomain (line 87) | static getDomain(props, axis) {
    method getData (line 90) | static getData(props) {
    method getBaseProps (line 93) | static getBaseProps(props) {
    method shouldAnimate (line 104) | shouldAnimate() {
    method render (line 108) | render(): React.ReactElement {
  class VictoryErrorBarBase (line 57) | class VictoryErrorBarBase extends React.Component<VictoryErrorBarProps> {
    method getDomain (line 87) | static getDomain(props, axis) {
    method getData (line 90) | static getData(props) {
    method getBaseProps (line 93) | static getBaseProps(props) {
    method shouldAnimate (line 104) | shouldAnimate() {
    method render (line 108) | render(): React.ReactElement {

FILE: packages/victory-group/src/helper-methods.tsx
  function getCalculatedProps (line 12) | function getCalculatedProps(initialProps, childComponents) {
  function useMemoizedProps (line 79) | function useMemoizedProps(initialProps) {
  function pixelsToValue (line 96) | function pixelsToValue(props, axis, calculatedProps) {
  function getX0 (line 109) | function getX0(props, calculatedProps, index, role) {
  function getPolarX0 (line 120) | function getPolarX0(props, calculatedProps, index, role) {
  function getAngularWidth (line 130) | function getAngularWidth(props, calculatedProps) {
  function getLabels (line 137) | function getLabels(props, datasets, index) {
  function getChildProps (line 144) | function getChildProps(props, calculatedProps) {
  function getColorScale (line 164) | function getColorScale(props, child) {
  function getDataWithOffset (line 175) | function getDataWithOffset(props, defaultDataset = [], offset) {
  function getChildren (line 188) | function getChildren(initialProps, childComponents?, calculatedProps?) {

FILE: packages/victory-group/src/victory-group.tsx
  type VictoryGroupTTargetType (line 30) | type VictoryGroupTTargetType = "data" | "labels" | "parent";
  type VictoryGroupProps (line 31) | interface VictoryGroupProps

FILE: packages/victory-histogram/src/victory-histogram.tsx
  type VictoryHistogramTargetType (line 26) | type VictoryHistogramTargetType = "data" | "labels" | "parent";
  type VictoryHistogramProps (line 28) | interface VictoryHistogramProps
  type VictoryHistogramBase (line 61) | interface VictoryHistogramBase
    method getFormattedData (line 99) | static getFormattedData(...args: any) {
    method getDomain (line 115) | static getDomain(props, axis) {
    method getData (line 118) | static getData(props) {
    method getBaseProps (line 121) | static getBaseProps(props: VictoryHistogramProps) {
    method shouldAnimate (line 132) | shouldAnimate() {
    method render (line 136) | render(): React.ReactElement {
  class VictoryHistogramBase (line 68) | class VictoryHistogramBase extends React.Component<VictoryHistogramProps> {
    method getFormattedData (line 99) | static getFormattedData(...args: any) {
    method getDomain (line 115) | static getDomain(props, axis) {
    method getData (line 118) | static getData(props) {
    method getBaseProps (line 121) | static getBaseProps(props: VictoryHistogramProps) {
    method shouldAnimate (line 132) | shouldAnimate() {
    method render (line 136) | render(): React.ReactElement {

FILE: packages/victory-legend/src/helper-methods.ts
  function sum (line 340) | function sum(array: number[]) {

FILE: packages/victory-legend/src/victory-legend.tsx
  type VictoryLegendTTargetType (line 25) | type VictoryLegendTTargetType = "data" | "labels" | "parent";
  type VictoryLegendOrientationType (line 27) | type VictoryLegendOrientationType = "horizontal" | "vertical";
  type VictoryLegendProps (line 29) | interface VictoryLegendProps
  type VictoryLegendBase (line 68) | interface VictoryLegendBase extends EventsMixinClass<VictoryLegendProps> {}
    method getBaseProps (line 87) | static getBaseProps(props: VictoryLegendProps) {
    method getDimensions (line 91) | static getDimensions(props: VictoryLegendProps) {
    method renderChildren (line 104) | renderChildren(props: VictoryLegendProps) {
    method render (line 184) | render(): React.ReactElement {
  class VictoryLegendBase (line 70) | class VictoryLegendBase extends React.Component<VictoryLegendProps> {
    method getBaseProps (line 87) | static getBaseProps(props: VictoryLegendProps) {
    method getDimensions (line 91) | static getDimensions(props: VictoryLegendProps) {
    method renderChildren (line 104) | renderChildren(props: VictoryLegendProps) {
    method render (line 184) | render(): React.ReactElement {

FILE: packages/victory-line/src/curve.tsx
  type CurveProps (line 67) | interface CurveProps extends VictoryCommonPrimitiveProps {

FILE: packages/victory-line/src/victory-line.tsx
  type VictoryLineBase (line 41) | interface VictoryLineBase extends EventsMixinClass<VictoryLineProps> {}
    method constructor (line 44) | constructor(props) {
    method getBaseProps (line 79) | static getBaseProps(props) {
    method shouldAnimate (line 90) | shouldAnimate() {
    method render (line 94) | render() {
  class VictoryLineBase (line 43) | class VictoryLineBase extends React.Component<VictoryLineProps> {
    method constructor (line 44) | constructor(props) {
    method getBaseProps (line 79) | static getBaseProps(props) {
    method shouldAnimate (line 90) | shouldAnimate() {
    method render (line 94) | render() {
  type VictoryLineTTargetType (line 113) | type VictoryLineTTargetType = "data" | "labels" | "parent";
  type VictoryLineProps (line 115) | interface VictoryLineProps

FILE: packages/victory-native/src/components/victory-brush-container.tsx
  type VictoryBrushContainerNativeProps (line 14) | interface VictoryBrushContainerNativeProps

FILE: packages/victory-native/src/components/victory-brush-line.tsx
  type VictoryNativeBrushLineProps (line 15) | interface VictoryNativeBrushLineProps extends VictoryBrushLineProps {
  class VictoryNativeBrushLine (line 32) | class VictoryNativeBrushLine<
    method constructor (line 56) | constructor(props: TProps) {
    method getResponder (line 62) | getResponder() {
    method callOptionalEventCallback (line 85) | callOptionalEventCallback(eventName, evt) {
    method handleResponderGrant (line 93) | handleResponderGrant(evt) {
    method handleResponderMove (line 100) | handleResponderMove(evt) {
    method handleResponderEnd (line 109) | handleResponderEnd(evt) {
    method render (line 116) | render(): React.ReactElement {

FILE: packages/victory-native/src/components/victory-clip-container.tsx
  class VictoryClipContainer (line 9) | class VictoryClipContainer extends VictoryClipContainerBase {
    method componentDidUpdate (line 20) | componentDidUpdate() {

FILE: packages/victory-native/src/components/victory-container.tsx
  type VictoryContainerNativeProps (line 19) | interface VictoryContainerNativeProps extends VictoryContainerProps {

FILE: packages/victory-native/src/components/victory-cursor-container.tsx
  type VictoryCursorContainerNativeProps (line 13) | interface VictoryCursorContainerNativeProps

FILE: packages/victory-native/src/components/victory-primitives/circle.tsx
  type VictoryNativeCircleProps (line 6) | type VictoryNativeCircleProps = CircleProps &

FILE: packages/victory-native/src/components/victory-primitives/clip-path.tsx
  type VictoryNativeClipPathProps (line 9) | interface VictoryNativeClipPathProps extends ClipPathProps {

FILE: packages/victory-native/src/components/victory-primitives/line.tsx
  type VictoryNativeLineProps (line 6) | type VictoryNativeLineProps = LineProps &

FILE: packages/victory-native/src/components/victory-primitives/path.tsx
  type VictoryNativePathProps (line 6) | type VictoryNativePathProps = PathProps &

FILE: packages/victory-native/src/components/victory-primitives/rect.tsx
  type VictoryNativeRectProps (line 6) | type VictoryNativeRectProps = RectProps &

FILE: packages/victory-native/src/components/victory-primitives/text.tsx
  type VictoryNativeTextProps (line 6) | interface VictoryNativeTextProps

FILE: packages/victory-native/src/components/victory-primitives/tspan.tsx
  type VictoryNativeTSpanProps (line 6) | type VictoryNativeTSpanProps = TSpanProps &

FILE: packages/victory-native/src/components/victory-primitives/types.ts
  type VictoryNativePrimitiveShapeProps (line 3) | interface VictoryNativePrimitiveShapeProps

FILE: packages/victory-native/src/components/victory-selection-container.tsx
  type VictorySelectionContainerNativeProps (line 14) | interface VictorySelectionContainerNativeProps

FILE: packages/victory-native/src/components/victory-tooltip.tsx
  class VictoryTooltip (line 8) | class VictoryTooltip extends VictoryTooltipBase {
    method defaultEvents (line 16) | static defaultEvents() {
    method renderTooltip (line 53) | renderTooltip(props) {

FILE: packages/victory-native/src/components/victory-voronoi-container.tsx
  type VictoryVoronoiContainerNativeProps (line 12) | interface VictoryVoronoiContainerNativeProps
  constant DEFAULT_VORONOI_PADDING (line 19) | const DEFAULT_VORONOI_PADDING = 5;

FILE: packages/victory-native/src/components/victory-zoom-container.tsx
  type VictoryZoomContainerNativeProps (line 12) | interface VictoryZoomContainerNativeProps

FILE: packages/victory-native/src/helpers/native-zoom-helpers.ts
  method onTouchEnd (line 17) | onTouchEnd() {
  method onTouchPinch (line 29) | onTouchPinch(evt, targetProps, eventKey, ctx) {
  method getPinchDistance (line 85) | getPinchDistance([a, b]) {
  method getScaleFactorNative (line 89) | getScaleFactorNative(evt, props) {
  method scaleNative (line 99) | scaleNative(currentDomain, evt, props, axis) {

FILE: packages/victory-native/src/helpers/wrap-core-component.tsx
  function wrapCoreComponent (line 8) | function wrapCoreComponent<TProps extends object>({

FILE: packages/victory-pie/src/slice.tsx
  type VictorySliceLabelPositionType (line 14) | type VictorySliceLabelPositionType =
  type VictorySliceLabelPlacementType (line 18) | type VictorySliceLabelPlacementType =
  type VictorySliceTTargetType (line 22) | type VictorySliceTTargetType = "data" | "labels" | "parent";
  type SliceProps (line 24) | interface SliceProps extends VictoryCommonProps {

FILE: packages/victory-pie/src/victory-pie.tsx
  type VictoryPieProps (line 30) | interface VictoryPieProps
  type VictoryPieBase (line 90) | interface VictoryPieBase extends EventsMixinClass<VictoryPieProps> {}
    method getBaseProps (line 143) | static getBaseProps(props: VictoryPieProps) {
    method shouldAnimate (line 156) | shouldAnimate() {
    method renderComponents (line 160) | renderComponents(props: VictoryPieProps, shouldRenderDatum = datumHasX...
    method render (line 245) | render(): React.ReactElement {
  class VictoryPieBase (line 92) | class VictoryPieBase extends React.Component<VictoryPieProps> {
    method getBaseProps (line 143) | static getBaseProps(props: VictoryPieProps) {
    method shouldAnimate (line 156) | shouldAnimate() {
    method renderComponents (line 160) | renderComponents(props: VictoryPieProps, shouldRenderDatum = datumHasX...
    method render (line 245) | render(): React.ReactElement {

FILE: packages/victory-polar-axis/src/types.ts
  type VictoryPolarAxisTTargetType (line 11) | type VictoryPolarAxisTTargetType =
  type VictoryPolarAxisProps (line 18) | interface VictoryPolarAxisProps

FILE: packages/victory-polar-axis/src/victory-polar-axis.tsx
  type VictoryPolarAxisBase (line 23) | interface VictoryPolarAxisBase
    method getScale (line 70) | static getScale(props) {
    method getStyles (line 73) | static getStyles(props) {
    method getBaseProps (line 76) | static getBaseProps(props) {
    method renderAxisLine (line 90) | renderAxisLine(props: VictoryPolarAxisProps) {
    method renderLabel (line 99) | renderLabel(props: VictoryPolarAxisProps) {
    method renderAxis (line 112) | renderAxis(props: VictoryPolarAxisProps) {
    method renderGroup (line 167) | renderGroup(props: VictoryPolarAxisProps, children: React.ReactNode) {
    method shouldAnimate (line 172) | shouldAnimate() {
    method render (line 176) | render(): React.ReactElement {
  class VictoryPolarAxisBase (line 26) | class VictoryPolarAxisBase extends React.Component<VictoryPolarAxisProps> {
    method getScale (line 70) | static getScale(props) {
    method getStyles (line 73) | static getStyles(props) {
    method getBaseProps (line 76) | static getBaseProps(props) {
    method renderAxisLine (line 90) | renderAxisLine(props: VictoryPolarAxisProps) {
    method renderLabel (line 99) | renderLabel(props: VictoryPolarAxisProps) {
    method renderAxis (line 112) | renderAxis(props: VictoryPolarAxisProps) {
    method renderGroup (line 167) | renderGroup(props: VictoryPolarAxisProps, children: React.ReactNode) {
    method shouldAnimate (line 172) | shouldAnimate() {
    method render (line 176) | render(): React.ReactElement {

FILE: packages/victory-scatter/src/victory-scatter.tsx
  type VictoryScatterTTargetType (line 32) | type VictoryScatterTTargetType = "data" | "labels" | "parent";
  type VictoryScatterProps (line 34) | interface VictoryScatterProps
  type VictoryScatterBase (line 53) | interface VictoryScatterBase extends EventsMixinClass<VictoryScatterProp...
    method getBaseProps (line 89) | static getBaseProps(props) {
    method shouldAnimate (line 100) | shouldAnimate() {
    method render (line 104) | render(): React.ReactElement {
  class VictoryScatterBase (line 59) | class VictoryScatterBase extends React.Component<VictoryScatterProps> {
    method getBaseProps (line 89) | static getBaseProps(props) {
    method shouldAnimate (line 100) | shouldAnimate() {
    method render (line 104) | render(): React.ReactElement {

FILE: packages/victory-selection-container/src/selection-helpers.tsx
  constant ON_MOUSE_MOVE_THROTTLE_MS (line 6) | const ON_MOUSE_MOVE_THROTTLE_MS = 16;
  class SelectionHelpersClass (line 8) | class SelectionHelpersClass {
    method getDimension (line 9) | getDimension(props) {
    method getDatasets (line 17) | getDatasets(props) {
    method filterDatasets (line 48) | filterDatasets(props, datasets) {
    method getSelectedData (line 62) | getSelectedData(props, dataset) {

FILE: packages/victory-selection-container/src/victory-selection-container.tsx
  type VictorySelectionContainerProps (line 11) | interface VictorySelectionContainerProps extends VictoryContainerProps {
  constant VICTORY_SELECTION_CONTAINER_DEFAULT_PROPS (line 35) | const VICTORY_SELECTION_CONTAINER_DEFAULT_PROPS = {
  type VictorySelectionContainerMutatedProps (line 46) | interface VictorySelectionContainerMutatedProps

FILE: packages/victory-shared-events/src/victory-shared-events.tsx
  type VictorySharedEventsProps (line 19) | type VictorySharedEventsProps = {
  type VictorySharedEvents (line 37) | interface VictorySharedEvents extends EventMixinCalculatedValues {}
    method constructor (line 55) | constructor(props: VictorySharedEventsProps) {
    method shouldComponentUpdate (line 68) | shouldComponentUpdate(nextProps) {
    method componentDidMount (line 80) | componentDidMount() {
    method componentDidUpdate (line 86) | componentDidUpdate() {
    method componentWillUnmount (line 101) | componentWillUnmount() {
    method addGlobalListener (line 105) | addGlobalListener(key) {
    method removeGlobalListener (line 117) | removeGlobalListener(key) {
    method getAllEvents (line 124) | getAllEvents(props) {
    method applyExternalMutations (line 135) | applyExternalMutations(props, externalMutations) {
    method getExternalMutations (line 153) | getExternalMutations(props, baseProps) {
    method cacheSharedEvents (line 164) | cacheSharedEvents(name, sharedEvents, cacheValues) {
    method getCachedSharedEvents (line 168) | getCachedSharedEvents(name, cacheValues) {
    method getBaseProps (line 178) | getBaseProps(props) {
    method getBasePropsFromChildren (line 186) | getBasePropsFromChildren(childComponents) {
    method getNewChildren (line 199) | getNewChildren(props, baseProps) {
    method getContainer (line 270) | getContainer(props, baseProps, events) {
    method render (line 314) | render(): React.ReactElement {
  class VictorySharedEvents (line 39) | class VictorySharedEvents extends React.Component<VictorySharedEventsPro...
    method constructor (line 55) | constructor(props: VictorySharedEventsProps) {
    method shouldComponentUpdate (line 68) | shouldComponentUpdate(nextProps) {
    method componentDidMount (line 80) | componentDidMount() {
    method componentDidUpdate (line 86) | componentDidUpdate() {
    method componentWillUnmount (line 101) | componentWillUnmount() {
    method addGlobalListener (line 105) | addGlobalListener(key) {
    method removeGlobalListener (line 117) | removeGlobalListener(key) {
    method getAllEvents (line 124) | getAllEvents(props) {
    method applyExternalMutations (line 135) | applyExternalMutations(props, externalMutations) {
    method getExternalMutations (line 153) | getExternalMutations(props, baseProps) {
    method cacheSharedEvents (line 164) | cacheSharedEvents(name, sharedEvents, cacheValues) {
    method getCachedSharedEvents (line 168) | getCachedSharedEvents(name, cacheValues) {
    method getBaseProps (line 178) | getBaseProps(props) {
    method getBasePropsFromChildren (line 186) | getBasePropsFromChildren(childComponents) {
    method getNewChildren (line 199) | getNewChildren(props, baseProps) {
    method getContainer (line 270) | getContainer(props, baseProps, events) {
    method render (line 314) | render(): React.ReactElement {

FILE: packages/victory-stack/src/helper-methods.tsx
  function fillData (line 13) | function fillData(props, datasets) {
  function getY0 (line 50) | function getY0(datum, index, datasets) {
  function addLayoutData (line 83) | function addLayoutData(props, datasets, index) {
  function stackData (line 110) | function stackData(props, childComponents) {
  function getCalculatedProps (line 121) | function getCalculatedProps(initialProps, childComponents) {
  function useMemoizedProps (line 185) | function useMemoizedProps(initialProps) {
  function getLabels (line 202) | function getLabels(props, datasets, index) {
  function getChildProps (line 209) | function getChildProps(props, calculatedProps) {
  function getColorScale (line 225) | function getColorScale(props, child) {
  function getChildren (line 236) | function getChildren(initialProps, childComponents, calculatedProps) {

FILE: packages/victory-stack/src/victory-stack.tsx
  type VictoryStackTTargetType (line 32) | type VictoryStackTTargetType = "data" | "labels" | "parent";
  type VictoryStackProps (line 33) | interface VictoryStackProps

FILE: packages/victory-tooltip/src/flyout.tsx
  type FlyoutProps (line 14) | interface FlyoutProps extends VictoryCommonProps {
  type FlyoutPathProps (line 42) | interface FlyoutPathProps {

FILE: packages/victory-tooltip/src/victory-tooltip.tsx
  type VictoryTooltipProps (line 32) | interface VictoryTooltipProps
  type InternalEvaluatedProps (line 71) | type InternalEvaluatedProps = VictoryTooltipProps & {
  type EventHandlers (line 93) | type EventHandlers = Record<
  class VictoryTooltip (line 101) | class VictoryTooltip extends React.Component<VictoryTooltipProps> {
    method defaultEvents (line 113) | static defaultEvents(props: VictoryTooltipProps): {
    method constructor (line 146) | constructor(props: VictoryTooltipProps) {
    method getDefaultOrientation (line 151) | getDefaultOrientation(props: VictoryTooltipProps): OrientationTypes {
    method getPolarOrientation (line 161) | getPolarOrientation(props: VictoryTooltipProps): OrientationTypes {
    method getVerticalOrientations (line 172) | getVerticalOrientations(degrees: number): OrientationTypes {
    method getStyles (line 186) | getStyles(props) {
    method getEvaluatedProps (line 210) | getEvaluatedProps(props: VictoryTooltipProps): InternalEvaluatedProps {
    method getCalculatedValues (line 318) | getCalculatedValues(props: InternalEvaluatedProps): {
    method getTransform (line 341) | getTransform(props): string | undefined {
    method getDefaultAngle (line 349) | getDefaultAngle(props): number {
    method constrainTooltip (line 369) | constrainTooltip(center, props, dimensions) {
    method getFlyoutCenter (line 396) | getFlyoutCenter(props, dimensions) {
    method getLabelPadding (line 442) | getLabelPadding(style) {
    method getDimensions (line 452) | getDimensions(props, labelSize) {
    method getLabelProps (line 495) | getLabelProps(props: InternalEvaluatedProps, calculatedValues) {
    method getPointerOrientation (line 526) | getPointerOrientation(
    method getFlyoutProps (line 554) | getFlyoutProps(props: InternalEvaluatedProps, calculatedValues) {
    method renderTooltip (line 602) | renderTooltip(props: VictoryTooltipProps): React.ReactElement | null {
    method render (line 629) | render(): React.ReactElement | null {

FILE: packages/victory-vendor/.babelrc.js
  method resolvePath (line 25) | resolvePath(sourcePath, currentFile) {

FILE: packages/victory-vendor/scripts/build.js
  constant VENDOR_PKGS (line 19) | const VENDOR_PKGS = new Set(Object.keys(vendorPkg.dependencies));

FILE: packages/victory-voronoi-container/src/victory-voronoi-container.tsx
  type VictoryVoronoiContainerProps (line 14) | interface VictoryVoronoiContainerProps extends VictoryContainerProps {
  type VictoryVoronoiContainerMutatedProps (line 30) | interface VictoryVoronoiContainerMutatedProps
  constant VICTORY_VORONOI_CONTAINER_DEFAULT_PROPS (line 36) | const VICTORY_VORONOI_CONTAINER_DEFAULT_PROPS = {

FILE: packages/victory-voronoi-container/src/voronoi-helpers.ts
  constant ON_MOUSE_MOVE_THROTTLE_MS (line 9) | const ON_MOUSE_MOVE_THROTTLE_MS = 32;
  class VoronoiHelpersClass (line 11) | class VoronoiHelpersClass {
    method withinBounds (line 12) | withinBounds(props, point) {
    method getDatasets (line 30) | getDatasets(props) {
    method findPoints (line 94) | findPoints(datasets, point) {
    method withinRadius (line 100) | withinRadius(point, mousePosition, radius) {
    method getVoronoiPoints (line 113) | getVoronoiPoints(props, mousePosition) {
    method getActiveMutations (line 132) | getActiveMutations(props, point) {
    method getInactiveMutations (line 158) | getInactiveMutations(props, point) {
    method getParentMutation (line 184) | getParentMutation(activePoints, mousePosition?, parentSVG?, vIndex?) {
    method onActivated (line 194) | onActivated(props, points) {
    method onDeactivated (line 200) | onDeactivated(props, points) {

FILE: packages/victory-voronoi/src/victory-voronoi.tsx
  type VictoryVoronoiSortOrderType (line 23) | type VictoryVoronoiSortOrderType = "ascending" | "descending";
  type VictoryVoronoiProps (line 25) | interface VictoryVoronoiProps
  type VictoryVoronoiBase (line 47) | interface VictoryVoronoiBase extends EventsMixinClass<VictoryVoronoiProp...
    method getBaseProps (line 78) | static getBaseProps(props: VictoryVoronoiProps) {
    method shouldAnimate (line 89) | shouldAnimate() {
    method render (line 93) | render(): React.ReactElement {
  class VictoryVoronoiBase (line 49) | class VictoryVoronoiBase extends React.Component<VictoryVoronoiProps> {
    method getBaseProps (line 78) | static getBaseProps(props: VictoryVoronoiProps) {
    method shouldAnimate (line 89) | shouldAnimate() {
    method render (line 93) | render(): React.ReactElement {

FILE: packages/victory-voronoi/src/voronoi.tsx
  type VoronoiProps (line 13) | interface VoronoiProps extends VictoryCommonPrimitiveProps {
  function evaluateProps (line 33) | function evaluateProps<T extends VoronoiProps>(props: T) {

FILE: packages/victory-zoom-container/src/victory-zoom-container.tsx
  constant DEFAULT_DOWNSAMPLE (line 13) | const DEFAULT_DOWNSAMPLE = 150;
  type ZoomDimensionType (line 15) | type ZoomDimensionType = "x" | "y";
  type ZoomDomain (line 17) | type ZoomDomain = {
  type VictoryZoomContainerProps (line 22) | interface VictoryZoomContainerProps extends VictoryContainerProps {
  type VictoryZoomContainerMutatedProps (line 38) | interface VictoryZoomContainerMutatedProps extends VictoryZoomContainerP...
  constant VICTORY_ZOOM_CONTAINER_DEFAULT_PROPS (line 48) | const VICTORY_ZOOM_CONTAINER_DEFAULT_PROPS = {

FILE: packages/victory-zoom-container/src/zoom-helpers.test.ts
  function expectToBeCloseToArray (line 85) | function expectToBeCloseToArray(actual, expected) {

FILE: packages/victory-zoom-container/src/zoom-helpers.ts
  method checkDomainEquality (line 10) | checkDomainEquality(a, b) {
  method scale (line 35) | scale(currentDomain, evt, props, axis) {
  method getScaledDomain (line 66) | getScaledDomain(currentDomain, factor, percent) {
  method getMinimumDomain (line 75) | getMinimumDomain(point, props, axis) {
  method zoommingOut (line 91) | zoommingOut(evt) {
  method getScaleFactor (line 95) | getScaleFactor(evt) {
  method getScalePercent (line 102) | getScalePercent(evt, props, axis) {
  method getPosition (line 109) | getPosition(evt, props, originalDomain) {
  method pan (line 125) | pan(currentDomain, originalDomain, delta) {
  method getDomainScale (line 150) | getDomainScale(domain, scale, axis) {
  method handleAnimation (line 158) | handleAnimation(ctx) {
  method getLastDomain (line 172) | getLastDomain(targetProps, originalDomain) {
  method getDomain (line 180) | getDomain(props) {
  method onMouseDown (line 201) | onMouseDown(evt, targetProps) {
  method onMouseUp (line 224) | onMouseUp(evt, targetProps) {
  method onMouseLeave (line 238) | onMouseLeave(evt, targetProps) {
  method onMouseMove (line 253) | onMouseMove(evt, targetProps, eventKey, ctx) {
  method onWheel (line 315) | onWheel(evt, targetProps, eventKey, ctx) {

FILE: scripts/release.ts
  function getChangelogEntry (line 28) | function getChangelogEntry(changelog: string, version: string) {

FILE: scripts/sync-pkgs-wireit-helpers.js
  function unique (line 1) | function unique(arr) {
  function concat (line 4) | function concat(...arrays) {
  function generateWireitConfig (line 8) | function generateWireitConfig(pkg, rootPkg) {

FILE: scripts/sync-pkgs-wireit.js
  constant ROOT (line 28) | const ROOT = path.resolve(__dirname, "..");
  constant PKGS_ROOT (line 29) | const PKGS_ROOT = path.join(ROOT, "packages");
  constant PKGS (line 32) | const PKGS = {
  constant SPECIAL_PKGS (line 36) | const SPECIAL_PKGS = new Set([PKGS.NATIVE, PKGS.VENDOR]);

FILE: stories/victory-charts/victory-animation/config.ts
  type StoryProps (line 7) | type StoryProps = React.ComponentProps<typeof VictoryAnimation>;
  type Story (line 20) | type Story = StoryObj<StoryProps>;

FILE: stories/victory-charts/victory-animation/default.stories.tsx
  constant ANIMATION_DATA (line 13) | const ANIMATION_DATA = [

FILE: stories/victory-charts/victory-area/config.ts
  type StoryProps (line 12) | type StoryProps = VictoryAreaProps & {
  type Story (line 52) | type Story = StoryObj<StoryProps>;

FILE: stories/victory-charts/victory-axis/config.ts
  type StoryProps (line 13) | type StoryProps = VictoryAxisProps & {
  type Story (line 17) | type Story = StoryObj<StoryProps>;

FILE: stories/victory-charts/victory-bar/config.ts
  type StoryProps (line 12) | type StoryProps = VictoryBarProps & {
  type Story (line 32) | type Story = StoryObj<StoryProps>;

FILE: stories/victory-charts/victory-box-plot/config.ts
  type StoryProps (line 8) | type StoryProps = VictoryBoxPlotProps & {
  type Story (line 36) | type Story = StoryObj<StoryProps>;

FILE: stories/victory-charts/victory-candlestick/config.ts
  type StoryProps (line 12) | type StoryProps = VictoryCandlestickProps & {
  type Story (line 39) | type Story = StoryObj<StoryProps>;

FILE: stories/victory-charts/victory-chart/config.ts
  type StoryProps (line 8) | type StoryProps = VictoryChartProps & {
  type Story (line 28) | type Story = StoryObj<StoryProps>;

FILE: stories/victory-charts/victory-container/config.ts
  type StoryProps (line 8) | type StoryProps = VictoryContainerProps & {
  type Story (line 20) | type Story = StoryObj<StoryProps>;

FILE: stories/victory-charts/victory-errorbar/config.ts
  type StoryProps (line 12) | type StoryProps = VictoryErrorBarProps & {
  type Story (line 31) | type Story = StoryObj<StoryProps>;

FILE: stories/victory-charts/victory-histogram/config.ts
  type StoryProps (line 12) | type StoryProps = VictoryHistogramProps & {
  type Story (line 31) | type Story = StoryObj<StoryProps>;

FILE: stories/victory-charts/victory-label/config.ts
  type StoryProps (line 7) | type StoryProps = React.ComponentProps<typeof VictoryLabel>;
  type Story (line 42) | type Story = StoryObj<StoryProps>;

FILE: stories/victory-charts/victory-legend/config.ts
  type StoryProps (line 12) | type StoryProps = VictoryLegendProps & {
  type Story (line 37) | type Story = StoryObj<StoryProps>;

FILE: stories/victory-charts/victory-line/config.ts
  type StoryProps (line 12) | type StoryProps = VictoryLineProps & {
  type Story (line 52) | type Story = StoryObj<StoryProps>;

FILE: stories/victory-charts/victory-pie/config.ts
  type StoryProps (line 12) | type StoryProps = VictoryPieProps & {
  type Story (line 45) | type Story = StoryObj<StoryProps>;

FILE: stories/victory-charts/victory-polar-axis/config.ts
  type StoryProps (line 12) | type StoryProps = VictoryPolarAxisProps & {
  type Story (line 36) | type Story = StoryObj<StoryProps>;

FILE: stories/victory-charts/victory-portal/config.ts
  type StoryProps (line 7) | type StoryProps = React.ComponentProps<typeof VictoryPortal>;
  type Story (line 14) | type Story = StoryObj<StoryProps>;

FILE: stories/victory-charts/victory-scatter/config.ts
  type StoryProps (line 12) | type StoryProps = VictoryScatterProps & {
  type Story (line 31) | type Story = StoryObj<StoryProps>;

FILE: stories/victory-charts/victory-scatter/functional-symbols.stories.tsx
  constant SYMBOLS (line 19) | const SYMBOLS: ScatterSymbolType[] = [

FILE: stories/victory-charts/victory-scatter/symbols.stories.tsx
  constant SYMBOLS (line 19) | const SYMBOLS: ScatterSymbolType[] = [

FILE: stories/victory-charts/victory-tooltip/config.ts
  type StoryProps (line 9) | type StoryProps = VictoryTooltipProps & {
  type Story (line 45) | type Story = StoryObj<StoryProps>;

FILE: test/helpers/svg.ts
  constant RECTANGULAR_SEQUENCE (line 9) | const RECTANGULAR_SEQUENCE = ["M", "A", "L", "A", "L", "A", "L", "A", "z"];
  constant CIRCULAR_SEQUENCE (line 10) | const CIRCULAR_SEQUENCE = ["M", "m", "a", "a"];
  constant TRIANGULAR_SEQUENCE (line 11) | const TRIANGULAR_SEQUENCE = ["M", "L", "L", "z"];
  constant CIRCULAR_SECTOR_SEQUENCE (line 12) | const CIRCULAR_SECTOR_SEQUENCE = ["M", "A", "L", "Z"];

FILE: test/helpers/wrappers.tsx
  function SVGWrapper (line 3) | function SVGWrapper(props: any) {

FILE: website/docusaurus.config.ts
  method configurePostCss (line 65) | configurePostCss(postcssOptions) {

FILE: website/src/components/LearnMoreLink.tsx
  function LearnMoreLink (line 5) | function LearnMoreLink(

FILE: website/src/components/SidebarLeadBanner.tsx
  function SidebarLeadBanner (line 4) | function SidebarLeadBanner() {

FILE: website/src/components/badges.tsx
  function Badges (line 4) | function Badges({ children }) {
  function Badge (line 8) | function Badge({ children, className }) {
  function TypeBadge (line 18) | function TypeBadge({ value }) {
  function OverriddenBadge (line 26) | function OverriddenBadge() {
  function RequiredBadge (line 34) | function RequiredBadge() {
  function DefaultsBadge (line 40) | function DefaultsBadge({ value }) {

FILE: website/src/components/button.tsx
  type ButtonProps (line 4) | type ButtonProps = {

FILE: website/src/components/common-props.tsx
  type Prop (line 6) | type Prop = {
  type PropsMeta (line 12) | type PropsMeta = {
  function extend (line 18) | function extend(meta: PropsMeta, props: PropsMeta): PropsMeta {
  function PropertyListItem (line 169) | function PropertyListItem({ x, prop, overridden, notImplemented }) {
  function CommonProps (line 193) | function CommonProps({ interfaces, overrides, notImplemented }) {

FILE: website/src/components/link-button.tsx
  type ButtonProps (line 4) | interface ButtonProps {

FILE: website/src/components/slider.tsx
  constant LIGHT_GREY (line 6) | const LIGHT_GREY = "hsl(355, 32%, 87%)";

FILE: website/src/hooks/useClickOutside.tsx
  function useClickOutside (line 3) | function useClickOutside(cb: (e: Event) => void) {

FILE: website/src/pages/_components/data/update-downloads.js
  function d (line 26) | function d() {

FILE: website/src/pages/_components/landing-demo.tsx
  function fetchData (line 114) | async function fetchData(url) {

FILE: website/src/pages/_components/landing-featured-projects.tsx
  type BadgeProps (line 11) | type BadgeProps = SVGProps<SVGElement> & {
  type Projects (line 17) | type Projects = {

FILE: website/src/pages/_components/landing-showcase.tsx
  function LandingShowcase (line 14) | function LandingShowcase() {

FILE: website/src/pages/index.tsx
  function Home (line 12) | function Home(): JSX.Element {

FILE: website/src/pages/themes/_components/accordion.tsx
  type AccordionProps (line 5) | type AccordionProps = {

FILE: website/src/pages/themes/_components/alert.tsx
  type AlertType (line 11) | enum AlertType {
  type AlertProps (line 18) | type AlertProps = {
  type AlertComponentProps (line 26) | type AlertComponentProps = Omit<AlertProps, "id"> & {
  constant DEFAULT_DURATION (line 65) | const DEFAULT_DURATION = 5000;

FILE: website/src/pages/themes/_components/card.tsx
  type CardProps (line 4) | type CardProps = {

FILE: website/src/pages/themes/_components/chart-panel.tsx
  type ChartPanelProps (line 8) | type ChartPanelProps = {

FILE: website/src/pages/themes/_components/checkbox.tsx
  type CheckboxProps (line 4) | type CheckboxProps = {

FILE: website/src/pages/themes/_components/code-block.tsx
  type CodeBlock (line 6) | type CodeBlock = {
  type CodeBlockProps (line 12) | type CodeBlockProps = {

FILE: website/src/pages/themes/_components/code-panel.tsx
  constant EDITOR_OPTIONS (line 9) | const EDITOR_OPTIONS = {

FILE: website/src/pages/themes/_components/color-palette-selector.tsx
  type ColorPaletteSelectorProps (line 7) | type ColorPaletteSelectorProps = {

FILE: website/src/pages/themes/_components/color-picker-list.tsx
  type ColorPickerListProps (line 6) | type ColorPickerListProps = {

FILE: website/src/pages/themes/_components/color-picker.tsx
  type ColorPickerProps (line 6) | type ColorPickerProps = {
  constant PLACEHOLDER_COLOR (line 15) | const PLACEHOLDER_COLOR = "#000000";
  constant DEFAULT_COLOR (line 16) | const DEFAULT_COLOR = undefined;
  type ColorPickerOptions (line 17) | enum ColorPickerOptions {

FILE: website/src/pages/themes/_components/color-scale-override-selector.tsx
  type ColorScaleOverrideSelectorProps (line 10) | type ColorScaleOverrideSelectorProps = {

FILE: website/src/pages/themes/_components/control.tsx
  type ColorChangeArgs (line 12) | type ColorChangeArgs = {
  type ControlProps (line 18) | type ControlProps = {

FILE: website/src/pages/themes/_components/examples/example.ts
  type ExampleRenderProps (line 5) | type ExampleRenderProps = {
  type ExampleConfig (line 12) | type ExampleConfig = {

FILE: website/src/pages/themes/_components/options-panel.tsx
  type GlobalPanelProps (line 6) | type GlobalPanelProps = {

FILE: website/src/pages/themes/_components/panel-header.tsx
  type PanelHeaderProps (line 3) | type PanelHeaderProps = {

FILE: website/src/pages/themes/_components/select.tsx
  type SelectOption (line 4) | type SelectOption = {
  type SelectProps (line 9) | type SelectProps = {

FILE: website/src/pages/themes/_components/sideNavButton.tsx
  type SideNavButtonProps (line 5) | type SideNavButtonProps = {

FILE: website/src/pages/themes/_components/sidenav.tsx
  type NavItem (line 30) | type NavItem = {
  constant NAV_ITEMS (line 87) | const NAV_ITEMS: NavItem[] = [

FILE: website/src/pages/themes/_components/slider.tsx
  type SliderProps (line 5) | type SliderProps = {
  constant DEFAULT_MIN (line 18) | const DEFAULT_MIN = 1;
  constant DEFAULT_MAX (line 19) | const DEFAULT_MAX = 100;

FILE: website/src/pages/themes/_components/theme-preview/header.tsx
  function Header (line 7) | function Header() {

FILE: website/src/pages/themes/_components/theme-preview/index.tsx
  function ThemePreview (line 10) | function ThemePreview() {

FILE: website/src/pages/themes/_components/theme-preview/options.tsx
  type Props (line 6) | type Props = {

FILE: website/src/pages/themes/_components/theme-preview/preview-color-scale-select.tsx
  type PreviewColorScaleSelectProps (line 7) | type PreviewColorScaleSelectProps = {

FILE: website/src/pages/themes/_components/theme-preview/preview.tsx
  type Props (line 15) | type Props = {
  function Preview (line 23) | function Preview({

FILE: website/src/pages/themes/_components/toggle.tsx
  type ToggleProps (line 4) | type ToggleProps = {

FILE: website/src/pages/themes/_config/index.tsx
  type ControlConfig (line 3) | type ControlConfig = {
  type OptionsPanelConfig (line 45) | type OptionsPanelConfig = {
  type ChartPanelConfig (line 52) | type ChartPanelConfig = {

FILE: website/src/pages/themes/_const.tsx
  constant NUM_STACKS (line 1) | const NUM_STACKS = 5;
  type StrokeProps (line 61) | enum StrokeProps {
  type VictoryComponentType (line 69) | enum VictoryComponentType {

FILE: website/src/pages/themes/_providers/alertProvider.tsx
  type AlertContextType (line 5) | type AlertContextType = {

FILE: website/src/pages/themes/_providers/previewOptionsProvider.tsx
  type PreviewOptionsContextType (line 5) | type PreviewOptionsContextType = {

FILE: website/src/pages/themes/_providers/sideNavProvider.tsx
  type SideNavContextType (line 4) | type SideNavContextType = {

FILE: website/src/pages/themes/_providers/themeProvider.tsx
  type ThemeOption (line 6) | type ThemeOption = {
  type ThemeContextType (line 11) | type ThemeContextType = {
  constant CUSTOM_THEME_CONFIG (line 21) | const CUSTOM_THEME_CONFIG: VictoryThemeDefinition = {
  constant CUSTOM_THEME (line 34) | const CUSTOM_THEME = {

FILE: website/src/plugins/victory-typedoc/components/api-property.tsx
  type ApiPropertyProps (line 3) | type ApiPropertyProps = {
  function ApiProperty (line 9) | function ApiProperty(props: ApiPropertyProps) {

FILE: website/src/plugins/victory-typedoc/index.ts
  function autoGenerateApiDocs (line 13) | function autoGenerateApiDocs() {

FILE: website/src/plugins/victory-typedoc/mdast.ts
  function extractExamples (line 10) | function extractExamples(root: any): Record<string, any> {
  function getMarkdown (line 22) | function getMarkdown(value: string): any[] {
  function buildComponentAst (line 26) | function buildComponentAst(typeInfo: TypeInfo) {
  function buildEsmImportAst (line 46) | function buildEsmImportAst() {
  function buildPropertyAst (line 79) | function buildPropertyAst(child: TypeInfo) {

FILE: website/src/plugins/victory-typedoc/typedoc.ts
  type TypeInfo (line 7) | type TypeInfo = {
  type TypeDocType (line 17) | type TypeDocType =
  constant SYNTAX (line 26) | const SYNTAX = {
  function getBlockTag (line 30) | function getBlockTag(comment: JSONOutput.Comment | undefined, tagName: s...
  function getCommentSummary (line 36) | function getCommentSummary(
  function getDefaultValue (line 42) | function getDefaultValue(typeInfo: TypeDocType) {
  function getSignature (line 51) | function getSignature(signature) {
  function getReflectionType (line 58) | function getReflectionType(type): string {
  function getLiteralType (line 73) | function getLiteralType(type): string {
  function getType (line 83) | function getType(type): string {
  function mapTypeInfo (line 103) | function mapTypeInfo(
  function loadTypeInfo (line 121) | async function loadTypeInfo(): Promise<JSONOutput.ProjectReflection> {
  function getTypeInfo (line 161) | async function getTypeInfo(): Promise<Record<string, TypeInfo>> {

FILE: website/src/theme/DocItem/index.tsx
  function DocItem (line 5) | function DocItem(props) {

FILE: website/src/theme/DocSidebar/index.tsx
  function DocSidebar (line 5) | function DocSidebar(props) {

FILE: website/src/theme/Playground/index.tsx
  function Header (line 25) | function Header({ children }: { children: React.ReactNode }) {
  function LivePreviewLoader (line 29) | function LivePreviewLoader() {
  function Preview (line 33) | function Preview() {
  function ResultWithHeader (line 54) | function ResultWithHeader() {
  function ThemedLiveEditor (line 73) | function ThemedLiveEditor() {
  function EditorWithHeader (line 85) | function EditorWithHeader() {
  function Playground (line 121) | function Playground({

FILE: website/src/theme/prism-diff-highlight.ts
  constant LANGUAGE_REGEX (line 4) | const LANGUAGE_REGEX = /^diff-([\w-]+)/i;
  function diffHighlight (line 28) | function diffHighlight(Prism: PrismLib) {

FILE: website/src/theme/prism-include-languages.ts
  constant DIFF_LANGUAGE_REGEX (line 7) | const DIFF_LANGUAGE_REGEX = /^diff-([\w-]+)/i;
  function prismIncludeLanguages (line 9) | function prismIncludeLanguages(
Condensed preview — 981 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (3,648K chars).
[
  {
    "path": ".babelrc.build.js",
    "chars": 86,
    "preview": "module.exports = {\n  extends: \"./.babelrc.js\",\n  ignore: [/^.*(.test.)[j|t]sx?$/],\n};\n"
  },
  {
    "path": ".babelrc.js",
    "chars": 776,
    "preview": "module.exports = {\n  presets: [\n    [\n      \"@babel/preset-env\",\n      {\n        loose: true,\n        exclude: [\n       "
  },
  {
    "path": ".babelrc.native.js",
    "chars": 196,
    "preview": "module.exports = {\n  presets: [\"module:metro-react-native-babel-preset\"],\n  plugins: [\n    \"@babel/plugin-transform-expo"
  },
  {
    "path": ".changeset/afraid-donuts-tease.md",
    "chars": 65,
    "preview": "---\n\"victory-errorbar\": patch\n---\n\nadd default borderwidth value\n"
  },
  {
    "path": ".changeset/config.json",
    "chars": 270,
    "preview": "{\n  \"$schema\": \"https://unpkg.com/@changesets/config@2.0.0/schema.json\",\n  \"changelog\": [\"../scripts/changelog.js\", { \"r"
  },
  {
    "path": ".changeset/cute-foxes-shop.md",
    "chars": 70,
    "preview": "---\n\"victory-native\": patch\n---\n\nfix native container prop forwarding\n"
  },
  {
    "path": ".changeset/silver-crabs-deliver.md",
    "chars": 112,
    "preview": "---\n\"victory-candlestick\": minor\n---\n\nHandle undefined labelStyle properties in VictoryCandlestick. Fixes #3039\n"
  },
  {
    "path": ".editorconfig",
    "chars": 227,
    "preview": "# editorconfig.org\nroot = true\n\n[*]\nindent_style = space\nindent_size = 2\nend_of_line = lf\ncharset = utf-8\ntrim_trailing_"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.yml",
    "chars": 2545,
    "preview": "name: Bug report\ndescription: Create a report to help us improve\nprojects: FormidableLabs/38\nlabels: [\"Type: Bug :bug:\"]"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "chars": 181,
    "preview": "blank_issues_enabled: false\ncontact_links:\n  - name: Victory Issues Board\n    url: https://github.com/FormidableLabs/vic"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.yml",
    "chars": 1506,
    "preview": "name: Feature request\ndescription: Suggest a feature for this project\nprojects: FormidableLabs/38\nlabels: [\"Type: Enhanc"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/question.yml",
    "chars": 1107,
    "preview": "name: Question\ndescription: Ask a question about using Victory.\nprojects: FormidableLabs/38\nlabels: [\"Type: Question :gr"
  },
  {
    "path": ".github/actions/bundle-size/action.yml",
    "chars": 2233,
    "preview": "name: \"Bundle size reporter\"\ndescription: \"Post bundle size difference compared to another branch\"\ninputs:\n  branch:\n   "
  },
  {
    "path": ".github/actions/setup/action.yml",
    "chars": 520,
    "preview": "name: Setup\ndescription: Setup Build Step\ninputs:\n  node-version:\n    default: \"18.x\"\n    description: \"The version of n"
  },
  {
    "path": ".github/workflows/chromatic.yml",
    "chars": 996,
    "preview": "name: Chromatic\n\n# Runs chromatic on:\n# - every push to main (to create a chromatic baseline)\n# - every pull request whe"
  },
  {
    "path": ".github/workflows/ci.yml",
    "chars": 1229,
    "preview": "name: CI\n\n# Runs build and test on:\n#   every push to main\n#   every pull request with main branch as the base\non:\n  pus"
  },
  {
    "path": ".github/workflows/issue-stale.yml",
    "chars": 995,
    "preview": "name: Close inactive issues\non:\n  workflow_dispatch:\n  schedule:\n    - cron: \"0 0 * * *\"\n\njobs:\n  close-issues:\n    runs"
  },
  {
    "path": ".github/workflows/issue-triage.yml",
    "chars": 2094,
    "preview": "name: Issue Triage\non:\n  issues:\n    types: [labeled]\n\njobs:\n  needs-repro:\n    runs-on: ubuntu-22.04\n    if: \"${{ conta"
  },
  {
    "path": ".github/workflows/release.yml",
    "chars": 1190,
    "preview": "name: Release\n\non:\n  push:\n    branches:\n      - main\n\njobs:\n  release:\n    runs-on: ubuntu-latest\n    permissions:\n    "
  },
  {
    "path": ".gitignore",
    "chars": 655,
    "preview": "### SublimeText ###\n*.sublime-workspace\n\n### IntelliJ / WebStorm ###\n.idea/\n\n### OSX ###\n.AppleDouble\n.DS_Store\n.LSOverr"
  },
  {
    "path": ".npmrc",
    "chars": 84,
    "preview": "auto-install-peers=true\nlink-workspace-packages=deep\nprefer-workspace-packages=true\n"
  },
  {
    "path": ".prettierignore",
    "chars": 283,
    "preview": ".cache\n.changeset\n.docusaurus\n.expo\n.storybook\n.wireit\n.vscode\ncoverage\ndist\nbuild\nlib\nlib-vendor\nes\npackages/victory-ve"
  },
  {
    "path": ".prettierrc.json",
    "chars": 186,
    "preview": "{\n  \"arrowParens\": \"always\",\n  \"trailingComma\": \"all\",\n  \"printWidth\": 80,\n  \"overrides\": [\n    {\n      \"files\": \"*.mdx\""
  },
  {
    "path": ".storybook/main.ts",
    "chars": 1421,
    "preview": "import type { StorybookConfig } from \"@storybook/react-webpack5\";\n\n/* globals __dirname:false */\nconst path = require(\"p"
  },
  {
    "path": ".storybook/preview.css",
    "chars": 275,
    "preview": ".VictoryContainer {\n  border: 1px solid #ccc;\n}\n\n/** Custom styles for the visual style tests */\n\n.fill-purple {\n  fill:"
  },
  {
    "path": ".storybook/preview.ts",
    "chars": 264,
    "preview": "import { Preview } from \"@storybook/react\";\n\nimport \"./preview.css\";\n\nconst preview: Preview = {\n  args: {\n    height: 3"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 14477,
    "preview": "# Contributing\n\n## How to Contribute\n\nVictory is open to pull requests, issue reports, and questions from the community."
  },
  {
    "path": "LICENSE.txt",
    "chars": 1626,
    "preview": "The MIT License (MIT)\n\nCopyright (c) 2015-2020 Formidable Labs.\n\nCopyright (c) 2016-2020 Alexey Svetliakov <https://gith"
  },
  {
    "path": "README.md",
    "chars": 2813,
    "preview": "<div align=\"center\">\n  <a href=\"https://commerce.nearform.com/open-source/\" target=\"_blank\">\n    <img alt=\"Victory — For"
  },
  {
    "path": "chromatic.config.json",
    "chars": 92,
    "preview": "{\n  \"onlyChanged\": true,\n  \"projectId\": \"Project:5b4acf7c54c0490024d5980b\",\n  \"zip\": true\n}\n"
  },
  {
    "path": "config/webpack/demo/webpack.config.dev.js",
    "chars": 1874,
    "preview": "\"use strict\";\n\nconst path = require(\"path\");\nconst glob = require(\"glob\");\nconst LodashModuleReplacementPlugin = require"
  },
  {
    "path": "config/webpack/demo/webpack.config.hot.js",
    "chars": 645,
    "preview": "\"use strict\";\n\nconst _ = require(\"lodash\");\nconst base = require(\"./webpack.config.dev\");\n\n// Clone our own module objec"
  },
  {
    "path": "config/webpack/webpack.config.dev.js",
    "chars": 595,
    "preview": "\"use strict\";\n\nconst config = require(\"./webpack.config\");\nconst LodashModuleReplacementPlugin = require(\"lodash-webpack"
  },
  {
    "path": "config/webpack/webpack.config.js",
    "chars": 2173,
    "preview": "\"use strict\";\n\nconst path = require(\"path\");\nconst webpack = require(\"webpack\");\nconst LodashModuleReplacementPlugin = r"
  },
  {
    "path": "demo/rn/.expo-shared/assets.json",
    "chars": 155,
    "preview": "{\n  \"12bb71342c6255bbf50437ec8f4441c083f47cdb74bd89160c15e4f43e52a1cb\": true,\n  \"40b842e832070c58deac6aa9e08fa459302ee3f"
  },
  {
    "path": "demo/rn/.gitignore",
    "chars": 119,
    "preview": "node_modules/\n.expo/\ndist/\nnpm-debug.*\n*.jks\n*.p8\n*.p12\n*.key\n*.mobileprovision\n*.orig.*\nweb-build/\n\n# macOS\n.DS_Store\n"
  },
  {
    "path": "demo/rn/App.tsx",
    "chars": 447,
    "preview": "import React from \"react\";\nimport { LogBox } from \"react-native\";\nimport { NavigationContainer } from \"@react-navigation"
  },
  {
    "path": "demo/rn/app.json",
    "chars": 669,
    "preview": "{\n  \"expo\": {\n    \"name\": \"rn-demo\",\n    \"slug\": \"rn-demo\",\n    \"version\": \"1.0.0\",\n    \"orientation\": \"portrait\",\n    \""
  },
  {
    "path": "demo/rn/babel.config.js",
    "chars": 108,
    "preview": "module.exports = function (api) {\n  api.cache(true);\n  return {\n    presets: [\"babel-preset-expo\"],\n  };\n};\n"
  },
  {
    "path": "demo/rn/metro.config.js",
    "chars": 667,
    "preview": "// https://docs.expo.dev/guides/monorepos/#modify-the-metro-config\nconst { getDefaultConfig } = require(\"expo/metro-conf"
  },
  {
    "path": "demo/rn/package.json",
    "chars": 2138,
    "preview": "{\n  \"name\": \"rn-demo\",\n  \"version\": \"1.0.0\",\n  \"sideEffects\": false,\n  \"main\": \"App.tsx\",\n  \"scripts\": {\n    \"start\": \"e"
  },
  {
    "path": "demo/rn/src/data/index.ts",
    "chars": 879,
    "preview": "import { range, random } from \"lodash\";\n\nexport const getData = () =>\n  range(1, 10).map((i) => ({ x: i, y: random(1, 10"
  },
  {
    "path": "demo/rn/src/navigation-config.ts",
    "chars": 366,
    "preview": "export type RootStackNavigatorParams = {\n  Components: undefined;\n  Pie: undefined;\n  Chart: undefined;\n  Line: undefine"
  },
  {
    "path": "demo/rn/src/screens/area-screen.tsx",
    "chars": 3509,
    "preview": "import * as React from \"react\";\nimport { ScrollView } from \"react-native\";\nimport { VictoryArea, VictoryGroup, VictorySt"
  },
  {
    "path": "demo/rn/src/screens/axis-screen.tsx",
    "chars": 1256,
    "preview": "import * as React from \"react\";\nimport { ScrollView } from \"react-native\";\nimport { VictoryAxis } from \"victory-native\";"
  },
  {
    "path": "demo/rn/src/screens/bar-screen.tsx",
    "chars": 2074,
    "preview": "import * as React from \"react\";\nimport { Text } from \"react-native\";\nimport { ScrollView } from \"react-native\";\nimport {"
  },
  {
    "path": "demo/rn/src/screens/box-plot-screen.tsx",
    "chars": 1513,
    "preview": "import * as React from \"react\";\nimport { ScrollView } from \"react-native\";\nimport { VictoryChart, VictoryBoxPlot } from "
  },
  {
    "path": "demo/rn/src/screens/brush-line-screen.tsx",
    "chars": 8451,
    "preview": "import * as React from \"react\";\nimport { Dimensions, ScrollView } from \"react-native\";\nimport {\n  VictoryAxis,\n  Victory"
  },
  {
    "path": "demo/rn/src/screens/chart-screen.tsx",
    "chars": 4861,
    "preview": "import * as React from \"react\";\nimport { ScrollView } from \"react-native\";\nimport {\n  Background,\n  VictoryChart,\n  Vict"
  },
  {
    "path": "demo/rn/src/screens/components-screen.tsx",
    "chars": 2690,
    "preview": "import * as React from \"react\";\nimport {\n  ListRenderItem,\n  Platform,\n  SectionList,\n  SectionListRenderItem,\n  Text,\n "
  },
  {
    "path": "demo/rn/src/screens/error-bar-screen.tsx",
    "chars": 789,
    "preview": "import * as React from \"react\";\nimport { ScrollView, Text } from \"react-native\";\nimport { VictoryChart, VictoryErrorBar,"
  },
  {
    "path": "demo/rn/src/screens/histogram-screen.tsx",
    "chars": 1858,
    "preview": "import * as React from \"react\";\nimport { ScrollView } from \"react-native\";\nimport { VictoryStack, VictoryHistogram } fro"
  },
  {
    "path": "demo/rn/src/screens/legends-screen.tsx",
    "chars": 1480,
    "preview": "import * as React from \"react\";\nimport { ScrollView, Dimensions } from \"react-native\";\nimport { VictoryLegend } from \"vi"
  },
  {
    "path": "demo/rn/src/screens/line-screen.tsx",
    "chars": 2611,
    "preview": "import * as React from \"react\";\nimport { ScrollView } from \"react-native\";\nimport { VictoryLine } from \"victory-native\";"
  },
  {
    "path": "demo/rn/src/screens/pie-screen.tsx",
    "chars": 2209,
    "preview": "import * as React from \"react\";\nimport { ScrollView } from \"react-native\";\nimport { VictoryPie } from \"victory-native\";\n"
  },
  {
    "path": "demo/rn/src/screens/polar-axis-screen.tsx",
    "chars": 1085,
    "preview": "import * as React from \"react\";\nimport { ScrollView } from \"react-native\";\nimport viewStyles from \"../styles/view-styles"
  },
  {
    "path": "demo/rn/src/screens/root-navigator.tsx",
    "chars": 3054,
    "preview": "import * as React from \"react\";\nimport { RootStackNavigatorParams } from \"../navigation-config\";\nimport { createNativeSt"
  },
  {
    "path": "demo/rn/src/screens/scatter-screen.tsx",
    "chars": 1562,
    "preview": "import * as React from \"react\";\nimport { ScrollView, View } from \"react-native\";\nimport { VictoryScatter } from \"victory"
  },
  {
    "path": "demo/rn/src/screens/voronoi-screen.tsx",
    "chars": 733,
    "preview": "import * as React from \"react\";\nimport { ScrollView } from \"react-native\";\nimport viewStyles from \"../styles/view-styles"
  },
  {
    "path": "demo/rn/src/styles/container-view-styles.ts",
    "chars": 777,
    "preview": "import { Platform, StyleSheet } from \"react-native\";\n\nexport default StyleSheet.create({\n  container: {\n    flex: 1,\n   "
  },
  {
    "path": "demo/rn/src/styles/view-styles.ts",
    "chars": 337,
    "preview": "import { Platform, StyleSheet } from \"react-native\";\n\nexport default StyleSheet.create({\n  container: {\n    flex: 1,\n  }"
  },
  {
    "path": "demo/rn/tsconfig.json",
    "chars": 85,
    "preview": "{\n  \"extends\": \"expo/tsconfig.base\",\n  \"compilerOptions\": {\n    \"strict\": true\n  }\n}\n"
  },
  {
    "path": "eslint.config.mjs",
    "chars": 3592,
    "preview": "import eslint from \"@eslint/js\";\nimport prettier from \"eslint-plugin-prettier/recommended\";\nimport pluginJest from \"esli"
  },
  {
    "path": "package-scripts.js",
    "chars": 2381,
    "preview": "/**\n * We generally use `nps` for scripts that we:\n * 1. define at the root of the monorepo\n * 2. that are meant to exec"
  },
  {
    "path": "package.json",
    "chars": 15721,
    "preview": "{\n  \"name\": \"victory-monorepo\",\n  \"version\": \"0.0.0\",\n  \"description\": \"Data viz for React\",\n  \"keywords\": [\n    \"data v"
  },
  {
    "path": "packages/victory/.npmignore",
    "chars": 97,
    "preview": "/*\n!/dist\n!/es\n!/lib\n!/src\n!LICENSE.txt\n!CHANGELOG.md\n!README.md\n!package.json\n*.map\n**/*.test.*\n"
  },
  {
    "path": "packages/victory/CHANGELOG.md",
    "chars": 11911,
    "preview": "# victory\n\n## 37.3.6\n\n## 37.3.5\n\n## 37.3.4\n\n## 37.3.3\n\n## 37.3.2\n\n## 37.3.1\n\n## 37.3.0\n\n## 37.2.0\n\n## 37.1.2\n\n### Patch "
  },
  {
    "path": "packages/victory/README.md",
    "chars": 1447,
    "preview": "## [Victory Documentation](https://commerce.nearform.com/open-source/victory)\n\n## Getting started\n\n1. Add Victory to you"
  },
  {
    "path": "packages/victory/jest.config.ts",
    "chars": 87,
    "preview": "import rootConfig from \"../../test/jest.config\";\n\nexport default {\n  ...rootConfig,\n};\n"
  },
  {
    "path": "packages/victory/package.json",
    "chars": 16956,
    "preview": "{\n  \"name\": \"victory\",\n  \"version\": \"37.3.6\",\n  \"description\": \"Data viz for React\",\n  \"keywords\": [\n    \"data visualiza"
  },
  {
    "path": "packages/victory/src/index.ts",
    "chars": 938,
    "preview": "export * from \"victory-area\";\nexport * from \"victory-axis\";\nexport * from \"victory-bar\";\nexport * from \"victory-box-plot"
  },
  {
    "path": "packages/victory/src/victory.test.ts",
    "chars": 14403,
    "preview": "/* eslint-disable @typescript-eslint/no-unused-vars */\nimport * as Victory from \"./index\";\nimport {\n  Arc,\n  ArcProps,\n "
  },
  {
    "path": "packages/victory/tsconfig.build.json",
    "chars": 105,
    "preview": "{\n  \"extends\": \"../../tsconfig.base.json\",\n  \"exclude\": [\"**/*.test.*\", \"es\", \"lib\", \"jest.config.ts\"]\n}\n"
  },
  {
    "path": "packages/victory/tsconfig.json",
    "chars": 90,
    "preview": "{\n  \"extends\": \"../../tsconfig.base.json\",\n  \"exclude\": [\"es\", \"lib\", \"jest.config.ts\"]\n}\n"
  },
  {
    "path": "packages/victory-area/.npmignore",
    "chars": 97,
    "preview": "/*\n!/dist\n!/es\n!/lib\n!/src\n!LICENSE.txt\n!CHANGELOG.md\n!README.md\n!package.json\n*.map\n**/*.test.*\n"
  },
  {
    "path": "packages/victory-area/CHANGELOG.md",
    "chars": 4933,
    "preview": "# victory-area\n\n## 37.3.6\n\n## 37.3.5\n\n## 37.3.4\n\n## 37.3.3\n\n### Patch Changes\n\n- Upgrade typescript to 5.7.2 ([#2997](ht"
  },
  {
    "path": "packages/victory-area/README.md",
    "chars": 363,
    "preview": "# VictoryArea\n\n`victory-area@^30.0.0` exports `VictoryArea` and `Area` components\n\nTo view documentation for `VictoryAre"
  },
  {
    "path": "packages/victory-area/jest.config.ts",
    "chars": 87,
    "preview": "import rootConfig from \"../../test/jest.config\";\n\nexport default {\n  ...rootConfig,\n};\n"
  },
  {
    "path": "packages/victory-area/package.json",
    "chars": 6316,
    "preview": "{\n  \"name\": \"victory-area\",\n  \"version\": \"37.3.6\",\n  \"description\": \"Area Component for Victory\",\n  \"keywords\": [\n    \"d"
  },
  {
    "path": "packages/victory-area/src/area.test.tsx",
    "chars": 1461,
    "preview": "import React from \"react\";\nimport { render } from \"@testing-library/react\";\nimport { VictoryContainer } from \"victory-co"
  },
  {
    "path": "packages/victory-area/src/area.tsx",
    "chars": 4696,
    "preview": "/* eslint no-magic-numbers: [\"error\", { \"ignore\": [-1, 0, 1, 2] }]*/\nimport React from \"react\";\nimport defaults from \"lo"
  },
  {
    "path": "packages/victory-area/src/helper-methods.test.tsx",
    "chars": 2180,
    "preview": "import * as d3Scale from \"victory-vendor/d3-scale\";\n\nimport { getDataWithBaseline } from \"./helper-methods\";\n\ndescribe(\""
  },
  {
    "path": "packages/victory-area/src/helper-methods.tsx",
    "chars": 3533,
    "preview": "import {\n  Helpers,\n  LabelHelpers,\n  Data,\n  Domain,\n  Scale,\n  Collection,\n} from \"victory-core\";\n\nexport const getDat"
  },
  {
    "path": "packages/victory-area/src/index.ts",
    "chars": 56,
    "preview": "export * from \"./victory-area\";\nexport * from \"./area\";\n"
  },
  {
    "path": "packages/victory-area/src/victory-area.test.tsx",
    "chars": 7689,
    "preview": "import { fireEvent, render, screen } from \"@testing-library/react\";\nimport React from \"react\";\nimport { VictoryChart } f"
  },
  {
    "path": "packages/victory-area/src/victory-area.tsx",
    "chars": 3259,
    "preview": "import React from \"react\";\nimport { getBaseProps } from \"./helper-methods\";\nimport { Area } from \"./area\";\nimport {\n  He"
  },
  {
    "path": "packages/victory-area/tsconfig.build.json",
    "chars": 105,
    "preview": "{\n  \"extends\": \"../../tsconfig.base.json\",\n  \"exclude\": [\"**/*.test.*\", \"es\", \"lib\", \"jest.config.ts\"]\n}\n"
  },
  {
    "path": "packages/victory-area/tsconfig.json",
    "chars": 90,
    "preview": "{\n  \"extends\": \"../../tsconfig.base.json\",\n  \"exclude\": [\"es\", \"lib\", \"jest.config.ts\"]\n}\n"
  },
  {
    "path": "packages/victory-axis/.npmignore",
    "chars": 97,
    "preview": "/*\n!/dist\n!/es\n!/lib\n!/src\n!LICENSE.txt\n!CHANGELOG.md\n!README.md\n!package.json\n*.map\n**/*.test.*\n"
  },
  {
    "path": "packages/victory-axis/CHANGELOG.md",
    "chars": 4698,
    "preview": "# victory-axis\n\n## 37.3.6\n\n## 37.3.5\n\n## 37.3.4\n\n## 37.3.3\n\n### Patch Changes\n\n- Remove deprecated babel-plugin-lodash p"
  },
  {
    "path": "packages/victory-axis/README.md",
    "chars": 351,
    "preview": "# VictoryAxis\n\n`victory-axis@^30.0.0` exports `VictoryAxis` component\n\nTo view documentation for `VictoryAxis` please se"
  },
  {
    "path": "packages/victory-axis/jest.config.ts",
    "chars": 87,
    "preview": "import rootConfig from \"../../test/jest.config\";\n\nexport default {\n  ...rootConfig,\n};\n"
  },
  {
    "path": "packages/victory-axis/package.json",
    "chars": 5790,
    "preview": "{\n  \"name\": \"victory-axis\",\n  \"version\": \"37.3.6\",\n  \"description\": \"Axis Component for Victory\",\n  \"keywords\": [\n    \"d"
  },
  {
    "path": "packages/victory-axis/src/helper-methods.tsx",
    "chars": 19561,
    "preview": "import defaults from \"lodash/defaults\";\nimport { Helpers, Scale, Axis } from \"victory-core\";\nimport { VictoryAxisProps }"
  },
  {
    "path": "packages/victory-axis/src/index.ts",
    "chars": 32,
    "preview": "export * from \"./victory-axis\";\n"
  },
  {
    "path": "packages/victory-axis/src/victory-axis.tsx",
    "chars": 7548,
    "preview": "import React from \"react\";\nimport isEmpty from \"lodash/isEmpty\";\nimport {\n  VictoryLabel,\n  VictoryContainer,\n  VictoryT"
  },
  {
    "path": "packages/victory-axis/tsconfig.build.json",
    "chars": 105,
    "preview": "{\n  \"extends\": \"../../tsconfig.base.json\",\n  \"exclude\": [\"**/*.test.*\", \"es\", \"lib\", \"jest.config.ts\"]\n}\n"
  },
  {
    "path": "packages/victory-axis/tsconfig.json",
    "chars": 90,
    "preview": "{\n  \"extends\": \"../../tsconfig.base.json\",\n  \"exclude\": [\"es\", \"lib\", \"jest.config.ts\"]\n}\n"
  },
  {
    "path": "packages/victory-bar/.npmignore",
    "chars": 97,
    "preview": "/*\n!/dist\n!/es\n!/lib\n!/src\n!LICENSE.txt\n!CHANGELOG.md\n!README.md\n!package.json\n*.map\n**/*.test.*\n"
  },
  {
    "path": "packages/victory-bar/CHANGELOG.md",
    "chars": 5674,
    "preview": "# victory-bar\n\n## 37.3.6\n\n## 37.3.5\n\n### Patch Changes\n\n- Fix \"props.groupComponent is undefined\" error ([#3014](https:/"
  },
  {
    "path": "packages/victory-bar/README.md",
    "chars": 368,
    "preview": "# VictoryBar\n\n`victory-bar@^30.0.0` exports `VictoryBar` and `Bar` components\n\nTo view documentation for `VictoryBar` pl"
  },
  {
    "path": "packages/victory-bar/jest.config.ts",
    "chars": 87,
    "preview": "import rootConfig from \"../../test/jest.config\";\n\nexport default {\n  ...rootConfig,\n};\n"
  },
  {
    "path": "packages/victory-bar/package.json",
    "chars": 6314,
    "preview": "{\n  \"name\": \"victory-bar\",\n  \"version\": \"37.3.6\",\n  \"description\": \"Bar Component for Victory\",\n  \"keywords\": [\n    \"dat"
  },
  {
    "path": "packages/victory-bar/src/bar-helper-methods.ts",
    "chars": 2741,
    "preview": "import isPlainObject from \"lodash/isPlainObject\";\nimport { Helpers, VictoryStyleObject } from \"victory-core\";\nimport { B"
  },
  {
    "path": "packages/victory-bar/src/bar.test.tsx",
    "chars": 2156,
    "preview": "import React from \"react\";\nimport { render } from \"@testing-library/react\";\nimport * as d3Scale from \"victory-vendor/d3-"
  },
  {
    "path": "packages/victory-bar/src/bar.tsx",
    "chars": 2951,
    "preview": "import React, { forwardRef } from \"react\";\nimport defaults from \"lodash/defaults\";\nimport {\n  Helpers,\n  NumberOrCallbac"
  },
  {
    "path": "packages/victory-bar/src/geometry-helper-methods.test.ts",
    "chars": 3804,
    "preview": "import { circle, point } from \"./geometry-helper-methods\";\n\ndescribe(\"point\", () => {\n  describe(\"calculates distances\","
  },
  {
    "path": "packages/victory-bar/src/geometry-helper-methods.ts",
    "chars": 3052,
    "preview": "/**\n * A point in the 2d plane\n */\nexport const point = (x: number, y: number) => ({\n  x,\n  y,\n  distance(p1: { x: numbe"
  },
  {
    "path": "packages/victory-bar/src/helper-methods.ts",
    "chars": 3961,
    "preview": "import {\n  Collection,\n  Data,\n  Domain,\n  Helpers,\n  LabelHelpers,\n  Scale,\n  VictoryClipContainer,\n} from \"victory-cor"
  },
  {
    "path": "packages/victory-bar/src/index.ts",
    "chars": 351,
    "preview": "export * from \"./victory-bar\";\nexport * from \"./bar\";\nexport { getBarPosition } from \"./helper-methods\";\nexport {\n  getV"
  },
  {
    "path": "packages/victory-bar/src/path-helper-methods.ts",
    "chars": 14516,
    "preview": "import * as d3Shape from \"victory-vendor/d3-shape\";\nimport { BarProps } from \"./bar\";\n\nimport { circle, point } from \"./"
  },
  {
    "path": "packages/victory-bar/src/victory-bar.test.tsx",
    "chars": 8974,
    "preview": "import * as React from \"react\";\nimport { render, fireEvent, screen } from \"@testing-library/react\";\nimport { VictoryChar"
  },
  {
    "path": "packages/victory-bar/src/victory-bar.tsx",
    "chars": 4498,
    "preview": "import React from \"react\";\nimport { getBaseProps } from \"./helper-methods\";\nimport { Bar } from \"./bar\";\nimport {\n  Help"
  },
  {
    "path": "packages/victory-bar/tsconfig.build.json",
    "chars": 105,
    "preview": "{\n  \"extends\": \"../../tsconfig.base.json\",\n  \"exclude\": [\"**/*.test.*\", \"es\", \"lib\", \"jest.config.ts\"]\n}\n"
  },
  {
    "path": "packages/victory-bar/tsconfig.json",
    "chars": 90,
    "preview": "{\n  \"extends\": \"../../tsconfig.base.json\",\n  \"exclude\": [\"es\", \"lib\", \"jest.config.ts\"]\n}\n"
  },
  {
    "path": "packages/victory-box-plot/.npmignore",
    "chars": 97,
    "preview": "/*\n!/dist\n!/es\n!/lib\n!/src\n!LICENSE.txt\n!CHANGELOG.md\n!README.md\n!package.json\n*.map\n**/*.test.*\n"
  },
  {
    "path": "packages/victory-box-plot/CHANGELOG.md",
    "chars": 4779,
    "preview": "# victory-box-plot\n\n## 37.3.6\n\n## 37.3.5\n\n## 37.3.4\n\n## 37.3.3\n\n### Patch Changes\n\n- Remove deprecated babel-plugin-loda"
  },
  {
    "path": "packages/victory-box-plot/README.md",
    "chars": 371,
    "preview": "# VictoryBoxPlot\n\n`victory-box-plot@^30.0.0` exports `VictoryBoxPlot` component\n\nTo view documentation for `VictoryBoxPl"
  },
  {
    "path": "packages/victory-box-plot/jest.config.ts",
    "chars": 87,
    "preview": "import rootConfig from \"../../test/jest.config\";\n\nexport default {\n  ...rootConfig,\n};\n"
  },
  {
    "path": "packages/victory-box-plot/package.json",
    "chars": 6324,
    "preview": "{\n  \"name\": \"victory-box-plot\",\n  \"version\": \"37.3.6\",\n  \"description\": \"Box Plot Component for Victory\",\n  \"keywords\": "
  },
  {
    "path": "packages/victory-box-plot/src/helper-methods.tsx",
    "chars": 16127,
    "preview": "import defaults from \"lodash/defaults\";\nimport groupBy from \"lodash/groupBy\";\nimport orderBy from \"lodash/orderBy\";\nimpo"
  },
  {
    "path": "packages/victory-box-plot/src/index.ts",
    "chars": 36,
    "preview": "export * from \"./victory-box-plot\";\n"
  },
  {
    "path": "packages/victory-box-plot/src/victory-box-plot.test.tsx",
    "chars": 6411,
    "preview": "import { render, screen } from \"@testing-library/react\";\nimport React from \"react\";\nimport { VictoryChart } from \"victor"
  },
  {
    "path": "packages/victory-box-plot/src/victory-box-plot.tsx",
    "chars": 7831,
    "preview": "import React from \"react\";\nimport {\n  Helpers,\n  VictoryLabel,\n  addEvents,\n  LineSegment,\n  VictoryContainer,\n  Victory"
  },
  {
    "path": "packages/victory-box-plot/tsconfig.build.json",
    "chars": 105,
    "preview": "{\n  \"extends\": \"../../tsconfig.base.json\",\n  \"exclude\": [\"**/*.test.*\", \"es\", \"lib\", \"jest.config.ts\"]\n}\n"
  },
  {
    "path": "packages/victory-box-plot/tsconfig.json",
    "chars": 90,
    "preview": "{\n  \"extends\": \"../../tsconfig.base.json\",\n  \"exclude\": [\"es\", \"lib\", \"jest.config.ts\"]\n}\n"
  },
  {
    "path": "packages/victory-brush-container/.npmignore",
    "chars": 97,
    "preview": "/*\n!/dist\n!/es\n!/lib\n!/src\n!LICENSE.txt\n!CHANGELOG.md\n!README.md\n!package.json\n*.map\n**/*.test.*\n"
  },
  {
    "path": "packages/victory-brush-container/CHANGELOG.md",
    "chars": 4762,
    "preview": "# victory-brush-container\n\n## 37.3.6\n\n## 37.3.5\n\n## 37.3.4\n\n## 37.3.3\n\n### Patch Changes\n\n- Remove deprecated babel-plug"
  },
  {
    "path": "packages/victory-brush-container/README.md",
    "chars": 446,
    "preview": "# VictoryBrushContainer\n\n`victory-brush-container@^30.0.0` exports `VictoryBrushContainer`, `brushContainerMixin` and `B"
  },
  {
    "path": "packages/victory-brush-container/jest.config.ts",
    "chars": 87,
    "preview": "import rootConfig from \"../../test/jest.config\";\n\nexport default {\n  ...rootConfig,\n};\n"
  },
  {
    "path": "packages/victory-brush-container/package.json",
    "chars": 5850,
    "preview": "{\n  \"name\": \"victory-brush-container\",\n  \"version\": \"37.3.6\",\n  \"description\": \"Interactive Brush Component for Victory\""
  },
  {
    "path": "packages/victory-brush-container/src/brush-helpers.test.tsx",
    "chars": 2385,
    "preview": "import { BrushHelpers } from \"./brush-helpers\";\n\ndescribe(\"containers/brush-helpers\", () => {\n  const { withinBounds, co"
  },
  {
    "path": "packages/victory-brush-container/src/brush-helpers.ts",
    "chars": 15212,
    "preview": "import defaults from \"lodash/defaults\";\nimport throttle from \"lodash/throttle\";\n\nimport { Helpers as CoreHelpers, Select"
  },
  {
    "path": "packages/victory-brush-container/src/index.ts",
    "chars": 76,
    "preview": "export * from \"./victory-brush-container\";\nexport * from \"./brush-helpers\";\n"
  },
  {
    "path": "packages/victory-brush-container/src/victory-brush-container.tsx",
    "chars": 7017,
    "preview": "import React from \"react\";\nimport {\n  Selection,\n  Rect,\n  DomainTuple,\n  VictoryContainerProps,\n  VictoryContainer,\n  V"
  },
  {
    "path": "packages/victory-brush-container/tsconfig.build.json",
    "chars": 105,
    "preview": "{\n  \"extends\": \"../../tsconfig.base.json\",\n  \"exclude\": [\"**/*.test.*\", \"es\", \"lib\", \"jest.config.ts\"]\n}\n"
  },
  {
    "path": "packages/victory-brush-container/tsconfig.json",
    "chars": 90,
    "preview": "{\n  \"extends\": \"../../tsconfig.base.json\",\n  \"exclude\": [\"es\", \"lib\", \"jest.config.ts\"]\n}\n"
  },
  {
    "path": "packages/victory-brush-line/.npmignore",
    "chars": 97,
    "preview": "/*\n!/dist\n!/es\n!/lib\n!/src\n!LICENSE.txt\n!CHANGELOG.md\n!README.md\n!package.json\n*.map\n**/*.test.*\n"
  },
  {
    "path": "packages/victory-brush-line/CHANGELOG.md",
    "chars": 3981,
    "preview": "# victory-brush-line\n\n## 37.3.6\n\n## 37.3.5\n\n## 37.3.4\n\n## 37.3.3\n\n### Patch Changes\n\n- Remove deprecated babel-plugin-lo"
  },
  {
    "path": "packages/victory-brush-line/README.md",
    "chars": 374,
    "preview": "# VictoryBrushLine\n\n`victory-brush-line@^30.0.0` exports `VictoryBrushLine`\n\nTo view documentation for `VictoryBrushLine"
  },
  {
    "path": "packages/victory-brush-line/jest.config.ts",
    "chars": 87,
    "preview": "import rootConfig from \"../../test/jest.config\";\n\nexport default {\n  ...rootConfig,\n};\n"
  },
  {
    "path": "packages/victory-brush-line/package.json",
    "chars": 5850,
    "preview": "{\n  \"name\": \"victory-brush-line\",\n  \"version\": \"37.3.6\",\n  \"description\": \"Interactive Brush Line Component for Victory\""
  },
  {
    "path": "packages/victory-brush-line/src/index.ts",
    "chars": 38,
    "preview": "export * from \"./victory-brush-line\";\n"
  },
  {
    "path": "packages/victory-brush-line/src/victory-brush-line.tsx",
    "chars": 22558,
    "preview": "import React from \"react\";\nimport defaults from \"lodash/defaults\";\nimport pick from \"lodash/pick\";\n\nimport {\n  Selection"
  },
  {
    "path": "packages/victory-brush-line/tsconfig.build.json",
    "chars": 105,
    "preview": "{\n  \"extends\": \"../../tsconfig.base.json\",\n  \"exclude\": [\"**/*.test.*\", \"es\", \"lib\", \"jest.config.ts\"]\n}\n"
  },
  {
    "path": "packages/victory-brush-line/tsconfig.json",
    "chars": 90,
    "preview": "{\n  \"extends\": \"../../tsconfig.base.json\",\n  \"exclude\": [\"es\", \"lib\", \"jest.config.ts\"]\n}\n"
  },
  {
    "path": "packages/victory-candlestick/.npmignore",
    "chars": 97,
    "preview": "/*\n!/dist\n!/es\n!/lib\n!/src\n!LICENSE.txt\n!CHANGELOG.md\n!README.md\n!package.json\n*.map\n**/*.test.*\n"
  },
  {
    "path": "packages/victory-candlestick/CHANGELOG.md",
    "chars": 4873,
    "preview": "# victory-candlestick\n\n## 37.3.6\n\n## 37.3.5\n\n## 37.3.4\n\n## 37.3.3\n\n### Patch Changes\n\n- Remove deprecated babel-plugin-l"
  },
  {
    "path": "packages/victory-candlestick/README.md",
    "chars": 407,
    "preview": "# VictoryCandlestick\n\n`victory-candlestick@^30.0.0` exports `VictoryCandlestick` and `Candle` components\n\nTo view docume"
  },
  {
    "path": "packages/victory-candlestick/jest.config.ts",
    "chars": 87,
    "preview": "import rootConfig from \"../../test/jest.config\";\n\nexport default {\n  ...rootConfig,\n};\n"
  },
  {
    "path": "packages/victory-candlestick/package.json",
    "chars": 6041,
    "preview": "{\n  \"name\": \"victory-candlestick\",\n  \"version\": \"37.3.6\",\n  \"description\": \"Candlestick Component for Victory\",\n  \"keywo"
  },
  {
    "path": "packages/victory-candlestick/src/candle.test.tsx",
    "chars": 1893,
    "preview": "import React from \"react\";\nimport { render } from \"@testing-library/react\";\nimport { VictoryContainer } from \"victory-co"
  },
  {
    "path": "packages/victory-candlestick/src/candle.tsx",
    "chars": 4358,
    "preview": "import React from \"react\";\nimport {\n  Helpers,\n  Line,\n  NumberOrCallback,\n  Rect,\n  VictoryCommonPrimitiveProps,\n  Vict"
  },
  {
    "path": "packages/victory-candlestick/src/helper-methods.test.ts",
    "chars": 1916,
    "preview": "import { fromJS } from \"immutable\";\nimport { Helpers } from \"victory-core\";\n\nimport { getData, getDomain } from \"./helpe"
  },
  {
    "path": "packages/victory-candlestick/src/helper-methods.ts",
    "chars": 12656,
    "preview": "import defaults from \"lodash/defaults\";\nimport isPlainObject from \"lodash/isPlainObject\";\n\nimport {\n  Helpers,\n  Scale,\n"
  },
  {
    "path": "packages/victory-candlestick/src/index.ts",
    "chars": 65,
    "preview": "export * from \"./victory-candlestick\";\nexport * from \"./candle\";\n"
  },
  {
    "path": "packages/victory-candlestick/src/victory-candlestick.test.tsx",
    "chars": 9425,
    "preview": "import { fireEvent, render, screen } from \"@testing-library/react\";\nimport React from \"react\";\nimport { VictoryChart } f"
  },
  {
    "path": "packages/victory-candlestick/src/victory-candlestick.tsx",
    "chars": 8879,
    "preview": "import React from \"react\";\nimport {\n  Helpers,\n  VictoryLabel,\n  addEvents,\n  VictoryContainer,\n  VictoryTheme,\n  Defaul"
  },
  {
    "path": "packages/victory-candlestick/tsconfig.build.json",
    "chars": 105,
    "preview": "{\n  \"extends\": \"../../tsconfig.base.json\",\n  \"exclude\": [\"**/*.test.*\", \"es\", \"lib\", \"jest.config.ts\"]\n}\n"
  },
  {
    "path": "packages/victory-candlestick/tsconfig.json",
    "chars": 90,
    "preview": "{\n  \"extends\": \"../../tsconfig.base.json\",\n  \"exclude\": [\"es\", \"lib\", \"jest.config.ts\"]\n}\n"
  },
  {
    "path": "packages/victory-canvas/.npmignore",
    "chars": 97,
    "preview": "/*\n!/dist\n!/es\n!/lib\n!/src\n!LICENSE.txt\n!CHANGELOG.md\n!README.md\n!package.json\n*.map\n**/*.test.*\n"
  },
  {
    "path": "packages/victory-canvas/CHANGELOG.md",
    "chars": 4005,
    "preview": "# victory-canvas\n\n## 37.3.6\n\n## 37.3.5\n\n## 37.3.4\n\n## 37.3.3\n\n## 37.3.2\n\n## 37.3.1\n\n## 37.3.0\n\n## 37.2.0\n\n## 37.1.2\n\n###"
  },
  {
    "path": "packages/victory-canvas/README.md",
    "chars": 987,
    "preview": "#VictoryCanvas\n\nThis is an experimental set of primitive components that can be used in place of the default Victory pri"
  },
  {
    "path": "packages/victory-canvas/jest.config.ts",
    "chars": 87,
    "preview": "import rootConfig from \"../../test/jest.config\";\n\nexport default {\n  ...rootConfig,\n};\n"
  },
  {
    "path": "packages/victory-canvas/package.json",
    "chars": 6178,
    "preview": "{\n  \"name\": \"victory-canvas\",\n  \"version\": \"37.3.6\",\n  \"description\": \"HTML5 Canvas Components for Victory\",\n  \"keywords"
  },
  {
    "path": "packages/victory-canvas/src/canvas-bar.tsx",
    "chars": 3337,
    "preview": "import React from \"react\";\nimport {\n  BarProps,\n  VictoryBarAlignmentType,\n  VictoryBarCornerRadiusObject,\n  getBarPath,"
  },
  {
    "path": "packages/victory-canvas/src/canvas-curve.tsx",
    "chars": 1283,
    "preview": "import React from \"react\";\nimport {\n  LineHelpers,\n  NumberOrCallback,\n  StringOrCallback,\n  VictoryCommonPrimitiveProps"
  },
  {
    "path": "packages/victory-canvas/src/canvas-group.tsx",
    "chars": 1646,
    "preview": "import React from \"react\";\nimport { CanvasContext } from \"./hooks/use-canvas-context\";\nimport { PaddingProps } from \"vic"
  },
  {
    "path": "packages/victory-canvas/src/canvas-point.tsx",
    "chars": 2319,
    "preview": "import React from \"react\";\nimport {\n  Helpers,\n  PointPathHelpers,\n  ScatterSymbolType,\n  VictoryCommonPrimitiveProps,\n}"
  },
  {
    "path": "packages/victory-canvas/src/hooks/use-canvas-context.ts",
    "chars": 630,
    "preview": "import React from \"react\";\n\nexport type CanvasContextValue = {\n  canvasRef: React.RefObject<HTMLCanvasElement>;\n  clear:"
  },
  {
    "path": "packages/victory-canvas/src/index.ts",
    "chars": 189,
    "preview": "export * from \"./canvas-bar\";\nexport * from \"./canvas-group\";\nexport * from \"./canvas-curve\";\nexport * from \"./canvas-po"
  },
  {
    "path": "packages/victory-canvas/tsconfig.build.json",
    "chars": 105,
    "preview": "{\n  \"extends\": \"../../tsconfig.base.json\",\n  \"exclude\": [\"**/*.test.*\", \"es\", \"lib\", \"jest.config.ts\"]\n}\n"
  },
  {
    "path": "packages/victory-canvas/tsconfig.json",
    "chars": 90,
    "preview": "{\n  \"extends\": \"../../tsconfig.base.json\",\n  \"exclude\": [\"es\", \"lib\", \"jest.config.ts\"]\n}\n"
  },
  {
    "path": "packages/victory-chart/.npmignore",
    "chars": 97,
    "preview": "/*\n!/dist\n!/es\n!/lib\n!/src\n!LICENSE.txt\n!CHANGELOG.md\n!README.md\n!package.json\n*.map\n**/*.test.*\n"
  },
  {
    "path": "packages/victory-chart/CHANGELOG.md",
    "chars": 5052,
    "preview": "# victory-chart\n\n## 37.3.6\n\n## 37.3.5\n\n## 37.3.4\n\n## 37.3.3\n\n### Patch Changes\n\n- Remove deprecated babel-plugin-lodash "
  },
  {
    "path": "packages/victory-chart/README.md",
    "chars": 347,
    "preview": "# VictoryChart\n\n`victory-chart@^30.0.0` exports `VictoryChart`\n\nTo view documentation for `VictoryChart` please see http"
  },
  {
    "path": "packages/victory-chart/jest.config.ts",
    "chars": 87,
    "preview": "import rootConfig from \"../../test/jest.config\";\n\nexport default {\n  ...rootConfig,\n};\n"
  },
  {
    "path": "packages/victory-chart/package.json",
    "chars": 7139,
    "preview": "{\n  \"name\": \"victory-chart\",\n  \"version\": \"37.3.6\",\n  \"description\": \"Chart Component for Victory\",\n  \"keywords\": [\n    "
  },
  {
    "path": "packages/victory-chart/src/helper-methods.test.tsx",
    "chars": 1431,
    "preview": "import React from \"react\";\nimport { VictoryAxis } from \"victory-axis\";\n\nimport { getChildComponents } from \"./helper-met"
  },
  {
    "path": "packages/victory-chart/src/helper-methods.tsx",
    "chars": 6657,
    "preview": "import React from \"react\";\nimport { Helpers, Scale, Axis, Wrapper } from \"victory-core\";\nimport defaults from \"lodash/de"
  },
  {
    "path": "packages/victory-chart/src/index.ts",
    "chars": 33,
    "preview": "export * from \"./victory-chart\";\n"
  },
  {
    "path": "packages/victory-chart/src/victory-chart.test.tsx",
    "chars": 3424,
    "preview": "import React from \"react\";\nimport { VictoryAxis } from \"victory-axis\";\nimport { render, screen, fireEvent } from \"@testi"
  },
  {
    "path": "packages/victory-chart/src/victory-chart.tsx",
    "chars": 5766,
    "preview": "import React from \"react\";\nimport defaults from \"lodash/defaults\";\nimport isEmpty from \"lodash/isEmpty\";\n\nimport {\n  Bac"
  },
  {
    "path": "packages/victory-chart/tsconfig.build.json",
    "chars": 105,
    "preview": "{\n  \"extends\": \"../../tsconfig.base.json\",\n  \"exclude\": [\"**/*.test.*\", \"es\", \"lib\", \"jest.config.ts\"]\n}\n"
  },
  {
    "path": "packages/victory-chart/tsconfig.json",
    "chars": 90,
    "preview": "{\n  \"extends\": \"../../tsconfig.base.json\",\n  \"exclude\": [\"es\", \"lib\", \"jest.config.ts\"]\n}\n"
  },
  {
    "path": "packages/victory-core/.npmignore",
    "chars": 97,
    "preview": "/*\n!/dist\n!/es\n!/lib\n!/src\n!LICENSE.txt\n!CHANGELOG.md\n!README.md\n!package.json\n*.map\n**/*.test.*\n"
  },
  {
    "path": "packages/victory-core/CHANGELOG.md",
    "chars": 9599,
    "preview": "# victory-core\n\n## 37.3.6\n\n## 37.3.5\n\n## 37.3.4\n\n## 37.3.3\n\n### Patch Changes\n\n- Upgrade typescript to 5.7.2 ([#2997](ht"
  },
  {
    "path": "packages/victory-core/README.md",
    "chars": 967,
    "preview": "# VictoryCore\n\n`victory-core@30.0.0` exports packages that are used by several Victory components:\n\n- `VictoryAnimation`"
  },
  {
    "path": "packages/victory-core/jest.config.ts",
    "chars": 87,
    "preview": "import rootConfig from \"../../test/jest.config\";\n\nexport default {\n  ...rootConfig,\n};\n"
  },
  {
    "path": "packages/victory-core/package.json",
    "chars": 5741,
    "preview": "{\n  \"name\": \"victory-core\",\n  \"version\": \"37.3.6\",\n  \"description\": \"Victory Core\",\n  \"keywords\": [\n    \"data visualizat"
  },
  {
    "path": "packages/victory-core/src/exports.test.ts",
    "chars": 12201,
    "preview": "import * as VictoryCore from \"./index\";\n\n/* eslint-disable @typescript-eslint/no-unused-vars */\n\n// Import EVERYTHING fr"
  },
  {
    "path": "packages/victory-core/src/index.ts",
    "chars": 885,
    "preview": "export * from \"./types/callbacks\";\nexport * from \"./types/prop-types\";\nexport * from \"./victory-accessible-group/victory"
  },
  {
    "path": "packages/victory-core/src/types/callbacks.ts",
    "chars": 1692,
    "preview": "import { D3Scale, Datum, ID, ScalePropType } from \"./prop-types\";\nimport { BlockProps, OrientationTypes } from \"../victo"
  },
  {
    "path": "packages/victory-core/src/types/prop-types.ts",
    "chars": 5281,
    "preview": "import * as React from \"react\";\nimport {\n  ScaleLinear,\n  ScaleLogarithmic,\n  ScalePower,\n  ScaleTime,\n} from \"victory-v"
  },
  {
    "path": "packages/victory-core/src/victory-accessible-group/victory-accessible-group.test.tsx",
    "chars": 2314,
    "preview": "import { render } from \"@testing-library/react\";\nimport React from \"react\";\n\nimport { SVGWrapper } from \"../../../../tes"
  },
  {
    "path": "packages/victory-core/src/victory-accessible-group/victory-accessible-group.tsx",
    "chars": 918,
    "preview": "import React from \"react\";\n\nexport interface VictoryAccessibleGroupProps {\n  desc?: string;\n  \"aria-describedby\"?: strin"
  },
  {
    "path": "packages/victory-core/src/victory-animation/util.test.tsx",
    "chars": 2785,
    "preview": "import { victoryInterpolator } from \"./util\";\n\ndescribe(\"victoryInterpolator\", () => {\n  it(\"does not attempt to interpo"
  },
  {
    "path": "packages/victory-core/src/victory-animation/util.ts",
    "chars": 7503,
    "preview": "import isPlainObject from \"lodash/isPlainObject\";\nimport orderBy from \"lodash/orderBy\";\n\nimport { interpolate } from \"vi"
  },
  {
    "path": "packages/victory-core/src/victory-animation/victory-animation.tsx",
    "chars": 5368,
    "preview": "import React from \"react\";\nimport * as d3Ease from \"victory-vendor/d3-ease\";\nimport { victoryInterpolator } from \"./util"
  },
  {
    "path": "packages/victory-core/src/victory-clip-container/victory-clip-container.tsx",
    "chars": 6225,
    "preview": "import React from \"react\";\nimport defaults from \"lodash/defaults\";\nimport uniqueId from \"lodash/uniqueId\";\n\nimport * as "
  }
]

// ... and 781 more files (download for full content)

About this extraction

This page contains the full source code of the FormidableLabs/victory GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 981 files (3.2 MB), approximately 890.8k tokens, and a symbol index with 946 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!