@redsift/charts 8.0.0 → 8.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/coverage/clover.xml +1070 -0
- package/coverage/coverage-final.json +60 -0
- package/coverage/lcov-report/ChartEmptyState/ChartEmptyState.tsx.html +679 -0
- package/coverage/lcov-report/ChartEmptyState/index.html +146 -0
- package/coverage/lcov-report/ChartEmptyState/index.ts.html +91 -0
- package/coverage/lcov-report/ChartEmptyState/styles.ts.html +184 -0
- package/coverage/lcov-report/HorizontalBarChart/HorizontalBarChart.tsx.html +775 -0
- package/coverage/lcov-report/HorizontalBarChart/HorizontalBarChartAxisBottom.tsx.html +259 -0
- package/coverage/lcov-report/HorizontalBarChart/HorizontalBarChartBar.tsx.html +421 -0
- package/coverage/lcov-report/HorizontalBarChart/index.html +191 -0
- package/coverage/lcov-report/HorizontalBarChart/index.ts.html +94 -0
- package/coverage/lcov-report/HorizontalBarChart/styles.ts.html +451 -0
- package/coverage/lcov-report/HorizontalBarChart/types.ts.html +433 -0
- package/coverage/lcov-report/PieChart/PieChart.tsx.html +1105 -0
- package/coverage/lcov-report/PieChart/PieChartArc.tsx.html +412 -0
- package/coverage/lcov-report/PieChart/index.html +176 -0
- package/coverage/lcov-report/PieChart/index.ts.html +94 -0
- package/coverage/lcov-report/PieChart/styles.ts.html +616 -0
- package/coverage/lcov-report/PieChart/types.ts.html +472 -0
- package/coverage/lcov-report/PieChart.tsx.html +1045 -0
- package/coverage/lcov-report/PieChartArc.tsx.html +271 -0
- package/coverage/lcov-report/StaticPieChart.tsx.html +286 -0
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +87 -0
- package/coverage/lcov-report/components/Arc/Arc.tsx.html +304 -0
- package/coverage/lcov-report/components/Arc/index.html +146 -0
- package/coverage/lcov-report/components/Arc/index.ts.html +94 -0
- package/coverage/lcov-report/components/Arc/styles.ts.html +208 -0
- package/coverage/lcov-report/components/Arcs/Arcs.tsx.html +427 -0
- package/coverage/lcov-report/components/Arcs/index.html +146 -0
- package/coverage/lcov-report/components/Arcs/index.ts.html +94 -0
- package/coverage/lcov-report/components/Arcs/styles.ts.html +106 -0
- package/coverage/lcov-report/components/Axis/Axis.tsx.html +754 -0
- package/coverage/lcov-report/components/Axis/computeTicks.ts.html +481 -0
- package/coverage/lcov-report/components/Axis/index.html +176 -0
- package/coverage/lcov-report/components/Axis/index.ts.html +94 -0
- package/coverage/lcov-report/components/Axis/styles.ts.html +148 -0
- package/coverage/lcov-report/components/Axis/types.ts.html +253 -0
- package/coverage/lcov-report/components/Bar/Bar.tsx.html +421 -0
- package/coverage/lcov-report/components/Bar/index.html +161 -0
- package/coverage/lcov-report/components/Bar/index.ts.html +94 -0
- package/coverage/lcov-report/components/Bar/styles.ts.html +247 -0
- package/coverage/lcov-report/components/Bar/types.ts.html +178 -0
- package/coverage/lcov-report/components/BarChart/BarChart.tsx.html +355 -0
- package/coverage/lcov-report/components/BarChart/EmptyBarChart.tsx.html +259 -0
- package/coverage/lcov-report/components/BarChart/LoadingBarChart.tsx.html +145 -0
- package/coverage/lcov-report/components/BarChart/RenderedBarChart.tsx.html +496 -0
- package/coverage/lcov-report/components/BarChart/index.html +206 -0
- package/coverage/lcov-report/components/BarChart/index.ts.html +94 -0
- package/coverage/lcov-report/components/BarChart/styles.ts.html +190 -0
- package/coverage/lcov-report/components/BarChart/utils.ts.html +145 -0
- package/coverage/lcov-report/components/ChartContainer/ChartContainer.tsx.html +433 -0
- package/coverage/lcov-report/components/ChartContainer/index.html +146 -0
- package/coverage/lcov-report/components/ChartContainer/index.ts.html +94 -0
- package/coverage/lcov-report/components/ChartContainer/intl/index.html +116 -0
- package/coverage/lcov-report/components/ChartContainer/intl/index.ts.html +106 -0
- package/coverage/lcov-report/components/ChartContainer/styles.ts.html +211 -0
- package/coverage/lcov-report/components/DataPoint/DataPoint.tsx.html +442 -0
- package/coverage/lcov-report/components/DataPoint/index.html +146 -0
- package/coverage/lcov-report/components/DataPoint/index.ts.html +94 -0
- package/coverage/lcov-report/components/DataPoint/styles.ts.html +109 -0
- package/coverage/lcov-report/components/Dot/Dot.tsx.html +232 -0
- package/coverage/lcov-report/components/Dot/index.html +146 -0
- package/coverage/lcov-report/components/Dot/index.ts.html +94 -0
- package/coverage/lcov-report/components/Dot/styles.ts.html +184 -0
- package/coverage/lcov-report/components/Legend/Legend.tsx.html +268 -0
- package/coverage/lcov-report/components/Legend/index.html +146 -0
- package/coverage/lcov-report/components/Legend/index.ts.html +94 -0
- package/coverage/lcov-report/components/Legend/styles.ts.html +130 -0
- package/coverage/lcov-report/components/LegendItem/LegendItem.tsx.html +403 -0
- package/coverage/lcov-report/components/LegendItem/index.html +146 -0
- package/coverage/lcov-report/components/LegendItem/index.ts.html +94 -0
- package/coverage/lcov-report/components/LegendItem/styles.ts.html +205 -0
- package/coverage/lcov-report/components/PieChart/EmptyPieChart.tsx.html +343 -0
- package/coverage/lcov-report/components/PieChart/LoadingPieChart.tsx.html +145 -0
- package/coverage/lcov-report/components/PieChart/PieChart.tsx.html +388 -0
- package/coverage/lcov-report/components/PieChart/RenderedPieChart.tsx.html +571 -0
- package/coverage/lcov-report/components/PieChart/index.html +221 -0
- package/coverage/lcov-report/components/PieChart/index.ts.html +94 -0
- package/coverage/lcov-report/components/PieChart/styles.ts.html +376 -0
- package/coverage/lcov-report/components/PieChart/types.ts.html +352 -0
- package/coverage/lcov-report/components/PieChart/utils.ts.html +199 -0
- package/coverage/lcov-report/components/ScatterPlot/EmptyScatterPlot.tsx.html +295 -0
- package/coverage/lcov-report/components/ScatterPlot/LoadingScatterPlot.tsx.html +145 -0
- package/coverage/lcov-report/components/ScatterPlot/RenderedScatterPlot.tsx.html +910 -0
- package/coverage/lcov-report/components/ScatterPlot/ScatterPlot.tsx.html +379 -0
- package/coverage/lcov-report/components/ScatterPlot/index.html +221 -0
- package/coverage/lcov-report/components/ScatterPlot/index.ts.html +94 -0
- package/coverage/lcov-report/components/ScatterPlot/styles.ts.html +196 -0
- package/coverage/lcov-report/components/ScatterPlot/types.ts.html +376 -0
- package/coverage/lcov-report/components/ScatterPlot/utils.ts.html +388 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/hooks/index.html +176 -0
- package/coverage/lcov-report/hooks/index.ts.html +97 -0
- package/coverage/lcov-report/hooks/useBrush.tsx.html +430 -0
- package/coverage/lcov-report/hooks/useColor.tsx.html +163 -0
- package/coverage/lcov-report/hooks/useFormatCategoricalData.tsx.html +289 -0
- package/coverage/lcov-report/hooks/useZoom.tsx.html +235 -0
- package/coverage/lcov-report/index.html +311 -0
- package/coverage/lcov-report/index.ts.html +94 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +196 -0
- package/coverage/lcov-report/styles.ts.html +631 -0
- package/coverage/lcov-report/types.ts.html +457 -0
- package/coverage/lcov.info +2272 -0
- package/dist/index.js +6326 -0
- package/dist/index.js.map +1 -0
- package/dist/package.json +98 -0
- package/index.ts +1 -0
- package/jest.config.js +3 -0
- package/package.json +2 -3
- package/rollup.config.js +13 -0
- package/src/components/Arc/Arc.test.tsx +92 -0
- package/src/components/Arc/Arc.tsx +73 -0
- package/src/components/Arc/index.ts +3 -0
- package/src/components/Arc/styles.ts +41 -0
- package/src/components/Arc/types.ts +18 -0
- package/src/components/Arcs/Arcs.stories.tsx +177 -0
- package/src/components/Arcs/Arcs.tsx +114 -0
- package/src/components/Arcs/index.ts +3 -0
- package/src/components/Arcs/styles.ts +7 -0
- package/src/components/Arcs/types.ts +26 -0
- package/src/components/Axis/Axis.stories.tsx +297 -0
- package/src/components/Axis/Axis.tsx +223 -0
- package/src/components/Axis/computeTicks.ts +132 -0
- package/src/components/Axis/index.ts +3 -0
- package/src/components/Axis/styles.ts +21 -0
- package/src/components/Axis/types.ts +56 -0
- package/src/components/Bar/Bar.stories.tsx +152 -0
- package/src/components/Bar/Bar.test.tsx +158 -0
- package/src/components/Bar/Bar.tsx +112 -0
- package/src/components/Bar/index.ts +3 -0
- package/src/components/Bar/styles.ts +54 -0
- package/src/components/Bar/types.ts +31 -0
- package/src/components/BarChart/BarChart.stories.tsx +80 -0
- package/src/components/BarChart/BarChart.test.tsx +189 -0
- package/src/components/BarChart/BarChart.tsx +90 -0
- package/src/components/BarChart/EmptyBarChart.tsx +58 -0
- package/src/components/BarChart/LoadingBarChart.tsx +20 -0
- package/src/components/BarChart/RenderedBarChart.tsx +137 -0
- package/src/components/BarChart/__snapshots__/BarChart.test.tsx.snap +6932 -0
- package/src/components/BarChart/index.ts +3 -0
- package/src/components/BarChart/styles.ts +35 -0
- package/src/components/BarChart/types.ts +58 -0
- package/src/components/BarChart/utils.ts +20 -0
- package/src/components/ChartContainer/ChartContainer.stories.tsx +81 -0
- package/src/components/ChartContainer/ChartContainer.test.tsx +75 -0
- package/src/components/ChartContainer/ChartContainer.tsx +116 -0
- package/src/components/ChartContainer/index.ts +3 -0
- package/src/components/ChartContainer/intl/en-US.json +3 -0
- package/src/components/ChartContainer/intl/fr-FR.json +3 -0
- package/src/components/ChartContainer/intl/index.ts +7 -0
- package/src/components/ChartContainer/styles.ts +42 -0
- package/src/components/ChartContainer/types.ts +24 -0
- package/src/components/DataPoint/DataPoint.tsx +119 -0
- package/src/components/DataPoint/index.ts +3 -0
- package/src/components/DataPoint/styles.ts +8 -0
- package/src/components/DataPoint/types.ts +33 -0
- package/src/components/Dot/Dot.stories.tsx +157 -0
- package/src/components/Dot/Dot.test.tsx +136 -0
- package/src/components/Dot/Dot.tsx +49 -0
- package/src/components/Dot/index.ts +3 -0
- package/src/components/Dot/styles.ts +33 -0
- package/src/components/Dot/types.ts +16 -0
- package/src/components/Legend/Legend.stories.tsx +108 -0
- package/src/components/Legend/Legend.tsx +61 -0
- package/src/components/Legend/index.ts +3 -0
- package/src/components/Legend/styles.ts +15 -0
- package/src/components/Legend/types.ts +27 -0
- package/src/components/LegendItem/LegendItem.test.tsx +69 -0
- package/src/components/LegendItem/LegendItem.tsx +106 -0
- package/src/components/LegendItem/index.ts +3 -0
- package/src/components/LegendItem/styles.ts +40 -0
- package/src/components/LegendItem/types.ts +30 -0
- package/src/components/PieChart/EmptyPieChart.tsx +86 -0
- package/src/components/PieChart/LoadingPieChart.tsx +20 -0
- package/src/components/PieChart/PieChart.stories.tsx +91 -0
- package/src/components/PieChart/PieChart.test.tsx +201 -0
- package/src/components/PieChart/PieChart.tsx +101 -0
- package/src/components/PieChart/RenderedPieChart.tsx +162 -0
- package/src/components/PieChart/__snapshots__/PieChart.stories.storyshot +7843 -0
- package/src/components/PieChart/__snapshots__/PieChart.test.tsx.snap +20540 -0
- package/src/components/PieChart/index.ts +3 -0
- package/src/components/PieChart/styles.ts +97 -0
- package/src/components/PieChart/types.ts +89 -0
- package/src/components/PieChart/utils.ts +38 -0
- package/src/components/ScatterPlot/EmptyScatterPlot.tsx +70 -0
- package/src/components/ScatterPlot/LoadingScatterPlot.tsx +20 -0
- package/src/components/ScatterPlot/RenderedScatterPlot.tsx +275 -0
- package/src/components/ScatterPlot/ScatterPlot.stories.tsx +95 -0
- package/src/components/ScatterPlot/ScatterPlot.test.tsx +44 -0
- package/src/components/ScatterPlot/ScatterPlot.tsx +98 -0
- package/src/components/ScatterPlot/__snapshots__/ScatterPlot.test.tsx.snap +88352 -0
- package/src/components/ScatterPlot/index.ts +3 -0
- package/src/components/ScatterPlot/styles.ts +37 -0
- package/src/components/ScatterPlot/types.ts +97 -0
- package/src/components/ScatterPlot/utils.ts +101 -0
- package/src/config.ts +10 -0
- package/src/hooks/index.ts +4 -0
- package/src/hooks/useBrush.tsx +115 -0
- package/src/hooks/useColor.tsx +26 -0
- package/src/hooks/useFormatCategoricalData.tsx +68 -0
- package/src/hooks/useZoom.tsx +50 -0
- package/src/index.ts +15 -0
- package/src/scheme.ts +221 -0
- package/src/types/data.ts +52 -0
- package/src/types/index.ts +5 -0
- package/src/types/legend.ts +19 -0
- package/src/types/scale.ts +79 -0
- package/src/types/size.ts +17 -0
- package/src/types/theme.ts +27 -0
- package/tsconfig.json +3 -0
- package/index.js +0 -2606
- package/index.js.map +0 -1
- /package/{CONTRIBUTING.md → dist/CONTRIBUTING.md} +0 -0
- /package/{index.d.ts → dist/index.d.ts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/hooks/useBrush.tsx","../src/scheme.ts","../src/hooks/useColor.tsx","../src/hooks/useFormatCategoricalData.tsx","../src/hooks/useZoom.tsx","../src/types/legend.ts","../src/types/size.ts","../src/types/theme.ts","../../../node_modules/@react-spring/shared/dist/react-spring_shared.modern.mjs","../../../node_modules/@react-spring/animated/dist/react-spring_animated.modern.mjs","../../../node_modules/@react-spring/core/dist/react-spring_core.modern.mjs","../../../node_modules/@react-spring/web/dist/react-spring_web.modern.mjs","../src/components/DataPoint/styles.ts","../src/components/DataPoint/DataPoint.tsx","../src/components/Arc/styles.ts","../src/config.ts","../src/components/Arc/Arc.tsx","../src/components/Arcs/styles.ts","../src/components/Arcs/Arcs.tsx","../src/components/Axis/types.ts","../src/components/Axis/styles.ts","../src/components/Axis/computeTicks.ts","../src/components/Axis/Axis.tsx","../src/components/Bar/types.ts","../src/components/Bar/styles.ts","../src/components/Bar/Bar.tsx","../src/components/ChartContainer/intl/index.ts","../src/components/ChartContainer/styles.ts","../src/components/ChartContainer/ChartContainer.tsx","../src/components/BarChart/styles.ts","../src/components/BarChart/utils.ts","../src/components/BarChart/EmptyBarChart.tsx","../src/components/BarChart/LoadingBarChart.tsx","../src/components/BarChart/RenderedBarChart.tsx","../src/components/BarChart/BarChart.tsx","../src/components/Dot/styles.ts","../src/components/Dot/Dot.tsx","../src/components/Legend/styles.ts","../src/components/LegendItem/styles.ts","../src/components/LegendItem/LegendItem.tsx","../src/components/Legend/Legend.tsx","../src/components/PieChart/types.ts","../src/components/PieChart/styles.ts","../src/components/PieChart/LoadingPieChart.tsx","../src/components/PieChart/utils.ts","../src/components/PieChart/EmptyPieChart.tsx","../src/components/PieChart/RenderedPieChart.tsx","../src/components/PieChart/PieChart.tsx","../src/components/ScatterPlot/types.ts","../src/components/ScatterPlot/styles.ts","../src/components/ScatterPlot/LoadingScatterPlot.tsx","../src/components/ScatterPlot/utils.ts","../src/components/ScatterPlot/EmptyScatterPlot.tsx","../src/components/ScatterPlot/RenderedScatterPlot.tsx","../src/components/ScatterPlot/ScatterPlot.tsx"],"sourcesContent":["import { MutableRefObject, useEffect, useRef } from 'react';\nimport {\n BrushBehavior as d3BrushBehavior,\n brush as d3brush,\n ScaleLinear as d3ScaleLinear,\n select as d3select,\n} from 'd3';\n\nexport interface UseBrushProps {\n brushRef: MutableRefObject<d3BrushBehavior<unknown> | undefined>;\n svgRef: MutableRefObject<SVGSVGElement | SVGGElement | undefined>;\n extent?: [[number, number], [number, number]];\n scaleX: d3ScaleLinear<number, number>;\n scaleY: d3ScaleLinear<number, number>;\n isBrushable?: boolean;\n isGridded?: boolean;\n onBrush?: (\n selection: [[number, number], [number, number]] | null,\n scaleX: d3ScaleLinear<number, number>,\n scaleY: d3ScaleLinear<number, number>\n ) => void;\n onBrushEnd?: (\n selection: [[number, number], [number, number]] | null,\n scaleX: d3ScaleLinear<number, number>,\n scaleY: d3ScaleLinear<number, number>\n ) => void;\n}\n\nconst getRoundedIntermediaryPoint = (\n selection: [[number, number], [number, number]],\n scaleX: d3ScaleLinear<number, number>,\n scaleY: d3ScaleLinear<number, number>\n) => {\n if (!selection) {\n return null;\n }\n\n const xTicks = scaleX.ticks(20);\n const xDelta = xTicks[1] - xTicks[0];\n const yTicks = scaleY.ticks(20);\n const yDelta = yTicks[1] - yTicks[0];\n\n return [\n [\n scaleX(\n Math.round(scaleX.invert(selection[0][0]) / xDelta) * xDelta -\n xDelta / 2\n ),\n scaleY(\n Math.round(scaleY.invert(selection[0][1]) / yDelta) * yDelta -\n yDelta / 2\n ),\n ],\n [\n scaleX(\n Math.round(scaleX.invert(selection[1][0]) / xDelta) * xDelta -\n xDelta / 2\n ),\n\n scaleY(\n Math.round(scaleY.invert(selection[1][1]) / yDelta) * yDelta -\n yDelta / 2\n ),\n ],\n ] as [[number, number], [number, number]];\n};\n\nexport const useBrush = ({\n brushRef: propsBrushRef,\n svgRef,\n extent,\n scaleX,\n scaleY,\n isBrushable,\n isGridded,\n onBrush,\n onBrushEnd,\n}: UseBrushProps) => {\n const brushRef = propsBrushRef || useRef<d3BrushBehavior<unknown>>();\n\n useEffect(() => {\n if (svgRef.current && isBrushable) {\n brushRef.current = d3brush()\n .extent(extent!)\n .keyModifiers(false)\n .filter((event) => event.shiftKey)\n .on('brush', (event) => {\n if (!event.sourceEvent || !brushRef.current || !svgRef.current)\n return;\n\n if (isGridded) {\n const selection = getRoundedIntermediaryPoint(\n event.selection,\n scaleX,\n scaleY\n );\n d3select(svgRef.current).call(\n brushRef.current.move as any,\n selection\n );\n onBrush?.(selection, scaleX, scaleY);\n } else {\n onBrush?.(event.selection, scaleX, scaleY);\n }\n })\n .on('end', (event) => {\n if (!event.sourceEvent || !brushRef.current || !svgRef.current)\n return;\n\n onBrushEnd?.(event.selection, scaleX, scaleY);\n });\n d3select(svgRef.current).call(brushRef.current as any);\n }\n });\n};\n","import {\n scaleOrdinal as d3scaleOrdinal,\n ScaleOrdinal as d3ScaleOrdinal,\n} from 'd3';\nimport { ChartTheme } from './types';\n\nimport {\n RedsiftDataVizColorAquaDark,\n RedsiftDataVizColorAquaDarker,\n RedsiftDataVizColorAquaDarkerer,\n RedsiftDataVizColorAquaDefault,\n RedsiftDataVizColorAquaLight,\n RedsiftDataVizColorAquaLighter,\n RedsiftDataVizColorAquaLighterer,\n RedsiftDataVizColorBlueDark,\n RedsiftDataVizColorBlueDarker,\n RedsiftDataVizColorBlueDarkerer,\n RedsiftDataVizColorBlueDefault,\n RedsiftDataVizColorBlueLight,\n RedsiftDataVizColorBlueLighter,\n RedsiftDataVizColorBlueLighterer,\n RedsiftDataVizColorBrownDark,\n RedsiftDataVizColorBrownDarker,\n RedsiftDataVizColorBrownDarkerer,\n RedsiftDataVizColorBrownDefault,\n RedsiftDataVizColorBrownLight,\n RedsiftDataVizColorBrownLighter,\n RedsiftDataVizColorBrownLighterer,\n RedsiftDataVizColorGreenDark,\n RedsiftDataVizColorGreenDarker,\n RedsiftDataVizColorGreenDarkerer,\n RedsiftDataVizColorGreenDefault,\n RedsiftDataVizColorGreenLight,\n RedsiftDataVizColorGreenLighter,\n RedsiftDataVizColorGreenLighterer,\n RedsiftDataVizColorGreyDark,\n RedsiftDataVizColorGreyDarker,\n RedsiftDataVizColorGreyDarkerer,\n RedsiftDataVizColorGreyDefault,\n RedsiftDataVizColorGreyLight,\n RedsiftDataVizColorGreyLighter,\n RedsiftDataVizColorGreyLighterer,\n RedsiftDataVizColorOrangeDark,\n RedsiftDataVizColorOrangeDarker,\n RedsiftDataVizColorOrangeDarkerer,\n RedsiftDataVizColorOrangeDefault,\n RedsiftDataVizColorOrangeLight,\n RedsiftDataVizColorOrangeLighter,\n RedsiftDataVizColorOrangeLighterer,\n RedsiftDataVizColorPinkDark,\n RedsiftDataVizColorPinkDarker,\n RedsiftDataVizColorPinkDarkerer,\n RedsiftDataVizColorPinkDefault,\n RedsiftDataVizColorPinkLight,\n RedsiftDataVizColorPinkLighter,\n RedsiftDataVizColorPinkLighterer,\n RedsiftDataVizColorPurpleDark,\n RedsiftDataVizColorPurpleDarker,\n RedsiftDataVizColorPurpleDarkerer,\n RedsiftDataVizColorPurpleDefault,\n RedsiftDataVizColorPurpleLight,\n RedsiftDataVizColorPurpleLighter,\n RedsiftDataVizColorPurpleLighterer,\n RedsiftDataVizColorRedDark,\n RedsiftDataVizColorRedDarker,\n RedsiftDataVizColorRedDarkerer,\n RedsiftDataVizColorRedDefault,\n RedsiftDataVizColorRedLight,\n RedsiftDataVizColorRedLighter,\n RedsiftDataVizColorRedLighterer,\n RedsiftDataVizColorYellowDark,\n RedsiftDataVizColorYellowDarker,\n RedsiftDataVizColorYellowDarkerer,\n RedsiftDataVizColorYellowDefault,\n RedsiftDataVizColorYellowLight,\n RedsiftDataVizColorYellowLighter,\n RedsiftDataVizColorYellowLighterer,\n} from '@redsift/design-system';\n\nexport const monochrome = RedsiftDataVizColorBlueDefault;\nexport const empty = RedsiftDataVizColorGreyDark;\n\nexport const scheme = {\n default: [\n RedsiftDataVizColorGreenDefault,\n RedsiftDataVizColorPinkDefault,\n RedsiftDataVizColorAquaDefault,\n RedsiftDataVizColorBrownDefault,\n RedsiftDataVizColorRedDefault,\n RedsiftDataVizColorYellowDefault,\n RedsiftDataVizColorPurpleDefault,\n RedsiftDataVizColorOrangeDefault,\n RedsiftDataVizColorBlueDefault,\n RedsiftDataVizColorGreyDefault,\n ],\n dark: [\n RedsiftDataVizColorGreenDark,\n RedsiftDataVizColorPinkDark,\n RedsiftDataVizColorAquaDark,\n RedsiftDataVizColorBrownDark,\n RedsiftDataVizColorRedDark,\n RedsiftDataVizColorYellowDark,\n RedsiftDataVizColorPurpleDark,\n RedsiftDataVizColorOrangeDark,\n RedsiftDataVizColorBlueDark,\n RedsiftDataVizColorGreyDark,\n ],\n darker: [\n RedsiftDataVizColorGreenDarker,\n RedsiftDataVizColorPinkDarker,\n RedsiftDataVizColorAquaDarker,\n RedsiftDataVizColorBrownDarker,\n RedsiftDataVizColorRedDarker,\n RedsiftDataVizColorYellowDarker,\n RedsiftDataVizColorPurpleDarker,\n RedsiftDataVizColorOrangeDarker,\n RedsiftDataVizColorBlueDarker,\n RedsiftDataVizColorGreyDarker,\n ],\n darkerer: [\n RedsiftDataVizColorGreenDarkerer,\n RedsiftDataVizColorPinkDarkerer,\n RedsiftDataVizColorAquaDarkerer,\n RedsiftDataVizColorBrownDarkerer,\n RedsiftDataVizColorRedDarkerer,\n RedsiftDataVizColorYellowDarkerer,\n RedsiftDataVizColorPurpleDarkerer,\n RedsiftDataVizColorOrangeDarkerer,\n RedsiftDataVizColorBlueDarkerer,\n RedsiftDataVizColorGreyDarkerer,\n ],\n light: [\n RedsiftDataVizColorGreenLight,\n RedsiftDataVizColorPinkLight,\n RedsiftDataVizColorAquaLight,\n RedsiftDataVizColorBrownLight,\n RedsiftDataVizColorRedLight,\n RedsiftDataVizColorYellowLight,\n RedsiftDataVizColorPurpleLight,\n RedsiftDataVizColorOrangeLight,\n RedsiftDataVizColorBlueLight,\n RedsiftDataVizColorGreyLight,\n ],\n lighter: [\n RedsiftDataVizColorGreenLighter,\n RedsiftDataVizColorPinkLighter,\n RedsiftDataVizColorAquaLighter,\n RedsiftDataVizColorBrownLighter,\n RedsiftDataVizColorRedLighter,\n RedsiftDataVizColorYellowLighter,\n RedsiftDataVizColorPurpleLighter,\n RedsiftDataVizColorOrangeLighter,\n RedsiftDataVizColorBlueLighter,\n RedsiftDataVizColorGreyLighter,\n ],\n lighterer: [\n RedsiftDataVizColorGreenLighterer,\n RedsiftDataVizColorPinkLighterer,\n RedsiftDataVizColorAquaLighterer,\n RedsiftDataVizColorBrownLighterer,\n RedsiftDataVizColorRedLighterer,\n RedsiftDataVizColorYellowLighterer,\n RedsiftDataVizColorPurpleLighterer,\n RedsiftDataVizColorOrangeLighterer,\n RedsiftDataVizColorBlueLighterer,\n RedsiftDataVizColorGreyLighterer,\n ],\n monochrome: [monochrome],\n empty: [empty],\n};\n\nexport const successDangerScheme = {\n success: RedsiftDataVizColorGreenDefault,\n warning: RedsiftDataVizColorOrangeDefault,\n danger: RedsiftDataVizColorRedDefault,\n neutral: RedsiftDataVizColorGreyDefault,\n};\n\nexport const getColorScale = (\n theme: ChartTheme,\n domain?: string[],\n isEmpty?: boolean\n): d3ScaleOrdinal<string, string> => {\n let d3colors = d3scaleOrdinal(scheme.default);\n if (isEmpty) {\n d3colors = d3scaleOrdinal(scheme.empty);\n } else if (typeof theme === 'string') {\n d3colors = d3scaleOrdinal()\n .domain(domain!)\n .range(scheme[theme])\n .unknown(monochrome) as d3ScaleOrdinal<string, string>;\n } else if (typeof theme === 'object') {\n if (\n Object.keys(theme).includes('success') &&\n Object.keys(theme).includes('danger') &&\n Object.keys(theme).includes('warning')\n ) {\n d3colors = d3scaleOrdinal()\n .domain([\n theme.success,\n theme.warning,\n theme.danger,\n ...(theme.neutral ? [theme.neutral] : []),\n ])\n .range([\n successDangerScheme.success,\n successDangerScheme.warning,\n successDangerScheme.danger,\n ...(theme.neutral ? [successDangerScheme.neutral] : []),\n ])\n .unknown(monochrome) as d3ScaleOrdinal<string, string>;\n } else {\n d3colors = d3scaleOrdinal()\n .domain(Object.keys(theme))\n .range(Object.values(theme))\n .unknown(monochrome) as d3ScaleOrdinal<string, string>;\n }\n }\n\n return d3colors;\n};\n","import { useMemo } from 'react';\nimport { ScaleOrdinal as d3ScaleOrdinal } from 'd3';\nimport { getColorScale } from '../scheme';\nimport { ChartTheme, JSONArray } from '../types';\n\nexport interface UseColorProps {\n /** Dataset to use to generate the chart. */\n data: JSONArray;\n /** Theme. */\n theme: ChartTheme;\n /** Name of the field that will be used to categorize the data. */\n category: string;\n}\n\nexport const useColor = ({ data, theme, category }: UseColorProps) => {\n const colorScale = useMemo<d3ScaleOrdinal<string, string>>(\n () =>\n getColorScale(\n theme,\n data.map((d) => d[category] as string)\n ),\n [theme]\n );\n\n return colorScale;\n};\n","import { useMemo } from 'react';\nimport { CategoryData, ChartTheme } from '../types';\nimport { useColor } from './useColor';\n\nexport interface UseFormatCategoricalDataProps {\n /** Dataset to use to generate the chart, should be a list of objects containing a key and a value. */\n data: CategoryData;\n /** Theme. */\n theme: ChartTheme;\n /** Number of categories to use, the rest being put into a new category called \"Others\". */\n caping?: number;\n /** Whether a category should be displayed for categories that has been removed by the caping option. Optionaly, this prop can be used to change the label of this category. */\n others?: boolean | string;\n}\n\nexport const useFormatCategoricalData = ({\n data,\n caping,\n others,\n theme,\n}: UseFormatCategoricalDataProps) => {\n const computedData = useMemo(() => {\n let computedData;\n\n if (data === undefined || data === null) {\n return undefined;\n }\n\n computedData = [...data!].sort((a, b) =>\n a.value === b.value\n ? a.key > b.key\n ? 1\n : -1\n : a.value < b.value\n ? 1\n : -1\n );\n\n if (caping) {\n if (typeof others === 'boolean' && !others) {\n computedData = computedData.slice(0, caping);\n } else {\n computedData = computedData.reduce<CategoryData>((acc, curr, index) => {\n if (index < caping) {\n acc[index] = curr;\n } else if (index === caping) {\n acc[index] = {\n key: typeof others === 'string' ? others : 'Others',\n value: curr.value,\n };\n } else {\n acc[caping] = {\n ...acc[caping],\n value: acc[caping].value + curr.value,\n };\n }\n return acc;\n }, []);\n }\n }\n\n return computedData;\n }, [data, caping]);\n\n const colorScale = useColor({ data: computedData!, theme, category: 'key' });\n\n return { data: computedData as CategoryData, colorScale };\n};\n","import { MutableRefObject, useEffect, useRef, useState } from 'react';\nimport {\n zoom as d3zoom,\n interpolateRound as d3interpolateRound,\n ScaleLinear as d3ScaleLinear,\n select as d3select,\n} from 'd3';\n\nexport interface UseZoomProps {\n svgRef: MutableRefObject<SVGSVGElement | undefined>;\n scaleX: d3ScaleLinear<number, number>;\n scaleY: d3ScaleLinear<number, number>;\n defaultTransform?: { k: number; x: number; y: number };\n size?: any;\n onZoom?: () => void;\n}\n\nexport const useZoom = ({\n svgRef,\n scaleX,\n scaleY,\n defaultTransform = { k: 1, x: 0, y: 0 },\n size,\n onZoom,\n}: UseZoomProps) => {\n const zx = useRef<d3ScaleLinear<number, number>>(scaleX);\n const zy = useRef<d3ScaleLinear<number, number>>(scaleY);\n const [transform, setTransform] = useState(defaultTransform);\n\n useEffect(() => {\n if (svgRef.current) {\n const zoom = d3zoom()\n .filter((event) => !event.shiftKey)\n .scaleExtent([1 / 2 ** 3, 2 ** 3])\n .on('zoom', (event) => {\n onZoom?.();\n zx.current = event.transform\n .rescaleX(scaleX)\n .interpolate(d3interpolateRound);\n zy.current = event.transform\n .rescaleY(scaleY)\n .interpolate(d3interpolateRound);\n setTransform(event.transform);\n });\n d3select(svgRef.current).call(zoom as any);\n }\n }, [svgRef.current, size]);\n\n return { transform, scaleX: zx.current, scaleY: zy.current };\n};\n","import { ValueOf } from '@redsift/design-system';\n\n/** TOOLTIP */\n\nexport const TooltipVariant = {\n none: 'none',\n label: 'label',\n value: 'value',\n percent: 'percent',\n};\nexport type TooltipVariant = ValueOf<typeof TooltipVariant>;\n\n/** LEGEND */\nexport const LabelVariant = {\n label: 'label',\n value: 'value',\n percent: 'percent',\n} as const;\nexport type LabelVariant = ValueOf<typeof LabelVariant>;\n","import { ValueOf } from '@redsift/design-system';\n\nexport type ChartDimensions = {\n width: number;\n height: number;\n marginTop?: number;\n marginRight?: number;\n marginBottom?: number;\n marginLeft?: number;\n};\n\nexport const ChartSize = {\n small: 'small',\n medium: 'medium',\n large: 'large',\n} as const;\nexport type ChartSize = ValueOf<typeof ChartSize>;\n","import { ValueOf } from '@redsift/design-system';\n\nexport const ColorTheme = {\n default: 'default',\n dark: 'dark',\n darker: 'darker',\n darkerer: 'darkerer',\n light: 'light',\n lighter: 'lighter',\n lighterer: 'lighterer',\n monochrome: 'monochrome',\n} as const;\nexport type ColorTheme = ValueOf<typeof ColorTheme>;\n\nexport type SuccessDangerColorTheme = {\n success: string;\n warning: string;\n danger: string;\n neutral?: string;\n};\n\nexport type CustomColorTheme = Record<string, string>;\n\nexport type ChartTheme =\n | ColorTheme\n | SuccessDangerColorTheme\n | CustomColorTheme;\n","var __defProp = Object.defineProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\n\n// src/globals.ts\nvar globals_exports = {};\n__export(globals_exports, {\n assign: () => assign,\n colors: () => colors,\n createStringInterpolator: () => createStringInterpolator,\n skipAnimation: () => skipAnimation,\n to: () => to,\n willAdvance: () => willAdvance\n});\n\n// ../rafz/dist/react-spring_rafz.modern.mjs\nvar updateQueue = makeQueue();\nvar raf = (fn) => schedule(fn, updateQueue);\nvar writeQueue = makeQueue();\nraf.write = (fn) => schedule(fn, writeQueue);\nvar onStartQueue = makeQueue();\nraf.onStart = (fn) => schedule(fn, onStartQueue);\nvar onFrameQueue = makeQueue();\nraf.onFrame = (fn) => schedule(fn, onFrameQueue);\nvar onFinishQueue = makeQueue();\nraf.onFinish = (fn) => schedule(fn, onFinishQueue);\nvar timeouts = [];\nraf.setTimeout = (handler, ms) => {\n const time = raf.now() + ms;\n const cancel = () => {\n const i = timeouts.findIndex((t) => t.cancel == cancel);\n if (~i)\n timeouts.splice(i, 1);\n pendingCount -= ~i ? 1 : 0;\n };\n const timeout = { time, handler, cancel };\n timeouts.splice(findTimeout(time), 0, timeout);\n pendingCount += 1;\n start();\n return timeout;\n};\nvar findTimeout = (time) => ~(~timeouts.findIndex((t) => t.time > time) || ~timeouts.length);\nraf.cancel = (fn) => {\n onStartQueue.delete(fn);\n onFrameQueue.delete(fn);\n onFinishQueue.delete(fn);\n updateQueue.delete(fn);\n writeQueue.delete(fn);\n};\nraf.sync = (fn) => {\n sync = true;\n raf.batchedUpdates(fn);\n sync = false;\n};\nraf.throttle = (fn) => {\n let lastArgs;\n function queuedFn() {\n try {\n fn(...lastArgs);\n } finally {\n lastArgs = null;\n }\n }\n function throttled(...args) {\n lastArgs = args;\n raf.onStart(queuedFn);\n }\n throttled.handler = fn;\n throttled.cancel = () => {\n onStartQueue.delete(queuedFn);\n lastArgs = null;\n };\n return throttled;\n};\nvar nativeRaf = typeof window != \"undefined\" ? window.requestAnimationFrame : (\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n () => {\n }\n);\nraf.use = (impl) => nativeRaf = impl;\nraf.now = typeof performance != \"undefined\" ? () => performance.now() : Date.now;\nraf.batchedUpdates = (fn) => fn();\nraf.catch = console.error;\nraf.frameLoop = \"always\";\nraf.advance = () => {\n if (raf.frameLoop !== \"demand\") {\n console.warn(\n \"Cannot call the manual advancement of rafz whilst frameLoop is not set as demand\"\n );\n } else {\n update();\n }\n};\nvar ts = -1;\nvar pendingCount = 0;\nvar sync = false;\nfunction schedule(fn, queue) {\n if (sync) {\n queue.delete(fn);\n fn(0);\n } else {\n queue.add(fn);\n start();\n }\n}\nfunction start() {\n if (ts < 0) {\n ts = 0;\n if (raf.frameLoop !== \"demand\") {\n nativeRaf(loop);\n }\n }\n}\nfunction stop() {\n ts = -1;\n}\nfunction loop() {\n if (~ts) {\n nativeRaf(loop);\n raf.batchedUpdates(update);\n }\n}\nfunction update() {\n const prevTs = ts;\n ts = raf.now();\n const count = findTimeout(ts);\n if (count) {\n eachSafely(timeouts.splice(0, count), (t) => t.handler());\n pendingCount -= count;\n }\n if (!pendingCount) {\n stop();\n return;\n }\n onStartQueue.flush();\n updateQueue.flush(prevTs ? Math.min(64, ts - prevTs) : 16.667);\n onFrameQueue.flush();\n writeQueue.flush();\n onFinishQueue.flush();\n}\nfunction makeQueue() {\n let next = /* @__PURE__ */ new Set();\n let current = next;\n return {\n add(fn) {\n pendingCount += current == next && !next.has(fn) ? 1 : 0;\n next.add(fn);\n },\n delete(fn) {\n pendingCount -= current == next && next.has(fn) ? 1 : 0;\n return next.delete(fn);\n },\n flush(arg) {\n if (current.size) {\n next = /* @__PURE__ */ new Set();\n pendingCount -= current.size;\n eachSafely(current, (fn) => fn(arg) && next.add(fn));\n pendingCount += next.size;\n current = next;\n }\n }\n };\n}\nfunction eachSafely(values, each2) {\n values.forEach((value) => {\n try {\n each2(value);\n } catch (e) {\n raf.catch(e);\n }\n });\n}\n\n// src/helpers.ts\nfunction noop() {\n}\nvar defineHidden = (obj, key, value) => Object.defineProperty(obj, key, { value, writable: true, configurable: true });\nvar is = {\n arr: Array.isArray,\n obj: (a) => !!a && a.constructor.name === \"Object\",\n fun: (a) => typeof a === \"function\",\n str: (a) => typeof a === \"string\",\n num: (a) => typeof a === \"number\",\n und: (a) => a === void 0\n};\nfunction isEqual(a, b) {\n if (is.arr(a)) {\n if (!is.arr(b) || a.length !== b.length)\n return false;\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i])\n return false;\n }\n return true;\n }\n return a === b;\n}\nvar each = (obj, fn) => obj.forEach(fn);\nfunction eachProp(obj, fn, ctx) {\n if (is.arr(obj)) {\n for (let i = 0; i < obj.length; i++) {\n fn.call(ctx, obj[i], `${i}`);\n }\n return;\n }\n for (const key in obj) {\n if (obj.hasOwnProperty(key)) {\n fn.call(ctx, obj[key], key);\n }\n }\n}\nvar toArray = (a) => is.und(a) ? [] : is.arr(a) ? a : [a];\nfunction flush(queue, iterator) {\n if (queue.size) {\n const items = Array.from(queue);\n queue.clear();\n each(items, iterator);\n }\n}\nvar flushCalls = (queue, ...args) => flush(queue, (fn) => fn(...args));\nvar isSSR = () => typeof window === \"undefined\" || !window.navigator || /ServerSideRendering|^Deno\\//.test(window.navigator.userAgent);\n\n// src/globals.ts\nvar createStringInterpolator;\nvar to;\nvar colors = null;\nvar skipAnimation = false;\nvar willAdvance = noop;\nvar assign = (globals) => {\n if (globals.to)\n to = globals.to;\n if (globals.now)\n raf.now = globals.now;\n if (globals.colors !== void 0)\n colors = globals.colors;\n if (globals.skipAnimation != null)\n skipAnimation = globals.skipAnimation;\n if (globals.createStringInterpolator)\n createStringInterpolator = globals.createStringInterpolator;\n if (globals.requestAnimationFrame)\n raf.use(globals.requestAnimationFrame);\n if (globals.batchedUpdates)\n raf.batchedUpdates = globals.batchedUpdates;\n if (globals.willAdvance)\n willAdvance = globals.willAdvance;\n if (globals.frameLoop)\n raf.frameLoop = globals.frameLoop;\n};\n\n// src/FrameLoop.ts\nvar startQueue = /* @__PURE__ */ new Set();\nvar currentFrame = [];\nvar prevFrame = [];\nvar priority = 0;\nvar frameLoop = {\n get idle() {\n return !startQueue.size && !currentFrame.length;\n },\n /** Advance the given animation on every frame until idle. */\n start(animation) {\n if (priority > animation.priority) {\n startQueue.add(animation);\n raf.onStart(flushStartQueue);\n } else {\n startSafely(animation);\n raf(advance);\n }\n },\n /** Advance all animations by the given time. */\n advance,\n /** Call this when an animation's priority changes. */\n sort(animation) {\n if (priority) {\n raf.onFrame(() => frameLoop.sort(animation));\n } else {\n const prevIndex = currentFrame.indexOf(animation);\n if (~prevIndex) {\n currentFrame.splice(prevIndex, 1);\n startUnsafely(animation);\n }\n }\n },\n /**\n * Clear all animations. For testing purposes.\n *\n * ☠️ Never call this from within the frameloop.\n */\n clear() {\n currentFrame = [];\n startQueue.clear();\n }\n};\nfunction flushStartQueue() {\n startQueue.forEach(startSafely);\n startQueue.clear();\n raf(advance);\n}\nfunction startSafely(animation) {\n if (!currentFrame.includes(animation))\n startUnsafely(animation);\n}\nfunction startUnsafely(animation) {\n currentFrame.splice(\n findIndex(currentFrame, (other) => other.priority > animation.priority),\n 0,\n animation\n );\n}\nfunction advance(dt) {\n const nextFrame = prevFrame;\n for (let i = 0; i < currentFrame.length; i++) {\n const animation = currentFrame[i];\n priority = animation.priority;\n if (!animation.idle) {\n willAdvance(animation);\n animation.advance(dt);\n if (!animation.idle) {\n nextFrame.push(animation);\n }\n }\n }\n priority = 0;\n prevFrame = currentFrame;\n prevFrame.length = 0;\n currentFrame = nextFrame;\n return currentFrame.length > 0;\n}\nfunction findIndex(arr, test) {\n const index = arr.findIndex(test);\n return index < 0 ? arr.length : index;\n}\n\n// src/clamp.ts\nvar clamp = (min, max, v) => Math.min(Math.max(v, min), max);\n\n// src/colors.ts\nvar colors2 = {\n transparent: 0,\n aliceblue: 4042850303,\n antiquewhite: 4209760255,\n aqua: 16777215,\n aquamarine: 2147472639,\n azure: 4043309055,\n beige: 4126530815,\n bisque: 4293182719,\n black: 255,\n blanchedalmond: 4293643775,\n blue: 65535,\n blueviolet: 2318131967,\n brown: 2771004159,\n burlywood: 3736635391,\n burntsienna: 3934150143,\n cadetblue: 1604231423,\n chartreuse: 2147418367,\n chocolate: 3530104575,\n coral: 4286533887,\n cornflowerblue: 1687547391,\n cornsilk: 4294499583,\n crimson: 3692313855,\n cyan: 16777215,\n darkblue: 35839,\n darkcyan: 9145343,\n darkgoldenrod: 3095792639,\n darkgray: 2846468607,\n darkgreen: 6553855,\n darkgrey: 2846468607,\n darkkhaki: 3182914559,\n darkmagenta: 2332068863,\n darkolivegreen: 1433087999,\n darkorange: 4287365375,\n darkorchid: 2570243327,\n darkred: 2332033279,\n darksalmon: 3918953215,\n darkseagreen: 2411499519,\n darkslateblue: 1211993087,\n darkslategray: 793726975,\n darkslategrey: 793726975,\n darkturquoise: 13554175,\n darkviolet: 2483082239,\n deeppink: 4279538687,\n deepskyblue: 12582911,\n dimgray: 1768516095,\n dimgrey: 1768516095,\n dodgerblue: 512819199,\n firebrick: 2988581631,\n floralwhite: 4294635775,\n forestgreen: 579543807,\n fuchsia: 4278255615,\n gainsboro: 3705462015,\n ghostwhite: 4177068031,\n gold: 4292280575,\n goldenrod: 3668254975,\n gray: 2155905279,\n green: 8388863,\n greenyellow: 2919182335,\n grey: 2155905279,\n honeydew: 4043305215,\n hotpink: 4285117695,\n indianred: 3445382399,\n indigo: 1258324735,\n ivory: 4294963455,\n khaki: 4041641215,\n lavender: 3873897215,\n lavenderblush: 4293981695,\n lawngreen: 2096890111,\n lemonchiffon: 4294626815,\n lightblue: 2916673279,\n lightcoral: 4034953471,\n lightcyan: 3774873599,\n lightgoldenrodyellow: 4210742015,\n lightgray: 3553874943,\n lightgreen: 2431553791,\n lightgrey: 3553874943,\n lightpink: 4290167295,\n lightsalmon: 4288707327,\n lightseagreen: 548580095,\n lightskyblue: 2278488831,\n lightslategray: 2005441023,\n lightslategrey: 2005441023,\n lightsteelblue: 2965692159,\n lightyellow: 4294959359,\n lime: 16711935,\n limegreen: 852308735,\n linen: 4210091775,\n magenta: 4278255615,\n maroon: 2147483903,\n mediumaquamarine: 1724754687,\n mediumblue: 52735,\n mediumorchid: 3126187007,\n mediumpurple: 2473647103,\n mediumseagreen: 1018393087,\n mediumslateblue: 2070474495,\n mediumspringgreen: 16423679,\n mediumturquoise: 1221709055,\n mediumvioletred: 3340076543,\n midnightblue: 421097727,\n mintcream: 4127193855,\n mistyrose: 4293190143,\n moccasin: 4293178879,\n navajowhite: 4292783615,\n navy: 33023,\n oldlace: 4260751103,\n olive: 2155872511,\n olivedrab: 1804477439,\n orange: 4289003775,\n orangered: 4282712319,\n orchid: 3664828159,\n palegoldenrod: 4008225535,\n palegreen: 2566625535,\n paleturquoise: 2951671551,\n palevioletred: 3681588223,\n papayawhip: 4293907967,\n peachpuff: 4292524543,\n peru: 3448061951,\n pink: 4290825215,\n plum: 3718307327,\n powderblue: 2967529215,\n purple: 2147516671,\n rebeccapurple: 1714657791,\n red: 4278190335,\n rosybrown: 3163525119,\n royalblue: 1097458175,\n saddlebrown: 2336560127,\n salmon: 4202722047,\n sandybrown: 4104413439,\n seagreen: 780883967,\n seashell: 4294307583,\n sienna: 2689740287,\n silver: 3233857791,\n skyblue: 2278484991,\n slateblue: 1784335871,\n slategray: 1887473919,\n slategrey: 1887473919,\n snow: 4294638335,\n springgreen: 16744447,\n steelblue: 1182971135,\n tan: 3535047935,\n teal: 8421631,\n thistle: 3636451583,\n tomato: 4284696575,\n turquoise: 1088475391,\n violet: 4001558271,\n wheat: 4125012991,\n white: 4294967295,\n whitesmoke: 4126537215,\n yellow: 4294902015,\n yellowgreen: 2597139199\n};\n\n// src/colorMatchers.ts\nvar NUMBER = \"[-+]?\\\\d*\\\\.?\\\\d+\";\nvar PERCENTAGE = NUMBER + \"%\";\nfunction call(...parts) {\n return \"\\\\(\\\\s*(\" + parts.join(\")\\\\s*,\\\\s*(\") + \")\\\\s*\\\\)\";\n}\nvar rgb = new RegExp(\"rgb\" + call(NUMBER, NUMBER, NUMBER));\nvar rgba = new RegExp(\"rgba\" + call(NUMBER, NUMBER, NUMBER, NUMBER));\nvar hsl = new RegExp(\"hsl\" + call(NUMBER, PERCENTAGE, PERCENTAGE));\nvar hsla = new RegExp(\n \"hsla\" + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER)\n);\nvar hex3 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\nvar hex4 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\nvar hex6 = /^#([0-9a-fA-F]{6})$/;\nvar hex8 = /^#([0-9a-fA-F]{8})$/;\n\n// src/normalizeColor.ts\nfunction normalizeColor(color) {\n let match;\n if (typeof color === \"number\") {\n return color >>> 0 === color && color >= 0 && color <= 4294967295 ? color : null;\n }\n if (match = hex6.exec(color))\n return parseInt(match[1] + \"ff\", 16) >>> 0;\n if (colors && colors[color] !== void 0) {\n return colors[color];\n }\n if (match = rgb.exec(color)) {\n return (parse255(match[1]) << 24 | // r\n parse255(match[2]) << 16 | // g\n parse255(match[3]) << 8 | // b\n 255) >>> // a\n 0;\n }\n if (match = rgba.exec(color)) {\n return (parse255(match[1]) << 24 | // r\n parse255(match[2]) << 16 | // g\n parse255(match[3]) << 8 | // b\n parse1(match[4])) >>> // a\n 0;\n }\n if (match = hex3.exec(color)) {\n return parseInt(\n match[1] + match[1] + // r\n match[2] + match[2] + // g\n match[3] + match[3] + // b\n \"ff\",\n // a\n 16\n ) >>> 0;\n }\n if (match = hex8.exec(color))\n return parseInt(match[1], 16) >>> 0;\n if (match = hex4.exec(color)) {\n return parseInt(\n match[1] + match[1] + // r\n match[2] + match[2] + // g\n match[3] + match[3] + // b\n match[4] + match[4],\n // a\n 16\n ) >>> 0;\n }\n if (match = hsl.exec(color)) {\n return (hslToRgb(\n parse360(match[1]),\n // h\n parsePercentage(match[2]),\n // s\n parsePercentage(match[3])\n // l\n ) | 255) >>> // a\n 0;\n }\n if (match = hsla.exec(color)) {\n return (hslToRgb(\n parse360(match[1]),\n // h\n parsePercentage(match[2]),\n // s\n parsePercentage(match[3])\n // l\n ) | parse1(match[4])) >>> // a\n 0;\n }\n return null;\n}\nfunction hue2rgb(p, q, t) {\n if (t < 0)\n t += 1;\n if (t > 1)\n t -= 1;\n if (t < 1 / 6)\n return p + (q - p) * 6 * t;\n if (t < 1 / 2)\n return q;\n if (t < 2 / 3)\n return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n}\nfunction hslToRgb(h, s, l) {\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n const r = hue2rgb(p, q, h + 1 / 3);\n const g = hue2rgb(p, q, h);\n const b = hue2rgb(p, q, h - 1 / 3);\n return Math.round(r * 255) << 24 | Math.round(g * 255) << 16 | Math.round(b * 255) << 8;\n}\nfunction parse255(str) {\n const int = parseInt(str, 10);\n if (int < 0)\n return 0;\n if (int > 255)\n return 255;\n return int;\n}\nfunction parse360(str) {\n const int = parseFloat(str);\n return (int % 360 + 360) % 360 / 360;\n}\nfunction parse1(str) {\n const num = parseFloat(str);\n if (num < 0)\n return 0;\n if (num > 1)\n return 255;\n return Math.round(num * 255);\n}\nfunction parsePercentage(str) {\n const int = parseFloat(str);\n if (int < 0)\n return 0;\n if (int > 100)\n return 1;\n return int / 100;\n}\n\n// src/colorToRgba.ts\nfunction colorToRgba(input) {\n let int32Color = normalizeColor(input);\n if (int32Color === null)\n return input;\n int32Color = int32Color || 0;\n const r = (int32Color & 4278190080) >>> 24;\n const g = (int32Color & 16711680) >>> 16;\n const b = (int32Color & 65280) >>> 8;\n const a = (int32Color & 255) / 255;\n return `rgba(${r}, ${g}, ${b}, ${a})`;\n}\n\n// src/createInterpolator.ts\nvar createInterpolator = (range, output, extrapolate) => {\n if (is.fun(range)) {\n return range;\n }\n if (is.arr(range)) {\n return createInterpolator({\n range,\n output,\n extrapolate\n });\n }\n if (is.str(range.output[0])) {\n return createStringInterpolator(range);\n }\n const config = range;\n const outputRange = config.output;\n const inputRange = config.range || [0, 1];\n const extrapolateLeft = config.extrapolateLeft || config.extrapolate || \"extend\";\n const extrapolateRight = config.extrapolateRight || config.extrapolate || \"extend\";\n const easing = config.easing || ((t) => t);\n return (input) => {\n const range2 = findRange(input, inputRange);\n return interpolate(\n input,\n inputRange[range2],\n inputRange[range2 + 1],\n outputRange[range2],\n outputRange[range2 + 1],\n easing,\n extrapolateLeft,\n extrapolateRight,\n config.map\n );\n };\n};\nfunction interpolate(input, inputMin, inputMax, outputMin, outputMax, easing, extrapolateLeft, extrapolateRight, map) {\n let result = map ? map(input) : input;\n if (result < inputMin) {\n if (extrapolateLeft === \"identity\")\n return result;\n else if (extrapolateLeft === \"clamp\")\n result = inputMin;\n }\n if (result > inputMax) {\n if (extrapolateRight === \"identity\")\n return result;\n else if (extrapolateRight === \"clamp\")\n result = inputMax;\n }\n if (outputMin === outputMax)\n return outputMin;\n if (inputMin === inputMax)\n return input <= inputMin ? outputMin : outputMax;\n if (inputMin === -Infinity)\n result = -result;\n else if (inputMax === Infinity)\n result = result - inputMin;\n else\n result = (result - inputMin) / (inputMax - inputMin);\n result = easing(result);\n if (outputMin === -Infinity)\n result = -result;\n else if (outputMax === Infinity)\n result = result + outputMin;\n else\n result = result * (outputMax - outputMin) + outputMin;\n return result;\n}\nfunction findRange(input, inputRange) {\n for (var i = 1; i < inputRange.length - 1; ++i)\n if (inputRange[i] >= input)\n break;\n return i - 1;\n}\n\n// src/easings.ts\nvar steps = (steps2, direction = \"end\") => (progress2) => {\n progress2 = direction === \"end\" ? Math.min(progress2, 0.999) : Math.max(progress2, 1e-3);\n const expanded = progress2 * steps2;\n const rounded = direction === \"end\" ? Math.floor(expanded) : Math.ceil(expanded);\n return clamp(0, 1, rounded / steps2);\n};\nvar c1 = 1.70158;\nvar c2 = c1 * 1.525;\nvar c3 = c1 + 1;\nvar c4 = 2 * Math.PI / 3;\nvar c5 = 2 * Math.PI / 4.5;\nvar bounceOut = (x) => {\n const n1 = 7.5625;\n const d1 = 2.75;\n if (x < 1 / d1) {\n return n1 * x * x;\n } else if (x < 2 / d1) {\n return n1 * (x -= 1.5 / d1) * x + 0.75;\n } else if (x < 2.5 / d1) {\n return n1 * (x -= 2.25 / d1) * x + 0.9375;\n } else {\n return n1 * (x -= 2.625 / d1) * x + 0.984375;\n }\n};\nvar easings = {\n linear: (x) => x,\n easeInQuad: (x) => x * x,\n easeOutQuad: (x) => 1 - (1 - x) * (1 - x),\n easeInOutQuad: (x) => x < 0.5 ? 2 * x * x : 1 - Math.pow(-2 * x + 2, 2) / 2,\n easeInCubic: (x) => x * x * x,\n easeOutCubic: (x) => 1 - Math.pow(1 - x, 3),\n easeInOutCubic: (x) => x < 0.5 ? 4 * x * x * x : 1 - Math.pow(-2 * x + 2, 3) / 2,\n easeInQuart: (x) => x * x * x * x,\n easeOutQuart: (x) => 1 - Math.pow(1 - x, 4),\n easeInOutQuart: (x) => x < 0.5 ? 8 * x * x * x * x : 1 - Math.pow(-2 * x + 2, 4) / 2,\n easeInQuint: (x) => x * x * x * x * x,\n easeOutQuint: (x) => 1 - Math.pow(1 - x, 5),\n easeInOutQuint: (x) => x < 0.5 ? 16 * x * x * x * x * x : 1 - Math.pow(-2 * x + 2, 5) / 2,\n easeInSine: (x) => 1 - Math.cos(x * Math.PI / 2),\n easeOutSine: (x) => Math.sin(x * Math.PI / 2),\n easeInOutSine: (x) => -(Math.cos(Math.PI * x) - 1) / 2,\n easeInExpo: (x) => x === 0 ? 0 : Math.pow(2, 10 * x - 10),\n easeOutExpo: (x) => x === 1 ? 1 : 1 - Math.pow(2, -10 * x),\n easeInOutExpo: (x) => x === 0 ? 0 : x === 1 ? 1 : x < 0.5 ? Math.pow(2, 20 * x - 10) / 2 : (2 - Math.pow(2, -20 * x + 10)) / 2,\n easeInCirc: (x) => 1 - Math.sqrt(1 - Math.pow(x, 2)),\n easeOutCirc: (x) => Math.sqrt(1 - Math.pow(x - 1, 2)),\n easeInOutCirc: (x) => x < 0.5 ? (1 - Math.sqrt(1 - Math.pow(2 * x, 2))) / 2 : (Math.sqrt(1 - Math.pow(-2 * x + 2, 2)) + 1) / 2,\n easeInBack: (x) => c3 * x * x * x - c1 * x * x,\n easeOutBack: (x) => 1 + c3 * Math.pow(x - 1, 3) + c1 * Math.pow(x - 1, 2),\n easeInOutBack: (x) => x < 0.5 ? Math.pow(2 * x, 2) * ((c2 + 1) * 2 * x - c2) / 2 : (Math.pow(2 * x - 2, 2) * ((c2 + 1) * (x * 2 - 2) + c2) + 2) / 2,\n easeInElastic: (x) => x === 0 ? 0 : x === 1 ? 1 : -Math.pow(2, 10 * x - 10) * Math.sin((x * 10 - 10.75) * c4),\n easeOutElastic: (x) => x === 0 ? 0 : x === 1 ? 1 : Math.pow(2, -10 * x) * Math.sin((x * 10 - 0.75) * c4) + 1,\n easeInOutElastic: (x) => x === 0 ? 0 : x === 1 ? 1 : x < 0.5 ? -(Math.pow(2, 20 * x - 10) * Math.sin((20 * x - 11.125) * c5)) / 2 : Math.pow(2, -20 * x + 10) * Math.sin((20 * x - 11.125) * c5) / 2 + 1,\n easeInBounce: (x) => 1 - bounceOut(1 - x),\n easeOutBounce: bounceOut,\n easeInOutBounce: (x) => x < 0.5 ? (1 - bounceOut(1 - 2 * x)) / 2 : (1 + bounceOut(2 * x - 1)) / 2,\n steps\n};\n\n// src/fluids.ts\nvar $get = Symbol.for(\"FluidValue.get\");\nvar $observers = Symbol.for(\"FluidValue.observers\");\nvar hasFluidValue = (arg) => Boolean(arg && arg[$get]);\nvar getFluidValue = (arg) => arg && arg[$get] ? arg[$get]() : arg;\nvar getFluidObservers = (target) => target[$observers] || null;\nfunction callFluidObserver(observer2, event) {\n if (observer2.eventObserved) {\n observer2.eventObserved(event);\n } else {\n observer2(event);\n }\n}\nfunction callFluidObservers(target, event) {\n const observers = target[$observers];\n if (observers) {\n observers.forEach((observer2) => {\n callFluidObserver(observer2, event);\n });\n }\n}\nvar FluidValue = class {\n constructor(get) {\n if (!get && !(get = this.get)) {\n throw Error(\"Unknown getter\");\n }\n setFluidGetter(this, get);\n }\n};\n$get, $observers;\nvar setFluidGetter = (target, get) => setHidden(target, $get, get);\nfunction addFluidObserver(target, observer2) {\n if (target[$get]) {\n let observers = target[$observers];\n if (!observers) {\n setHidden(target, $observers, observers = /* @__PURE__ */ new Set());\n }\n if (!observers.has(observer2)) {\n observers.add(observer2);\n if (target.observerAdded) {\n target.observerAdded(observers.size, observer2);\n }\n }\n }\n return observer2;\n}\nfunction removeFluidObserver(target, observer2) {\n const observers = target[$observers];\n if (observers && observers.has(observer2)) {\n const count = observers.size - 1;\n if (count) {\n observers.delete(observer2);\n } else {\n target[$observers] = null;\n }\n if (target.observerRemoved) {\n target.observerRemoved(count, observer2);\n }\n }\n}\nvar setHidden = (target, key, value) => Object.defineProperty(target, key, {\n value,\n writable: true,\n configurable: true\n});\n\n// src/regexs.ts\nvar numberRegex = /[+\\-]?(?:0|[1-9]\\d*)(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g;\nvar colorRegex = /(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\\((-?\\d+%?[,\\s]+){2,3}\\s*[\\d\\.]+%?\\))/gi;\nvar unitRegex = new RegExp(`(${numberRegex.source})(%|[a-z]+)`, \"i\");\nvar rgbaRegex = /rgba\\(([0-9\\.-]+), ([0-9\\.-]+), ([0-9\\.-]+), ([0-9\\.-]+)\\)/gi;\nvar cssVariableRegex = /var\\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\\)/;\n\n// src/variableToRgba.ts\nvar variableToRgba = (input) => {\n const [token, fallback] = parseCSSVariable(input);\n if (!token || isSSR()) {\n return input;\n }\n const value = window.getComputedStyle(document.documentElement).getPropertyValue(token);\n if (value) {\n return value.trim();\n } else if (fallback && fallback.startsWith(\"--\")) {\n const value2 = window.getComputedStyle(document.documentElement).getPropertyValue(fallback);\n if (value2) {\n return value2;\n } else {\n return input;\n }\n } else if (fallback && cssVariableRegex.test(fallback)) {\n return variableToRgba(fallback);\n } else if (fallback) {\n return fallback;\n }\n return input;\n};\nvar parseCSSVariable = (current) => {\n const match = cssVariableRegex.exec(current);\n if (!match)\n return [,];\n const [, token, fallback] = match;\n return [token, fallback];\n};\n\n// src/stringInterpolation.ts\nvar namedColorRegex;\nvar rgbaRound = (_, p1, p2, p3, p4) => `rgba(${Math.round(p1)}, ${Math.round(p2)}, ${Math.round(p3)}, ${p4})`;\nvar createStringInterpolator2 = (config) => {\n if (!namedColorRegex)\n namedColorRegex = colors ? (\n // match color names, ignore partial matches\n new RegExp(`(${Object.keys(colors).join(\"|\")})(?!\\\\w)`, \"g\")\n ) : (\n // never match\n /^\\b$/\n );\n const output = config.output.map((value) => {\n return getFluidValue(value).replace(cssVariableRegex, variableToRgba).replace(colorRegex, colorToRgba).replace(namedColorRegex, colorToRgba);\n });\n const keyframes = output.map((value) => value.match(numberRegex).map(Number));\n const outputRanges = keyframes[0].map(\n (_, i) => keyframes.map((values) => {\n if (!(i in values)) {\n throw Error('The arity of each \"output\" value must be equal');\n }\n return values[i];\n })\n );\n const interpolators = outputRanges.map(\n (output2) => createInterpolator({ ...config, output: output2 })\n );\n return (input) => {\n const missingUnit = !unitRegex.test(output[0]) && output.find((value) => unitRegex.test(value))?.replace(numberRegex, \"\");\n let i = 0;\n return output[0].replace(\n numberRegex,\n () => `${interpolators[i++](input)}${missingUnit || \"\"}`\n ).replace(rgbaRegex, rgbaRound);\n };\n};\n\n// src/deprecations.ts\nvar prefix = \"react-spring: \";\nvar once = (fn) => {\n const func = fn;\n let called = false;\n if (typeof func != \"function\") {\n throw new TypeError(`${prefix}once requires a function parameter`);\n }\n return (...args) => {\n if (!called) {\n func(...args);\n called = true;\n }\n };\n};\nvar warnInterpolate = once(console.warn);\nfunction deprecateInterpolate() {\n warnInterpolate(\n `${prefix}The \"interpolate\" function is deprecated in v9 (use \"to\" instead)`\n );\n}\nvar warnDirectCall = once(console.warn);\nfunction deprecateDirectCall() {\n warnDirectCall(\n `${prefix}Directly calling start instead of using the api object is deprecated in v9 (use \".start\" instead), this will be removed in later 0.X.0 versions`\n );\n}\n\n// src/isAnimatedString.ts\nfunction isAnimatedString(value) {\n return is.str(value) && (value[0] == \"#\" || /\\d/.test(value) || // Do not identify a CSS variable as an AnimatedString if its SSR\n !isSSR() && cssVariableRegex.test(value) || value in (colors || {}));\n}\n\n// src/dom-events/resize/resizeElement.ts\nvar observer;\nvar resizeHandlers = /* @__PURE__ */ new WeakMap();\nvar handleObservation = (entries) => entries.forEach(({ target, contentRect }) => {\n return resizeHandlers.get(target)?.forEach((handler) => handler(contentRect));\n});\nfunction resizeElement(handler, target) {\n if (!observer) {\n if (typeof ResizeObserver !== \"undefined\") {\n observer = new ResizeObserver(handleObservation);\n }\n }\n let elementHandlers = resizeHandlers.get(target);\n if (!elementHandlers) {\n elementHandlers = /* @__PURE__ */ new Set();\n resizeHandlers.set(target, elementHandlers);\n }\n elementHandlers.add(handler);\n if (observer) {\n observer.observe(target);\n }\n return () => {\n const elementHandlers2 = resizeHandlers.get(target);\n if (!elementHandlers2)\n return;\n elementHandlers2.delete(handler);\n if (!elementHandlers2.size && observer) {\n observer.unobserve(target);\n }\n };\n}\n\n// src/dom-events/resize/resizeWindow.ts\nvar listeners = /* @__PURE__ */ new Set();\nvar cleanupWindowResizeHandler;\nvar createResizeHandler = () => {\n const handleResize = () => {\n listeners.forEach(\n (callback) => callback({\n width: window.innerWidth,\n height: window.innerHeight\n })\n );\n };\n window.addEventListener(\"resize\", handleResize);\n return () => {\n window.removeEventListener(\"resize\", handleResize);\n };\n};\nvar resizeWindow = (callback) => {\n listeners.add(callback);\n if (!cleanupWindowResizeHandler) {\n cleanupWindowResizeHandler = createResizeHandler();\n }\n return () => {\n listeners.delete(callback);\n if (!listeners.size && cleanupWindowResizeHandler) {\n cleanupWindowResizeHandler();\n cleanupWindowResizeHandler = void 0;\n }\n };\n};\n\n// src/dom-events/resize/index.ts\nvar onResize = (callback, { container = document.documentElement } = {}) => {\n if (container === document.documentElement) {\n return resizeWindow(callback);\n } else {\n return resizeElement(callback, container);\n }\n};\n\n// src/progress.ts\nvar progress = (min, max, value) => max - min === 0 ? 1 : (value - min) / (max - min);\n\n// src/dom-events/scroll/ScrollHandler.ts\nvar SCROLL_KEYS = {\n x: {\n length: \"Width\",\n position: \"Left\"\n },\n y: {\n length: \"Height\",\n position: \"Top\"\n }\n};\nvar ScrollHandler = class {\n constructor(callback, container) {\n this.createAxis = () => ({\n current: 0,\n progress: 0,\n scrollLength: 0\n });\n this.updateAxis = (axisName) => {\n const axis = this.info[axisName];\n const { length, position } = SCROLL_KEYS[axisName];\n axis.current = this.container[`scroll${position}`];\n axis.scrollLength = this.container[\"scroll\" + length] - this.container[\"client\" + length];\n axis.progress = progress(0, axis.scrollLength, axis.current);\n };\n this.update = () => {\n this.updateAxis(\"x\");\n this.updateAxis(\"y\");\n };\n this.sendEvent = () => {\n this.callback(this.info);\n };\n this.advance = () => {\n this.update();\n this.sendEvent();\n };\n this.callback = callback;\n this.container = container;\n this.info = {\n time: 0,\n x: this.createAxis(),\n y: this.createAxis()\n };\n }\n};\n\n// src/dom-events/scroll/index.ts\nvar scrollListeners = /* @__PURE__ */ new WeakMap();\nvar resizeListeners = /* @__PURE__ */ new WeakMap();\nvar onScrollHandlers = /* @__PURE__ */ new WeakMap();\nvar getTarget = (container) => container === document.documentElement ? window : container;\nvar onScroll = (callback, { container = document.documentElement } = {}) => {\n let containerHandlers = onScrollHandlers.get(container);\n if (!containerHandlers) {\n containerHandlers = /* @__PURE__ */ new Set();\n onScrollHandlers.set(container, containerHandlers);\n }\n const containerHandler = new ScrollHandler(callback, container);\n containerHandlers.add(containerHandler);\n if (!scrollListeners.has(container)) {\n const listener = () => {\n containerHandlers?.forEach((handler) => handler.advance());\n return true;\n };\n scrollListeners.set(container, listener);\n const target = getTarget(container);\n window.addEventListener(\"resize\", listener, { passive: true });\n if (container !== document.documentElement) {\n resizeListeners.set(container, onResize(listener, { container }));\n }\n target.addEventListener(\"scroll\", listener, { passive: true });\n }\n const animateScroll = scrollListeners.get(container);\n raf(animateScroll);\n return () => {\n raf.cancel(animateScroll);\n const containerHandlers2 = onScrollHandlers.get(container);\n if (!containerHandlers2)\n return;\n containerHandlers2.delete(containerHandler);\n if (containerHandlers2.size)\n return;\n const listener = scrollListeners.get(container);\n scrollListeners.delete(container);\n if (listener) {\n getTarget(container).removeEventListener(\"scroll\", listener);\n window.removeEventListener(\"resize\", listener);\n resizeListeners.get(container)?.();\n }\n };\n};\n\n// src/hooks/useConstant.ts\nimport { useRef } from \"react\";\nfunction useConstant(init) {\n const ref = useRef(null);\n if (ref.current === null) {\n ref.current = init();\n }\n return ref.current;\n}\n\n// src/hooks/useForceUpdate.ts\nimport { useState } from \"react\";\n\n// src/hooks/useIsMounted.ts\nimport { useRef as useRef2 } from \"react\";\n\n// src/hooks/useIsomorphicLayoutEffect.ts\nimport { useEffect, useLayoutEffect } from \"react\";\nvar useIsomorphicLayoutEffect = isSSR() ? useEffect : useLayoutEffect;\n\n// src/hooks/useIsMounted.ts\nvar useIsMounted = () => {\n const isMounted = useRef2(false);\n useIsomorphicLayoutEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n return isMounted;\n};\n\n// src/hooks/useForceUpdate.ts\nfunction useForceUpdate() {\n const update2 = useState()[1];\n const isMounted = useIsMounted();\n return () => {\n if (isMounted.current) {\n update2(Math.random());\n }\n };\n}\n\n// src/hooks/useMemoOne.ts\nimport { useEffect as useEffect2, useRef as useRef3, useState as useState2 } from \"react\";\nfunction useMemoOne(getResult, inputs) {\n const [initial] = useState2(\n () => ({\n inputs,\n result: getResult()\n })\n );\n const committed = useRef3();\n const prevCache = committed.current;\n let cache = prevCache;\n if (cache) {\n const useCache = Boolean(\n inputs && cache.inputs && areInputsEqual(inputs, cache.inputs)\n );\n if (!useCache) {\n cache = {\n inputs,\n result: getResult()\n };\n }\n } else {\n cache = initial;\n }\n useEffect2(() => {\n committed.current = cache;\n if (prevCache == initial) {\n initial.inputs = initial.result = void 0;\n }\n }, [cache]);\n return cache.result;\n}\nfunction areInputsEqual(next, prev) {\n if (next.length !== prev.length) {\n return false;\n }\n for (let i = 0; i < next.length; i++) {\n if (next[i] !== prev[i]) {\n return false;\n }\n }\n return true;\n}\n\n// src/hooks/useOnce.ts\nimport { useEffect as useEffect3 } from \"react\";\nvar useOnce = (effect) => useEffect3(effect, emptyDeps);\nvar emptyDeps = [];\n\n// src/hooks/usePrev.ts\nimport { useEffect as useEffect4, useRef as useRef4 } from \"react\";\nfunction usePrev(value) {\n const prevRef = useRef4();\n useEffect4(() => {\n prevRef.current = value;\n });\n return prevRef.current;\n}\n\n// src/hooks/useReducedMotion.ts\nimport { useState as useState3 } from \"react\";\nvar useReducedMotion = () => {\n const [reducedMotion, setReducedMotion] = useState3(null);\n useIsomorphicLayoutEffect(() => {\n const mql = window.matchMedia(\"(prefers-reduced-motion)\");\n const handleMediaChange = (e) => {\n setReducedMotion(e.matches);\n assign({\n skipAnimation: e.matches\n });\n };\n handleMediaChange(mql);\n mql.addEventListener(\"change\", handleMediaChange);\n return () => {\n mql.removeEventListener(\"change\", handleMediaChange);\n };\n }, []);\n return reducedMotion;\n};\nexport {\n FluidValue,\n globals_exports as Globals,\n addFluidObserver,\n callFluidObserver,\n callFluidObservers,\n clamp,\n colorToRgba,\n colors2 as colors,\n createInterpolator,\n createStringInterpolator2 as createStringInterpolator,\n defineHidden,\n deprecateDirectCall,\n deprecateInterpolate,\n each,\n eachProp,\n easings,\n flush,\n flushCalls,\n frameLoop,\n getFluidObservers,\n getFluidValue,\n hasFluidValue,\n hex3,\n hex4,\n hex6,\n hex8,\n hsl,\n hsla,\n is,\n isAnimatedString,\n isEqual,\n isSSR,\n noop,\n onResize,\n onScroll,\n once,\n prefix,\n raf,\n removeFluidObserver,\n rgb,\n rgba,\n setFluidGetter,\n toArray,\n useConstant,\n useForceUpdate,\n useIsomorphicLayoutEffect,\n useMemoOne,\n useOnce,\n usePrev,\n useReducedMotion\n};\n//# sourceMappingURL=react-spring_shared.modern.mjs.map","// src/Animated.ts\nimport { defineHidden } from \"@react-spring/shared\";\nvar $node = Symbol.for(\"Animated:node\");\nvar isAnimated = (value) => !!value && value[$node] === value;\nvar getAnimated = (owner) => owner && owner[$node];\nvar setAnimated = (owner, node) => defineHidden(owner, $node, node);\nvar getPayload = (owner) => owner && owner[$node] && owner[$node].getPayload();\nvar Animated = class {\n constructor() {\n setAnimated(this, this);\n }\n /** Get every `AnimatedValue` used by this node. */\n getPayload() {\n return this.payload || [];\n }\n};\n\n// src/AnimatedValue.ts\nimport { is } from \"@react-spring/shared\";\nvar AnimatedValue = class extends Animated {\n constructor(_value) {\n super();\n this._value = _value;\n this.done = true;\n this.durationProgress = 0;\n if (is.num(this._value)) {\n this.lastPosition = this._value;\n }\n }\n /** @internal */\n static create(value) {\n return new AnimatedValue(value);\n }\n getPayload() {\n return [this];\n }\n getValue() {\n return this._value;\n }\n setValue(value, step) {\n if (is.num(value)) {\n this.lastPosition = value;\n if (step) {\n value = Math.round(value / step) * step;\n if (this.done) {\n this.lastPosition = value;\n }\n }\n }\n if (this._value === value) {\n return false;\n }\n this._value = value;\n return true;\n }\n reset() {\n const { done } = this;\n this.done = false;\n if (is.num(this._value)) {\n this.elapsedTime = 0;\n this.durationProgress = 0;\n this.lastPosition = this._value;\n if (done)\n this.lastVelocity = null;\n this.v0 = null;\n }\n }\n};\n\n// src/AnimatedString.ts\nimport { is as is2, createInterpolator } from \"@react-spring/shared\";\nvar AnimatedString = class extends AnimatedValue {\n constructor(value) {\n super(0);\n this._string = null;\n this._toString = createInterpolator({\n output: [value, value]\n });\n }\n /** @internal */\n static create(value) {\n return new AnimatedString(value);\n }\n getValue() {\n const value = this._string;\n return value == null ? this._string = this._toString(this._value) : value;\n }\n setValue(value) {\n if (is2.str(value)) {\n if (value == this._string) {\n return false;\n }\n this._string = value;\n this._value = 1;\n } else if (super.setValue(value)) {\n this._string = null;\n } else {\n return false;\n }\n return true;\n }\n reset(goal) {\n if (goal) {\n this._toString = createInterpolator({\n output: [this.getValue(), goal]\n });\n }\n this._value = 0;\n super.reset();\n }\n};\n\n// src/AnimatedArray.ts\nimport { isAnimatedString } from \"@react-spring/shared\";\n\n// src/AnimatedObject.ts\nimport {\n each,\n eachProp,\n getFluidValue,\n hasFluidValue\n} from \"@react-spring/shared\";\n\n// src/context.ts\nvar TreeContext = { dependencies: null };\n\n// src/AnimatedObject.ts\nvar AnimatedObject = class extends Animated {\n constructor(source) {\n super();\n this.source = source;\n this.setValue(source);\n }\n getValue(animated) {\n const values = {};\n eachProp(this.source, (source, key) => {\n if (isAnimated(source)) {\n values[key] = source.getValue(animated);\n } else if (hasFluidValue(source)) {\n values[key] = getFluidValue(source);\n } else if (!animated) {\n values[key] = source;\n }\n });\n return values;\n }\n /** Replace the raw object data */\n setValue(source) {\n this.source = source;\n this.payload = this._makePayload(source);\n }\n reset() {\n if (this.payload) {\n each(this.payload, (node) => node.reset());\n }\n }\n /** Create a payload set. */\n _makePayload(source) {\n if (source) {\n const payload = /* @__PURE__ */ new Set();\n eachProp(source, this._addToPayload, payload);\n return Array.from(payload);\n }\n }\n /** Add to a payload set. */\n _addToPayload(source) {\n if (TreeContext.dependencies && hasFluidValue(source)) {\n TreeContext.dependencies.add(source);\n }\n const payload = getPayload(source);\n if (payload) {\n each(payload, (node) => this.add(node));\n }\n }\n};\n\n// src/AnimatedArray.ts\nvar AnimatedArray = class extends AnimatedObject {\n constructor(source) {\n super(source);\n }\n /** @internal */\n static create(source) {\n return new AnimatedArray(source);\n }\n getValue() {\n return this.source.map((node) => node.getValue());\n }\n setValue(source) {\n const payload = this.getPayload();\n if (source.length == payload.length) {\n return payload.map((node, i) => node.setValue(source[i])).some(Boolean);\n }\n super.setValue(source.map(makeAnimated));\n return true;\n }\n};\nfunction makeAnimated(value) {\n const nodeType = isAnimatedString(value) ? AnimatedString : AnimatedValue;\n return nodeType.create(value);\n}\n\n// src/getAnimatedType.ts\nimport { is as is3, isAnimatedString as isAnimatedString2 } from \"@react-spring/shared\";\nfunction getAnimatedType(value) {\n const parentNode = getAnimated(value);\n return parentNode ? parentNode.constructor : is3.arr(value) ? AnimatedArray : isAnimatedString2(value) ? AnimatedString : AnimatedValue;\n}\n\n// src/createHost.ts\nimport { is as is5, eachProp as eachProp2 } from \"@react-spring/shared\";\n\n// src/withAnimated.tsx\nimport * as React from \"react\";\nimport { forwardRef, useRef, useCallback, useEffect } from \"react\";\nimport {\n is as is4,\n each as each2,\n raf,\n useForceUpdate,\n useOnce,\n addFluidObserver,\n removeFluidObserver,\n useIsomorphicLayoutEffect\n} from \"@react-spring/shared\";\nvar withAnimated = (Component, host) => {\n const hasInstance = (\n // Function components must use \"forwardRef\" to avoid being\n // re-rendered on every animation frame.\n !is4.fun(Component) || Component.prototype && Component.prototype.isReactComponent\n );\n return forwardRef((givenProps, givenRef) => {\n const instanceRef = useRef(null);\n const ref = hasInstance && // eslint-disable-next-line react-hooks/rules-of-hooks\n useCallback(\n (value) => {\n instanceRef.current = updateRef(givenRef, value);\n },\n [givenRef]\n );\n const [props, deps] = getAnimatedState(givenProps, host);\n const forceUpdate = useForceUpdate();\n const callback = () => {\n const instance = instanceRef.current;\n if (hasInstance && !instance) {\n return;\n }\n const didUpdate = instance ? host.applyAnimatedValues(instance, props.getValue(true)) : false;\n if (didUpdate === false) {\n forceUpdate();\n }\n };\n const observer = new PropsObserver(callback, deps);\n const observerRef = useRef();\n useIsomorphicLayoutEffect(() => {\n observerRef.current = observer;\n each2(deps, (dep) => addFluidObserver(dep, observer));\n return () => {\n if (observerRef.current) {\n each2(\n observerRef.current.deps,\n (dep) => removeFluidObserver(dep, observerRef.current)\n );\n raf.cancel(observerRef.current.update);\n }\n };\n });\n useEffect(callback, []);\n useOnce(() => () => {\n const observer2 = observerRef.current;\n each2(observer2.deps, (dep) => removeFluidObserver(dep, observer2));\n });\n const usedProps = host.getComponentProps(props.getValue());\n return /* @__PURE__ */ React.createElement(Component, { ...usedProps, ref });\n });\n};\nvar PropsObserver = class {\n constructor(update, deps) {\n this.update = update;\n this.deps = deps;\n }\n eventObserved(event) {\n if (event.type == \"change\") {\n raf.write(this.update);\n }\n }\n};\nfunction getAnimatedState(props, host) {\n const dependencies = /* @__PURE__ */ new Set();\n TreeContext.dependencies = dependencies;\n if (props.style)\n props = {\n ...props,\n style: host.createAnimatedStyle(props.style)\n };\n props = new AnimatedObject(props);\n TreeContext.dependencies = null;\n return [props, dependencies];\n}\nfunction updateRef(ref, value) {\n if (ref) {\n if (is4.fun(ref))\n ref(value);\n else\n ref.current = value;\n }\n return value;\n}\n\n// src/createHost.ts\nvar cacheKey = Symbol.for(\"AnimatedComponent\");\nvar createHost = (components, {\n applyAnimatedValues = () => false,\n createAnimatedStyle = (style) => new AnimatedObject(style),\n getComponentProps = (props) => props\n} = {}) => {\n const hostConfig = {\n applyAnimatedValues,\n createAnimatedStyle,\n getComponentProps\n };\n const animated = (Component) => {\n const displayName = getDisplayName(Component) || \"Anonymous\";\n if (is5.str(Component)) {\n Component = animated[Component] || (animated[Component] = withAnimated(Component, hostConfig));\n } else {\n Component = Component[cacheKey] || (Component[cacheKey] = withAnimated(Component, hostConfig));\n }\n Component.displayName = `Animated(${displayName})`;\n return Component;\n };\n eachProp2(components, (Component, key) => {\n if (is5.arr(components)) {\n key = getDisplayName(Component);\n }\n animated[key] = animated(Component);\n });\n return {\n animated\n };\n};\nvar getDisplayName = (arg) => is5.str(arg) ? arg : arg && is5.str(arg.displayName) ? arg.displayName : is5.fun(arg) && arg.name || null;\nexport {\n Animated,\n AnimatedArray,\n AnimatedObject,\n AnimatedString,\n AnimatedValue,\n createHost,\n getAnimated,\n getAnimatedType,\n getPayload,\n isAnimated,\n setAnimated\n};\n//# sourceMappingURL=react-spring_animated.modern.mjs.map","// src/hooks/useChain.ts\nimport { each, useIsomorphicLayoutEffect } from \"@react-spring/shared\";\n\n// src/helpers.ts\nimport {\n is,\n toArray,\n eachProp,\n getFluidValue,\n isAnimatedString,\n Globals as G\n} from \"@react-spring/shared\";\nfunction callProp(value, ...args) {\n return is.fun(value) ? value(...args) : value;\n}\nvar matchProp = (value, key) => value === true || !!(key && value && (is.fun(value) ? value(key) : toArray(value).includes(key)));\nvar resolveProp = (prop, key) => is.obj(prop) ? key && prop[key] : prop;\nvar getDefaultProp = (props, key) => props.default === true ? props[key] : props.default ? props.default[key] : void 0;\nvar noopTransform = (value) => value;\nvar getDefaultProps = (props, transform = noopTransform) => {\n let keys = DEFAULT_PROPS;\n if (props.default && props.default !== true) {\n props = props.default;\n keys = Object.keys(props);\n }\n const defaults2 = {};\n for (const key of keys) {\n const value = transform(props[key], key);\n if (!is.und(value)) {\n defaults2[key] = value;\n }\n }\n return defaults2;\n};\nvar DEFAULT_PROPS = [\n \"config\",\n \"onProps\",\n \"onStart\",\n \"onChange\",\n \"onPause\",\n \"onResume\",\n \"onRest\"\n];\nvar RESERVED_PROPS = {\n config: 1,\n from: 1,\n to: 1,\n ref: 1,\n loop: 1,\n reset: 1,\n pause: 1,\n cancel: 1,\n reverse: 1,\n immediate: 1,\n default: 1,\n delay: 1,\n onProps: 1,\n onStart: 1,\n onChange: 1,\n onPause: 1,\n onResume: 1,\n onRest: 1,\n onResolve: 1,\n // Transition props\n items: 1,\n trail: 1,\n sort: 1,\n expires: 1,\n initial: 1,\n enter: 1,\n update: 1,\n leave: 1,\n children: 1,\n onDestroyed: 1,\n // Internal props\n keys: 1,\n callId: 1,\n parentId: 1\n};\nfunction getForwardProps(props) {\n const forward = {};\n let count = 0;\n eachProp(props, (value, prop) => {\n if (!RESERVED_PROPS[prop]) {\n forward[prop] = value;\n count++;\n }\n });\n if (count) {\n return forward;\n }\n}\nfunction inferTo(props) {\n const to2 = getForwardProps(props);\n if (to2) {\n const out = { to: to2 };\n eachProp(props, (val, key) => key in to2 || (out[key] = val));\n return out;\n }\n return { ...props };\n}\nfunction computeGoal(value) {\n value = getFluidValue(value);\n return is.arr(value) ? value.map(computeGoal) : isAnimatedString(value) ? G.createStringInterpolator({\n range: [0, 1],\n output: [value, value]\n })(1) : value;\n}\nfunction hasProps(props) {\n for (const _ in props)\n return true;\n return false;\n}\nfunction isAsyncTo(to2) {\n return is.fun(to2) || is.arr(to2) && is.obj(to2[0]);\n}\nfunction detachRefs(ctrl, ref) {\n ctrl.ref?.delete(ctrl);\n ref?.delete(ctrl);\n}\nfunction replaceRef(ctrl, ref) {\n if (ref && ctrl.ref !== ref) {\n ctrl.ref?.delete(ctrl);\n ref.add(ctrl);\n ctrl.ref = ref;\n }\n}\n\n// src/hooks/useChain.ts\nfunction useChain(refs, timeSteps, timeFrame = 1e3) {\n useIsomorphicLayoutEffect(() => {\n if (timeSteps) {\n let prevDelay = 0;\n each(refs, (ref, i) => {\n const controllers = ref.current;\n if (controllers.length) {\n let delay = timeFrame * timeSteps[i];\n if (isNaN(delay))\n delay = prevDelay;\n else\n prevDelay = delay;\n each(controllers, (ctrl) => {\n each(ctrl.queue, (props) => {\n const memoizedDelayProp = props.delay;\n props.delay = (key) => delay + callProp(memoizedDelayProp || 0, key);\n });\n });\n ref.start();\n }\n });\n } else {\n let p = Promise.resolve();\n each(refs, (ref) => {\n const controllers = ref.current;\n if (controllers.length) {\n const queues = controllers.map((ctrl) => {\n const q = ctrl.queue;\n ctrl.queue = [];\n return q;\n });\n p = p.then(() => {\n each(\n controllers,\n (ctrl, i) => each(queues[i] || [], (update2) => ctrl.queue.push(update2))\n );\n return Promise.all(ref.start());\n });\n }\n });\n }\n });\n}\n\n// src/hooks/useSpring.ts\nimport { is as is9 } from \"@react-spring/shared\";\n\n// src/hooks/useSprings.ts\nimport { useContext as useContext2, useMemo, useRef } from \"react\";\nimport {\n is as is8,\n each as each5,\n usePrev,\n useOnce,\n useForceUpdate,\n useIsomorphicLayoutEffect as useIsomorphicLayoutEffect2\n} from \"@react-spring/shared\";\n\n// src/SpringValue.ts\nimport {\n is as is5,\n raf as raf3,\n each as each2,\n isEqual,\n toArray as toArray2,\n eachProp as eachProp3,\n frameLoop as frameLoop2,\n flushCalls,\n getFluidValue as getFluidValue2,\n isAnimatedString as isAnimatedString2,\n Globals as G5,\n callFluidObservers as callFluidObservers2,\n hasFluidValue,\n addFluidObserver,\n removeFluidObserver,\n getFluidObservers\n} from \"@react-spring/shared\";\nimport {\n AnimatedValue,\n AnimatedString,\n getPayload,\n getAnimated as getAnimated2,\n setAnimated,\n getAnimatedType\n} from \"@react-spring/animated\";\n\n// src/AnimationConfig.ts\nimport { is as is2, easings } from \"@react-spring/shared\";\n\n// src/constants.ts\nvar config = {\n default: { tension: 170, friction: 26 },\n gentle: { tension: 120, friction: 14 },\n wobbly: { tension: 180, friction: 12 },\n stiff: { tension: 210, friction: 20 },\n slow: { tension: 280, friction: 60 },\n molasses: { tension: 280, friction: 120 }\n};\n\n// src/AnimationConfig.ts\nvar defaults = {\n ...config.default,\n mass: 1,\n damping: 1,\n easing: easings.linear,\n clamp: false\n};\nvar AnimationConfig = class {\n constructor() {\n /**\n * The initial velocity of one or more values.\n *\n * @default 0\n */\n this.velocity = 0;\n Object.assign(this, defaults);\n }\n};\nfunction mergeConfig(config2, newConfig, defaultConfig) {\n if (defaultConfig) {\n defaultConfig = { ...defaultConfig };\n sanitizeConfig(defaultConfig, newConfig);\n newConfig = { ...defaultConfig, ...newConfig };\n }\n sanitizeConfig(config2, newConfig);\n Object.assign(config2, newConfig);\n for (const key in defaults) {\n if (config2[key] == null) {\n config2[key] = defaults[key];\n }\n }\n let { frequency, damping } = config2;\n const { mass } = config2;\n if (!is2.und(frequency)) {\n if (frequency < 0.01)\n frequency = 0.01;\n if (damping < 0)\n damping = 0;\n config2.tension = Math.pow(2 * Math.PI / frequency, 2) * mass;\n config2.friction = 4 * Math.PI * damping * mass / frequency;\n }\n return config2;\n}\nfunction sanitizeConfig(config2, props) {\n if (!is2.und(props.decay)) {\n config2.duration = void 0;\n } else {\n const isTensionConfig = !is2.und(props.tension) || !is2.und(props.friction);\n if (isTensionConfig || !is2.und(props.frequency) || !is2.und(props.damping) || !is2.und(props.mass)) {\n config2.duration = void 0;\n config2.decay = void 0;\n }\n if (isTensionConfig) {\n config2.frequency = void 0;\n }\n }\n}\n\n// src/Animation.ts\nvar emptyArray = [];\nvar Animation = class {\n constructor() {\n this.changed = false;\n this.values = emptyArray;\n this.toValues = null;\n this.fromValues = emptyArray;\n this.config = new AnimationConfig();\n this.immediate = false;\n }\n};\n\n// src/scheduleProps.ts\nimport { is as is3, raf, Globals as G2 } from \"@react-spring/shared\";\nfunction scheduleProps(callId, { key, props, defaultProps, state, actions }) {\n return new Promise((resolve, reject) => {\n let delay;\n let timeout;\n let cancel = matchProp(props.cancel ?? defaultProps?.cancel, key);\n if (cancel) {\n onStart();\n } else {\n if (!is3.und(props.pause)) {\n state.paused = matchProp(props.pause, key);\n }\n let pause = defaultProps?.pause;\n if (pause !== true) {\n pause = state.paused || matchProp(pause, key);\n }\n delay = callProp(props.delay || 0, key);\n if (pause) {\n state.resumeQueue.add(onResume);\n actions.pause();\n } else {\n actions.resume();\n onResume();\n }\n }\n function onPause() {\n state.resumeQueue.add(onResume);\n state.timeouts.delete(timeout);\n timeout.cancel();\n delay = timeout.time - raf.now();\n }\n function onResume() {\n if (delay > 0 && !G2.skipAnimation) {\n state.delayed = true;\n timeout = raf.setTimeout(onStart, delay);\n state.pauseQueue.add(onPause);\n state.timeouts.add(timeout);\n } else {\n onStart();\n }\n }\n function onStart() {\n if (state.delayed) {\n state.delayed = false;\n }\n state.pauseQueue.delete(onPause);\n state.timeouts.delete(timeout);\n if (callId <= (state.cancelId || 0)) {\n cancel = true;\n }\n try {\n actions.start({ ...props, callId, cancel }, resolve);\n } catch (err) {\n reject(err);\n }\n }\n });\n}\n\n// src/runAsync.ts\nimport {\n is as is4,\n raf as raf2,\n flush,\n eachProp as eachProp2,\n Globals as G3\n} from \"@react-spring/shared\";\n\n// src/AnimationResult.ts\nvar getCombinedResult = (target, results) => results.length == 1 ? results[0] : results.some((result) => result.cancelled) ? getCancelledResult(target.get()) : results.every((result) => result.noop) ? getNoopResult(target.get()) : getFinishedResult(\n target.get(),\n results.every((result) => result.finished)\n);\nvar getNoopResult = (value) => ({\n value,\n noop: true,\n finished: true,\n cancelled: false\n});\nvar getFinishedResult = (value, finished, cancelled = false) => ({\n value,\n finished,\n cancelled\n});\nvar getCancelledResult = (value) => ({\n value,\n cancelled: true,\n finished: false\n});\n\n// src/runAsync.ts\nfunction runAsync(to2, props, state, target) {\n const { callId, parentId, onRest } = props;\n const { asyncTo: prevTo, promise: prevPromise } = state;\n if (!parentId && to2 === prevTo && !props.reset) {\n return prevPromise;\n }\n return state.promise = (async () => {\n state.asyncId = callId;\n state.asyncTo = to2;\n const defaultProps = getDefaultProps(\n props,\n (value, key) => (\n // The `onRest` prop is only called when the `runAsync` promise is resolved.\n key === \"onRest\" ? void 0 : value\n )\n );\n let preventBail;\n let bail;\n const bailPromise = new Promise(\n (resolve, reject) => (preventBail = resolve, bail = reject)\n );\n const bailIfEnded = (bailSignal) => {\n const bailResult = (\n // The `cancel` prop or `stop` method was used.\n callId <= (state.cancelId || 0) && getCancelledResult(target) || // The async `to` prop was replaced.\n callId !== state.asyncId && getFinishedResult(target, false)\n );\n if (bailResult) {\n bailSignal.result = bailResult;\n bail(bailSignal);\n throw bailSignal;\n }\n };\n const animate = (arg1, arg2) => {\n const bailSignal = new BailSignal();\n const skipAnimationSignal = new SkipAnimationSignal();\n return (async () => {\n if (G3.skipAnimation) {\n stopAsync(state);\n skipAnimationSignal.result = getFinishedResult(target, false);\n bail(skipAnimationSignal);\n throw skipAnimationSignal;\n }\n bailIfEnded(bailSignal);\n const props2 = is4.obj(arg1) ? { ...arg1 } : { ...arg2, to: arg1 };\n props2.parentId = callId;\n eachProp2(defaultProps, (value, key) => {\n if (is4.und(props2[key])) {\n props2[key] = value;\n }\n });\n const result2 = await target.start(props2);\n bailIfEnded(bailSignal);\n if (state.paused) {\n await new Promise((resume) => {\n state.resumeQueue.add(resume);\n });\n }\n return result2;\n })();\n };\n let result;\n if (G3.skipAnimation) {\n stopAsync(state);\n return getFinishedResult(target, false);\n }\n try {\n let animating;\n if (is4.arr(to2)) {\n animating = (async (queue) => {\n for (const props2 of queue) {\n await animate(props2);\n }\n })(to2);\n } else {\n animating = Promise.resolve(to2(animate, target.stop.bind(target)));\n }\n await Promise.all([animating.then(preventBail), bailPromise]);\n result = getFinishedResult(target.get(), true, false);\n } catch (err) {\n if (err instanceof BailSignal) {\n result = err.result;\n } else if (err instanceof SkipAnimationSignal) {\n result = err.result;\n } else {\n throw err;\n }\n } finally {\n if (callId == state.asyncId) {\n state.asyncId = parentId;\n state.asyncTo = parentId ? prevTo : void 0;\n state.promise = parentId ? prevPromise : void 0;\n }\n }\n if (is4.fun(onRest)) {\n raf2.batchedUpdates(() => {\n onRest(result, target, target.item);\n });\n }\n return result;\n })();\n}\nfunction stopAsync(state, cancelId) {\n flush(state.timeouts, (t) => t.cancel());\n state.pauseQueue.clear();\n state.resumeQueue.clear();\n state.asyncId = state.asyncTo = state.promise = void 0;\n if (cancelId)\n state.cancelId = cancelId;\n}\nvar BailSignal = class extends Error {\n constructor() {\n super(\n \"An async animation has been interrupted. You see this error because you forgot to use `await` or `.catch(...)` on its returned promise.\"\n );\n }\n};\nvar SkipAnimationSignal = class extends Error {\n constructor() {\n super(\"SkipAnimationSignal\");\n }\n};\n\n// src/FrameValue.ts\nimport {\n deprecateInterpolate,\n frameLoop,\n FluidValue as FluidValue2,\n Globals as G4,\n callFluidObservers\n} from \"@react-spring/shared\";\nimport { getAnimated } from \"@react-spring/animated\";\nvar isFrameValue = (value) => value instanceof FrameValue;\nvar nextId = 1;\nvar FrameValue = class extends FluidValue2 {\n constructor() {\n super(...arguments);\n this.id = nextId++;\n this._priority = 0;\n }\n get priority() {\n return this._priority;\n }\n set priority(priority) {\n if (this._priority != priority) {\n this._priority = priority;\n this._onPriorityChange(priority);\n }\n }\n /** Get the current value */\n get() {\n const node = getAnimated(this);\n return node && node.getValue();\n }\n /** Create a spring that maps our value to another value */\n to(...args) {\n return G4.to(this, args);\n }\n /** @deprecated Use the `to` method instead. */\n interpolate(...args) {\n deprecateInterpolate();\n return G4.to(this, args);\n }\n toJSON() {\n return this.get();\n }\n observerAdded(count) {\n if (count == 1)\n this._attach();\n }\n observerRemoved(count) {\n if (count == 0)\n this._detach();\n }\n /** Called when the first child is added. */\n _attach() {\n }\n /** Called when the last child is removed. */\n _detach() {\n }\n /** Tell our children about our new value */\n _onChange(value, idle = false) {\n callFluidObservers(this, {\n type: \"change\",\n parent: this,\n value,\n idle\n });\n }\n /** Tell our children about our new priority */\n _onPriorityChange(priority) {\n if (!this.idle) {\n frameLoop.sort(this);\n }\n callFluidObservers(this, {\n type: \"priority\",\n parent: this,\n priority\n });\n }\n};\n\n// src/SpringPhase.ts\nvar $P = Symbol.for(\"SpringPhase\");\nvar HAS_ANIMATED = 1;\nvar IS_ANIMATING = 2;\nvar IS_PAUSED = 4;\nvar hasAnimated = (target) => (target[$P] & HAS_ANIMATED) > 0;\nvar isAnimating = (target) => (target[$P] & IS_ANIMATING) > 0;\nvar isPaused = (target) => (target[$P] & IS_PAUSED) > 0;\nvar setActiveBit = (target, active) => active ? target[$P] |= IS_ANIMATING | HAS_ANIMATED : target[$P] &= ~IS_ANIMATING;\nvar setPausedBit = (target, paused) => paused ? target[$P] |= IS_PAUSED : target[$P] &= ~IS_PAUSED;\n\n// src/SpringValue.ts\nvar SpringValue = class extends FrameValue {\n constructor(arg1, arg2) {\n super();\n /** The animation state */\n this.animation = new Animation();\n /** Some props have customizable default values */\n this.defaultProps = {};\n /** The state for `runAsync` calls */\n this._state = {\n paused: false,\n delayed: false,\n pauseQueue: /* @__PURE__ */ new Set(),\n resumeQueue: /* @__PURE__ */ new Set(),\n timeouts: /* @__PURE__ */ new Set()\n };\n /** The promise resolvers of pending `start` calls */\n this._pendingCalls = /* @__PURE__ */ new Set();\n /** The counter for tracking `scheduleProps` calls */\n this._lastCallId = 0;\n /** The last `scheduleProps` call that changed the `to` prop */\n this._lastToId = 0;\n this._memoizedDuration = 0;\n if (!is5.und(arg1) || !is5.und(arg2)) {\n const props = is5.obj(arg1) ? { ...arg1 } : { ...arg2, from: arg1 };\n if (is5.und(props.default)) {\n props.default = true;\n }\n this.start(props);\n }\n }\n /** Equals true when not advancing on each frame. */\n get idle() {\n return !(isAnimating(this) || this._state.asyncTo) || isPaused(this);\n }\n get goal() {\n return getFluidValue2(this.animation.to);\n }\n get velocity() {\n const node = getAnimated2(this);\n return node instanceof AnimatedValue ? node.lastVelocity || 0 : node.getPayload().map((node2) => node2.lastVelocity || 0);\n }\n /**\n * When true, this value has been animated at least once.\n */\n get hasAnimated() {\n return hasAnimated(this);\n }\n /**\n * When true, this value has an unfinished animation,\n * which is either active or paused.\n */\n get isAnimating() {\n return isAnimating(this);\n }\n /**\n * When true, all current and future animations are paused.\n */\n get isPaused() {\n return isPaused(this);\n }\n /**\n *\n *\n */\n get isDelayed() {\n return this._state.delayed;\n }\n /** Advance the current animation by a number of milliseconds */\n advance(dt) {\n let idle = true;\n let changed = false;\n const anim = this.animation;\n let { toValues } = anim;\n const { config: config2 } = anim;\n const payload = getPayload(anim.to);\n if (!payload && hasFluidValue(anim.to)) {\n toValues = toArray2(getFluidValue2(anim.to));\n }\n anim.values.forEach((node2, i) => {\n if (node2.done)\n return;\n const to2 = (\n // Animated strings always go from 0 to 1.\n node2.constructor == AnimatedString ? 1 : payload ? payload[i].lastPosition : toValues[i]\n );\n let finished = anim.immediate;\n let position = to2;\n if (!finished) {\n position = node2.lastPosition;\n if (config2.tension <= 0) {\n node2.done = true;\n return;\n }\n let elapsed = node2.elapsedTime += dt;\n const from = anim.fromValues[i];\n const v0 = node2.v0 != null ? node2.v0 : node2.v0 = is5.arr(config2.velocity) ? config2.velocity[i] : config2.velocity;\n let velocity;\n const precision = config2.precision || (from == to2 ? 5e-3 : Math.min(1, Math.abs(to2 - from) * 1e-3));\n if (!is5.und(config2.duration)) {\n let p = 1;\n if (config2.duration > 0) {\n if (this._memoizedDuration !== config2.duration) {\n this._memoizedDuration = config2.duration;\n if (node2.durationProgress > 0) {\n node2.elapsedTime = config2.duration * node2.durationProgress;\n elapsed = node2.elapsedTime += dt;\n }\n }\n p = (config2.progress || 0) + elapsed / this._memoizedDuration;\n p = p > 1 ? 1 : p < 0 ? 0 : p;\n node2.durationProgress = p;\n }\n position = from + config2.easing(p) * (to2 - from);\n velocity = (position - node2.lastPosition) / dt;\n finished = p == 1;\n } else if (config2.decay) {\n const decay = config2.decay === true ? 0.998 : config2.decay;\n const e = Math.exp(-(1 - decay) * elapsed);\n position = from + v0 / (1 - decay) * (1 - e);\n finished = Math.abs(node2.lastPosition - position) <= precision;\n velocity = v0 * e;\n } else {\n velocity = node2.lastVelocity == null ? v0 : node2.lastVelocity;\n const restVelocity = config2.restVelocity || precision / 10;\n const bounceFactor = config2.clamp ? 0 : config2.bounce;\n const canBounce = !is5.und(bounceFactor);\n const isGrowing = from == to2 ? node2.v0 > 0 : from < to2;\n let isMoving;\n let isBouncing = false;\n const step = 1;\n const numSteps = Math.ceil(dt / step);\n for (let n = 0; n < numSteps; ++n) {\n isMoving = Math.abs(velocity) > restVelocity;\n if (!isMoving) {\n finished = Math.abs(to2 - position) <= precision;\n if (finished) {\n break;\n }\n }\n if (canBounce) {\n isBouncing = position == to2 || position > to2 == isGrowing;\n if (isBouncing) {\n velocity = -velocity * bounceFactor;\n position = to2;\n }\n }\n const springForce = -config2.tension * 1e-6 * (position - to2);\n const dampingForce = -config2.friction * 1e-3 * velocity;\n const acceleration = (springForce + dampingForce) / config2.mass;\n velocity = velocity + acceleration * step;\n position = position + velocity * step;\n }\n }\n node2.lastVelocity = velocity;\n if (Number.isNaN(position)) {\n console.warn(`Got NaN while animating:`, this);\n finished = true;\n }\n }\n if (payload && !payload[i].done) {\n finished = false;\n }\n if (finished) {\n node2.done = true;\n } else {\n idle = false;\n }\n if (node2.setValue(position, config2.round)) {\n changed = true;\n }\n });\n const node = getAnimated2(this);\n const currVal = node.getValue();\n if (idle) {\n const finalVal = getFluidValue2(anim.to);\n if ((currVal !== finalVal || changed) && !config2.decay) {\n node.setValue(finalVal);\n this._onChange(finalVal);\n } else if (changed && config2.decay) {\n this._onChange(currVal);\n }\n this._stop();\n } else if (changed) {\n this._onChange(currVal);\n }\n }\n /** Set the current value, while stopping the current animation */\n set(value) {\n raf3.batchedUpdates(() => {\n this._stop();\n this._focus(value);\n this._set(value);\n });\n return this;\n }\n /**\n * Freeze the active animation in time, as well as any updates merged\n * before `resume` is called.\n */\n pause() {\n this._update({ pause: true });\n }\n /** Resume the animation if paused. */\n resume() {\n this._update({ pause: false });\n }\n /** Skip to the end of the current animation. */\n finish() {\n if (isAnimating(this)) {\n const { to: to2, config: config2 } = this.animation;\n raf3.batchedUpdates(() => {\n this._onStart();\n if (!config2.decay) {\n this._set(to2, false);\n }\n this._stop();\n });\n }\n return this;\n }\n /** Push props into the pending queue. */\n update(props) {\n const queue = this.queue || (this.queue = []);\n queue.push(props);\n return this;\n }\n start(to2, arg2) {\n let queue;\n if (!is5.und(to2)) {\n queue = [is5.obj(to2) ? to2 : { ...arg2, to: to2 }];\n } else {\n queue = this.queue || [];\n this.queue = [];\n }\n return Promise.all(\n queue.map((props) => {\n const up = this._update(props);\n return up;\n })\n ).then((results) => getCombinedResult(this, results));\n }\n /**\n * Stop the current animation, and cancel any delayed updates.\n *\n * Pass `true` to call `onRest` with `cancelled: true`.\n */\n stop(cancel) {\n const { to: to2 } = this.animation;\n this._focus(this.get());\n stopAsync(this._state, cancel && this._lastCallId);\n raf3.batchedUpdates(() => this._stop(to2, cancel));\n return this;\n }\n /** Restart the animation. */\n reset() {\n this._update({ reset: true });\n }\n /** @internal */\n eventObserved(event) {\n if (event.type == \"change\") {\n this._start();\n } else if (event.type == \"priority\") {\n this.priority = event.priority + 1;\n }\n }\n /**\n * Parse the `to` and `from` range from the given `props` object.\n *\n * This also ensures the initial value is available to animated components\n * during the render phase.\n */\n _prepareNode(props) {\n const key = this.key || \"\";\n let { to: to2, from } = props;\n to2 = is5.obj(to2) ? to2[key] : to2;\n if (to2 == null || isAsyncTo(to2)) {\n to2 = void 0;\n }\n from = is5.obj(from) ? from[key] : from;\n if (from == null) {\n from = void 0;\n }\n const range = { to: to2, from };\n if (!hasAnimated(this)) {\n if (props.reverse)\n [to2, from] = [from, to2];\n from = getFluidValue2(from);\n if (!is5.und(from)) {\n this._set(from);\n } else if (!getAnimated2(this)) {\n this._set(to2);\n }\n }\n return range;\n }\n /** Every update is processed by this method before merging. */\n _update({ ...props }, isLoop) {\n const { key, defaultProps } = this;\n if (props.default)\n Object.assign(\n defaultProps,\n getDefaultProps(\n props,\n (value, prop) => /^on/.test(prop) ? resolveProp(value, key) : value\n )\n );\n mergeActiveFn(this, props, \"onProps\");\n sendEvent(this, \"onProps\", props, this);\n const range = this._prepareNode(props);\n if (Object.isFrozen(this)) {\n throw Error(\n \"Cannot animate a `SpringValue` object that is frozen. Did you forget to pass your component to `animated(...)` before animating its props?\"\n );\n }\n const state = this._state;\n return scheduleProps(++this._lastCallId, {\n key,\n props,\n defaultProps,\n state,\n actions: {\n pause: () => {\n if (!isPaused(this)) {\n setPausedBit(this, true);\n flushCalls(state.pauseQueue);\n sendEvent(\n this,\n \"onPause\",\n getFinishedResult(this, checkFinished(this, this.animation.to)),\n this\n );\n }\n },\n resume: () => {\n if (isPaused(this)) {\n setPausedBit(this, false);\n if (isAnimating(this)) {\n this._resume();\n }\n flushCalls(state.resumeQueue);\n sendEvent(\n this,\n \"onResume\",\n getFinishedResult(this, checkFinished(this, this.animation.to)),\n this\n );\n }\n },\n start: this._merge.bind(this, range)\n }\n }).then((result) => {\n if (props.loop && result.finished && !(isLoop && result.noop)) {\n const nextProps = createLoopUpdate(props);\n if (nextProps) {\n return this._update(nextProps, true);\n }\n }\n return result;\n });\n }\n /** Merge props into the current animation */\n _merge(range, props, resolve) {\n if (props.cancel) {\n this.stop(true);\n return resolve(getCancelledResult(this));\n }\n const hasToProp = !is5.und(range.to);\n const hasFromProp = !is5.und(range.from);\n if (hasToProp || hasFromProp) {\n if (props.callId > this._lastToId) {\n this._lastToId = props.callId;\n } else {\n return resolve(getCancelledResult(this));\n }\n }\n const { key, defaultProps, animation: anim } = this;\n const { to: prevTo, from: prevFrom } = anim;\n let { to: to2 = prevTo, from = prevFrom } = range;\n if (hasFromProp && !hasToProp && (!props.default || is5.und(to2))) {\n to2 = from;\n }\n if (props.reverse)\n [to2, from] = [from, to2];\n const hasFromChanged = !isEqual(from, prevFrom);\n if (hasFromChanged) {\n anim.from = from;\n }\n from = getFluidValue2(from);\n const hasToChanged = !isEqual(to2, prevTo);\n if (hasToChanged) {\n this._focus(to2);\n }\n const hasAsyncTo = isAsyncTo(props.to);\n const { config: config2 } = anim;\n const { decay, velocity } = config2;\n if (hasToProp || hasFromProp) {\n config2.velocity = 0;\n }\n if (props.config && !hasAsyncTo) {\n mergeConfig(\n config2,\n callProp(props.config, key),\n // Avoid calling the same \"config\" prop twice.\n props.config !== defaultProps.config ? callProp(defaultProps.config, key) : void 0\n );\n }\n let node = getAnimated2(this);\n if (!node || is5.und(to2)) {\n return resolve(getFinishedResult(this, true));\n }\n const reset = (\n // When `reset` is undefined, the `from` prop implies `reset: true`,\n // except for declarative updates. When `reset` is defined, there\n // must exist a value to animate from.\n is5.und(props.reset) ? hasFromProp && !props.default : !is5.und(from) && matchProp(props.reset, key)\n );\n const value = reset ? from : this.get();\n const goal = computeGoal(to2);\n const isAnimatable = is5.num(goal) || is5.arr(goal) || isAnimatedString2(goal);\n const immediate = !hasAsyncTo && (!isAnimatable || matchProp(defaultProps.immediate || props.immediate, key));\n if (hasToChanged) {\n const nodeType = getAnimatedType(to2);\n if (nodeType !== node.constructor) {\n if (immediate) {\n node = this._set(goal);\n } else\n throw Error(\n `Cannot animate between ${node.constructor.name} and ${nodeType.name}, as the \"to\" prop suggests`\n );\n }\n }\n const goalType = node.constructor;\n let started = hasFluidValue(to2);\n let finished = false;\n if (!started) {\n const hasValueChanged = reset || !hasAnimated(this) && hasFromChanged;\n if (hasToChanged || hasValueChanged) {\n finished = isEqual(computeGoal(value), goal);\n started = !finished;\n }\n if (!isEqual(anim.immediate, immediate) && !immediate || !isEqual(config2.decay, decay) || !isEqual(config2.velocity, velocity)) {\n started = true;\n }\n }\n if (finished && isAnimating(this)) {\n if (anim.changed && !reset) {\n started = true;\n } else if (!started) {\n this._stop(prevTo);\n }\n }\n if (!hasAsyncTo) {\n if (started || hasFluidValue(prevTo)) {\n anim.values = node.getPayload();\n anim.toValues = hasFluidValue(to2) ? null : goalType == AnimatedString ? [1] : toArray2(goal);\n }\n if (anim.immediate != immediate) {\n anim.immediate = immediate;\n if (!immediate && !reset) {\n this._set(prevTo);\n }\n }\n if (started) {\n const { onRest } = anim;\n each2(ACTIVE_EVENTS, (type) => mergeActiveFn(this, props, type));\n const result = getFinishedResult(this, checkFinished(this, prevTo));\n flushCalls(this._pendingCalls, result);\n this._pendingCalls.add(resolve);\n if (anim.changed)\n raf3.batchedUpdates(() => {\n anim.changed = !reset;\n onRest?.(result, this);\n if (reset) {\n callProp(defaultProps.onRest, result);\n } else {\n anim.onStart?.(result, this);\n }\n });\n }\n }\n if (reset) {\n this._set(value);\n }\n if (hasAsyncTo) {\n resolve(runAsync(props.to, props, this._state, this));\n } else if (started) {\n this._start();\n } else if (isAnimating(this) && !hasToChanged) {\n this._pendingCalls.add(resolve);\n } else {\n resolve(getNoopResult(value));\n }\n }\n /** Update the `animation.to` value, which might be a `FluidValue` */\n _focus(value) {\n const anim = this.animation;\n if (value !== anim.to) {\n if (getFluidObservers(this)) {\n this._detach();\n }\n anim.to = value;\n if (getFluidObservers(this)) {\n this._attach();\n }\n }\n }\n _attach() {\n let priority = 0;\n const { to: to2 } = this.animation;\n if (hasFluidValue(to2)) {\n addFluidObserver(to2, this);\n if (isFrameValue(to2)) {\n priority = to2.priority + 1;\n }\n }\n this.priority = priority;\n }\n _detach() {\n const { to: to2 } = this.animation;\n if (hasFluidValue(to2)) {\n removeFluidObserver(to2, this);\n }\n }\n /**\n * Update the current value from outside the frameloop,\n * and return the `Animated` node.\n */\n _set(arg, idle = true) {\n const value = getFluidValue2(arg);\n if (!is5.und(value)) {\n const oldNode = getAnimated2(this);\n if (!oldNode || !isEqual(value, oldNode.getValue())) {\n const nodeType = getAnimatedType(value);\n if (!oldNode || oldNode.constructor != nodeType) {\n setAnimated(this, nodeType.create(value));\n } else {\n oldNode.setValue(value);\n }\n if (oldNode) {\n raf3.batchedUpdates(() => {\n this._onChange(value, idle);\n });\n }\n }\n }\n return getAnimated2(this);\n }\n _onStart() {\n const anim = this.animation;\n if (!anim.changed) {\n anim.changed = true;\n sendEvent(\n this,\n \"onStart\",\n getFinishedResult(this, checkFinished(this, anim.to)),\n this\n );\n }\n }\n _onChange(value, idle) {\n if (!idle) {\n this._onStart();\n callProp(this.animation.onChange, value, this);\n }\n callProp(this.defaultProps.onChange, value, this);\n super._onChange(value, idle);\n }\n // This method resets the animation state (even if already animating) to\n // ensure the latest from/to range is used, and it also ensures this spring\n // is added to the frameloop.\n _start() {\n const anim = this.animation;\n getAnimated2(this).reset(getFluidValue2(anim.to));\n if (!anim.immediate) {\n anim.fromValues = anim.values.map((node) => node.lastPosition);\n }\n if (!isAnimating(this)) {\n setActiveBit(this, true);\n if (!isPaused(this)) {\n this._resume();\n }\n }\n }\n _resume() {\n if (G5.skipAnimation) {\n this.finish();\n } else {\n frameLoop2.start(this);\n }\n }\n /**\n * Exit the frameloop and notify `onRest` listeners.\n *\n * Always wrap `_stop` calls with `batchedUpdates`.\n */\n _stop(goal, cancel) {\n if (isAnimating(this)) {\n setActiveBit(this, false);\n const anim = this.animation;\n each2(anim.values, (node) => {\n node.done = true;\n });\n if (anim.toValues) {\n anim.onChange = anim.onPause = anim.onResume = void 0;\n }\n callFluidObservers2(this, {\n type: \"idle\",\n parent: this\n });\n const result = cancel ? getCancelledResult(this.get()) : getFinishedResult(this.get(), checkFinished(this, goal ?? anim.to));\n flushCalls(this._pendingCalls, result);\n if (anim.changed) {\n anim.changed = false;\n sendEvent(this, \"onRest\", result, this);\n }\n }\n }\n};\nfunction checkFinished(target, to2) {\n const goal = computeGoal(to2);\n const value = computeGoal(target.get());\n return isEqual(value, goal);\n}\nfunction createLoopUpdate(props, loop = props.loop, to2 = props.to) {\n const loopRet = callProp(loop);\n if (loopRet) {\n const overrides = loopRet !== true && inferTo(loopRet);\n const reverse = (overrides || props).reverse;\n const reset = !overrides || overrides.reset;\n return createUpdate({\n ...props,\n loop,\n // Avoid updating default props when looping.\n default: false,\n // Never loop the `pause` prop.\n pause: void 0,\n // For the \"reverse\" prop to loop as expected, the \"to\" prop\n // must be undefined. The \"reverse\" prop is ignored when the\n // \"to\" prop is an array or function.\n to: !reverse || isAsyncTo(to2) ? to2 : void 0,\n // Ignore the \"from\" prop except on reset.\n from: reset ? props.from : void 0,\n reset,\n // The \"loop\" prop can return a \"useSpring\" props object to\n // override any of the original props.\n ...overrides\n });\n }\n}\nfunction createUpdate(props) {\n const { to: to2, from } = props = inferTo(props);\n const keys = /* @__PURE__ */ new Set();\n if (is5.obj(to2))\n findDefined(to2, keys);\n if (is5.obj(from))\n findDefined(from, keys);\n props.keys = keys.size ? Array.from(keys) : null;\n return props;\n}\nfunction declareUpdate(props) {\n const update2 = createUpdate(props);\n if (is5.und(update2.default)) {\n update2.default = getDefaultProps(update2);\n }\n return update2;\n}\nfunction findDefined(values, keys) {\n eachProp3(values, (value, key) => value != null && keys.add(key));\n}\nvar ACTIVE_EVENTS = [\n \"onStart\",\n \"onRest\",\n \"onChange\",\n \"onPause\",\n \"onResume\"\n];\nfunction mergeActiveFn(target, props, type) {\n target.animation[type] = props[type] !== getDefaultProp(props, type) ? resolveProp(props[type], target.key) : void 0;\n}\nfunction sendEvent(target, type, ...args) {\n target.animation[type]?.(...args);\n target.defaultProps[type]?.(...args);\n}\n\n// src/Controller.ts\nimport {\n is as is6,\n raf as raf4,\n each as each3,\n noop,\n flush as flush2,\n toArray as toArray3,\n eachProp as eachProp4,\n flushCalls as flushCalls2,\n addFluidObserver as addFluidObserver2\n} from \"@react-spring/shared\";\nvar BATCHED_EVENTS = [\"onStart\", \"onChange\", \"onRest\"];\nvar nextId2 = 1;\nvar Controller = class {\n constructor(props, flush3) {\n this.id = nextId2++;\n /** The animated values */\n this.springs = {};\n /** The queue of props passed to the `update` method. */\n this.queue = [];\n /** The counter for tracking `scheduleProps` calls */\n this._lastAsyncId = 0;\n /** The values currently being animated */\n this._active = /* @__PURE__ */ new Set();\n /** The values that changed recently */\n this._changed = /* @__PURE__ */ new Set();\n /** Equals false when `onStart` listeners can be called */\n this._started = false;\n /** State used by the `runAsync` function */\n this._state = {\n paused: false,\n pauseQueue: /* @__PURE__ */ new Set(),\n resumeQueue: /* @__PURE__ */ new Set(),\n timeouts: /* @__PURE__ */ new Set()\n };\n /** The event queues that are flushed once per frame maximum */\n this._events = {\n onStart: /* @__PURE__ */ new Map(),\n onChange: /* @__PURE__ */ new Map(),\n onRest: /* @__PURE__ */ new Map()\n };\n this._onFrame = this._onFrame.bind(this);\n if (flush3) {\n this._flush = flush3;\n }\n if (props) {\n this.start({ default: true, ...props });\n }\n }\n /**\n * Equals `true` when no spring values are in the frameloop, and\n * no async animation is currently active.\n */\n get idle() {\n return !this._state.asyncTo && Object.values(this.springs).every((spring) => {\n return spring.idle && !spring.isDelayed && !spring.isPaused;\n });\n }\n get item() {\n return this._item;\n }\n set item(item) {\n this._item = item;\n }\n /** Get the current values of our springs */\n get() {\n const values = {};\n this.each((spring, key) => values[key] = spring.get());\n return values;\n }\n /** Set the current values without animating. */\n set(values) {\n for (const key in values) {\n const value = values[key];\n if (!is6.und(value)) {\n this.springs[key].set(value);\n }\n }\n }\n /** Push an update onto the queue of each value. */\n update(props) {\n if (props) {\n this.queue.push(createUpdate(props));\n }\n return this;\n }\n /**\n * Start the queued animations for every spring, and resolve the returned\n * promise once all queued animations have finished or been cancelled.\n *\n * When you pass a queue (instead of nothing), that queue is used instead of\n * the queued animations added with the `update` method, which are left alone.\n */\n start(props) {\n let { queue } = this;\n if (props) {\n queue = toArray3(props).map(createUpdate);\n } else {\n this.queue = [];\n }\n if (this._flush) {\n return this._flush(this, queue);\n }\n prepareKeys(this, queue);\n return flushUpdateQueue(this, queue);\n }\n /** @internal */\n stop(arg, keys) {\n if (arg !== !!arg) {\n keys = arg;\n }\n if (keys) {\n const springs = this.springs;\n each3(toArray3(keys), (key) => springs[key].stop(!!arg));\n } else {\n stopAsync(this._state, this._lastAsyncId);\n this.each((spring) => spring.stop(!!arg));\n }\n return this;\n }\n /** Freeze the active animation in time */\n pause(keys) {\n if (is6.und(keys)) {\n this.start({ pause: true });\n } else {\n const springs = this.springs;\n each3(toArray3(keys), (key) => springs[key].pause());\n }\n return this;\n }\n /** Resume the animation if paused. */\n resume(keys) {\n if (is6.und(keys)) {\n this.start({ pause: false });\n } else {\n const springs = this.springs;\n each3(toArray3(keys), (key) => springs[key].resume());\n }\n return this;\n }\n /** Call a function once per spring value */\n each(iterator) {\n eachProp4(this.springs, iterator);\n }\n /** @internal Called at the end of every animation frame */\n _onFrame() {\n const { onStart, onChange, onRest } = this._events;\n const active = this._active.size > 0;\n const changed = this._changed.size > 0;\n if (active && !this._started || changed && !this._started) {\n this._started = true;\n flush2(onStart, ([onStart2, result]) => {\n result.value = this.get();\n onStart2(result, this, this._item);\n });\n }\n const idle = !active && this._started;\n const values = changed || idle && onRest.size ? this.get() : null;\n if (changed && onChange.size) {\n flush2(onChange, ([onChange2, result]) => {\n result.value = values;\n onChange2(result, this, this._item);\n });\n }\n if (idle) {\n this._started = false;\n flush2(onRest, ([onRest2, result]) => {\n result.value = values;\n onRest2(result, this, this._item);\n });\n }\n }\n /** @internal */\n eventObserved(event) {\n if (event.type == \"change\") {\n this._changed.add(event.parent);\n if (!event.idle) {\n this._active.add(event.parent);\n }\n } else if (event.type == \"idle\") {\n this._active.delete(event.parent);\n } else\n return;\n raf4.onFrame(this._onFrame);\n }\n};\nfunction flushUpdateQueue(ctrl, queue) {\n return Promise.all(queue.map((props) => flushUpdate(ctrl, props))).then(\n (results) => getCombinedResult(ctrl, results)\n );\n}\nasync function flushUpdate(ctrl, props, isLoop) {\n const { keys, to: to2, from, loop, onRest, onResolve } = props;\n const defaults2 = is6.obj(props.default) && props.default;\n if (loop) {\n props.loop = false;\n }\n if (to2 === false)\n props.to = null;\n if (from === false)\n props.from = null;\n const asyncTo = is6.arr(to2) || is6.fun(to2) ? to2 : void 0;\n if (asyncTo) {\n props.to = void 0;\n props.onRest = void 0;\n if (defaults2) {\n defaults2.onRest = void 0;\n }\n } else {\n each3(BATCHED_EVENTS, (key) => {\n const handler = props[key];\n if (is6.fun(handler)) {\n const queue = ctrl[\"_events\"][key];\n props[key] = ({ finished, cancelled }) => {\n const result2 = queue.get(handler);\n if (result2) {\n if (!finished)\n result2.finished = false;\n if (cancelled)\n result2.cancelled = true;\n } else {\n queue.set(handler, {\n value: null,\n finished: finished || false,\n cancelled: cancelled || false\n });\n }\n };\n if (defaults2) {\n defaults2[key] = props[key];\n }\n }\n });\n }\n const state = ctrl[\"_state\"];\n if (props.pause === !state.paused) {\n state.paused = props.pause;\n flushCalls2(props.pause ? state.pauseQueue : state.resumeQueue);\n } else if (state.paused) {\n props.pause = true;\n }\n const promises = (keys || Object.keys(ctrl.springs)).map(\n (key) => ctrl.springs[key].start(props)\n );\n const cancel = props.cancel === true || getDefaultProp(props, \"cancel\") === true;\n if (asyncTo || cancel && state.asyncId) {\n promises.push(\n scheduleProps(++ctrl[\"_lastAsyncId\"], {\n props,\n state,\n actions: {\n pause: noop,\n resume: noop,\n start(props2, resolve) {\n if (cancel) {\n stopAsync(state, ctrl[\"_lastAsyncId\"]);\n resolve(getCancelledResult(ctrl));\n } else {\n props2.onRest = onRest;\n resolve(\n runAsync(\n asyncTo,\n props2,\n state,\n ctrl\n )\n );\n }\n }\n }\n })\n );\n }\n if (state.paused) {\n await new Promise((resume) => {\n state.resumeQueue.add(resume);\n });\n }\n const result = getCombinedResult(ctrl, await Promise.all(promises));\n if (loop && result.finished && !(isLoop && result.noop)) {\n const nextProps = createLoopUpdate(props, loop, to2);\n if (nextProps) {\n prepareKeys(ctrl, [nextProps]);\n return flushUpdate(ctrl, nextProps, true);\n }\n }\n if (onResolve) {\n raf4.batchedUpdates(() => onResolve(result, ctrl, ctrl.item));\n }\n return result;\n}\nfunction getSprings(ctrl, props) {\n const springs = { ...ctrl.springs };\n if (props) {\n each3(toArray3(props), (props2) => {\n if (is6.und(props2.keys)) {\n props2 = createUpdate(props2);\n }\n if (!is6.obj(props2.to)) {\n props2 = { ...props2, to: void 0 };\n }\n prepareSprings(springs, props2, (key) => {\n return createSpring(key);\n });\n });\n }\n setSprings(ctrl, springs);\n return springs;\n}\nfunction setSprings(ctrl, springs) {\n eachProp4(springs, (spring, key) => {\n if (!ctrl.springs[key]) {\n ctrl.springs[key] = spring;\n addFluidObserver2(spring, ctrl);\n }\n });\n}\nfunction createSpring(key, observer) {\n const spring = new SpringValue();\n spring.key = key;\n if (observer) {\n addFluidObserver2(spring, observer);\n }\n return spring;\n}\nfunction prepareSprings(springs, props, create) {\n if (props.keys) {\n each3(props.keys, (key) => {\n const spring = springs[key] || (springs[key] = create(key));\n spring[\"_prepareNode\"](props);\n });\n }\n}\nfunction prepareKeys(ctrl, queue) {\n each3(queue, (props) => {\n prepareSprings(ctrl.springs, props, (key) => {\n return createSpring(key, ctrl);\n });\n });\n}\n\n// src/SpringContext.tsx\nimport * as React from \"react\";\nimport { useContext } from \"react\";\nimport { useMemoOne } from \"@react-spring/shared\";\nvar SpringContext = ({\n children,\n ...props\n}) => {\n const inherited = useContext(ctx);\n const pause = props.pause || !!inherited.pause, immediate = props.immediate || !!inherited.immediate;\n props = useMemoOne(() => ({ pause, immediate }), [pause, immediate]);\n const { Provider } = ctx;\n return /* @__PURE__ */ React.createElement(Provider, { value: props }, children);\n};\nvar ctx = makeContext(SpringContext, {});\nSpringContext.Provider = ctx.Provider;\nSpringContext.Consumer = ctx.Consumer;\nfunction makeContext(target, init) {\n Object.assign(target, React.createContext(init));\n target.Provider._context = target;\n target.Consumer._context = target;\n return target;\n}\n\n// src/SpringRef.ts\nimport { each as each4, is as is7, deprecateDirectCall } from \"@react-spring/shared\";\nvar SpringRef = () => {\n const current = [];\n const SpringRef2 = function(props) {\n deprecateDirectCall();\n const results = [];\n each4(current, (ctrl, i) => {\n if (is7.und(props)) {\n results.push(ctrl.start());\n } else {\n const update2 = _getProps(props, ctrl, i);\n if (update2) {\n results.push(ctrl.start(update2));\n }\n }\n });\n return results;\n };\n SpringRef2.current = current;\n SpringRef2.add = function(ctrl) {\n if (!current.includes(ctrl)) {\n current.push(ctrl);\n }\n };\n SpringRef2.delete = function(ctrl) {\n const i = current.indexOf(ctrl);\n if (~i)\n current.splice(i, 1);\n };\n SpringRef2.pause = function() {\n each4(current, (ctrl) => ctrl.pause(...arguments));\n return this;\n };\n SpringRef2.resume = function() {\n each4(current, (ctrl) => ctrl.resume(...arguments));\n return this;\n };\n SpringRef2.set = function(values) {\n each4(current, (ctrl, i) => {\n const update2 = is7.fun(values) ? values(i, ctrl) : values;\n if (update2) {\n ctrl.set(update2);\n }\n });\n };\n SpringRef2.start = function(props) {\n const results = [];\n each4(current, (ctrl, i) => {\n if (is7.und(props)) {\n results.push(ctrl.start());\n } else {\n const update2 = this._getProps(props, ctrl, i);\n if (update2) {\n results.push(ctrl.start(update2));\n }\n }\n });\n return results;\n };\n SpringRef2.stop = function() {\n each4(current, (ctrl) => ctrl.stop(...arguments));\n return this;\n };\n SpringRef2.update = function(props) {\n each4(current, (ctrl, i) => ctrl.update(this._getProps(props, ctrl, i)));\n return this;\n };\n const _getProps = function(arg, ctrl, index) {\n return is7.fun(arg) ? arg(index, ctrl) : arg;\n };\n SpringRef2._getProps = _getProps;\n return SpringRef2;\n};\n\n// src/hooks/useSprings.ts\nfunction useSprings(length, props, deps) {\n const propsFn = is8.fun(props) && props;\n if (propsFn && !deps)\n deps = [];\n const ref = useMemo(\n () => propsFn || arguments.length == 3 ? SpringRef() : void 0,\n []\n );\n const layoutId = useRef(0);\n const forceUpdate = useForceUpdate();\n const state = useMemo(\n () => ({\n ctrls: [],\n queue: [],\n flush(ctrl, updates2) {\n const springs2 = getSprings(ctrl, updates2);\n const canFlushSync = layoutId.current > 0 && !state.queue.length && !Object.keys(springs2).some((key) => !ctrl.springs[key]);\n return canFlushSync ? flushUpdateQueue(ctrl, updates2) : new Promise((resolve) => {\n setSprings(ctrl, springs2);\n state.queue.push(() => {\n resolve(flushUpdateQueue(ctrl, updates2));\n });\n forceUpdate();\n });\n }\n }),\n []\n );\n const ctrls = useRef([...state.ctrls]);\n const updates = [];\n const prevLength = usePrev(length) || 0;\n useMemo(() => {\n each5(ctrls.current.slice(length, prevLength), (ctrl) => {\n detachRefs(ctrl, ref);\n ctrl.stop(true);\n });\n ctrls.current.length = length;\n declareUpdates(prevLength, length);\n }, [length]);\n useMemo(() => {\n declareUpdates(0, Math.min(prevLength, length));\n }, deps);\n function declareUpdates(startIndex, endIndex) {\n for (let i = startIndex; i < endIndex; i++) {\n const ctrl = ctrls.current[i] || (ctrls.current[i] = new Controller(null, state.flush));\n const update2 = propsFn ? propsFn(i, ctrl) : props[i];\n if (update2) {\n updates[i] = declareUpdate(update2);\n }\n }\n }\n const springs = ctrls.current.map((ctrl, i) => getSprings(ctrl, updates[i]));\n const context = useContext2(SpringContext);\n const prevContext = usePrev(context);\n const hasContext = context !== prevContext && hasProps(context);\n useIsomorphicLayoutEffect2(() => {\n layoutId.current++;\n state.ctrls = ctrls.current;\n const { queue } = state;\n if (queue.length) {\n state.queue = [];\n each5(queue, (cb) => cb());\n }\n each5(ctrls.current, (ctrl, i) => {\n ref?.add(ctrl);\n if (hasContext) {\n ctrl.start({ default: context });\n }\n const update2 = updates[i];\n if (update2) {\n replaceRef(ctrl, update2.ref);\n if (ctrl.ref) {\n ctrl.queue.push(update2);\n } else {\n ctrl.start(update2);\n }\n }\n });\n });\n useOnce(() => () => {\n each5(state.ctrls, (ctrl) => ctrl.stop(true));\n });\n const values = springs.map((x) => ({ ...x }));\n return ref ? [values, ref] : values;\n}\n\n// src/hooks/useSpring.ts\nfunction useSpring(props, deps) {\n const isFn = is9.fun(props);\n const [[values], ref] = useSprings(\n 1,\n isFn ? props : [props],\n isFn ? deps || [] : deps\n );\n return isFn || arguments.length == 2 ? [values, ref] : values;\n}\n\n// src/hooks/useSpringRef.ts\nimport { useState } from \"react\";\nvar initSpringRef = () => SpringRef();\nvar useSpringRef = () => useState(initSpringRef)[0];\n\n// src/hooks/useSpringValue.ts\nimport { useConstant, useOnce as useOnce2 } from \"@react-spring/shared\";\nvar useSpringValue = (initial, props) => {\n const springValue = useConstant(() => new SpringValue(initial, props));\n useOnce2(() => () => {\n springValue.stop();\n });\n return springValue;\n};\n\n// src/hooks/useTrail.ts\nimport { each as each6, is as is10, useIsomorphicLayoutEffect as useIsomorphicLayoutEffect3 } from \"@react-spring/shared\";\nfunction useTrail(length, propsArg, deps) {\n const propsFn = is10.fun(propsArg) && propsArg;\n if (propsFn && !deps)\n deps = [];\n let reverse = true;\n let passedRef = void 0;\n const result = useSprings(\n length,\n (i, ctrl) => {\n const props = propsFn ? propsFn(i, ctrl) : propsArg;\n passedRef = props.ref;\n reverse = reverse && props.reverse;\n return props;\n },\n // Ensure the props function is called when no deps exist.\n // This works around the 3 argument rule.\n deps || [{}]\n );\n useIsomorphicLayoutEffect3(() => {\n each6(result[1].current, (ctrl, i) => {\n const parent = result[1].current[i + (reverse ? 1 : -1)];\n replaceRef(ctrl, passedRef);\n if (ctrl.ref) {\n if (parent) {\n ctrl.update({ to: parent.springs });\n }\n return;\n }\n if (parent) {\n ctrl.start({ to: parent.springs });\n } else {\n ctrl.start();\n }\n });\n }, deps);\n if (propsFn || arguments.length == 3) {\n const ref = passedRef ?? result[1];\n ref[\"_getProps\"] = (propsArg2, ctrl, i) => {\n const props = is10.fun(propsArg2) ? propsArg2(i, ctrl) : propsArg2;\n if (props) {\n const parent = ref.current[i + (props.reverse ? 1 : -1)];\n if (parent)\n props.to = parent.springs;\n return props;\n }\n };\n return result;\n }\n return result[0];\n}\n\n// src/hooks/useTransition.tsx\nimport * as React2 from \"react\";\nimport { useContext as useContext3, useRef as useRef2, useMemo as useMemo2 } from \"react\";\nimport {\n is as is11,\n toArray as toArray4,\n useForceUpdate as useForceUpdate2,\n useOnce as useOnce3,\n usePrev as usePrev2,\n each as each7,\n useIsomorphicLayoutEffect as useIsomorphicLayoutEffect4\n} from \"@react-spring/shared\";\nfunction useTransition(data, props, deps) {\n const propsFn = is11.fun(props) && props;\n const {\n reset,\n sort,\n trail = 0,\n expires = true,\n exitBeforeEnter = false,\n onDestroyed,\n ref: propsRef,\n config: propsConfig\n } = propsFn ? propsFn() : props;\n const ref = useMemo2(\n () => propsFn || arguments.length == 3 ? SpringRef() : void 0,\n []\n );\n const items = toArray4(data);\n const transitions = [];\n const usedTransitions = useRef2(null);\n const prevTransitions = reset ? null : usedTransitions.current;\n useIsomorphicLayoutEffect4(() => {\n usedTransitions.current = transitions;\n });\n useOnce3(() => {\n each7(transitions, (t) => {\n ref?.add(t.ctrl);\n t.ctrl.ref = ref;\n });\n return () => {\n each7(usedTransitions.current, (t) => {\n if (t.expired) {\n clearTimeout(t.expirationId);\n }\n detachRefs(t.ctrl, ref);\n t.ctrl.stop(true);\n });\n };\n });\n const keys = getKeys(items, propsFn ? propsFn() : props, prevTransitions);\n const expired = reset && usedTransitions.current || [];\n useIsomorphicLayoutEffect4(\n () => each7(expired, ({ ctrl, item, key }) => {\n detachRefs(ctrl, ref);\n callProp(onDestroyed, item, key);\n })\n );\n const reused = [];\n if (prevTransitions)\n each7(prevTransitions, (t, i) => {\n if (t.expired) {\n clearTimeout(t.expirationId);\n expired.push(t);\n } else {\n i = reused[i] = keys.indexOf(t.key);\n if (~i)\n transitions[i] = t;\n }\n });\n each7(items, (item, i) => {\n if (!transitions[i]) {\n transitions[i] = {\n key: keys[i],\n item,\n phase: \"mount\" /* MOUNT */,\n ctrl: new Controller()\n };\n transitions[i].ctrl.item = item;\n }\n });\n if (reused.length) {\n let i = -1;\n const { leave } = propsFn ? propsFn() : props;\n each7(reused, (keyIndex, prevIndex) => {\n const t = prevTransitions[prevIndex];\n if (~keyIndex) {\n i = transitions.indexOf(t);\n transitions[i] = { ...t, item: items[keyIndex] };\n } else if (leave) {\n transitions.splice(++i, 0, t);\n }\n });\n }\n if (is11.fun(sort)) {\n transitions.sort((a, b) => sort(a.item, b.item));\n }\n let delay = -trail;\n const forceUpdate = useForceUpdate2();\n const defaultProps = getDefaultProps(props);\n const changes = /* @__PURE__ */ new Map();\n const exitingTransitions = useRef2(/* @__PURE__ */ new Map());\n const forceChange = useRef2(false);\n each7(transitions, (t, i) => {\n const key = t.key;\n const prevPhase = t.phase;\n const p = propsFn ? propsFn() : props;\n let to2;\n let phase;\n const propsDelay = callProp(p.delay || 0, key);\n if (prevPhase == \"mount\" /* MOUNT */) {\n to2 = p.enter;\n phase = \"enter\" /* ENTER */;\n } else {\n const isLeave = keys.indexOf(key) < 0;\n if (prevPhase != \"leave\" /* LEAVE */) {\n if (isLeave) {\n to2 = p.leave;\n phase = \"leave\" /* LEAVE */;\n } else if (to2 = p.update) {\n phase = \"update\" /* UPDATE */;\n } else\n return;\n } else if (!isLeave) {\n to2 = p.enter;\n phase = \"enter\" /* ENTER */;\n } else\n return;\n }\n to2 = callProp(to2, t.item, i);\n to2 = is11.obj(to2) ? inferTo(to2) : { to: to2 };\n if (!to2.config) {\n const config2 = propsConfig || defaultProps.config;\n to2.config = callProp(config2, t.item, i, phase);\n }\n delay += trail;\n const payload = {\n ...defaultProps,\n // we need to add our props.delay value you here.\n delay: propsDelay + delay,\n ref: propsRef,\n immediate: p.immediate,\n // This prevents implied resets.\n reset: false,\n // Merge any phase-specific props.\n ...to2\n };\n if (phase == \"enter\" /* ENTER */ && is11.und(payload.from)) {\n const p2 = propsFn ? propsFn() : props;\n const from = is11.und(p2.initial) || prevTransitions ? p2.from : p2.initial;\n payload.from = callProp(from, t.item, i);\n }\n const { onResolve } = payload;\n payload.onResolve = (result) => {\n callProp(onResolve, result);\n const transitions2 = usedTransitions.current;\n const t2 = transitions2.find((t3) => t3.key === key);\n if (!t2)\n return;\n if (result.cancelled && t2.phase != \"update\" /* UPDATE */) {\n return;\n }\n if (t2.ctrl.idle) {\n const idle = transitions2.every((t3) => t3.ctrl.idle);\n if (t2.phase == \"leave\" /* LEAVE */) {\n const expiry = callProp(expires, t2.item);\n if (expiry !== false) {\n const expiryMs = expiry === true ? 0 : expiry;\n t2.expired = true;\n if (!idle && expiryMs > 0) {\n if (expiryMs <= 2147483647)\n t2.expirationId = setTimeout(forceUpdate, expiryMs);\n return;\n }\n }\n }\n if (idle && transitions2.some((t3) => t3.expired)) {\n exitingTransitions.current.delete(t2);\n if (exitBeforeEnter) {\n forceChange.current = true;\n }\n forceUpdate();\n }\n }\n };\n const springs = getSprings(t.ctrl, payload);\n if (phase === \"leave\" /* LEAVE */ && exitBeforeEnter) {\n exitingTransitions.current.set(t, { phase, springs, payload });\n } else {\n changes.set(t, { phase, springs, payload });\n }\n });\n const context = useContext3(SpringContext);\n const prevContext = usePrev2(context);\n const hasContext = context !== prevContext && hasProps(context);\n useIsomorphicLayoutEffect4(() => {\n if (hasContext) {\n each7(transitions, (t) => {\n t.ctrl.start({ default: context });\n });\n }\n }, [context]);\n each7(changes, (_, t) => {\n if (exitingTransitions.current.size) {\n const ind = transitions.findIndex((state) => state.key === t.key);\n transitions.splice(ind, 1);\n }\n });\n useIsomorphicLayoutEffect4(\n () => {\n each7(\n exitingTransitions.current.size ? exitingTransitions.current : changes,\n ({ phase, payload }, t) => {\n const { ctrl } = t;\n t.phase = phase;\n ref?.add(ctrl);\n if (hasContext && phase == \"enter\" /* ENTER */) {\n ctrl.start({ default: context });\n }\n if (payload) {\n replaceRef(ctrl, payload.ref);\n if ((ctrl.ref || ref) && !forceChange.current) {\n ctrl.update(payload);\n } else {\n ctrl.start(payload);\n if (forceChange.current) {\n forceChange.current = false;\n }\n }\n }\n }\n );\n },\n reset ? void 0 : deps\n );\n const renderTransitions = (render) => /* @__PURE__ */ React2.createElement(React2.Fragment, null, transitions.map((t, i) => {\n const { springs } = changes.get(t) || t.ctrl;\n const elem = render({ ...springs }, t.item, t, i);\n return elem && elem.type ? /* @__PURE__ */ React2.createElement(\n elem.type,\n {\n ...elem.props,\n key: is11.str(t.key) || is11.num(t.key) ? t.key : t.ctrl.id,\n ref: elem.ref\n }\n ) : elem;\n }));\n return ref ? [renderTransitions, ref] : renderTransitions;\n}\nvar nextKey = 1;\nfunction getKeys(items, { key, keys = key }, prevTransitions) {\n if (keys === null) {\n const reused = /* @__PURE__ */ new Set();\n return items.map((item) => {\n const t = prevTransitions && prevTransitions.find(\n (t2) => t2.item === item && t2.phase !== \"leave\" /* LEAVE */ && !reused.has(t2)\n );\n if (t) {\n reused.add(t);\n return t.key;\n }\n return nextKey++;\n });\n }\n return is11.und(keys) ? items : is11.fun(keys) ? items.map(keys) : toArray4(keys);\n}\n\n// src/hooks/useScroll.ts\nimport { each as each8, onScroll, useIsomorphicLayoutEffect as useIsomorphicLayoutEffect5 } from \"@react-spring/shared\";\nvar useScroll = ({\n container,\n ...springOptions\n} = {}) => {\n const [scrollValues, api] = useSpring(\n () => ({\n scrollX: 0,\n scrollY: 0,\n scrollXProgress: 0,\n scrollYProgress: 0,\n ...springOptions\n }),\n []\n );\n useIsomorphicLayoutEffect5(() => {\n const cleanupScroll = onScroll(\n ({ x, y }) => {\n api.start({\n scrollX: x.current,\n scrollXProgress: x.progress,\n scrollY: y.current,\n scrollYProgress: y.progress\n });\n },\n { container: container?.current || void 0 }\n );\n return () => {\n each8(Object.values(scrollValues), (value) => value.stop());\n cleanupScroll();\n };\n }, []);\n return scrollValues;\n};\n\n// src/hooks/useResize.ts\nimport { onResize, each as each9, useIsomorphicLayoutEffect as useIsomorphicLayoutEffect6 } from \"@react-spring/shared\";\nvar useResize = ({\n container,\n ...springOptions\n}) => {\n const [sizeValues, api] = useSpring(\n () => ({\n width: 0,\n height: 0,\n ...springOptions\n }),\n []\n );\n useIsomorphicLayoutEffect6(() => {\n const cleanupScroll = onResize(\n ({ width, height }) => {\n api.start({\n width,\n height,\n immediate: sizeValues.width.get() === 0 || sizeValues.height.get() === 0\n });\n },\n { container: container?.current || void 0 }\n );\n return () => {\n each9(Object.values(sizeValues), (value) => value.stop());\n cleanupScroll();\n };\n }, []);\n return sizeValues;\n};\n\n// src/hooks/useInView.ts\nimport { useRef as useRef3, useState as useState2 } from \"react\";\nimport { is as is12, useIsomorphicLayoutEffect as useIsomorphicLayoutEffect7 } from \"@react-spring/shared\";\nvar defaultThresholdOptions = {\n any: 0,\n all: 1\n};\nfunction useInView(props, args) {\n const [isInView, setIsInView] = useState2(false);\n const ref = useRef3();\n const propsFn = is12.fun(props) && props;\n const springsProps = propsFn ? propsFn() : {};\n const { to: to2 = {}, from = {}, ...restSpringProps } = springsProps;\n const intersectionArguments = propsFn ? args : props;\n const [springs, api] = useSpring(() => ({ from, ...restSpringProps }), []);\n useIsomorphicLayoutEffect7(() => {\n const element = ref.current;\n const {\n root,\n once,\n amount = \"any\",\n ...restArgs\n } = intersectionArguments ?? {};\n if (!element || once && isInView || typeof IntersectionObserver === \"undefined\")\n return;\n const activeIntersections = /* @__PURE__ */ new WeakMap();\n const onEnter = () => {\n if (to2) {\n api.start(to2);\n }\n setIsInView(true);\n const cleanup = () => {\n if (from) {\n api.start(from);\n }\n setIsInView(false);\n };\n return once ? void 0 : cleanup;\n };\n const handleIntersection = (entries) => {\n entries.forEach((entry) => {\n const onLeave = activeIntersections.get(entry.target);\n if (entry.isIntersecting === Boolean(onLeave)) {\n return;\n }\n if (entry.isIntersecting) {\n const newOnLeave = onEnter();\n if (is12.fun(newOnLeave)) {\n activeIntersections.set(entry.target, newOnLeave);\n } else {\n observer.unobserve(entry.target);\n }\n } else if (onLeave) {\n onLeave();\n activeIntersections.delete(entry.target);\n }\n });\n };\n const observer = new IntersectionObserver(handleIntersection, {\n root: root && root.current || void 0,\n threshold: typeof amount === \"number\" || Array.isArray(amount) ? amount : defaultThresholdOptions[amount],\n ...restArgs\n });\n observer.observe(element);\n return () => observer.unobserve(element);\n }, [intersectionArguments]);\n if (propsFn) {\n return [ref, springs];\n }\n return [ref, isInView];\n}\n\n// src/components/Spring.tsx\nfunction Spring({ children, ...props }) {\n return children(useSpring(props));\n}\n\n// src/components/Trail.tsx\nimport { is as is13 } from \"@react-spring/shared\";\nfunction Trail({\n items,\n children,\n ...props\n}) {\n const trails = useTrail(items.length, props);\n return items.map((item, index) => {\n const result = children(item, index);\n return is13.fun(result) ? result(trails[index]) : result;\n });\n}\n\n// src/components/Transition.tsx\nfunction Transition({\n items,\n children,\n ...props\n}) {\n return useTransition(items, props)(children);\n}\n\n// src/interpolate.ts\nimport { deprecateInterpolate as deprecateInterpolate2 } from \"@react-spring/shared\";\n\n// src/Interpolation.ts\nimport {\n is as is14,\n raf as raf5,\n each as each10,\n isEqual as isEqual2,\n toArray as toArray5,\n frameLoop as frameLoop3,\n getFluidValue as getFluidValue3,\n createInterpolator,\n Globals as G6,\n callFluidObservers as callFluidObservers3,\n addFluidObserver as addFluidObserver3,\n removeFluidObserver as removeFluidObserver2,\n hasFluidValue as hasFluidValue2\n} from \"@react-spring/shared\";\nimport {\n getAnimated as getAnimated3,\n setAnimated as setAnimated2,\n getAnimatedType as getAnimatedType2,\n getPayload as getPayload2\n} from \"@react-spring/animated\";\nvar Interpolation = class extends FrameValue {\n constructor(source, args) {\n super();\n this.source = source;\n /** Equals false when in the frameloop */\n this.idle = true;\n /** The inputs which are currently animating */\n this._active = /* @__PURE__ */ new Set();\n this.calc = createInterpolator(...args);\n const value = this._get();\n const nodeType = getAnimatedType2(value);\n setAnimated2(this, nodeType.create(value));\n }\n advance(_dt) {\n const value = this._get();\n const oldValue = this.get();\n if (!isEqual2(value, oldValue)) {\n getAnimated3(this).setValue(value);\n this._onChange(value, this.idle);\n }\n if (!this.idle && checkIdle(this._active)) {\n becomeIdle(this);\n }\n }\n _get() {\n const inputs = is14.arr(this.source) ? this.source.map(getFluidValue3) : toArray5(getFluidValue3(this.source));\n return this.calc(...inputs);\n }\n _start() {\n if (this.idle && !checkIdle(this._active)) {\n this.idle = false;\n each10(getPayload2(this), (node) => {\n node.done = false;\n });\n if (G6.skipAnimation) {\n raf5.batchedUpdates(() => this.advance());\n becomeIdle(this);\n } else {\n frameLoop3.start(this);\n }\n }\n }\n // Observe our sources only when we're observed.\n _attach() {\n let priority = 1;\n each10(toArray5(this.source), (source) => {\n if (hasFluidValue2(source)) {\n addFluidObserver3(source, this);\n }\n if (isFrameValue(source)) {\n if (!source.idle) {\n this._active.add(source);\n }\n priority = Math.max(priority, source.priority + 1);\n }\n });\n this.priority = priority;\n this._start();\n }\n // Stop observing our sources once we have no observers.\n _detach() {\n each10(toArray5(this.source), (source) => {\n if (hasFluidValue2(source)) {\n removeFluidObserver2(source, this);\n }\n });\n this._active.clear();\n becomeIdle(this);\n }\n /** @internal */\n eventObserved(event) {\n if (event.type == \"change\") {\n if (event.idle) {\n this.advance();\n } else {\n this._active.add(event.parent);\n this._start();\n }\n } else if (event.type == \"idle\") {\n this._active.delete(event.parent);\n } else if (event.type == \"priority\") {\n this.priority = toArray5(this.source).reduce(\n (highest, parent) => Math.max(highest, (isFrameValue(parent) ? parent.priority : 0) + 1),\n 0\n );\n }\n }\n};\nfunction isIdle(source) {\n return source.idle !== false;\n}\nfunction checkIdle(active) {\n return !active.size || Array.from(active).every(isIdle);\n}\nfunction becomeIdle(self) {\n if (!self.idle) {\n self.idle = true;\n each10(getPayload2(self), (node) => {\n node.done = true;\n });\n callFluidObservers3(self, {\n type: \"idle\",\n parent: self\n });\n }\n}\n\n// src/interpolate.ts\nvar to = (source, ...args) => new Interpolation(source, args);\nvar interpolate = (source, ...args) => (deprecateInterpolate2(), new Interpolation(source, args));\n\n// src/globals.ts\nimport {\n Globals,\n frameLoop as frameLoop4,\n createStringInterpolator\n} from \"@react-spring/shared\";\nGlobals.assign({\n createStringInterpolator,\n to: (source, args) => new Interpolation(source, args)\n});\nvar update = frameLoop4.advance;\n\n// src/index.ts\nimport {\n createInterpolator as createInterpolator2,\n useIsomorphicLayoutEffect as useIsomorphicLayoutEffect8,\n useReducedMotion,\n easings as easings2\n} from \"@react-spring/shared\";\nexport * from \"@react-spring/types\";\nexport {\n BailSignal,\n Controller,\n FrameValue,\n Globals,\n Interpolation,\n Spring,\n SpringContext,\n SpringRef,\n SpringValue,\n Trail,\n Transition,\n config,\n createInterpolator2 as createInterpolator,\n easings2 as easings,\n inferTo,\n interpolate,\n to,\n update,\n useChain,\n useInView,\n useIsomorphicLayoutEffect8 as useIsomorphicLayoutEffect,\n useReducedMotion,\n useResize,\n useScroll,\n useSpring,\n useSpringRef,\n useSpringValue,\n useSprings,\n useTrail,\n useTransition\n};\n//# sourceMappingURL=react-spring_core.modern.mjs.map","// src/index.ts\nimport { Globals } from \"@react-spring/core\";\nimport { unstable_batchedUpdates } from \"react-dom\";\nimport { createStringInterpolator, colors } from \"@react-spring/shared\";\nimport { createHost } from \"@react-spring/animated\";\n\n// src/applyAnimatedValues.ts\nvar isCustomPropRE = /^--/;\nfunction dangerousStyleValue(name, value) {\n if (value == null || typeof value === \"boolean\" || value === \"\")\n return \"\";\n if (typeof value === \"number\" && value !== 0 && !isCustomPropRE.test(name) && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name]))\n return value + \"px\";\n return (\"\" + value).trim();\n}\nvar attributeCache = {};\nfunction applyAnimatedValues(instance, props) {\n if (!instance.nodeType || !instance.setAttribute) {\n return false;\n }\n const isFilterElement = instance.nodeName === \"filter\" || instance.parentNode && instance.parentNode.nodeName === \"filter\";\n const { style, children, scrollTop, scrollLeft, viewBox, ...attributes } = props;\n const values = Object.values(attributes);\n const names = Object.keys(attributes).map(\n (name) => isFilterElement || instance.hasAttribute(name) ? name : attributeCache[name] || (attributeCache[name] = name.replace(\n /([A-Z])/g,\n // Attributes are written in dash case\n (n) => \"-\" + n.toLowerCase()\n ))\n );\n if (children !== void 0) {\n instance.textContent = children;\n }\n for (const name in style) {\n if (style.hasOwnProperty(name)) {\n const value = dangerousStyleValue(name, style[name]);\n if (isCustomPropRE.test(name)) {\n instance.style.setProperty(name, value);\n } else {\n instance.style[name] = value;\n }\n }\n }\n names.forEach((name, i) => {\n instance.setAttribute(name, values[i]);\n });\n if (scrollTop !== void 0) {\n instance.scrollTop = scrollTop;\n }\n if (scrollLeft !== void 0) {\n instance.scrollLeft = scrollLeft;\n }\n if (viewBox !== void 0) {\n instance.setAttribute(\"viewBox\", viewBox);\n }\n}\nvar isUnitlessNumber = {\n animationIterationCount: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n columns: true,\n flex: true,\n flexGrow: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n flexOrder: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowSpan: true,\n gridRowStart: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnSpan: true,\n gridColumnStart: true,\n fontWeight: true,\n lineClamp: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n // SVG-related properties\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true\n};\nvar prefixKey = (prefix, key) => prefix + key.charAt(0).toUpperCase() + key.substring(1);\nvar prefixes = [\"Webkit\", \"Ms\", \"Moz\", \"O\"];\nisUnitlessNumber = Object.keys(isUnitlessNumber).reduce((acc, prop) => {\n prefixes.forEach((prefix) => acc[prefixKey(prefix, prop)] = acc[prop]);\n return acc;\n}, isUnitlessNumber);\n\n// src/AnimatedStyle.ts\nimport { AnimatedObject } from \"@react-spring/animated\";\nimport {\n is,\n each,\n toArray,\n eachProp,\n FluidValue,\n getFluidValue,\n callFluidObservers,\n hasFluidValue,\n addFluidObserver,\n removeFluidObserver\n} from \"@react-spring/shared\";\nvar domTransforms = /^(matrix|translate|scale|rotate|skew)/;\nvar pxTransforms = /^(translate)/;\nvar degTransforms = /^(rotate|skew)/;\nvar addUnit = (value, unit) => is.num(value) && value !== 0 ? value + unit : value;\nvar isValueIdentity = (value, id) => is.arr(value) ? value.every((v) => isValueIdentity(v, id)) : is.num(value) ? value === id : parseFloat(value) === id;\nvar AnimatedStyle = class extends AnimatedObject {\n constructor({ x, y, z, ...style }) {\n const inputs = [];\n const transforms = [];\n if (x || y || z) {\n inputs.push([x || 0, y || 0, z || 0]);\n transforms.push((xyz) => [\n `translate3d(${xyz.map((v) => addUnit(v, \"px\")).join(\",\")})`,\n // prettier-ignore\n isValueIdentity(xyz, 0)\n ]);\n }\n eachProp(style, (value, key) => {\n if (key === \"transform\") {\n inputs.push([value || \"\"]);\n transforms.push((transform) => [transform, transform === \"\"]);\n } else if (domTransforms.test(key)) {\n delete style[key];\n if (is.und(value))\n return;\n const unit = pxTransforms.test(key) ? \"px\" : degTransforms.test(key) ? \"deg\" : \"\";\n inputs.push(toArray(value));\n transforms.push(\n key === \"rotate3d\" ? ([x2, y2, z2, deg]) => [\n `rotate3d(${x2},${y2},${z2},${addUnit(deg, unit)})`,\n isValueIdentity(deg, 0)\n ] : (input) => [\n `${key}(${input.map((v) => addUnit(v, unit)).join(\",\")})`,\n isValueIdentity(input, key.startsWith(\"scale\") ? 1 : 0)\n ]\n );\n }\n });\n if (inputs.length) {\n style.transform = new FluidTransform(inputs, transforms);\n }\n super(style);\n }\n};\nvar FluidTransform = class extends FluidValue {\n constructor(inputs, transforms) {\n super();\n this.inputs = inputs;\n this.transforms = transforms;\n this._value = null;\n }\n get() {\n return this._value || (this._value = this._get());\n }\n _get() {\n let transform = \"\";\n let identity = true;\n each(this.inputs, (input, i) => {\n const arg1 = getFluidValue(input[0]);\n const [t, id] = this.transforms[i](\n is.arr(arg1) ? arg1 : input.map(getFluidValue)\n );\n transform += \" \" + t;\n identity = identity && id;\n });\n return identity ? \"none\" : transform;\n }\n // Start observing our inputs once we have an observer.\n observerAdded(count) {\n if (count == 1)\n each(\n this.inputs,\n (input) => each(\n input,\n (value) => hasFluidValue(value) && addFluidObserver(value, this)\n )\n );\n }\n // Stop observing our inputs once we have no observers.\n observerRemoved(count) {\n if (count == 0)\n each(\n this.inputs,\n (input) => each(\n input,\n (value) => hasFluidValue(value) && removeFluidObserver(value, this)\n )\n );\n }\n eventObserved(event) {\n if (event.type == \"change\") {\n this._value = null;\n }\n callFluidObservers(this, event);\n }\n};\n\n// src/primitives.ts\nvar primitives = [\n \"a\",\n \"abbr\",\n \"address\",\n \"area\",\n \"article\",\n \"aside\",\n \"audio\",\n \"b\",\n \"base\",\n \"bdi\",\n \"bdo\",\n \"big\",\n \"blockquote\",\n \"body\",\n \"br\",\n \"button\",\n \"canvas\",\n \"caption\",\n \"cite\",\n \"code\",\n \"col\",\n \"colgroup\",\n \"data\",\n \"datalist\",\n \"dd\",\n \"del\",\n \"details\",\n \"dfn\",\n \"dialog\",\n \"div\",\n \"dl\",\n \"dt\",\n \"em\",\n \"embed\",\n \"fieldset\",\n \"figcaption\",\n \"figure\",\n \"footer\",\n \"form\",\n \"h1\",\n \"h2\",\n \"h3\",\n \"h4\",\n \"h5\",\n \"h6\",\n \"head\",\n \"header\",\n \"hgroup\",\n \"hr\",\n \"html\",\n \"i\",\n \"iframe\",\n \"img\",\n \"input\",\n \"ins\",\n \"kbd\",\n \"keygen\",\n \"label\",\n \"legend\",\n \"li\",\n \"link\",\n \"main\",\n \"map\",\n \"mark\",\n \"menu\",\n \"menuitem\",\n \"meta\",\n \"meter\",\n \"nav\",\n \"noscript\",\n \"object\",\n \"ol\",\n \"optgroup\",\n \"option\",\n \"output\",\n \"p\",\n \"param\",\n \"picture\",\n \"pre\",\n \"progress\",\n \"q\",\n \"rp\",\n \"rt\",\n \"ruby\",\n \"s\",\n \"samp\",\n \"script\",\n \"section\",\n \"select\",\n \"small\",\n \"source\",\n \"span\",\n \"strong\",\n \"style\",\n \"sub\",\n \"summary\",\n \"sup\",\n \"table\",\n \"tbody\",\n \"td\",\n \"textarea\",\n \"tfoot\",\n \"th\",\n \"thead\",\n \"time\",\n \"title\",\n \"tr\",\n \"track\",\n \"u\",\n \"ul\",\n \"var\",\n \"video\",\n \"wbr\",\n // SVG\n \"circle\",\n \"clipPath\",\n \"defs\",\n \"ellipse\",\n \"foreignObject\",\n \"g\",\n \"image\",\n \"line\",\n \"linearGradient\",\n \"mask\",\n \"path\",\n \"pattern\",\n \"polygon\",\n \"polyline\",\n \"radialGradient\",\n \"rect\",\n \"stop\",\n \"svg\",\n \"text\",\n \"tspan\"\n];\n\n// src/index.ts\nexport * from \"@react-spring/core\";\nGlobals.assign({\n batchedUpdates: unstable_batchedUpdates,\n createStringInterpolator,\n colors\n});\nvar host = createHost(primitives, {\n applyAnimatedValues,\n createAnimatedStyle: (style) => new AnimatedStyle(style),\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getComponentProps: ({ scrollTop, scrollLeft, ...props }) => props\n});\nvar animated = host.animated;\nexport {\n animated as a,\n animated\n};\n//# sourceMappingURL=react-spring_web.modern.mjs.map","import styled from 'styled-components';\nimport { animated } from '@react-spring/web';\nimport { StyledDataPointProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledDataPoint = styled(animated.g)<StyledDataPointProps>``;\n","import React, {\n forwardRef,\n KeyboardEventHandler,\n RefObject,\n useId,\n} from 'react';\nimport classNames from 'classnames';\n\nimport { Comp, Number, Text } from '@redsift/design-system';\nimport { Tooltip } from '@redsift/popovers';\n\nimport { DataPointProps } from './types';\nimport { StyledDataPoint } from './styles';\nimport { TooltipVariant } from '../../types';\n\nexport const DataPoint: Comp<DataPointProps<any>, SVGGElement> = forwardRef(\n (props, ref) => {\n const {\n children,\n className,\n data,\n id: propsId,\n index,\n isSelected: propsIsSelected,\n labelDecorator,\n onClick,\n role,\n tooltipVariant,\n ...forwardedProps\n } = props;\n const id = propsId ?? useId();\n\n const text = labelDecorator ? labelDecorator(data) : data.data.key;\n const hasText = text && tooltipVariant !== TooltipVariant.none;\n const tooltipValue =\n tooltipVariant === TooltipVariant.value\n ? data.data.value\n : tooltipVariant === TooltipVariant.percent && data.data.percent\n ? data.data.percent\n : undefined;\n const hasValue =\n tooltipValue &&\n [TooltipVariant.value, TooltipVariant.percent].includes(tooltipVariant!);\n const showTooltip =\n tooltipVariant !== TooltipVariant.none && (hasText || hasValue);\n\n const isEmpty = data.data.value === 0;\n\n const isSelectable = role === 'option';\n const isSelected = isSelectable && propsIsSelected === true;\n const isDeselected = isSelectable && propsIsSelected === false;\n\n const onKeyDown: KeyboardEventHandler<SVGElement> = (event) => {\n if (onClick) {\n event.stopPropagation();\n\n if (event.code === 'Enter' || event.code === 'Space') {\n event.preventDefault();\n onClick(data);\n }\n }\n };\n\n const DataPointComponent = (\n <StyledDataPoint\n tabIndex={onClick ? 0 : undefined}\n {...forwardedProps}\n className={classNames(className, `_${index}`, {\n selected: isSelected,\n deselected: isDeselected,\n })}\n ref={ref as RefObject<SVGGElement>}\n aria-label={\n showTooltip && !isEmpty ? `${text}: ${data.data.value}` : undefined\n }\n aria-labelledby={!showTooltip && !isEmpty ? `${id}-title` : undefined}\n aria-selected={isSelected ? true : isDeselected ? false : undefined}\n id={id}\n onClick={onClick ? () => onClick(data) : undefined}\n onKeyDown={onClick ? (e) => onKeyDown(e) : undefined}\n role={role ? role : onClick ? 'button' : undefined}\n $clickable={Boolean(onClick)}\n >\n {children}\n {!showTooltip && !isEmpty ? (\n <title id={`${id}-title`}>{`${text}: ${data.data.value}`}</title>\n ) : null}\n </StyledDataPoint>\n );\n\n if (showTooltip) {\n return (\n <Tooltip placement=\"right\">\n <Tooltip.Trigger>{DataPointComponent}</Tooltip.Trigger>\n <Tooltip.Content>\n <Text variant=\"caption\">\n {text}\n {hasText && hasValue ? ' - ' : null}\n {hasValue ? (\n <Number\n value={tooltipValue!}\n type={\n tooltipVariant === TooltipVariant.percent\n ? 'percent'\n : 'decimal'\n }\n variant=\"caption\"\n maximumFractionDigits={2}\n />\n ) : null}\n </Text>\n </Tooltip.Content>\n </Tooltip>\n );\n }\n\n return DataPointComponent;\n }\n);\n","import styled, { css } from 'styled-components';\nimport { StyledArcProps } from './types';\nimport { DataPoint } from '../DataPoint';\n\n/**\n * Component style.\n */\nexport const StyledArc = styled(DataPoint)<StyledArcProps>`\n ${({ $hasStroke }) =>\n $hasStroke\n ? css`\n path {\n stroke-width: 2px;\n stroke: #fff;\n }\n `\n : ''}\n\n ${({ $clickable }) =>\n $clickable\n ? css`\n cursor: pointer;\n\n &:hover,\n &:focus,\n &.focused {\n opacity: 0.8;\n outline: none;\n }\n\n &:focus-visible,\n &.focused {\n path {\n stroke: var(--redsift-color-default-primary);\n stroke-width: 4px;\n paint-order: stroke;\n }\n }\n `\n : ''}}\n`;\n","import { easings } from '@react-spring/web';\n\nexport const config = (() => ({\n config: {\n duration: 700,\n easing: easings.easeInOutQuad,\n },\n reset: true,\n immediate: false,\n}))();\n","import React, { forwardRef } from 'react';\nimport classNames from 'classnames';\nimport { animated, useSpring } from '@react-spring/web';\nimport { interpolate as d3interpolate } from 'd3';\n\nimport { Comp } from '@redsift/design-system';\n\nimport { ArcProps } from './types';\nimport { StyledArc } from './styles';\nimport { monochrome } from '../../scheme';\nimport { config } from '../../config';\n\nconst COMPONENT_NAME = 'Arc';\nconst CLASSNAME = 'redsift-arc';\nconst DEFAULT_PROPS: Partial<ArcProps> = {\n color: monochrome,\n index: 0,\n previousData: {\n data: {\n key: '',\n value: 0,\n },\n startAngle: 0,\n endAngle: 0,\n padAngle: 0,\n value: 0,\n index: 0,\n },\n};\n\nexport const Arc: Comp<ArcProps, SVGGElement> = forwardRef((props, ref) => {\n const { color, data, isSelected: propsIsSelected, onClick, role } = props;\n\n const { className, createArc, hasStroke, previousData, ...forwardedProps } =\n props;\n\n const interpolator = d3interpolate(previousData, data);\n\n const isSelectable = role === 'option';\n const isDeselected = isSelectable && propsIsSelected === false;\n\n const animatedProps = useSpring({\n ...config,\n to: async (next: (props?: object) => Promise<void>) => {\n await next({ t: 1 });\n },\n from: { t: 0 },\n });\n\n return (\n <StyledArc\n {...forwardedProps}\n ref={ref}\n className={classNames(Arc.className, className)}\n $clickable={Boolean(onClick)}\n $hasStroke={Boolean(hasStroke)}\n >\n <animated.path\n d={\n config.immediate\n ? (createArc(data) as unknown as string)\n : (animatedProps.t.to((t) =>\n createArc(interpolator(t))\n ) as unknown as string)\n }\n fill={isDeselected ? 'var(--redsift-color-neutral-lightgrey)' : color}\n />\n </StyledArc>\n );\n});\nArc.className = CLASSNAME;\nArc.defaultProps = DEFAULT_PROPS;\nArc.displayName = COMPONENT_NAME;\n","import styled from 'styled-components';\nimport { StyledArcsProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledArcs = styled.g<StyledArcsProps>``;\n","import React, { RefObject, forwardRef, useId } from 'react';\nimport classNames from 'classnames';\nimport { animated, useSpring } from '@react-spring/web';\nimport { interpolate as d3interpolate } from 'd3';\n\nimport { Comp } from '@redsift/design-system';\n\nimport { ArcsProps } from './types';\nimport { StyledArcs } from './styles';\nimport { Arc } from '../Arc';\nimport { config } from '../../config';\n\nconst COMPONENT_NAME = 'Arcs';\nconst CLASSNAME = 'redsift-arcs';\nconst DEFAULT_PROPS: Partial<ArcsProps> = {};\n\nexport const Arcs: Comp<ArcsProps, SVGGElement> = forwardRef((props, ref) => {\n const {\n arcs,\n className,\n color,\n hasLabels,\n hasStroke,\n id: propsId,\n labelDecorator,\n onClick,\n role,\n sliceProps,\n tooltipVariant,\n ...forwardedProps\n } = props;\n const id = propsId ?? useId();\n\n const animatedProps = useSpring({\n ...config,\n to: async (next: (props?: object) => Promise<void>) => {\n await next({ t: 1 });\n },\n from: { t: 0 },\n });\n\n return (\n <StyledArcs\n {...forwardedProps}\n className={classNames(Arcs.className, className)}\n ref={ref as RefObject<SVGGElement>}\n >\n <g className=\"arc-group\">\n {arcs.map((arc, index) => {\n const arcIndex = arc.index ?? index;\n const arcId = arc.id ?? `id${id}__arc-${arcIndex}`;\n\n return (\n <Arc\n {...sliceProps}\n color={color}\n hasStroke={hasStroke}\n labelDecorator={labelDecorator}\n onClick={onClick}\n role={role}\n tooltipVariant={tooltipVariant}\n {...arc}\n key={arcId}\n id={arcId}\n index={arcIndex}\n />\n );\n })}\n </g>\n {hasLabels ? (\n <g className=\"arc-label-group\">\n {arcs\n .filter((arc) => {\n const value = arc.data.data.value;\n const percent = arc.data.data.percent;\n return percent ? value > 0 && percent >= 0.1 : value > 0;\n })\n .map((arc, index) => {\n const arcIndex = arc.index ?? index;\n const arcId = arc.id ?? `id${id}__arc-${arcIndex}`;\n const arcLabelDecorator = arc.labelDecorator ?? labelDecorator;\n const interpolator = d3interpolate(arc.from, arc.data);\n\n return (\n <animated.text\n alignmentBaseline=\"middle\"\n className={`arc-label _${index}`}\n key={`${arcId}-label`}\n textAnchor=\"middle\"\n transform={\n config.immediate\n ? `translate(${arc.createArc.centroid(arc.data)})`\n : animatedProps.t.to(\n (t) =>\n `translate(${arc.createArc.centroid(\n interpolator(t)\n )})`\n )\n }\n >\n {arcLabelDecorator\n ? arcLabelDecorator(arc.data)\n : arc.data.data.key}\n </animated.text>\n );\n })}\n </g>\n ) : null}\n </StyledArcs>\n );\n});\nArcs.className = CLASSNAME;\nArcs.defaultProps = DEFAULT_PROPS;\nArcs.displayName = COMPONENT_NAME;\n","import { ComponentProps } from 'react';\nimport { ValueOf } from '@redsift/design-system';\nimport { AnyScale, TicksSpec } from '../../types';\n\n/**\n * Component variant.\n */\nexport const AxisVariant = {\n none: 'none',\n line: 'line',\n lineTick: 'lineTick',\n tick: 'tick',\n tickValue: 'tickValue',\n default: 'default',\n} as const;\nexport type AxisVariant = ValueOf<typeof AxisVariant>;\n\nexport const AxisPosition = {\n top: 'top',\n right: 'right',\n bottom: 'bottom',\n left: 'left',\n};\nexport type AxisPosition = ValueOf<typeof AxisPosition>;\n\n/**\n * Component props.\n */\nexport interface AxisProps extends Omit<ComponentProps<'g'>, 'scale'> {\n areLabelsRotated?: boolean;\n format?: string;\n legend?: string;\n legendOffset?: number;\n legendPosition?: 'start' | 'middle' | 'end';\n /** Length of the axis. */\n length?: number;\n /** Position of axis. top|bottom means this is an x axis, right|left means this is an y axis. */\n position?: AxisPosition;\n /** Scale (d3.js) used to generate the axis. */\n scale: AnyScale;\n tickPadding?: number;\n tickRotation?: number;\n tickSize?: number;\n tickValues?: TicksSpec;\n /** Variant. */\n variant?: AxisVariant;\n /** X position. */\n x?: number;\n /** Y position. */\n y?: number;\n}\n\nexport type StyledAxisProps = Omit<\n AxisProps,\n 'areXLabelsRotated' | 'size' | 'scale'\n> & {};\n","import styled from 'styled-components';\nimport { StyledAxisProps } from './types';\nimport { animated } from '@react-spring/web';\n\n/**\n * Component style.\n */\nexport const StyledAxis = styled(animated.g)<StyledAxisProps>`\n .redsift-axis__line,\n .redsift-axis-tick__line {\n fill: none;\n stroke: var(--redsift-color-neutral-black);\n shape-rendering: crispEdges;\n }\n\n text {\n font-family: var(--redsift-typography-font-family-source-code-pro);\n font-size: 10px;\n user-select: none;\n }\n`;\n","import {\n AnyScale,\n Coordinates,\n ScaleValue,\n ScaleWithBandwidth,\n TicksSpec,\n} from '../../types';\n\nconst getScaleTicks = (scale: AnyScale, spec?: TicksSpec) => {\n // specific values\n if (Array.isArray(spec)) {\n return spec;\n }\n\n // continuous scales\n if ('ticks' in scale) {\n // default behaviour\n if (spec === undefined) {\n return scale.ticks();\n }\n\n // specific tick count\n if (\n typeof spec === 'number' &&\n isFinite(spec) &&\n Math.floor(spec) === spec\n ) {\n return scale.ticks(spec);\n }\n }\n\n // non linear scale default\n return scale.domain();\n};\n\nconst centerScale = (scale: ScaleWithBandwidth) => {\n const bandwidth = scale.bandwidth();\n\n if (bandwidth === 0) return scale;\n\n let offset = bandwidth / 2;\n if (scale.round()) {\n offset = Math.round(offset);\n }\n\n return <T extends ScaleValue>(d: T) => (scale(d) ?? 0) + offset;\n};\n\nexport const computeTicks = ({\n axis,\n scale,\n ticksPosition,\n tickValues,\n tickSize,\n tickPadding,\n tickRotation,\n}: {\n axis: 'x' | 'y';\n scale: AnyScale;\n ticksPosition?: 'after' | 'before';\n tickValues?: TicksSpec;\n tickSize: number;\n tickPadding: number;\n tickRotation: number;\n}) => {\n const values = getScaleTicks(scale, tickValues);\n\n const position = 'bandwidth' in scale ? centerScale(scale) : scale;\n const line = { lineX: 0, lineY: 0 };\n const text = { textX: 0, textY: 0 };\n\n const isRTL = typeof document === 'object' ? document.dir === 'rtl' : false;\n let translate: (value: ScaleValue) => Coordinates;\n let textAlign = 'middle';\n let textBaseline = 'central';\n\n if (axis === 'x') {\n translate = (d) => ({ x: position(d) ?? 0, y: 0 });\n\n line.lineY = tickSize * (ticksPosition === 'after' ? 1 : -1);\n text.textY =\n (tickSize + tickPadding) * (ticksPosition === 'after' ? 1 : -1);\n\n if (ticksPosition === 'after') {\n textBaseline = 'text-before-edge';\n } else {\n textBaseline = 'alphabetic';\n }\n\n if (tickRotation === 0) {\n textAlign = 'middle';\n } else if (\n (ticksPosition === 'after' && tickRotation < 0) ||\n (ticksPosition === 'before' && tickRotation > 0)\n ) {\n textAlign = isRTL ? 'start' : 'end';\n textBaseline = 'middle';\n } else if (\n (ticksPosition === 'after' && tickRotation > 0) ||\n (ticksPosition === 'before' && tickRotation < 0)\n ) {\n textAlign = isRTL ? 'end' : 'start';\n textBaseline = 'middle';\n }\n } else {\n translate = (d) => ({ x: 0, y: position(d) ?? 0 });\n\n line.lineX = tickSize * (ticksPosition === 'after' ? 1 : -1);\n text.textX =\n (tickSize + tickPadding) * (ticksPosition === 'after' ? 1 : -1);\n\n if (ticksPosition === 'after') {\n textAlign = 'start';\n } else {\n textAlign = 'end';\n }\n }\n\n const ticks = values.map((value: ScaleValue) => ({\n key: value instanceof Date ? `${value.valueOf()}` : `${value}`,\n value,\n ...translate(value),\n ...line,\n ...text,\n }));\n\n return {\n ticks,\n textAlign,\n textBaseline,\n };\n};\n","import React, { forwardRef, RefObject, useRef } from 'react';\nimport classNames from 'classnames';\n\nimport { Comp } from '@redsift/design-system';\n\nimport { AxisProps, AxisPosition, AxisVariant } from './types';\nimport { StyledAxis } from './styles';\nimport { animated, useSpring, useTransition } from '@react-spring/web';\nimport { computeTicks } from './computeTicks';\nimport { config } from '../../config';\n\nconst COMPONENT_NAME = 'Axis';\nconst CLASSNAME = 'redsift-axis';\nconst DEFAULT_PROPS: Partial<AxisProps> = {\n position: AxisPosition.bottom,\n legendOffset: -32,\n legendPosition: 'end',\n tickPadding: 5,\n tickRotation: 0,\n tickSize: 5,\n variant: AxisVariant.default,\n x: 0,\n y: 0,\n};\n\nconst getAxisType = (position: AxisPosition) =>\n [AxisPosition.top, AxisPosition.bottom].includes(position) ? 'x' : 'y';\n\nexport const Axis: Comp<AxisProps, SVGGElement> = forwardRef((props, ref) => {\n const {\n className,\n length,\n legend,\n legendOffset,\n legendPosition,\n position,\n scale,\n tickPadding,\n tickRotation,\n tickSize,\n tickValues,\n variant,\n x,\n y,\n ...forwardedProps\n } = props;\n const axis = getAxisType(position!);\n\n const axisRef = (ref || useRef<SVGGElement>()) as RefObject<SVGGElement>;\n\n const animatedProps = useSpring({\n ...config,\n to: async (next: (props?: object) => Promise<void>) => {\n await next({\n lineX2: axis === 'x' ? length : 0,\n lineY2: axis === 'x' ? 0 : length,\n });\n },\n from: { lineX2: 0, lineY2: 0 },\n reset: false,\n });\n\n let legendNode = null;\n if (legend !== undefined) {\n let legendX = 0;\n let legendY = 0;\n let legendRotation = 0;\n let textAnchor;\n\n if (axis === 'y') {\n legendRotation = -90;\n legendX = legendOffset!;\n if (legendPosition === 'start') {\n textAnchor = 'start';\n legendY = length!;\n } else if (legendPosition === 'middle') {\n textAnchor = 'middle';\n legendY = length! / 2;\n } else if (legendPosition === 'end') {\n textAnchor = 'end';\n }\n } else {\n legendY = legendOffset!;\n if (legendPosition === 'start') {\n textAnchor = 'start';\n } else if (legendPosition === 'middle') {\n textAnchor = 'middle';\n legendX = length! / 2;\n } else if (legendPosition === 'end') {\n textAnchor = 'end';\n legendX = length!;\n }\n }\n\n legendNode = (\n <>\n <text\n transform={`translate(${legendX}, ${legendY}) rotate(${legendRotation})`}\n textAnchor={textAnchor}\n style={{\n dominantBaseline: 'central',\n }}\n >\n {legend}\n </text>\n </>\n );\n }\n\n const { ticks, textAlign, textBaseline } = computeTicks({\n axis,\n scale,\n ticksPosition: [AxisPosition.top, AxisPosition.left].includes(position!)\n ? 'before'\n : 'after',\n tickValues,\n tickSize: tickSize!,\n tickPadding: tickPadding!,\n tickRotation: tickRotation!,\n });\n\n const transition = useTransition<\n typeof ticks[0],\n { opacity: number; transform: string; textTransform: string }\n >(ticks, {\n ...config,\n keys: (tick) => tick.key,\n initial: (tick) => ({\n opacity: 1,\n transform: `translate(${tick.x},${tick.y})`,\n textTransform: `translate(${tick.textX},${tick.textY}) rotate(${tickRotation})`,\n }),\n from: (tick) => ({\n opacity: 0,\n transform: `translate(${tick.x},${tick.y})`,\n textTransform: `translate(${tick.textX},${tick.textY}) rotate(${tickRotation})`,\n }),\n enter: (tick) => ({\n opacity: 1,\n transform: `translate(${tick.x},${tick.y})`,\n textTransform: `translate(${tick.textX},${tick.textY}) rotate(${tickRotation})`,\n }),\n update: (tick) => ({\n opacity: 1,\n transform: `translate(${tick.x},${tick.y})`,\n textTransform: `translate(${tick.textX},${tick.textY}) rotate(${tickRotation})`,\n }),\n leave: {\n opacity: 0,\n },\n });\n\n return (\n <StyledAxis\n className={classNames(Axis.className, className)}\n {...forwardedProps}\n transform={`translate(${x},${y})`}\n ref={axisRef}\n >\n {variant === AxisVariant.default ||\n variant === AxisVariant.tick ||\n variant === AxisVariant.lineTick ||\n variant === AxisVariant.tickValue\n ? transition((transitionProps, tick, _state, tickIndex) => {\n return (\n <animated.g\n className={`${Axis.className}__tick`}\n key={tickIndex}\n transform={transitionProps.transform}\n style={{ opacity: transitionProps.opacity }}\n >\n <line\n className={`${Axis.className}-tick__line`}\n x1={0}\n x2={tick.lineX}\n y1={0}\n y2={tick.lineY}\n />\n {variant === AxisVariant.default ||\n variant === AxisVariant.tickValue ? (\n <animated.text\n dominantBaseline={textBaseline}\n textAnchor={textAlign}\n transform={transitionProps.textTransform}\n >\n {`${tick.value}`}\n </animated.text>\n ) : null}\n </animated.g>\n );\n })\n : null}\n\n {variant === AxisVariant.default ||\n variant === AxisVariant.line ||\n variant === AxisVariant.lineTick ? (\n <animated.line\n className={`${Axis.className}__line`}\n x1={0}\n x2={\n config.immediate\n ? axis === 'x'\n ? length\n : 0\n : animatedProps.lineX2\n }\n y1={0}\n y2={\n config.immediate\n ? axis === 'x'\n ? 0\n : length\n : animatedProps.lineY2\n }\n />\n ) : null}\n {legendNode}\n </StyledAxis>\n );\n});\nAxis.className = CLASSNAME;\nAxis.defaultProps = DEFAULT_PROPS;\nAxis.displayName = COMPONENT_NAME;\n","import { ScaleLinear as d3ScaleLinear } from 'd3';\nimport { ValueOf } from '@redsift/design-system';\nimport { BarDatum } from '../../types';\nimport { DataPointProps, StyledDataPointProps } from '../DataPoint';\n\n/**\n * Component variant.\n */\nexport const BarOrientation = {\n horizontal: 'horizontal',\n vertical: 'vertical',\n};\nexport type BarOrientation = ValueOf<typeof BarOrientation>;\n\n/**\n * Component props.\n */\nexport interface BarProps extends DataPointProps<BarDatum> {\n /** Gap between two siblings. */\n gap?: number;\n /** Height of the bar in horizontal orientation. */\n height?: number;\n /** Orientation of the bar. */\n orientation?: BarOrientation;\n /** A linear continuous scale defined over a numeric domain used to determine the width or height of the bar (depending on the orientation). */\n scale: d3ScaleLinear<number, number, never>;\n /** Width of the bar in vertical orientation. */\n width?: number;\n}\n\nexport type StyledBarProps = StyledDataPointProps & Omit<BarProps, 'scale'>;\n","import styled, { css } from 'styled-components';\nimport { StyledBarProps } from './types';\nimport { DataPoint } from '../DataPoint';\n\n/**\n * Component style.\n */\nexport const StyledBar = styled(DataPoint)<StyledBarProps>`\n rect {\n fill-opacity: 0.9;\n }\n\n ${({ $clickable }) =>\n $clickable\n ? css`\n cursor: pointer;\n\n &:hover,\n &:focus,\n &.focused {\n outline: none;\n rect {\n fill-opacity: 0.7;\n }\n }\n\n // &:focus-visible {\n // rect {\n // stroke: var(--redsift-color-default-primary);\n // stroke-width: 4px;\n // paint-order: stroke;\n // }\n // }\n\n @media (prefers-reduced-motion: no-preference) {\n &:focus-visible,\n &.focused {\n outline: 2px solid var(--redsift-color-default-primary);\n transition: outline-offset 75ms ease-out;\n }\n\n &:not(&:active)&:focus-visible,\n &:not(&:active)&.focused {\n transition-duration: 0.25s;\n }\n }\n\n &:not(&:active)&:focus-visible,\n &:not(&:active)&.focused {\n outline-offset: 0.2rem;\n }\n `\n : ''}}\n`;\n","import React, { forwardRef } from 'react';\nimport classNames from 'classnames';\nimport { animated, useSpring } from '@react-spring/web';\nimport { interpolate as d3interpolate } from 'd3';\n\nimport { Comp } from '@redsift/design-system';\n\nimport { BarOrientation, BarProps } from './types';\nimport { StyledBar } from './styles';\nimport { monochrome } from '../../scheme';\nimport { config } from '../../config';\n\nconst COMPONENT_NAME = 'Bar';\nconst CLASSNAME = 'redsift-bar';\nconst DEFAULT_PROPS: Partial<BarProps> = {\n color: monochrome,\n index: 0,\n gap: 5,\n height: 40,\n orientation: BarOrientation.horizontal,\n previousData: {\n data: {\n key: '',\n value: 0,\n },\n },\n width: 40,\n};\n\nexport const Bar: Comp<BarProps, SVGGElement> = forwardRef((props, ref) => {\n const {\n color,\n data,\n index,\n isSelected: propsIsSelected,\n labelDecorator,\n onClick,\n role,\n } = props;\n\n const {\n className,\n gap,\n height,\n orientation,\n previousData,\n scale,\n width,\n ...forwardedProps\n } = props;\n\n const interpolator = d3interpolate(\n previousData!.data?.value || 0,\n data.data.value\n );\n\n const text = labelDecorator ? labelDecorator(data) : data.data.key;\n const isSelectable = role === 'option';\n const isDeselected = isSelectable && propsIsSelected === false;\n\n const animatedProps = useSpring({\n ...config,\n to: async (next: (props?: object) => Promise<void>) => {\n await next({ t: 1 });\n },\n from: { t: 0 },\n });\n\n return (\n <StyledBar\n {...forwardedProps}\n ref={ref}\n className={classNames(Bar.className, className)}\n transform={\n orientation === BarOrientation.horizontal\n ? `translate(0, ${gap! * (index! + 1) + height! * index!})`\n : `translate(${gap! * (index! + 1) + width! * index!}, 0)`\n }\n $clickable={Boolean(onClick)}\n >\n {orientation === BarOrientation.horizontal ? (\n <animated.rect\n height={height}\n fill={isDeselected ? 'var(--redsift-color-neutral-lightgrey)' : color}\n width={\n config.immediate\n ? scale(data.data.value)\n : animatedProps.t.to((t) => scale(interpolator(t)))\n }\n />\n ) : (\n <animated.rect\n height={\n config.immediate\n ? scale(data.data.value)\n : animatedProps.t.to((t) => scale(interpolator(t)))\n }\n fill={isDeselected ? 'var(--redsift-color-neutral-lightgrey)' : color}\n width={width}\n />\n )}\n {orientation === BarOrientation.horizontal ? (\n <text x=\"10\" y={height! / 2} dy=\"0.35em\" aria-hidden={true}>\n {text}\n </text>\n ) : null}\n </StyledBar>\n );\n});\nBar.className = CLASSNAME;\nBar.defaultProps = DEFAULT_PROPS;\nBar.displayName = COMPONENT_NAME;\n","import enUS from './en-US.json';\nimport frFR from './fr-FR.json';\n\nexport default {\n 'en-US': enUS,\n 'fr-FR': frFR,\n};\n","import styled from 'styled-components';\nimport { Flexbox, baseStyling, focusRing } from '@redsift/design-system';\nimport { StyledChartContainerProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledChartContainer = styled.div<StyledChartContainerProps>`\n ${baseStyling}\n\n margin: 8px;\n padding: 8px;\n color: var(--redsift-color-neutral-black);\n\n .redsift-chart-container__content {\n display: flex;\n align-items: center;\n gap: 16px;\n font-family: var(--redsift-typography-font-family-source-code-pro);\n font-size: 11px;\n justify-content: center;\n margin: 8px 0;\n position: relative;\n\n ${focusRing}\n }\n\n svg {\n display: block;\n }\n`;\n\nexport const StyledChartContainerTitle = styled(\n Flexbox\n)<StyledChartContainerProps>``;\n\nexport const StyledChartContainerCaption = styled.p<StyledChartContainerProps>`\n font-family: var(--redsift-typography-caption-font-family);\n font-size: var(--redsift-typography-caption-font-size);\n font-weight: var(--redsift-typography-caption-font-weight);\n line-height: var(--redsift-typography-caption-line-height);\n`;\n","import React, { ComponentProps, forwardRef, RefObject, useId } from 'react';\nimport classNames from 'classnames';\n\nimport { useLocalizedStringFormatter } from 'react-aria';\nimport intlMessages from './intl';\n\nimport {\n Button,\n Comp,\n Heading,\n warnIfNoAccessibleLabelFound,\n} from '@redsift/design-system';\n\nimport { ChartContainerProps } from './types';\nimport {\n StyledChartContainer,\n StyledChartContainerCaption,\n StyledChartContainerTitle,\n} from './styles';\n\nconst COMPONENT_NAME = 'ChartContainer';\nconst CLASSNAME = 'redsift-chart-container';\nconst DEFAULT_PROPS: Partial<ChartContainerProps> = {};\n\nexport const ChartContainer: Comp<ChartContainerProps, HTMLDivElement> =\n forwardRef((props, ref) => {\n const {\n 'aria-label': propsAriaLabel,\n 'aria-labelledby': propsAriaLabelledby,\n caption,\n chartProps,\n chartRef,\n children,\n className,\n id: propsId,\n title,\n onReset,\n ...forwardedProps\n } = props;\n const id = propsId ?? useId();\n\n warnIfNoAccessibleLabelFound(\n props as ComponentProps<keyof JSX.IntrinsicElements>,\n [title]\n );\n\n const stringFormatter = useLocalizedStringFormatter(intlMessages);\n\n const ariaLabel = propsAriaLabel\n ? propsAriaLabel\n : propsAriaLabelledby || title\n ? undefined\n : undefined;\n const ariaLabelledby = propsAriaLabelledby\n ? propsAriaLabelledby\n : title\n ? `id${id}__title`\n : undefined;\n\n return (\n <StyledChartContainer\n {...forwardedProps}\n ref={ref as RefObject<HTMLDivElement>}\n className={classNames(ChartContainer.className, className)}\n id={id}\n >\n {title || onReset ? (\n <StyledChartContainerTitle\n alignItems=\"center\"\n justifyContent=\"space-between\"\n className={`${ChartContainer.className}__title`}\n id={`id${id}__title`}\n >\n {typeof title === 'string' ? (\n <Heading as=\"h3\">{title}</Heading>\n ) : title ? (\n title\n ) : null}\n\n {onReset ? (\n <Button\n className={`${ChartContainer.className}-title__reset-button`}\n color=\"question\"\n variant=\"unstyled\"\n onClick={onReset}\n >\n {stringFormatter.format('reset')}\n </Button>\n ) : null}\n </StyledChartContainerTitle>\n ) : null}\n\n {children ? (\n <div\n {...chartProps}\n ref={chartRef}\n className={`${ChartContainer.className}__content`}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n >\n {children}\n </div>\n ) : null}\n {caption ? (\n <StyledChartContainerCaption\n className={`${ChartContainer.className}__caption`}\n >\n {caption}\n </StyledChartContainerCaption>\n ) : null}\n </StyledChartContainer>\n );\n });\nChartContainer.className = CLASSNAME;\nChartContainer.defaultProps = DEFAULT_PROPS;\nChartContainer.displayName = COMPONENT_NAME;\n","import styled from 'styled-components';\nimport { StyledBarChartProps } from './types';\nimport { ChartContainer } from '../ChartContainer';\n\n/**\n * Component style.\n */\nexport const StyledBarChart = styled(ChartContainer)<StyledBarChartProps>``;\n\nexport const StyledBarChartEmptyText = styled.div<{\n $maxWidth: number;\n $textSize: number;\n}>`\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n pointer-events: none;\n\n > * {\n max-width: ${({ $maxWidth }) => $maxWidth}px;\n }\n\n > span {\n font-family: var(--redsift-typography-font-family-raleway);\n color: var(--redsift-color-neutral-black);\n font-size: ${({ $textSize }) => $textSize}px;\n line-height: ${({ $textSize }) => $textSize}px;\n }\n`;\n","import { ChartSize } from '../../types';\nimport { BarChartDimensions } from './types';\n\nexport const sizeToDimension = (\n size: ChartSize | BarChartDimensions\n): BarChartDimensions => {\n if (typeof size !== 'string') {\n return size;\n }\n\n switch (size) {\n case ChartSize.small:\n return { width: 300, height: 200, fontSize: 30 };\n case ChartSize.large:\n return { width: 500, height: 400, fontSize: 38 };\n case ChartSize.medium:\n default:\n return { width: 400, height: 300, fontSize: 34 };\n }\n};\n","import React, { forwardRef, RefObject, useRef } from 'react';\nimport { scaleLinear as d3scaleLinear, ScaleLinear as d3ScaleLinear } from 'd3';\n\nimport { AnyScale } from '../../types';\nimport { BarChartProps } from './types';\nimport { StyledBarChart, StyledBarChartEmptyText } from './styles';\nimport { Axis } from '../Axis';\nimport { sizeToDimension } from './utils';\n\nexport const EmptyBarChart = forwardRef<HTMLDivElement, BarChartProps>(\n (props, ref) => {\n const { className, emptyComponent, size, localeText, ...forwardedProps } =\n props;\n\n const chartDimensions = sizeToDimension(size!);\n const width = chartDimensions.width;\n const height = chartDimensions.height;\n const margins = { top: 16, left: 16, right: 16, bottom: 32 };\n const chartHeight = height - margins.top - margins.bottom;\n const chartWidth = width - margins.left - margins.right;\n\n const scaleRef = useRef<d3ScaleLinear<number, number>>();\n if (!scaleRef.current) {\n scaleRef.current = d3scaleLinear().domain([]).range([0, chartWidth]);\n }\n\n return (\n <StyledBarChart\n {...forwardedProps}\n className={className}\n ref={ref as RefObject<HTMLDivElement>}\n >\n {emptyComponent ?? (\n <>\n <StyledBarChartEmptyText\n $maxWidth={width}\n $textSize={chartDimensions.fontSize / 2}\n >\n <span>{localeText?.emptyChartText}</span>\n </StyledBarChartEmptyText>\n <svg width={width} height={height}>\n <g transform={`translate(${margins.left},${margins.top})`}>\n <Axis\n position=\"bottom\"\n length={chartWidth}\n scale={scaleRef.current as AnyScale}\n x={0}\n y={chartHeight}\n tickValues={4}\n />\n </g>\n </svg>\n </>\n )}\n </StyledBarChart>\n );\n }\n);\n","import React, { forwardRef, RefObject } from 'react';\n\nimport { BarChartProps } from './types';\nimport { StyledBarChart } from './styles';\n\nexport const LoadingBarChart = forwardRef<HTMLDivElement, BarChartProps>(\n (props, ref) => {\n const { className, ...forwardedProps } = props;\n\n return (\n <StyledBarChart\n {...forwardedProps}\n className={className}\n ref={ref as RefObject<HTMLDivElement>}\n >\n Loading...\n </StyledBarChart>\n );\n }\n);\n","import React, {\n forwardRef,\n RefObject,\n useEffect,\n useMemo,\n useRef,\n} from 'react';\nimport {\n scaleLinear as d3scaleLinear,\n ScaleLinear as d3ScaleLinear,\n sum as d3sum,\n} from 'd3';\n\nimport { AnyScale, CategoryData } from '../../types';\nimport { BarChartProps } from './types';\nimport { StyledBarChart } from './styles';\nimport { Bar } from '../Bar';\nimport { Axis } from '../Axis';\nimport { useFormatCategoricalData } from '../../hooks';\nimport { sizeToDimension } from './utils';\n\ninterface RenderedBarChartProps\n extends Required<Pick<BarChartProps, 'data'>>,\n Omit<BarChartProps, 'data'> {}\n\nexport const RenderedBarChart = forwardRef<\n HTMLDivElement,\n RenderedBarChartProps\n>((props, ref) => {\n const {\n areXLabelsRotated,\n barProps,\n caping,\n className,\n data: propsData,\n id,\n isBarSelected,\n labelDecorator,\n onBarClick,\n others,\n size,\n barRole,\n theme,\n tooltipVariant,\n ...forwardedProps\n } = props;\n\n const cache = useRef<CategoryData>();\n\n const { data, colorScale } = useFormatCategoricalData({\n data: propsData,\n theme: theme!,\n caping,\n others,\n });\n\n useEffect(() => {\n cache.current = data;\n });\n\n const chartDimensions = sizeToDimension(size!);\n const width = chartDimensions.width;\n const height = chartDimensions.height;\n const margins = { top: 16, left: 16, right: 16, bottom: 32 };\n const chartHeight = height - margins.top - margins.bottom;\n const chartWidth = width - margins.left - margins.right;\n const numberOfRows = data.length;\n const gap = 5;\n\n const scale = useMemo<d3ScaleLinear<number, number>>(\n () =>\n d3scaleLinear()\n .domain([0, Math.max(...data.map(({ value }) => value))])\n .range([0, chartWidth]),\n [size]\n );\n\n const barHeight = (chartHeight - (numberOfRows + 1) * gap) / numberOfRows;\n const total = d3sum(data, (d) => d.value);\n\n return (\n <StyledBarChart\n {...forwardedProps}\n id={id}\n className={className}\n ref={ref as RefObject<HTMLDivElement>}\n >\n <svg width={width} height={height}>\n <g transform={`translate(${margins.left},${margins.top})`}>\n <Axis\n position=\"bottom\"\n length={chartWidth}\n scale={scale as AnyScale}\n x={0}\n y={chartHeight}\n tickValues={4}\n tickRotation={areXLabelsRotated ? -45 : 0}\n />\n {data\n .filter((datum) => datum.value)\n .map((datum, index) => {\n const percent = datum.value / total;\n const to = {\n data: {\n ...datum,\n percent,\n },\n };\n const from = cache.current\n ? { data: cache.current[index] }\n : undefined;\n\n return (\n <Bar\n {...barProps}\n color={colorScale?.(to.data.key)!}\n data={to}\n gap={gap}\n height={barHeight}\n id={`id${id}__bar-${index}`}\n index={index}\n isSelected={Boolean(isBarSelected!(to))}\n key={`bar _${index}`}\n labelDecorator={labelDecorator}\n onClick={onBarClick}\n previousData={from!}\n role={barRole}\n scale={scale!}\n tooltipVariant={tooltipVariant}\n />\n );\n })}\n </g>\n </svg>\n </StyledBarChart>\n );\n});\n","import React, { forwardRef, useId } from 'react';\nimport classNames from 'classnames';\n\nimport { Comp } from '@redsift/design-system';\n\nimport { ChartSize, ColorTheme, TooltipVariant } from '../../types';\nimport { BarChartProps } from './types';\nimport { EmptyBarChart } from './EmptyBarChart';\nimport { LoadingBarChart } from './LoadingBarChart';\nimport { RenderedBarChart } from './RenderedBarChart';\n\nconst COMPONENT_NAME = 'BarChart';\nconst CLASSNAME = 'redsift-barchart';\nconst DEFAULT_PROPS: Partial<BarChartProps> = {\n isBarSelected: () => true,\n others: true,\n size: ChartSize.medium,\n theme: ColorTheme.default,\n tooltipVariant: TooltipVariant.value,\n localeText: {\n emptyChartText: 'No Data',\n },\n};\n\nexport const BarChart: Comp<BarChartProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const {\n areXLabelsRotated,\n caping,\n chartRef,\n className,\n data: propsData,\n emptyComponent,\n id: propsId,\n isBarSelected,\n labelDecorator,\n localeText,\n onBarClick,\n others,\n size,\n barRole,\n theme,\n tooltipVariant,\n ...forwardedProps\n } = props;\n const id = propsId ?? useId();\n\n if (propsData === undefined || propsData === null) {\n return <LoadingBarChart id={id} {...forwardedProps} ref={ref} />;\n }\n\n if (propsData.length === 0) {\n return (\n <EmptyBarChart\n data={propsData}\n emptyComponent={emptyComponent}\n id={id}\n localeText={localeText}\n size={size}\n {...forwardedProps}\n ref={ref}\n />\n );\n }\n\n return (\n <RenderedBarChart\n areXLabelsRotated={areXLabelsRotated}\n barRole={barRole}\n caping={caping}\n chartRef={chartRef}\n className={classNames(BarChart.className, className)}\n data={propsData}\n id={id}\n isBarSelected={isBarSelected}\n labelDecorator={labelDecorator}\n onBarClick={onBarClick}\n others={others}\n size={size}\n theme={theme}\n tooltipVariant={tooltipVariant}\n {...forwardedProps}\n ref={ref}\n />\n );\n }\n);\nBarChart.className = CLASSNAME;\nBarChart.defaultProps = DEFAULT_PROPS;\nBarChart.displayName = COMPONENT_NAME;\n","import styled, { css } from 'styled-components';\nimport { StyledDotProps } from './types';\nimport { DataPoint } from '../DataPoint';\n\n/**\n * Component style.\n */\nexport const StyledDot = styled(DataPoint)<StyledDotProps>`\n circle {\n fill-opacity: 0.7;\n }\n\n ${({ $clickable }) =>\n $clickable\n ? css`\n cursor: pointer;\n\n &:hover,\n &:focus {\n opacity: 0.5;\n outline: none;\n }\n\n &:focus-visible {\n circle {\n stroke: var(--redsift-color-default-primary);\n stroke-width: 4px;\n paint-order: stroke;\n }\n }\n `\n : ''}}\n`;\n","import React, { forwardRef } from 'react';\nimport classNames from 'classnames';\n\nimport { Comp } from '@redsift/design-system';\n\nimport { DotProps } from './types';\nimport { StyledDot } from './styles';\nimport { monochrome } from '../../scheme';\nimport { DotDatum } from '../../types';\n\nconst COMPONENT_NAME = 'Dot';\nconst CLASSNAME = 'redsift-dot';\nconst DEFAULT_PROPS: Partial<DotProps> = {\n color: monochrome,\n index: 0,\n labelDecorator: (datum: DotDatum) => {\n return datum.data.key[2] !== undefined && datum.data.key[2] !== null\n ? datum.data.key[2]\n : `${datum.data.key[0]},${datum.data.key[1]}`;\n },\n};\n\nexport const Dot: Comp<DotProps, SVGGElement> = forwardRef((props, ref) => {\n const { color, data, isSelected: propsIsSelected, onClick, role } = props;\n\n const { className, scaleX, scaleY, ...forwardedProps } = props;\n\n const isSelectable = role === 'option';\n const isDeselected = isSelectable && propsIsSelected === false;\n\n return (\n <StyledDot\n {...forwardedProps}\n ref={ref}\n className={classNames(Dot.className, className)}\n $clickable={Boolean(onClick)}\n >\n <circle\n cx={scaleX(data.x)}\n cy={scaleY(data.y)}\n r={data.r}\n fill={isDeselected ? 'var(--redsift-color-neutral-lightgrey)' : color}\n />\n </StyledDot>\n );\n});\nDot.className = CLASSNAME;\nDot.defaultProps = DEFAULT_PROPS;\nDot.displayName = COMPONENT_NAME;\n","import styled, { css } from 'styled-components';\nimport { StyledLegendProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledLegend = styled.ul<StyledLegendProps>`\n max-width: 262px;\n ${({ $width }) =>\n $width !== undefined\n ? css`\n width: ${$width};\n `\n : null}\n`;\n","import styled, { css } from 'styled-components';\nimport { StyledLegendItemProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledLegendItem = styled.li<StyledLegendItemProps>`\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: var(--redsift-typography-caption-font-size);\n\n > div {\n height: 16px;\n width: 16px;\n min-width: 16px;\n background-color: ${({ color }) => color};\n }\n\n ${({ $clickable }) =>\n $clickable\n ? css`\n cursor: pointer;\n\n &:hover,\n &:focus {\n outline: none;\n > div {\n opacity: 0.7;\n }\n }\n\n &:focus-visible {\n > div {\n outline: 4px solid var(--redsift-color-default-primary);\n }\n }\n `\n : ''}}\n`;\n","import React, { KeyboardEventHandler, forwardRef, useId } from 'react';\nimport classNames from 'classnames';\n\nimport { Comp, Number, Text } from '@redsift/design-system';\n\nimport { LegendItemProps } from './types';\nimport { StyledLegendItem } from './styles';\nimport { monochrome } from '../../scheme';\nimport { LabelVariant } from '../../types';\n\nconst COMPONENT_NAME = 'LegendItem';\nconst CLASSNAME = 'redsift-legend-item';\nconst DEFAULT_PROPS: Partial<LegendItemProps> = {\n color: monochrome,\n index: 0,\n};\n\nexport const LegendItem: Comp<LegendItemProps, HTMLLIElement> = forwardRef(\n (props, ref) => {\n const {\n index,\n isSelected: propsIsSelected,\n labelDecorator,\n onClick,\n role,\n } = props;\n\n const {\n className,\n color,\n data,\n id: propsId,\n total,\n variant,\n ...forwardedProps\n } = props;\n const id = propsId ?? useId();\n\n const text = labelDecorator ? labelDecorator(data) : data.data.key;\n const isEmpty = data.data.value === 0;\n\n const isSelectable = role === 'option';\n const isSelected = isSelectable && propsIsSelected === true;\n const isDeselected = isSelectable && propsIsSelected === false;\n\n const onKeyDown: KeyboardEventHandler<HTMLLIElement> = (event) => {\n if (onClick) {\n event.stopPropagation();\n\n if (event.code === 'Enter' || event.code === 'Space') {\n event.preventDefault();\n onClick(data);\n }\n }\n };\n\n return (\n <StyledLegendItem\n {...forwardedProps}\n className={classNames(LegendItem.className, className, `_${index}`, {\n selected: isSelected,\n deselected: isDeselected,\n })}\n color={isDeselected ? 'var(--redsift-color-neutral-lightgrey)' : color}\n ref={ref}\n aria-labelledby={!isEmpty ? `${id}-title` : undefined}\n aria-selected={isSelected ? true : isDeselected ? false : undefined}\n id={id}\n onClick={onClick ? () => onClick(data) : undefined}\n onKeyDown={onClick ? (e) => onKeyDown(e) : undefined}\n role={role ? role : onClick ? 'button' : undefined}\n tabIndex={onClick ? 0 : undefined}\n $clickable={Boolean(onClick)}\n >\n <div />\n {variant === LabelVariant.value ? (\n <>\n <Number\n as=\"b\"\n maximumFractionDigits={2}\n value={data.data.value}\n variant=\"inherit\"\n />\n <Text variant=\"caption\">{text}</Text>\n </>\n ) : variant === LabelVariant.percent && total ? (\n <>\n <Number\n as=\"b\"\n maximumFractionDigits={2}\n type=\"percent\"\n value={data.data.value / total}\n variant=\"inherit\"\n />\n <Text variant=\"caption\">{text}</Text>\n </>\n ) : (\n <Text variant=\"caption\">{text}</Text>\n )}\n </StyledLegendItem>\n );\n }\n);\nLegendItem.className = CLASSNAME;\nLegendItem.defaultProps = DEFAULT_PROPS;\nLegendItem.displayName = COMPONENT_NAME;\n","import React, { forwardRef } from 'react';\nimport classNames from 'classnames';\nimport { sum as d3sum } from 'd3';\n\nimport { Comp } from '@redsift/design-system';\n\nimport { LegendProps } from './types';\nimport { StyledLegend } from './styles';\nimport { LabelVariant } from '../../types';\nimport { LegendItem } from '../LegendItem';\n\nconst COMPONENT_NAME = 'Legend';\nconst CLASSNAME = 'redsift-chart-legend';\nconst DEFAULT_PROPS: Partial<LegendProps> = {\n isLegendItemSelected: () => true,\n variant: LabelVariant.label,\n};\n\nexport const Legend: Comp<LegendProps, HTMLUListElement> = forwardRef(\n (props, ref) => {\n const {\n className,\n data,\n isLegendItemSelected,\n labelDecorator,\n legendItemRole,\n onLegendItemClick,\n variant,\n width,\n ...forwardedProps\n } = props;\n const total = d3sum(data, (d) => d.value);\n\n return (\n <StyledLegend\n {...forwardedProps}\n className={classNames(Legend.className, className)}\n ref={ref}\n $width={width}\n >\n {data.map(({ color, ...datum }, index) => (\n <LegendItem\n data={{ data: datum }}\n color={color}\n total={total}\n variant={variant}\n index={index}\n isSelected={Boolean(isLegendItemSelected!({ data: datum }))}\n key={`legend-item _${index}`}\n labelDecorator={labelDecorator}\n onClick={onLegendItemClick}\n role={legendItemRole}\n />\n ))}\n </StyledLegend>\n );\n }\n);\nLegend.className = CLASSNAME;\nLegend.defaultProps = DEFAULT_PROPS;\nLegend.displayName = COMPONENT_NAME;\n","import {\n ChartDimensions,\n ChartSize,\n ChartTheme,\n ArcDatum,\n TooltipVariant,\n CategoryData,\n} from '../../types';\nimport { ValueOf } from '@redsift/design-system';\nimport { ArcProps } from '../Arc';\nimport { ChartContainerProps } from '../ChartContainer';\nimport { ComponentProps, ReactNode } from 'react';\n\n/**\n * Component variant.\n */\nexport const PieChartVariant = {\n plain: 'plain',\n spaced: 'spaced',\n donut: 'donut',\n spacedDonut: 'spacedDonut',\n} as const;\nexport type PieChartVariant = ValueOf<typeof PieChartVariant>;\n\n/**\n * Component's labels variant.\n */\nexport const PieChartLabelVariant = {\n none: 'none',\n internal: 'internal',\n externalLabel: 'externalLabel',\n externalLabelValue: 'externalLabelValue',\n externalLabelPercent: 'externalLabelPercent',\n} as const;\nexport type PieChartLabelVariant = ValueOf<typeof PieChartLabelVariant>;\n\ninterface LocaleText {\n emptyChartText: string;\n}\n\nexport type PieChartDimensions = ChartDimensions & {\n smallFontSize: number;\n fontSize: number;\n innerRadius: number;\n};\n\n/**\n * Component props.\n */\nexport interface PieChartProps extends ChartContainerProps {\n /** Number of categories to use, the rest being put into a new category called \"Others\". */\n caping?: number;\n /** Dataset to use to generate the chart, should be a list of objects containing a key and a value. */\n data?: CategoryData;\n /** Component to use if the chart is empty (replacing the default one). */\n emptyComponent?: ReactNode;\n /** Method to determine whether a slice is selected or not. */\n isSliceSelected?: (datum: ArcDatum) => boolean | undefined;\n /** Method to override the data labels. */\n labelDecorator?: (datum: ArcDatum) => string;\n /** Define whether the labels should be displayed inside or outside the charts and if they should contain raw or percentage values. */\n labelVariant?: PieChartLabelVariant;\n /** Labels and texts. */\n localeText?: LocaleText;\n /** Method to be called on a click on a slice. */\n onSliceClick?: (datum: ArcDatum) => void;\n /** Whether a category should be displayed for categories that has been removed by the caping option. Optionaly, this prop can be used to change the label of this category. */\n others?: boolean | string;\n /** PieChart size. */\n size?: ChartSize | PieChartDimensions;\n /** Native HTML props to forward to each slice. */\n sliceProps?: Omit<ComponentProps<'g'>, 'onClick' | 'ref' | 'width'>;\n /** Slice role. Used to indicate that slices are to be considered buttons or links. If an onClick is provided, the slices will have the role `button` unless specifically set to `link` with this prop. */\n sliceRole?: ArcProps['role'];\n /** Secondary text to be displayed in the middle of the chart, between the main text and subtext. Recommended to be used with donut variants only. */\n middleText?: string;\n /** Secondary text to be displayed in the middle of the chart, above the main text. Recommended to be used with `donut` variants only. */\n subtext?: string;\n /** Main text to be displayed in the middle of the chart. Recommended to be used with `donut` variants only. */\n text?: string;\n /** Color palette to use. You can choose among the list of available color palette or also choose to use the success/warning/danger theme for which you have to specify which key corresponds to which status. */\n theme?: ChartTheme;\n /** PieChart variant. */\n variant?: PieChartVariant;\n /** Tooltip variant. */\n tooltipVariant?: TooltipVariant;\n}\n\nexport type StyledPieChartProps = PieChartProps & {};\n","import styled, { css } from 'styled-components';\nimport { StyledPieChartProps } from './types';\nimport { ChartContainer } from '../ChartContainer';\n\n/**\n * Component style.\n */\nexport const StyledPieChart = styled(ChartContainer)<StyledPieChartProps>`\n .redsift-piechart__chart-wrapper {\n position: relative;\n }\n`;\n\nexport const StyledPieChartCenterText = styled.div<{\n $maxWidth: number;\n $textSize: number;\n $smallTextSize: number;\n}>`\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n pointer-events: none;\n\n > * {\n max-width: ${({ $maxWidth }) => $maxWidth}px;\n }\n\n > b {\n font-family: var(--redsift-typography-font-family-source-code-pro);\n color: var(--redsift-color-neutral-black);\n font-weight: var(--redsift-typography-font-weight-medium);\n font-size: ${({ $textSize }) => $textSize}px;\n line-height: ${({ $textSize }) => $textSize}px;\n\n &:nth-child(2) {\n font-weight: normal;\n margin-top: 8px;\n font-family: var(--redsift-typography-font-family-raleway);\n font-size: ${({ $smallTextSize }) => $smallTextSize}px;\n line-height: ${({ $smallTextSize }) => $smallTextSize}px;\n }\n }\n > span {\n color: var(--redsift-color-neutral-black);\n font-size: ${({ $textSize }) => $textSize}px;\n line-height: ${({ $textSize }) => $textSize}px;\n &:nth-child(3) {\n margin-top: 4px;\n font-size: ${({ $smallTextSize }) => $smallTextSize}px;\n line-height: ${({ $smallTextSize }) => $smallTextSize}px;\n }\n }\n > b + span {\n font-size: var(--redsift-typography-body-font-size);\n font-family: var(--redsift-typography-font-family-raleway);\n line-height: var(--redsift-typography-badge-line-height);\n color: rgba(0, 0, 0, 0.6);\n text-align: center;\n }\n`;\n\nexport const StyledPieChartEmptyText = styled.div<{\n $maxWidth: number;\n $textSize: number;\n $isDonut: boolean;\n}>`\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n pointer-events: none;\n\n > * {\n max-width: ${({ $maxWidth }) => $maxWidth}px;\n }\n\n > span {\n font-family: var(--redsift-typography-font-family-raleway);\n color: ${({ $isDonut }) =>\n $isDonut\n ? css`var(--redsift-color-neutral-midgrey)`\n : css`var(--redsift-color-neutral-black)`};\n font-size: ${({ $textSize }) => $textSize}px;\n line-height: ${({ $textSize }) => $textSize}px;\n }\n`;\n","import React, { forwardRef, RefObject } from 'react';\n\nimport { PieChartProps } from './types';\nimport { StyledPieChart } from './styles';\n\nexport const LoadingPieChart = forwardRef<HTMLDivElement, PieChartProps>(\n (props, ref) => {\n const { className, ...forwardedProps } = props;\n\n return (\n <StyledPieChart\n {...forwardedProps}\n className={className}\n ref={ref as RefObject<HTMLDivElement>}\n >\n Loading...\n </StyledPieChart>\n );\n }\n);\n","import { ChartSize } from '../../types';\nimport { PieChartDimensions } from './types';\n\nexport const sizeToDimension = (\n size: ChartSize | PieChartDimensions\n): PieChartDimensions => {\n if (typeof size !== 'string') {\n return size;\n }\n\n switch (size) {\n case ChartSize.small:\n return {\n width: 200,\n height: 200,\n smallFontSize: 13,\n fontSize: 30,\n innerRadius: 55,\n };\n case ChartSize.large:\n return {\n width: 300,\n height: 300,\n smallFontSize: 18,\n fontSize: 38,\n innerRadius: 80,\n };\n case ChartSize.medium:\n default:\n return {\n width: 240,\n height: 240,\n smallFontSize: 14,\n fontSize: 34,\n innerRadius: 65,\n };\n }\n};\n","import React, { forwardRef, RefObject } from 'react';\nimport { arc as d3arc } from 'd3';\n\nimport { ArcDatum } from '../../types';\nimport { PieChartProps, PieChartVariant } from './types';\nimport { StyledPieChart, StyledPieChartEmptyText } from './styles';\nimport { Arcs } from '../Arcs';\nimport { empty } from '../../scheme';\nimport { sizeToDimension } from './utils';\n\nexport const EmptyPieChart = forwardRef<HTMLDivElement, PieChartProps>(\n (props, ref) => {\n const {\n className,\n emptyComponent,\n localeText,\n size,\n variant,\n ...forwardedProps\n } = props;\n\n const isDonut =\n variant === PieChartVariant.donut ||\n variant === PieChartVariant.spacedDonut;\n\n const { width, height, fontSize, innerRadius } = sizeToDimension(size!);\n const externalRadiusPadding = 8;\n\n const createArc = d3arc<ArcDatum>()\n .innerRadius(isDonut ? innerRadius : 0)\n .outerRadius(width / 2 - externalRadiusPadding);\n\n return (\n <StyledPieChart\n {...forwardedProps}\n className={className}\n ref={ref as RefObject<HTMLDivElement>}\n >\n {emptyComponent ?? (\n <>\n <StyledPieChartEmptyText\n $maxWidth={innerRadius * 2}\n $textSize={fontSize / 2}\n $isDonut={isDonut}\n >\n <span>{localeText?.emptyChartText}</span>\n </StyledPieChartEmptyText>\n <svg width={width} height={height}>\n <Arcs\n arcs={[\n {\n createArc,\n previousData: {\n data: {\n key: '',\n value: 0,\n },\n startAngle: 0,\n endAngle: 0,\n padAngle: 0,\n value: 0,\n index: 0,\n },\n data: {\n data: {\n key: 'No Data',\n value: 0,\n },\n index: 0,\n value: 0,\n startAngle: 0,\n endAngle: 2 * Math.PI,\n padAngle: 0,\n },\n color: empty,\n },\n ]}\n transform={`translate(${width / 2} ${height / 2})`}\n />\n </svg>\n </>\n )}\n </StyledPieChart>\n );\n }\n);\n","import React, { forwardRef, RefObject, useEffect, useRef } from 'react';\nimport { arc as d3arc, pie as d3pie, sum as d3sum } from 'd3';\n\nimport {\n LabelVariant,\n ArcDatum,\n CategoryData,\n CategoryDatum,\n} from '../../types';\nimport { PieChartLabelVariant, PieChartProps, PieChartVariant } from './types';\nimport { StyledPieChartCenterText, StyledPieChart } from './styles';\nimport { Arcs } from '../Arcs';\nimport { useFormatCategoricalData } from '../../hooks';\nimport { Legend } from '../Legend';\nimport { sizeToDimension } from './utils';\nimport { PieChart } from './PieChart';\n\ninterface RenderedPieChartProps\n extends Required<Pick<PieChartProps, 'data'>>,\n Omit<PieChartProps, 'data'> {}\n\nexport const RenderedPieChart = forwardRef<\n HTMLDivElement,\n RenderedPieChartProps\n>((props, ref) => {\n const {\n caping,\n className,\n data: propsData,\n id,\n isSliceSelected,\n labelDecorator,\n labelVariant,\n middleText,\n onSliceClick,\n others,\n size,\n sliceProps,\n sliceRole,\n subtext,\n text,\n theme,\n tooltipVariant,\n variant,\n ...forwardedProps\n } = props;\n\n const cache = useRef<CategoryData>();\n\n const isDonut =\n variant === PieChartVariant.donut ||\n variant === PieChartVariant.spacedDonut;\n\n const { data, colorScale } = useFormatCategoricalData({\n data: propsData,\n theme: theme!,\n caping,\n others,\n });\n\n useEffect(() => {\n cache.current = data;\n });\n\n const { width, height, smallFontSize, fontSize, innerRadius } =\n sizeToDimension(size!);\n const externalRadiusPadding = 8;\n\n const createPie = d3pie<CategoryDatum>()\n .value((d) => d.value)\n .sort(null);\n const createArc = d3arc<ArcDatum>()\n .innerRadius(isDonut ? innerRadius : 0)\n .outerRadius(width / 2 - externalRadiusPadding);\n const pieData = createPie(data);\n const previousPieData = cache.current ? createPie(cache.current) : undefined;\n const total = d3sum(data, (d) => d.value);\n\n return (\n <StyledPieChart\n {...forwardedProps}\n className={className}\n id={id}\n ref={ref as RefObject<HTMLDivElement>}\n >\n <div className={`${PieChart.className}__chart-wrapper`}>\n {text ? (\n <StyledPieChartCenterText\n $maxWidth={innerRadius * 2}\n $textSize={fontSize}\n $smallTextSize={smallFontSize}\n >\n {subtext ? <b>{text}</b> : <span>{text}</span>}\n {middleText ? <b>{middleText}</b> : null}\n <span>{subtext}</span>\n </StyledPieChartCenterText>\n ) : null}\n <svg width={width} height={height}>\n <Arcs\n arcs={pieData\n .filter((datum) => datum.data.value)\n .map((datum, index) => {\n const percent = datum.data.value / total;\n const from = previousPieData\n ? previousPieData[index]\n : {\n data: {\n key: '',\n value: 0,\n },\n startAngle: 0,\n endAngle: 0,\n padAngle: 0,\n value: 0,\n index: index,\n };\n const to = { ...datum, data: { ...datum.data, percent } };\n\n return {\n color: colorScale?.(to.data.key),\n createArc,\n previousData: from,\n id: `id${id}__bar-${index}`,\n index,\n isSelected: isSliceSelected!(to),\n key: `id${id}__bar-${index}`,\n data: to,\n };\n })}\n hasLabels={labelVariant === PieChartLabelVariant.internal}\n hasStroke={\n variant === PieChartVariant.spaced ||\n variant === PieChartVariant.spacedDonut\n }\n labelDecorator={labelDecorator}\n onClick={onSliceClick}\n role={sliceRole}\n sliceProps={sliceProps}\n tooltipVariant={tooltipVariant}\n transform={`translate(${width / 2} ${height / 2})`}\n />\n </svg>\n </div>\n {labelVariant !== PieChartLabelVariant.none &&\n labelVariant !== PieChartLabelVariant.internal ? (\n <Legend\n data={data.map((d) => ({\n ...d,\n color: colorScale?.(d.key)!,\n }))}\n variant={\n labelVariant === PieChartLabelVariant.externalLabelValue\n ? LabelVariant.value\n : labelVariant === PieChartLabelVariant.externalLabelPercent\n ? LabelVariant.percent\n : LabelVariant.label\n }\n />\n ) : null}\n </StyledPieChart>\n );\n});\n","import React, { forwardRef, useId } from 'react';\nimport classNames from 'classnames';\n\nimport { Comp } from '@redsift/design-system';\n\nimport { ChartSize, ColorTheme, TooltipVariant } from '../../types';\nimport { PieChartLabelVariant, PieChartProps, PieChartVariant } from './types';\nimport { LoadingPieChart } from './LoadingPieChart';\nimport { EmptyPieChart } from './EmptyPieChart';\nimport { RenderedPieChart } from './RenderedPieChart';\n\nconst COMPONENT_NAME = 'PieChart';\nconst CLASSNAME = 'redsift-piechart';\nconst DEFAULT_PROPS: Partial<PieChartProps> = {\n isSliceSelected: () => true,\n labelVariant: PieChartLabelVariant.none,\n others: true,\n size: ChartSize.medium,\n theme: ColorTheme.default,\n variant: PieChartVariant.plain,\n tooltipVariant: TooltipVariant.value,\n localeText: {\n emptyChartText: 'No Data',\n },\n};\n\nexport const PieChart: Comp<PieChartProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const {\n caping,\n chartRef,\n className,\n data: propsData,\n emptyComponent,\n id: propsId,\n isSliceSelected,\n labelDecorator,\n labelVariant,\n localeText,\n middleText,\n onSliceClick,\n others,\n size,\n sliceRole,\n subtext,\n text,\n theme,\n tooltipVariant,\n variant,\n ...forwardedProps\n } = props;\n const id = propsId ?? useId();\n\n if (propsData === undefined || propsData === null) {\n return <LoadingPieChart id={id} {...forwardedProps} ref={ref} />;\n }\n\n if (propsData.length === 0) {\n return (\n <EmptyPieChart\n data={propsData}\n emptyComponent={emptyComponent}\n id={id}\n localeText={localeText}\n size={size}\n variant={variant}\n {...forwardedProps}\n ref={ref}\n />\n );\n }\n\n return (\n <RenderedPieChart\n caping={caping}\n chartRef={chartRef}\n className={classNames(PieChart.className, className)}\n data={propsData}\n id={id}\n isSliceSelected={isSliceSelected}\n labelDecorator={labelDecorator}\n labelVariant={labelVariant}\n middleText={middleText}\n onSliceClick={onSliceClick}\n others={others}\n size={size}\n sliceRole={sliceRole}\n subtext={subtext}\n text={text}\n theme={theme}\n tooltipVariant={tooltipVariant}\n variant={variant}\n {...forwardedProps}\n ref={ref}\n />\n );\n }\n);\nPieChart.className = CLASSNAME;\nPieChart.defaultProps = DEFAULT_PROPS;\nPieChart.displayName = COMPONENT_NAME;\n","import {\n ChartDimensions,\n ChartSize,\n ChartTheme,\n TooltipVariant,\n DotDatum,\n CoordinatesCategoryData,\n} from '../../types';\nimport { ValueOf } from '@redsift/design-system';\nimport { ChartContainerProps } from '../ChartContainer';\nimport { MutableRefObject, ReactNode } from 'react';\nimport { DotProps } from '../Dot';\nimport { ScaleLinear as d3ScaleLinear } from 'd3';\nimport { AxisVariant } from '../Axis';\nimport { LegendProps } from '../Legend';\n\n/**\n * Component variant.\n */\nexport const ScatterPlotVariant = {\n default: 'default',\n gridded: 'gridded',\n} as const;\nexport type ScatterPlotVariant = ValueOf<typeof ScatterPlotVariant>;\n\n/**\n * Component's labels variant.\n */\nexport const ScatterPlotLabelVariant = {\n none: 'none',\n externalLabel: 'externalLabel',\n externalLabelValue: 'externalLabelValue',\n externalLabelPercent: 'externalLabelPercent',\n} as const;\nexport type ScatterPlotLabelVariant = ValueOf<typeof ScatterPlotLabelVariant>;\n\ninterface LocaleText {\n emptyChartText: string;\n}\n\nexport type ScatterPlotDimensions = ChartDimensions & {\n fontSize: number;\n};\n\n/**\n * Component props.\n */\nexport interface ScatterPlotProps extends ChartContainerProps {\n /** Dataset to use to generate the chart. */\n data?: CoordinatesCategoryData;\n /** Slice role. Used to indicate that dots are to be considered buttons or links. If an onClick is provided, the dots will have the role `button` unless specifically set to `link` with this prop. */\n dotRole?: DotProps['role'];\n /** Component to use if the chart is empty (replacing the default one). */\n emptyComponent?: ReactNode;\n /** Whether the scatter plot dots are selectable using brush or not. */\n isBrushable?: boolean;\n /** Method to determine whether a dot is selected or not. */\n isDotSelected?: (datum: DotDatum) => boolean | undefined;\n /** Method to override the data labels. */\n labelDecorator?: (datum: DotDatum) => string;\n /** Define whether the labels should be displayed inside or outside the charts and if they should contain raw or percentage values. */\n labelVariant?: ScatterPlotLabelVariant;\n /** Props to forward to the Legend block. Can be used to make the legend selectable. */\n legendProps?: Omit<LegendProps, 'data' | 'ref' | 'variant' | 'width'>;\n /** Labels and texts. */\n localeText?: LocaleText;\n /** Method called on brush. */\n onBrush?: (\n selection: [[number, number], [number, number]] | null,\n scaleX: d3ScaleLinear<number, number>,\n scaleY: d3ScaleLinear<number, number>\n ) => void;\n /** Method called on brush end. */\n onBrushEnd?: (\n selection: [[number, number], [number, number]] | null,\n scaleX?: d3ScaleLinear<number, number>,\n scaleY?: d3ScaleLinear<number, number>\n ) => void;\n /** Method to be called on a click on a dot. */\n onDotClick?: (datum: DotDatum) => void;\n /** ScatterPlot size. */\n size?: ChartSize | ScatterPlotDimensions;\n /** Reference to the SVG tag. */\n svgRef?: MutableRefObject<SVGSVGElement>;\n /** Color palette to use. You can choose among the list of available color palette or also choose to use the success/warning/danger theme for which you have to specify which key corresponds to which status. */\n theme?: ChartTheme;\n /** Tooltip variant. */\n tooltipVariant?: TooltipVariant;\n /** Variant. */\n variant?: ScatterPlotVariant;\n /** X axis variant. */\n xAxisVariant?: AxisVariant;\n /** Y axis variant. */\n yAxisVariant?: AxisVariant;\n}\n\nexport type StyledScatterPlotProps = ScatterPlotProps & {};\n","import styled from 'styled-components';\nimport { StyledScatterPlotProps } from './types';\nimport { ChartContainer } from '../ChartContainer';\n\n/**\n * Component style.\n */\nexport const StyledScatterPlot = styled(\n ChartContainer\n)<StyledScatterPlotProps>``;\n\nexport const StyledScatterPlotEmptyText = styled.div<{\n $maxWidth: number;\n $textSize: number;\n}>`\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n pointer-events: none;\n\n > * {\n max-width: ${({ $maxWidth }) => $maxWidth}px;\n }\n\n > span {\n font-family: var(--redsift-typography-font-family-raleway);\n color: var(--redsift-color-neutral-black);\n font-size: ${({ $textSize }) => $textSize}px;\n line-height: ${({ $textSize }) => $textSize}px;\n }\n`;\n","import React, { forwardRef, RefObject } from 'react';\n\nimport { ScatterPlotProps } from './types';\nimport { StyledScatterPlot } from './styles';\n\nexport const LoadingScatterPlot = forwardRef<HTMLDivElement, ScatterPlotProps>(\n (props, ref) => {\n const { className, ...forwardedProps } = props;\n\n return (\n <StyledScatterPlot\n {...forwardedProps}\n className={className}\n ref={ref as RefObject<HTMLDivElement>}\n >\n Loading...\n </StyledScatterPlot>\n );\n }\n);\n","import { ScaleLinear as d3ScaleLinear } from 'd3';\n\nimport { CoordinatesCategoryData, CoordinatesCategoryDatum } from '../../types';\n\nimport { ChartSize } from '../../types';\nimport { ScatterPlotDimensions } from './types';\n\nexport const sizeToDimension = (\n size: ChartSize | ScatterPlotDimensions\n): ScatterPlotDimensions => {\n if (typeof size !== 'string') {\n return size;\n }\n\n switch (size) {\n case ChartSize.small:\n return { width: 600, height: 300, fontSize: 30 };\n case ChartSize.medium:\n default:\n return { width: 750, height: 375, fontSize: 34 };\n case ChartSize.large:\n return { width: 900, height: 450, fontSize: 38 };\n }\n};\n\nexport const BASE_NUMBER_OF_TICKS = 20;\n\nexport const getClosestLineIndex = (\n value: number,\n scale: d3ScaleLinear<number, number, never>\n) => {\n const ticks = scale.ticks(BASE_NUMBER_OF_TICKS);\n const delta = ticks[1] - ticks[0];\n const index = Math.round(value / delta);\n const roundValue = index * delta;\n return [index, roundValue];\n};\n\nexport const group = (\n data: CoordinatesCategoryData,\n x: d3ScaleLinear<number, number, never>,\n y: d3ScaleLinear<number, number, never>\n) => {\n const groupDict: Record<\n string,\n {\n category: string;\n x: number;\n y: number;\n data: CoordinatesCategoryDatum;\n points: CoordinatesCategoryData;\n }\n > = {};\n\n data.forEach((d) => {\n const [i, rx] = getClosestLineIndex(d.key[0], x);\n const [j, ry] = getClosestLineIndex(d.key[1], y);\n\n const key = `${i}_${j}_${d.key[2]}`;\n if (!(key in groupDict)) {\n groupDict[key] = {\n category: d.key[2] as string,\n x: rx,\n y: ry,\n data: {\n key: d.key,\n value: 0,\n },\n points: [],\n };\n }\n\n groupDict[key].points.push(d);\n groupDict[key].data.value += 1;\n });\n\n return Object.values(groupDict);\n};\n\nexport const countBy = (arr: CoordinatesCategoryData) => {\n const counts = arr.reduce(\n (prev, curr) => (\n (prev[curr.key[2] as string] =\n ++(prev[curr.key[2] as string] as number) || 1),\n prev\n ),\n {} as Record<string, number>\n );\n\n return Object.keys(counts)\n .map((key) => ({ key: key, value: counts[key] as number }))\n .sort((a, b) =>\n a.value === b.value\n ? a.key > b.key\n ? 1\n : -1\n : a.value < b.value\n ? 1\n : -1\n );\n};\n","import React, { forwardRef, RefObject, useEffect, useRef } from 'react';\nimport { scaleLinear as d3scaleLinear } from 'd3';\n\nimport { AnyScale, JSONArray } from '../../types';\nimport { ScatterPlotProps } from './types';\nimport { StyledScatterPlot, StyledScatterPlotEmptyText } from './styles';\nimport { Axis } from '../Axis';\nimport { sizeToDimension } from './utils';\n\nexport const EmptyScatterPlot = forwardRef<HTMLDivElement, ScatterPlotProps>(\n (props, ref) => {\n const {\n className,\n data: propsData,\n emptyComponent,\n localeText,\n size,\n ...forwardedProps\n } = props;\n\n const cache = useRef<JSONArray>();\n\n const data = propsData;\n\n useEffect(() => {\n cache.current = data;\n });\n\n const chartDimensions = sizeToDimension(size!);\n const width = chartDimensions.width;\n const height = chartDimensions.height;\n const margins = { top: 16, left: 48, right: 16, bottom: 48 };\n const chartWidth = width - margins.left - margins.right;\n\n return (\n <StyledScatterPlot\n {...forwardedProps}\n className={className}\n ref={ref as RefObject<HTMLDivElement>}\n >\n {emptyComponent ?? (\n <>\n <StyledScatterPlotEmptyText\n $maxWidth={width}\n $textSize={chartDimensions.fontSize / 2}\n >\n <span>{localeText?.emptyChartText}</span>\n </StyledScatterPlotEmptyText>\n <svg width={width} height={height}>\n <g transform={`translate(${margins.left},${margins.top})`}>\n <Axis\n position=\"bottom\"\n length={width - 32}\n scale={\n d3scaleLinear()\n .domain([])\n .range([0, chartWidth]) as AnyScale\n }\n x={0}\n y={height}\n tickValues={4}\n />\n </g>\n </svg>\n </>\n )}\n </StyledScatterPlot>\n );\n }\n);\n","import React, { forwardRef, RefObject, useEffect, useRef } from 'react';\nimport {\n BrushBehavior as d3BrushBehavior,\n descending as d3descending,\n extent as d3extent,\n max as d3max,\n min as d3min,\n scaleLinear as d3scaleLinear,\n scaleSqrt as d3scaleSqrt,\n select as d3select,\n} from 'd3';\n\nimport { AnyScale, JSONArray, LabelVariant } from '../../types';\nimport {\n ScatterPlotLabelVariant,\n ScatterPlotProps,\n ScatterPlotVariant,\n} from './types';\nimport { StyledScatterPlot } from './styles';\nimport { useZoom, useColor, useBrush } from '../../hooks';\nimport { Axis } from '../Axis';\nimport { Legend } from '../Legend';\nimport { Dot } from '../Dot';\nimport { BASE_NUMBER_OF_TICKS, countBy, group, sizeToDimension } from './utils';\n\ninterface RenderedScatterPlotProps\n extends Required<Pick<ScatterPlotProps, 'data'>>,\n Omit<ScatterPlotProps, 'data'> {}\n\nexport const RenderedScatterPlot = forwardRef<\n HTMLDivElement,\n RenderedScatterPlotProps\n>((props, ref) => {\n const {\n isBrushable,\n className,\n data: propsData,\n dotRole,\n id,\n isDotSelected,\n labelDecorator,\n labelVariant,\n legendProps,\n onBrush,\n onBrushEnd,\n onDotClick,\n size,\n theme,\n tooltipVariant,\n variant,\n xAxisVariant,\n yAxisVariant,\n ...forwardedProps\n } = props;\n\n const cache = useRef<JSONArray>();\n\n const data = propsData.filter(\n (datum) =>\n datum.value &&\n typeof datum.key[0] === 'number' &&\n !Number.isNaN(datum.key[0]) &&\n typeof datum.key[1] === 'number' &&\n !Number.isNaN(datum.key[1])\n );\n\n useEffect(() => {\n cache.current = data;\n });\n\n const chartDimensions = sizeToDimension(size!);\n const width = chartDimensions.width;\n const height = chartDimensions.height;\n const margins = { top: 16, left: 48, right: 16, bottom: 48 };\n const chartHeight = height - margins.top - margins.bottom;\n const chartWidth = width - margins.left - margins.right;\n const minSize = d3min([chartWidth, chartHeight]) as number;\n\n const extendedScaleX = (() => {\n const domain = d3extent(data, (d) => d.key[0]) as [number, number];\n const gap = domain[1] - domain[0];\n domain[0] -= gap * 0.1;\n domain[1] += gap * 0.1;\n return d3scaleLinear().domain(domain).range([0, chartWidth]).nice();\n })();\n const extendedScaleY = (() => {\n const domain = d3extent(data, (d) => d.key[1]) as [number, number];\n const gap = domain[1] - domain[0];\n domain[0] -= gap * 0.1;\n domain[1] += gap * 0.1;\n return d3scaleLinear().domain(domain).range([chartHeight, 0]).nice();\n })();\n\n const hasCategory =\n data[0] &&\n data[0].key.length >= 3 &&\n data[0].key[2] !== null &&\n data[0].key[2] !== undefined;\n const countsByCategory = hasCategory ? countBy(data) : undefined;\n const colorScale = useColor({\n data: countsByCategory || data,\n theme: theme!,\n category: 'key',\n });\n\n const svgRef = useRef<SVGSVGElement>();\n const brushRef = useRef<d3BrushBehavior<unknown>>();\n const svgBrushRef = useRef<SVGGElement>();\n const { scaleX, scaleY, transform } = useZoom({\n svgRef,\n scaleX: extendedScaleX,\n scaleY: extendedScaleY,\n size,\n onZoom: () => {\n if (brushRef.current && svgBrushRef.current) {\n brushRef.current.clear(d3select(svgBrushRef.current));\n\n onBrushEnd?.(null);\n }\n },\n });\n useBrush({\n brushRef,\n svgRef: svgBrushRef,\n extent: [\n [0, 0],\n [chartWidth, chartHeight],\n ],\n scaleX,\n scaleY,\n isBrushable,\n isGridded: variant === ScatterPlotVariant.gridded,\n onBrush,\n onBrushEnd,\n });\n\n const circles =\n variant === ScatterPlotVariant.gridded\n ? group(data, scaleX, scaleY).sort((a, b) =>\n d3descending(a.points.length, b.points.length)\n )\n : data.map((d) => ({\n category: d.key[2],\n x: d.key[0],\n y: d.key[1],\n data: {\n key: d.key,\n value: 1,\n },\n points: [d],\n }));\n const globalSize =\n variant === ScatterPlotVariant.gridded\n ? d3scaleSqrt()\n .domain([1, Math.max(d3max(circles, (d) => d.points.length)!, 1)])\n .range([3, minSize / BASE_NUMBER_OF_TICKS / 2])\n : undefined;\n const legendWidth = useRef<string>();\n if (countsByCategory && !legendWidth.current) {\n legendWidth.current = `${\n Math.max(\n ...countsByCategory.map((d) => d.key.length + String(d.value).length)\n ) *\n 8 +\n 32\n }px`;\n }\n\n return (\n <StyledScatterPlot\n {...forwardedProps}\n id={id}\n className={className}\n ref={ref as RefObject<HTMLDivElement>}\n >\n <svg\n ref={svgRef as RefObject<SVGSVGElement>}\n width={width}\n height={height}\n >\n <g\n ref={svgBrushRef as RefObject<SVGGElement>}\n transform={`translate(${margins.left},${margins.top})`}\n />\n <g transform={`translate(${margins.left},${margins.top})`}>\n <g>\n {circles.map((circle, index) => {\n const scaleXDomain = scaleX.domain();\n const scaleYDomain = scaleY.domain();\n\n if (\n circle.x! < scaleXDomain[0] ||\n circle.x! > scaleXDomain[1] ||\n circle.y! < scaleYDomain[0] ||\n circle.y! > scaleYDomain[1]\n ) {\n return null;\n }\n\n const to = {\n ...circle,\n data: {\n ...circle.data,\n percent: circle.category\n ? circle.data.value /\n countsByCategory?.find(\n ({ key }) => key === circle.category\n )?.value!\n : undefined,\n },\n r:\n variant === ScatterPlotVariant.gridded\n ? globalSize!(circle.points.length) /\n (transform.k < 1 ? transform.k : 1)\n : 4,\n };\n\n return (\n <Dot\n color={colorScale?.(circle.category!)}\n data={to}\n isSelected={Boolean(isDotSelected?.(to))}\n key={`circle _${index}`}\n labelDecorator={labelDecorator}\n onClick={onDotClick}\n role={dotRole}\n scaleX={scaleX}\n scaleY={scaleY}\n tooltipVariant={tooltipVariant}\n />\n );\n })}\n </g>\n </g>\n <g transform={`translate(${margins.left},${margins.top})`}>\n <Axis\n position=\"left\"\n length={chartHeight}\n scale={scaleY as AnyScale}\n x={0}\n y={0}\n tickValues={8}\n variant={xAxisVariant}\n />\n <Axis\n position=\"bottom\"\n length={chartWidth}\n scale={scaleX as AnyScale}\n x={0}\n y={chartHeight}\n tickValues={8}\n variant={yAxisVariant}\n />\n </g>\n </svg>\n {hasCategory && labelVariant !== ScatterPlotLabelVariant.none ? (\n <Legend\n data={countsByCategory!.map((d) => ({\n ...d,\n color: colorScale?.(d.key)!,\n }))}\n variant={\n labelVariant === ScatterPlotLabelVariant.externalLabelValue\n ? LabelVariant.value\n : labelVariant === ScatterPlotLabelVariant.externalLabelPercent\n ? LabelVariant.percent\n : LabelVariant.label\n }\n width={legendWidth.current}\n {...legendProps}\n />\n ) : null}\n </StyledScatterPlot>\n );\n});\n","import React, { forwardRef, useId } from 'react';\nimport classNames from 'classnames';\n\nimport { Comp } from '@redsift/design-system';\n\nimport { ChartSize, ColorTheme, TooltipVariant } from '../../types';\nimport {\n ScatterPlotLabelVariant,\n ScatterPlotProps,\n ScatterPlotVariant,\n} from './types';\nimport { LoadingScatterPlot } from './LoadingScatterPlot';\nimport { EmptyScatterPlot } from './EmptyScatterPlot';\nimport { RenderedScatterPlot } from './RenderedScatterPlot';\nimport { AxisVariant } from '../Axis';\n\nconst COMPONENT_NAME = 'ScatterPlot';\nconst CLASSNAME = 'redsift-scatterplot';\nconst DEFAULT_PROPS: Partial<ScatterPlotProps> = {\n labelVariant: ScatterPlotLabelVariant.externalLabel,\n localeText: {\n emptyChartText: 'No Data',\n },\n size: ChartSize.medium,\n theme: ColorTheme.default,\n tooltipVariant: TooltipVariant.none,\n variant: ScatterPlotVariant.default,\n xAxisVariant: AxisVariant.default,\n yAxisVariant: AxisVariant.default,\n};\n\nexport const ScatterPlot: Comp<ScatterPlotProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const {\n className,\n data: propsData,\n dotRole,\n emptyComponent,\n id: propsId,\n isDotSelected,\n labelVariant,\n localeText,\n onBrush,\n onBrushEnd,\n onDotClick,\n size,\n theme,\n tooltipVariant,\n variant,\n\n ...forwardedProps\n } = props;\n const id = propsId ?? useId();\n\n // console.log(propsData);\n\n if (propsData === undefined || propsData === null) {\n return <LoadingScatterPlot id={id} {...forwardedProps} ref={ref} />;\n }\n\n if (propsData.length === 0) {\n return (\n <EmptyScatterPlot\n data={propsData}\n emptyComponent={emptyComponent}\n localeText={localeText}\n size={size}\n {...forwardedProps}\n ref={ref}\n />\n );\n }\n\n return (\n <RenderedScatterPlot\n className={classNames(ScatterPlot.className, className)}\n data={propsData}\n dotRole={dotRole}\n id={id}\n isDotSelected={isDotSelected}\n labelVariant={labelVariant}\n localeText={localeText}\n onBrush={onBrush}\n onBrushEnd={onBrushEnd}\n onDotClick={onDotClick}\n size={size}\n theme={theme}\n tooltipVariant={tooltipVariant}\n variant={variant}\n {...forwardedProps}\n ref={ref}\n />\n );\n }\n);\nScatterPlot.className = CLASSNAME;\nScatterPlot.defaultProps = DEFAULT_PROPS;\nScatterPlot.displayName = COMPONENT_NAME;\n"],"names":["getRoundedIntermediaryPoint","selection","scaleX","scaleY","xTicks","ticks","xDelta","yTicks","yDelta","Math","round","invert","useBrush","_ref","brushRef","propsBrushRef","svgRef","extent","isBrushable","isGridded","onBrush","onBrushEnd","useRef","useEffect","current","d3brush","keyModifiers","filter","event","shiftKey","on","sourceEvent","d3select","call","move","monochrome","RedsiftDataVizColorBlueDefault","empty","RedsiftDataVizColorGreyDark","scheme","default","RedsiftDataVizColorGreenDefault","RedsiftDataVizColorPinkDefault","RedsiftDataVizColorAquaDefault","RedsiftDataVizColorBrownDefault","RedsiftDataVizColorRedDefault","RedsiftDataVizColorYellowDefault","RedsiftDataVizColorPurpleDefault","RedsiftDataVizColorOrangeDefault","RedsiftDataVizColorGreyDefault","dark","RedsiftDataVizColorGreenDark","RedsiftDataVizColorPinkDark","RedsiftDataVizColorAquaDark","RedsiftDataVizColorBrownDark","RedsiftDataVizColorRedDark","RedsiftDataVizColorYellowDark","RedsiftDataVizColorPurpleDark","RedsiftDataVizColorOrangeDark","RedsiftDataVizColorBlueDark","darker","RedsiftDataVizColorGreenDarker","RedsiftDataVizColorPinkDarker","RedsiftDataVizColorAquaDarker","RedsiftDataVizColorBrownDarker","RedsiftDataVizColorRedDarker","RedsiftDataVizColorYellowDarker","RedsiftDataVizColorPurpleDarker","RedsiftDataVizColorOrangeDarker","RedsiftDataVizColorBlueDarker","RedsiftDataVizColorGreyDarker","darkerer","RedsiftDataVizColorGreenDarkerer","RedsiftDataVizColorPinkDarkerer","RedsiftDataVizColorAquaDarkerer","RedsiftDataVizColorBrownDarkerer","RedsiftDataVizColorRedDarkerer","RedsiftDataVizColorYellowDarkerer","RedsiftDataVizColorPurpleDarkerer","RedsiftDataVizColorOrangeDarkerer","RedsiftDataVizColorBlueDarkerer","RedsiftDataVizColorGreyDarkerer","light","RedsiftDataVizColorGreenLight","RedsiftDataVizColorPinkLight","RedsiftDataVizColorAquaLight","RedsiftDataVizColorBrownLight","RedsiftDataVizColorRedLight","RedsiftDataVizColorYellowLight","RedsiftDataVizColorPurpleLight","RedsiftDataVizColorOrangeLight","RedsiftDataVizColorBlueLight","RedsiftDataVizColorGreyLight","lighter","RedsiftDataVizColorGreenLighter","RedsiftDataVizColorPinkLighter","RedsiftDataVizColorAquaLighter","RedsiftDataVizColorBrownLighter","RedsiftDataVizColorRedLighter","RedsiftDataVizColorYellowLighter","RedsiftDataVizColorPurpleLighter","RedsiftDataVizColorOrangeLighter","RedsiftDataVizColorBlueLighter","RedsiftDataVizColorGreyLighter","lighterer","RedsiftDataVizColorGreenLighterer","RedsiftDataVizColorPinkLighterer","RedsiftDataVizColorAquaLighterer","RedsiftDataVizColorBrownLighterer","RedsiftDataVizColorRedLighterer","RedsiftDataVizColorYellowLighterer","RedsiftDataVizColorPurpleLighterer","RedsiftDataVizColorOrangeLighterer","RedsiftDataVizColorBlueLighterer","RedsiftDataVizColorGreyLighterer","successDangerScheme","success","warning","danger","neutral","getColorScale","theme","domain","isEmpty","d3colors","d3scaleOrdinal","range","unknown","Object","keys","includes","values","useColor","data","category","colorScale","useMemo","map","d","useFormatCategoricalData","caping","others","computedData","undefined","sort","a","b","value","key","slice","reduce","acc","curr","index","_objectSpread","useZoom","defaultTransform","k","x","y","size","onZoom","zx","zy","transform","setTransform","useState","zoom","d3zoom","scaleExtent","rescaleX","interpolate","d3interpolateRound","rescaleY","TooltipVariant","none","label","percent","LabelVariant","ChartSize","small","medium","large","ColorTheme","useRef2","useState2","useRef3","useEffect2","useEffect3","useRef4","useEffect4","is2","is3","isAnimatedString2","is4","each2","is5","eachProp2","DEFAULT_PROPS","G","config","G2","G3","raf2","FluidValue2","G4","getFluidValue2","getAnimated2","toArray2","raf3","G5","frameLoop2","callFluidObservers2","eachProp3","is6","toArray3","each3","eachProp4","flush2","raf4","flushCalls2","addFluidObserver2","each4","is7","is8","each5","useContext2","useIsomorphicLayoutEffect2","is9","is11","useMemo2","toArray4","useIsomorphicLayoutEffect4","useOnce3","each7","useForceUpdate2","useContext3","usePrev2","React2","getAnimatedType2","setAnimated2","isEqual2","getAnimated3","is14","getFluidValue3","toArray5","each10","getPayload2","G6","raf5","frameLoop3","hasFluidValue2","addFluidObserver3","removeFluidObserver2","callFluidObservers3","Globals","createStringInterpolator","colors","StyledDataPoint","styled","animated","g","DataPoint","forwardRef","props","ref","children","className","id","propsId","isSelected","propsIsSelected","labelDecorator","onClick","role","tooltipVariant","forwardedProps","_objectWithoutProperties","_excluded","useId","text","hasText","tooltipValue","hasValue","showTooltip","isSelectable","isDeselected","onKeyDown","stopPropagation","code","preventDefault","DataPointComponent","React","createElement","_extends","tabIndex","classNames","selected","deselected","e","$clickable","Boolean","Tooltip","placement","Trigger","Content","Text","variant","Number","type","maximumFractionDigits","StyledArc","$hasStroke","css","_ref2","duration","easing","easings","easeInOutQuad","reset","immediate","COMPONENT_NAME","CLASSNAME","color","previousData","startAngle","endAngle","padAngle","Arc","createArc","hasStroke","interpolator","d3interpolate","animatedProps","useSpring","to","next","t","from","path","fill","defaultProps","displayName","StyledArcs","Arcs","arcs","hasLabels","sliceProps","arc","_arc$index","_arc$id","arcIndex","arcId","_arc$index2","_arc$id2","_arc$labelDecorator","arcLabelDecorator","alignmentBaseline","textAnchor","centroid","AxisVariant","line","lineTick","tick","tickValue","AxisPosition","top","right","bottom","left","StyledAxis","getScaleTicks","scale","spec","Array","isArray","isFinite","floor","centerScale","bandwidth","offset","_scale","computeTicks","axis","ticksPosition","tickValues","tickSize","tickPadding","tickRotation","position","lineX","lineY","textX","textY","isRTL","document","dir","translate","textAlign","textBaseline","_position","_position2","Date","valueOf","legendOffset","legendPosition","getAxisType","Axis","length","legend","axisRef","lineX2","lineY2","legendNode","legendX","legendY","legendRotation","Fragment","style","dominantBaseline","transition","useTransition","initial","opacity","textTransform","enter","update","leave","transitionProps","_state","tickIndex","x1","x2","y1","y2","BarOrientation","horizontal","vertical","StyledBar","gap","height","orientation","width","Bar","_data","rect","dy","enUS","frFR","StyledChartContainer","div","baseStyling","focusRing","StyledChartContainerTitle","Flexbox","StyledChartContainerCaption","p","ChartContainer","propsAriaLabel","propsAriaLabelledby","caption","chartProps","chartRef","title","onReset","warnIfNoAccessibleLabelFound","stringFormatter","useLocalizedStringFormatter","intlMessages","ariaLabel","ariaLabelledby","alignItems","justifyContent","Heading","as","Button","format","StyledBarChart","StyledBarChartEmptyText","$maxWidth","$textSize","_ref3","sizeToDimension","fontSize","EmptyBarChart","emptyComponent","localeText","chartDimensions","margins","chartHeight","chartWidth","scaleRef","d3scaleLinear","emptyChartText","LoadingBarChart","RenderedBarChart","areXLabelsRotated","barProps","propsData","isBarSelected","onBarClick","barRole","cache","numberOfRows","max","barHeight","total","d3sum","datum","BarChart","StyledDot","Dot","cx","cy","r","StyledLegend","ul","$width","StyledLegendItem","li","LegendItem","isLegendItemSelected","Legend","legendItemRole","onLegendItemClick","_excluded2","PieChartVariant","plain","spaced","donut","spacedDonut","PieChartLabelVariant","internal","externalLabel","externalLabelValue","externalLabelPercent","StyledPieChart","StyledPieChartCenterText","_ref4","$smallTextSize","_ref5","_ref6","_ref7","_ref8","_ref9","StyledPieChartEmptyText","_ref10","_ref11","$isDonut","_ref12","_ref13","LoadingPieChart","smallFontSize","innerRadius","EmptyPieChart","isDonut","externalRadiusPadding","d3arc","outerRadius","PI","RenderedPieChart","isSliceSelected","labelVariant","middleText","onSliceClick","sliceRole","subtext","createPie","d3pie","pieData","previousPieData","PieChart","ScatterPlotVariant","gridded","ScatterPlotLabelVariant","StyledScatterPlot","StyledScatterPlotEmptyText","LoadingScatterPlot","BASE_NUMBER_OF_TICKS","getClosestLineIndex","delta","roundValue","group","groupDict","forEach","i","rx","j","ry","points","push","countBy","arr","counts","prev","EmptyScatterPlot","RenderedScatterPlot","dotRole","isDotSelected","legendProps","onDotClick","xAxisVariant","yAxisVariant","isNaN","minSize","d3min","extendedScaleX","d3extent","nice","extendedScaleY","hasCategory","countsByCategory","svgBrushRef","clear","circles","d3descending","globalSize","d3scaleSqrt","d3max","legendWidth","String","circle","_countsByCategory$fin","scaleXDomain","scaleYDomain","find","ScatterPlot"],"mappings":"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"}
|