Index: node_modules/recharts/es6/zIndex/DefaultZIndexes.js
===================================================================
--- node_modules/recharts/es6/zIndex/DefaultZIndexes.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/recharts/es6/zIndex/DefaultZIndexes.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,73 @@
+/**
+ * A collection of all default zIndex values used by Recharts.
+ *
+ * You can reuse these, or you can define your own.
+ */
+export var DefaultZIndexes = {
+  /**
+   * CartesianGrid and PolarGrid
+   */
+  grid: -100,
+  /**
+   * Background of Bar and RadialBar.
+   * This is not visible by default but can be enabled by setting background={true} on Bar or RadialBar.
+   */
+  barBackground: -50,
+  /*
+   * other chart elements or custom elements without specific zIndex
+   * render in here, at zIndex 0
+   */
+
+  /**
+   * Area, Pie, Radar, and ReferenceArea
+   */
+  area: 100,
+  /**
+   * Cursor is embedded inside Tooltip and controlled by it.
+   * The Tooltip itself has a separate portal and is not included in the zIndex system;
+   * Cursor is the decoration inside the chart area. CursorRectangle is a rectangle box.
+   * It renders below bar so that in a stacked bar chart the cursor rectangle does not hide the other bars.
+   */
+  cursorRectangle: 200,
+  /**
+   * Bar and RadialBar
+   */
+  bar: 300,
+  /**
+   * Line and ReferenceLine, and ErrorBor
+   */
+  line: 400,
+  /**
+   * XAxis and YAxis and PolarAngleAxis and PolarRadiusAxis ticks and lines and children
+   */
+  axis: 500,
+  /**
+   * Scatter and ReferenceDot,
+   * and Dots of Line and Area and Radar if they have dot=true
+   */
+  scatter: 600,
+  /**
+   * Hovering over a Bar or RadialBar renders a highlight rectangle
+   */
+  activeBar: 1000,
+  /**
+   * Cursor is embedded inside Tooltip and controlled by it.
+   * The Tooltip itself has a separate portal and is not included in the zIndex system;
+   * Cursor is the decoration inside the chart area, usually a cross or a box.
+   * CursorLine is a line cursor rendered in Line, Area, Scatter, Radar charts.
+   * It renders above the Line and Scatter so that it is always visible.
+   * It renders below active dot so that the dot is always visible and shows the current point.
+   * We're also assuming that the active dot is small enough that it does not fully cover the cursor line.
+   *
+   * This also applies to the radial cursor in RadialBarChart.
+   */
+  cursorLine: 1100,
+  /**
+   * Hovering over a Point in Line, Area, Scatter, Radar renders a highlight dot
+   */
+  activeDot: 1200,
+  /**
+   * LabelList and Label, including Axis labels
+   */
+  label: 2000
+};
Index: node_modules/recharts/es6/zIndex/ZIndexLayer.js
===================================================================
--- node_modules/recharts/es6/zIndex/ZIndexLayer.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/recharts/es6/zIndex/ZIndexLayer.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,79 @@
+import { useLayoutEffect } from 'react';
+import { createPortal } from 'react-dom';
+import { noop } from '../util/DataUtils';
+import { useAppDispatch, useAppSelector } from '../state/hooks';
+import { selectZIndexPortalElement } from './zIndexSelectors';
+import { registerZIndexPortal, unregisterZIndexPortal } from '../state/zIndexSlice';
+import { useIsInChartContext } from '../context/chartLayoutContext';
+import { useIsPanorama } from '../context/PanoramaContext';
+
+/**
+ * @since 3.4
+ */
+
+/**
+ * A layer that renders its children into a portal corresponding to the given zIndex.
+ * We can't use regular CSS `z-index` because SVG does not support it.
+ * So instead, we create separate DOM nodes for each zIndex layer
+ * and render the children into the corresponding DOM node using React portals.
+ *
+ * This component must be used inside a Chart component.
+ *
+ * @param zIndex numeric zIndex value, higher values are rendered on top of lower values
+ * @param children the content to render inside this zIndex layer
+ *
+ * @since 3.4
+ */
+export function ZIndexLayer(_ref) {
+  var {
+    zIndex,
+    children
+  } = _ref;
+  /*
+   * If we are outside of chart, then we can't rely on the zIndex portal state,
+   * so we just render normally.
+   */
+  var isInChartContext = useIsInChartContext();
+  /*
+   * If zIndex is undefined then we render normally without portals.
+   * Also, if zIndex is 0, we render normally without portals,
+   * because 0 is the default layer that does not need a portal.
+   */
+  var shouldRenderInPortal = isInChartContext && zIndex !== undefined && zIndex !== 0;
+  var isPanorama = useIsPanorama();
+  var dispatch = useAppDispatch();
+  useLayoutEffect(() => {
+    if (!shouldRenderInPortal) {
+      // Nothing to do. We have to call the hook because of the rules of hooks.
+      return noop;
+    }
+    /*
+     * Because zIndexes are dynamic (meaning, we're not working with a predefined set of layers,
+     * but we allow users to define any zIndex at any time), we need to register
+     * the requested zIndex in the global store. This way, the ZIndexPortals component
+     * can render the corresponding portals and only the requested ones.
+     */
+    dispatch(registerZIndexPortal({
+      zIndex
+    }));
+    return () => {
+      dispatch(unregisterZIndexPortal({
+        zIndex
+      }));
+    };
+  }, [dispatch, zIndex, shouldRenderInPortal]);
+  var portalElement = useAppSelector(state => selectZIndexPortalElement(state, zIndex, isPanorama));
+  if (!shouldRenderInPortal) {
+    // If no zIndex is provided or zIndex is 0, render normally without portals
+    return children;
+  }
+  if (!portalElement) {
+    /*
+     * If we don't have a portal element yet, this means that the registration
+     * has not been processed yet by the ZIndexPortals component.
+     * So here we render null and wait for the next render cycle.
+     */
+    return null;
+  }
+  return /*#__PURE__*/createPortal(children, portalElement);
+}
Index: node_modules/recharts/es6/zIndex/ZIndexPortal.js
===================================================================
--- node_modules/recharts/es6/zIndex/ZIndexPortal.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/recharts/es6/zIndex/ZIndexPortal.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,55 @@
+import * as React from 'react';
+import { useLayoutEffect, useRef } from 'react';
+import { useAppDispatch, useAppSelector } from '../state/hooks';
+import { registerZIndexPortalElement, unregisterZIndexPortalElement } from '../state/zIndexSlice';
+import { selectAllRegisteredZIndexes } from './zIndexSelectors';
+function ZIndexSvgPortal(_ref) {
+  var {
+    zIndex,
+    isPanorama
+  } = _ref;
+  var ref = useRef(null);
+  var dispatch = useAppDispatch();
+  useLayoutEffect(() => {
+    if (ref.current) {
+      dispatch(registerZIndexPortalElement({
+        zIndex,
+        element: ref.current,
+        isPanorama
+      }));
+    }
+    return () => {
+      dispatch(unregisterZIndexPortalElement({
+        zIndex,
+        isPanorama
+      }));
+    };
+  }, [dispatch, zIndex, isPanorama]);
+  // these g elements should not be tabbable
+  return /*#__PURE__*/React.createElement("g", {
+    tabIndex: -1,
+    ref: ref
+  });
+}
+export function AllZIndexPortals(_ref2) {
+  var {
+    children,
+    isPanorama
+  } = _ref2;
+  var allRegisteredZIndexes = useAppSelector(selectAllRegisteredZIndexes);
+  if (!allRegisteredZIndexes || allRegisteredZIndexes.length === 0) {
+    return children;
+  }
+  var allNegativeZIndexes = allRegisteredZIndexes.filter(zIndex => zIndex < 0);
+  // We exclude zero on purpose - that is the default layer, and it doesn't need a portal.
+  var allPositiveZIndexes = allRegisteredZIndexes.filter(zIndex => zIndex > 0);
+  return /*#__PURE__*/React.createElement(React.Fragment, null, allNegativeZIndexes.map(zIndex => /*#__PURE__*/React.createElement(ZIndexSvgPortal, {
+    key: zIndex,
+    zIndex: zIndex,
+    isPanorama: isPanorama
+  })), children, allPositiveZIndexes.map(zIndex => /*#__PURE__*/React.createElement(ZIndexSvgPortal, {
+    key: zIndex,
+    zIndex: zIndex,
+    isPanorama: isPanorama
+  })));
+}
Index: node_modules/recharts/es6/zIndex/getZIndexFromUnknown.js
===================================================================
--- node_modules/recharts/es6/zIndex/getZIndexFromUnknown.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/recharts/es6/zIndex/getZIndexFromUnknown.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,7 @@
+import { isWellBehavedNumber } from '../util/isWellBehavedNumber';
+export function getZIndexFromUnknown(input, defaultZIndex) {
+  if (input && typeof input === 'object' && 'zIndex' in input && typeof input.zIndex === 'number' && isWellBehavedNumber(input.zIndex)) {
+    return input.zIndex;
+  }
+  return defaultZIndex;
+}
Index: node_modules/recharts/es6/zIndex/zIndexSelectors.js
===================================================================
--- node_modules/recharts/es6/zIndex/zIndexSelectors.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/recharts/es6/zIndex/zIndexSelectors.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,32 @@
+import { createSelector } from 'reselect';
+import { arrayContentsAreEqualCheck } from '../state/selectors/arrayEqualityCheck';
+import { DefaultZIndexes } from './DefaultZIndexes';
+
+/**
+ * Given a zIndex, returns the corresponding portal element reference.
+ * If no zIndex is provided or if the zIndex is not registered, returns undefined.
+ *
+ * It also returns undefined in case the z-index portal has not been rendered yet.
+ */
+export var selectZIndexPortalElement = createSelector(state => state.zIndex.zIndexMap, (_, zIndex) => zIndex, (_, _zIndex, isPanorama) => isPanorama, (zIndexMap, zIndex, isPanorama) => {
+  if (zIndex == null) {
+    return undefined;
+  }
+  var entry = zIndexMap[zIndex];
+  if (entry == null) {
+    return undefined;
+  }
+  if (isPanorama) {
+    return entry.panoramaElement;
+  }
+  return entry.element;
+});
+export var selectAllRegisteredZIndexes = createSelector(state => state.zIndex.zIndexMap, zIndexMap => {
+  var allNumbers = Object.keys(zIndexMap).map(zIndexStr => parseInt(zIndexStr, 10)).concat(Object.values(DefaultZIndexes));
+  var uniqueNumbers = Array.from(new Set(allNumbers));
+  return uniqueNumbers.sort((a, b) => a - b);
+}, {
+  memoizeOptions: {
+    resultEqualityCheck: arrayContentsAreEqualCheck
+  }
+});
