diff --git a/.changeset/renovate-21ac08c.md b/.changeset/renovate-21ac08c.md new file mode 100644 index 0000000000..a608965bb0 --- /dev/null +++ b/.changeset/renovate-21ac08c.md @@ -0,0 +1,12 @@ +--- +'@ultraviolet/ui': patch +--- + +Updated dependency `@nivo/bar` to `0.99.0`. +Updated dependency `@nivo/core` to `0.99.0`. +Updated dependency `@nivo/line` to `0.99.0`. +Updated dependency `@nivo/pie` to `0.99.0`. +Updated dependency `@nivo/scales` to `0.99.0`. +Updated dependency `@nivo/treemap` to `0.99.0`. + +`LineChart`: ⚠️ Breaking change: type of `point` in `tooltipFunction` has changed slightly: use `point.x` instead of `point.data.x` (and similarly `point.y` instead of `point.data.y`). `xFormatted` and `yFormatted` remain unchanged \ No newline at end of file diff --git a/packages/ui/package.json b/packages/ui/package.json index 82b0e2bc09..5a209c79f1 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -73,12 +73,13 @@ "watch:build": "vite build --config vite.config.ts --watch" }, "dependencies": { - "@nivo/bar": "0.89.1", - "@nivo/core": "0.89.1", - "@nivo/line": "0.89.1", - "@nivo/pie": "0.89.1", - "@nivo/scales": "0.89.0", - "@nivo/treemap": "0.89.1", + "@nivo/bar": "0.99.0", + "@nivo/core": "0.99.0", + "@nivo/line": "0.99.0", + "@nivo/pie": "0.99.0", + "@nivo/scales": "0.99.0", + "@nivo/theming": "0.99.0", + "@nivo/treemap": "0.99.0", "@scaleway/fuzzy-search": "1.0.2", "@scaleway/random-name": "5.1.4", "@uiw/codemirror-extensions-langs": "4.25.9", diff --git a/packages/ui/src/components/BarChart/__tests__/__snapshots__/index.test.tsx.snap b/packages/ui/src/components/BarChart/__tests__/__snapshots__/index.test.tsx.snap index 8478b9e06e..0cab3a8cb4 100644 --- a/packages/ui/src/components/BarChart/__tests__/__snapshots__/index.test.tsx.snap +++ b/packages/ui/src/components/BarChart/__tests__/__snapshots__/index.test.tsx.snap @@ -9,7 +9,7 @@ exports[`barChart > renders correctly with data 1`] = ` style="height: 537px;" >
@@ -25,7 +25,7 @@ exports[`barChart > renders correctly with data transformer 1`] = ` style="height: 537px;" >
@@ -41,7 +41,7 @@ exports[`barChart > renders correctly with multiple series 1`] = ` style="height: 537px;" >
@@ -57,7 +57,7 @@ exports[`barChart > renders correctly with negative values 1`] = ` style="height: 537px;" >
@@ -73,7 +73,7 @@ exports[`barChart > renders correctly without data 1`] = ` style="height: 537px;" >
diff --git a/packages/ui/src/components/BarChart/index.tsx b/packages/ui/src/components/BarChart/index.tsx index beb2278dab..0acecdf6d3 100644 --- a/packages/ui/src/components/BarChart/index.tsx +++ b/packages/ui/src/components/BarChart/index.tsx @@ -34,7 +34,10 @@ type BarChartProps = { tooltipFunction?: ( props: BarTooltipProps, ) => ComponentProps - chartProps?: Partial> + chartProps?: Partial> & { + minValue?: number + maxValue?: number + } 'data-testid'?: string style?: CSSProperties } @@ -109,6 +112,13 @@ export const BarChart = ({ margin={margin} theme={getNivoTheme(theme)} tooltip={tooltip} + valueScale={ + chartProps?.valueScale ?? { + type: 'linear', + min: chartProps?.minValue, + max: chartProps?.maxValue, + } + } {...chartProps} /> diff --git a/packages/ui/src/components/LineChart/CustomLegend.tsx b/packages/ui/src/components/LineChart/CustomLegend.tsx index c824f2ba45..fd9d976d81 100644 --- a/packages/ui/src/components/LineChart/CustomLegend.tsx +++ b/packages/ui/src/components/LineChart/CustomLegend.tsx @@ -12,8 +12,8 @@ import { getAverage, getCurrent, getMax, getMin, getSelected } from './helpers' import { Cell } from './LegendCell' import { backgroundColorLegend, lineChartStyle } from './styles.css' +import type { Serie } from './helpers' import type { DatumValue } from '@nivo/core' -import type { Serie } from '@nivo/line' type Transformer = (value: DatumValue) => string diff --git a/packages/ui/src/components/LineChart/Tooltip.tsx b/packages/ui/src/components/LineChart/Tooltip.tsx index 29386772dc..32c035224a 100644 --- a/packages/ui/src/components/LineChart/Tooltip.tsx +++ b/packages/ui/src/components/LineChart/Tooltip.tsx @@ -6,10 +6,10 @@ import { Text } from '../Text' import { colorLine, lineChartStyle } from './styles.css' -import type { Point } from '@nivo/line' +import type { LineSeries, Point } from '@nivo/line' type LineChartTooltipProps = { - point: Point + point: Point xFormatted?: string yFormatted?: string } @@ -24,7 +24,7 @@ export const LineChartTooltip = ({ diff --git a/packages/ui/src/components/LineChart/__stories__/CustomTooltip.stories.tsx b/packages/ui/src/components/LineChart/__stories__/CustomTooltip.stories.tsx index 160e7aba02..793c82aeb7 100644 --- a/packages/ui/src/components/LineChart/__stories__/CustomTooltip.stories.tsx +++ b/packages/ui/src/components/LineChart/__stories__/CustomTooltip.stories.tsx @@ -7,7 +7,7 @@ export const CustomTooltip = Template.bind({}) CustomTooltip.args = { tooltipFunction: ({ point }) => ({ - xFormatted: `Date: ${format(new Date(point.data.x), 'MM-y')}`, + xFormatted: `Date: ${format(new Date(point.x), 'MM-y')}`, yFormatted: `Valeur: ${point.data.yFormatted}`, }), axisFormatters: { diff --git a/packages/ui/src/components/LineChart/__stories__/FormattedAxisAndPoints.stories.tsx b/packages/ui/src/components/LineChart/__stories__/FormattedAxisAndPoints.stories.tsx index 9507d3643f..0dd8f554fc 100644 --- a/packages/ui/src/components/LineChart/__stories__/FormattedAxisAndPoints.stories.tsx +++ b/packages/ui/src/components/LineChart/__stories__/FormattedAxisAndPoints.stories.tsx @@ -12,7 +12,7 @@ FormattedAxisAndPoints.args = { }, data: lineChartHoursData, pointFormatters: { - x: value => format(new Date(value), 'dd-MM-y hh:mm'), - y: value => `${value.toString()} liters`, + x: value => format(new Date(value ?? ''), 'dd-MM-y hh:mm'), + y: value => `${value?.toString()} liters`, }, } diff --git a/packages/ui/src/components/LineChart/__tests__/Tooltip.test.tsx b/packages/ui/src/components/LineChart/__tests__/Tooltip.test.tsx index 15a3e7b35a..16e13716b1 100644 --- a/packages/ui/src/components/LineChart/__tests__/Tooltip.test.tsx +++ b/packages/ui/src/components/LineChart/__tests__/Tooltip.test.tsx @@ -3,7 +3,7 @@ import { describe, test } from 'vitest' import { LineChartTooltip } from '../Tooltip' -import type { Point } from '@nivo/line' +import type { LineSeries, Point } from '@nivo/line' describe('lineChart Tooltip', () => { test('renders correctly ', () => @@ -13,7 +13,7 @@ describe('lineChart Tooltip', () => { { data: { xFormatted: '05-05-2022', yFormatted: '15 kb' }, serieColor: '#ff0000', - } as Point + } as unknown as Point } />, )) diff --git a/packages/ui/src/components/LineChart/__tests__/__snapshots__/Tooltip.test.tsx.snap b/packages/ui/src/components/LineChart/__tests__/__snapshots__/Tooltip.test.tsx.snap index ab28000c0a..87c6adf687 100644 --- a/packages/ui/src/components/LineChart/__tests__/__snapshots__/Tooltip.test.tsx.snap +++ b/packages/ui/src/components/LineChart/__tests__/__snapshots__/Tooltip.test.tsx.snap @@ -11,7 +11,6 @@ exports[`lineChart Tooltip > renders correctly 1`] = `
diff --git a/packages/ui/src/components/LineChart/__tests__/__snapshots__/index.test.tsx.snap b/packages/ui/src/components/LineChart/__tests__/__snapshots__/index.test.tsx.snap index 18f3e31a51..612ced4503 100644 --- a/packages/ui/src/components/LineChart/__tests__/__snapshots__/index.test.tsx.snap +++ b/packages/ui/src/components/LineChart/__tests__/__snapshots__/index.test.tsx.snap @@ -9,7 +9,7 @@ exports[`lineChart > renders correctly when data is async 1`] = ` style="height: 537px;" >
renders correctly when legend is deselected 1`] = ` style="height: 537px;" >
renders correctly with data 1`] = ` style="height: 537px;" >
@@ -544,7 +544,7 @@ exports[`lineChart > renders correctly with data transformer 1`] = ` style="height: 537px;" >
@@ -560,7 +560,7 @@ exports[`lineChart > renders correctly with detailed legend 1`] = ` style="height: 537px;" >
renders correctly with multiple series 1`] = ` style="height: 537px;" >
renders correctly with point formatter 1`] = ` style="height: 537px;" >
@@ -1098,7 +1098,7 @@ exports[`lineChart > renders correctly with timeline data 1`] = ` style="height: 537px;" >
renders correctly without data 1`] = ` style="height: 537px;" >
diff --git a/packages/ui/src/components/LineChart/__tests__/index.test.tsx b/packages/ui/src/components/LineChart/__tests__/index.test.tsx index 0d468e101a..e370eb5276 100644 --- a/packages/ui/src/components/LineChart/__tests__/index.test.tsx +++ b/packages/ui/src/components/LineChart/__tests__/index.test.tsx @@ -53,7 +53,7 @@ describe('lineChart', () => { value.toString(), + x: value => value?.toString() ?? '', y: value => `${value as number} unit`, }} xScale={{ type: 'linear' }} diff --git a/packages/ui/src/components/LineChart/helpers.ts b/packages/ui/src/components/LineChart/helpers.ts index ec290cde81..00906d52ab 100644 --- a/packages/ui/src/components/LineChart/helpers.ts +++ b/packages/ui/src/components/LineChart/helpers.ts @@ -1,6 +1,6 @@ -import type { DatumValue, Serie } from '@nivo/line' +import type { AllowedValue, LineSeries } from '@nivo/line' -const parse = (data?: DatumValue | null): number => { +const parse = (data?: AllowedValue): number => { if (typeof data === 'number') { return data || 0 } @@ -14,13 +14,13 @@ const parse = (data?: DatumValue | null): number => { return 0 } -export const getMin = (values: DatumValue[] = []): number => +export const getMin = (values: AllowedValue[] = []): number => values.length > 0 ? Math.min(...values.map(data => parse(data))) : 0 -export const getMax = (values: DatumValue[] = []): number => +export const getMax = (values: AllowedValue[] = []): number => values.length > 0 ? Math.max(...values.map(data => parse(data))) : 0 -export const getAverage = (values: DatumValue[] = []): number => +export const getAverage = (values: AllowedValue[] = []): number => values.length > 0 ? Math.round( // oxlint-disable-next-line typescript/no-unnecessary-type-arguments needed here @@ -30,7 +30,7 @@ export const getAverage = (values: DatumValue[] = []): number => ) / 100 : 0 -export const getMaxChartValue = (preppedData?: Serie[]): number => { +export const getMaxChartValue = (preppedData?: LineSeries[]): number => { if (!preppedData?.length) { return 0 } @@ -42,7 +42,7 @@ export const getMaxChartValue = (preppedData?: Serie[]): number => { return Math.ceil(maximum + maximum * 0.1) } -export const getMinChartValue = (preppedData?: Serie[]): number => { +export const getMinChartValue = (preppedData?: LineSeries[]): number => { if (!preppedData?.length) { return 0 } @@ -76,3 +76,8 @@ export const getSelected = ( return selected } + +export type Serie = LineSeries & { + label?: string + [key: string]: unknown +} diff --git a/packages/ui/src/components/LineChart/index.tsx b/packages/ui/src/components/LineChart/index.tsx index c8455ba183..2f06dce7d6 100644 --- a/packages/ui/src/components/LineChart/index.tsx +++ b/packages/ui/src/components/LineChart/index.tsx @@ -11,8 +11,9 @@ import { CustomLegend } from './CustomLegend' import { getMaxChartValue, getMinChartValue } from './helpers' import { LineChartTooltip } from './Tooltip' -import type { DatumValue, Box as NivoBox, ValueFormat } from '@nivo/core' -import type { LineSvgProps, Point, Serie } from '@nivo/line' +import type { Serie } from './helpers' +import type { Box as NivoBox, ValueFormat } from '@nivo/core' +import type { LineSvgProps, Point, LineSeries, AllowedValue } from '@nivo/line' import type { ScaleSpec } from '@nivo/scales' import type { theme as UVTheme } from '@ultraviolet/themes' import type { ComponentProps, CSSProperties } from 'react' @@ -25,7 +26,7 @@ type LineChartProps = { data?: Serie[] withLegend?: boolean tooltipFunction?: (props: { - point: Point + point: Point }) => Partial< Pick, 'xFormatted' | 'yFormatted'> > @@ -35,11 +36,11 @@ type LineChartProps = { ComponentProps['axisTransformer'] > > - pointFormatters?: Partial>> + pointFormatters?: Partial>> tickValues?: Partial< Record<'bottom' | 'left' | 'right' | 'top', number | string> > - chartProps?: Partial + chartProps?: Partial> 'data-testid'?: string style?: CSSProperties } @@ -56,7 +57,7 @@ const DEFAULT_CHARTPROPS = {} const createCustomTooltip = (tooltipFunction?: LineChartProps['tooltipFunction']) => - (props: { point: Point }) => { + (props: { point: Point }) => { const customProps = tooltipFunction ? tooltipFunction(props) : {} return ( @@ -93,7 +94,7 @@ export const LineChart = ({ datasets: data?.map(d => ({ data: d.data, id: d.id, - label: d?.['label'] as string, + label: d?.['label'], })), } @@ -151,7 +152,7 @@ export const LineChart = ({ max: getMaxChartValue(finalData), min: getMinChartValue(finalData), ...yScale, - } as LineSvgProps['yScale'] + } as LineSvgProps['yScale'] } {...chartProps} /> @@ -159,7 +160,7 @@ export const LineChart = ({ {withLegend && ( diff --git a/packages/ui/src/helpers/nivoTheme.ts b/packages/ui/src/helpers/nivoTheme.ts index 69cda55527..6081e0b50b 100644 --- a/packages/ui/src/helpers/nivoTheme.ts +++ b/packages/ui/src/helpers/nivoTheme.ts @@ -1,4 +1,4 @@ -import type { Theme as NivoTheme } from '@nivo/core' +import type { PartialTheme as NivoTheme } from '@nivo/theming' import type { useTheme } from '@ultraviolet/themes' // be aware that this theme is applied on all chart using nivo library, please check any changes you make here on all charts diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0f3ef3872c..cf5e9e1ff8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -636,23 +636,26 @@ importers: packages/ui: dependencies: '@nivo/bar': - specifier: 0.89.1 - version: 0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + specifier: 0.99.0 + version: 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@nivo/core': - specifier: 0.89.1 - version: 0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + specifier: 0.99.0 + version: 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@nivo/line': - specifier: 0.89.1 - version: 0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + specifier: 0.99.0 + version: 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@nivo/pie': - specifier: 0.89.1 - version: 0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + specifier: 0.99.0 + version: 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@nivo/scales': - specifier: 0.89.0 - version: 0.89.0 + specifier: 0.99.0 + version: 0.99.0 + '@nivo/theming': + specifier: 0.99.0 + version: 0.99.0(react@19.2.5) '@nivo/treemap': - specifier: 0.89.1 - version: 0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + specifier: 0.99.0 + version: 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@scaleway/fuzzy-search': specifier: 1.0.2 version: 1.0.2 @@ -2415,68 +2418,81 @@ packages: cpu: [x64] os: [win32] - '@nivo/annotations@0.89.1': - resolution: {integrity: sha512-ow+1hyNszlQX0wrN6KM+4eU+TMDfQr8YXK3ifXabz+I1AhpqLIaPuoZ5pmoGgJuJ/NchgBOgnwczSybVqdE//Q==} + '@nivo/annotations@0.99.0': + resolution: {integrity: sha512-jCuuXPbvpaqaz4xF7k5dv0OT2ubn5Nt0gWryuTe/8oVsC/9bzSuK8bM9vBty60m9tfO+X8vUYliuaCDwGksC2g==} peerDependencies: - react: '>= 16.14.0 < 20.0.0' + react: ^16.14 || ^17.0 || ^18.0 || ^19.0 - '@nivo/arcs@0.89.1': - resolution: {integrity: sha512-us+D5nq+A8x+iVVAVZTGdYDrnZ4za2p3MFJs9HliOmnqB0n++cG7lqEYB+XszIUSIF3bR4me6L+P1e/V+kS8bQ==} + '@nivo/arcs@0.99.0': + resolution: {integrity: sha512-UcvWLQPl+A3APk2Gm74N5xDfT+ATnVs2XkP73WxhYPWJk+dBzF00cndA5g/dptOwdFBvvo62VgcCsNiwUsjKTw==} peerDependencies: - react: '>= 16.14.0 < 20.0.0' + react: ^16.14 || ^17.0 || ^18.0 || ^19.0 - '@nivo/axes@0.89.1': - resolution: {integrity: sha512-W7JFfPKEf2iQKVhtdLpDvh0qfGnGkzoEBkcUS0WoQn6wHI30SVY9H5zzANYbXRXQeh4gqr1AOSc0fD8iEBuomQ==} + '@nivo/axes@0.99.0': + resolution: {integrity: sha512-3KschnmEL0acRoa7INSSOSEFwJLm54aZwSev7/r8XxXlkgRBriu6ReZy/FG0wfN+ljZ4GMvx+XyIIf6kxzvrZg==} peerDependencies: - react: '>= 16.14.0 < 20.0.0' + react: ^16.14 || ^17.0 || ^18.0 || ^19.0 - '@nivo/bar@0.89.1': - resolution: {integrity: sha512-m3us3fyeaJ/mfn9FbuZCk/RzSwwhG//ZgGv5LiKfJGZ+vcNn/b5HrPUdXrm7TD6xvWWuaU+fhujVvZVpvd/KfQ==} + '@nivo/bar@0.99.0': + resolution: {integrity: sha512-9yfMn7H6UF/TqtCwVZ/vihVAXUff9wWvSaeF2Z1DCfgr5S07qs31Qb2p0LZA+YgCWpaU7zqkeb3VZ4WCpZbrDA==} peerDependencies: - react: '>= 16.14.0 < 20.0.0' + react: ^16.14 || ^17.0 || ^18.0 || ^19.0 - '@nivo/colors@0.89.1': - resolution: {integrity: sha512-B4pCn69EWk+VUVE1JGe7pZ3wYbO5q+8WDZ5GMqcUEXr3y/8qOdW8knFBSxLpyQDTZGx6Ye1tkiyuU+NVAfiKSg==} + '@nivo/canvas@0.99.0': + resolution: {integrity: sha512-UxA8zb+NPwqmNm81hoyUZSMAikgjU1ukLf4KybVNyV8ejcJM+BUFXsb8DxTcLdt4nmCFHqM56GaJQv2hnAHmzg==} + + '@nivo/colors@0.99.0': + resolution: {integrity: sha512-hyYt4lEFIfXOUmQ6k3HXm3KwhcgoJpocmoGzLUqzk7DzuhQYJo+4d5jIGGU0N/a70+9XbHIdpKNSblHAIASD3w==} + peerDependencies: + react: ^16.14 || ^17.0 || ^18.0 || ^19.0 + + '@nivo/core@0.99.0': + resolution: {integrity: sha512-olCItqhPG3xHL5ei+vg52aB6o+6S+xR2idpkd9RormTTUniZb8U2rOdcQojOojPY5i9kVeQyLFBpV4YfM7OZ9g==} peerDependencies: - react: '>= 16.14.0 < 20.0.0' + react: ^16.14 || ^17.0 || ^18.0 || ^19.0 - '@nivo/core@0.89.1': - resolution: {integrity: sha512-p64RBfBNMG+yKqvX6SDi6ArvcAKgN03Y7Ek8zzgnqHd/jLmyn8P0S20zfcJXN0TmQvLeb9eYkG2hqZrlwkey7w==} + '@nivo/legends@0.99.0': + resolution: {integrity: sha512-P16FjFqNceuTTZphINAh5p0RF0opu3cCKoWppe2aRD9IuVkvRm/wS5K1YwMCxDzKyKh5v0AuTlu9K6o3/hk8hA==} peerDependencies: - react: '>= 16.14.0 < 20.0.0' + react: ^16.14 || ^17.0 || ^18.0 || ^19.0 - '@nivo/legends@0.89.1': - resolution: {integrity: sha512-Btd5oLotngoiWlFHwmr2WvxkA9P4+KXQiiIka2ocG+/sNjkwqnvfac4pagB7102A5kD1Z3ndzGKFh1OLiCCOew==} + '@nivo/line@0.99.0': + resolution: {integrity: sha512-bAqTXSjpnpcGMs341qWFUi7hJTqQiNoSeJHsYPuPS3icuXPcp3WETQH+zRZACeEF79ZigeOWCW+dzODgne1y9w==} peerDependencies: - react: '>= 16.14.0 < 20.0.0' + react: ^16.14 || ^17.0 || ^18.0 || ^19.0 - '@nivo/line@0.89.1': - resolution: {integrity: sha512-8titVkCj39vL2dIaLYA3jSMIUtLftVSc9bbTGy2O95f3wv4irVRuxhPAW2i2cGDeb22jPeqIv6dEhQalmp5gSQ==} + '@nivo/pie@0.99.0': + resolution: {integrity: sha512-zUbo8UdLndp2RMljrOqitAKKEnl7YypkJrOzjKLk8jQGU7qqUKtgFoJIPhiBsvNPs3xtX2KwgtS1+JKNTNns7A==} peerDependencies: - react: '>= 16.14.0 < 20.0.0' + react: ^16.14 || ^17.0 || ^18.0 || ^19.0 - '@nivo/pie@0.89.1': - resolution: {integrity: sha512-vkFPjB3wopQdUybjeQNhigyd56ODpf17j3pbxi8CNPxIdqOpy2v0S7DPLr9eM10kZiCQNFvSqxVjNWBQXpdqXw==} + '@nivo/scales@0.99.0': + resolution: {integrity: sha512-g/2K4L6L8si6E2BWAHtFVGahtDKbUcO6xHJtlIZMwdzaJc7yB16EpWLK8AfI/A42KadLhJSJqBK3mty+c7YZ+w==} + + '@nivo/text@0.99.0': + resolution: {integrity: sha512-ho3oZpAZApsJNjsIL5WJSAdg/wjzTBcwo1KiHBlRGUmD+yUWO8qp7V+mnYRhJchwygtRVALlPgZ/rlcW2Xr/MQ==} peerDependencies: - react: '>= 16.14.0 < 20.0.0' + react: ^16.14 || ^17.0 || ^18.0 || ^19.0 - '@nivo/scales@0.89.0': - resolution: {integrity: sha512-EVxQNKfd02pximJ/BDKR0BhgS77zDnEfNJNLCaZSB9K4ywpxk8fmdUbHP1dSvWGZA8szbKVNNE3WeSDwdFkhag==} + '@nivo/theming@0.99.0': + resolution: {integrity: sha512-KvXlf0nqBzh/g2hAIV9bzscYvpq1uuO3TnFN3RDXGI72CrbbZFTGzprPju3sy/myVsauv+Bb+V4f5TZ0jkYKRg==} + peerDependencies: + react: ^16.14 || ^17.0 || ^18.0 || ^19.0 - '@nivo/tooltip@0.89.1': - resolution: {integrity: sha512-GUn5a5wHjJ/x+m/B2RwGyfAt0LF4liv1oN1a8zKxgcEkkjqanMgOIoq4z3iLb+bnHG3QnirHOIfsOOgCGqtPnQ==} + '@nivo/tooltip@0.99.0': + resolution: {integrity: sha512-weoEGR3xAetV4k2P6k96cdamGzKQ5F2Pq+uyDaHr1P3HYArM879Pl+x+TkU0aWjP6wgUZPx/GOBiV1Hb1JxIqg==} peerDependencies: - react: '>= 16.14.0 < 20.0.0' + react: ^16.14 || ^17.0 || ^18.0 || ^19.0 - '@nivo/treemap@0.89.1': - resolution: {integrity: sha512-uwHMHDmYwpMoiNhXTj+e3iJgoAQ2ywz9THRZ6XFjkOvEG3TgNFAmfVtkebedu1dD4bNa0RQc4f76o92pUxUTAw==} + '@nivo/treemap@0.99.0': + resolution: {integrity: sha512-zGVQyR+e38UqUsMrsnio8Ulz7IYDZ4HpUv+iVKSYX29Fa8TS39yHGyaGXTXt6PvL6owjvdwhJ/7TQAeO/qcWaQ==} peerDependencies: - react: '>= 16.14.0 < 20.0.0' + react: ^16.14 || ^17.0 || ^18.0 || ^19.0 - '@nivo/voronoi@0.89.1': - resolution: {integrity: sha512-y2FuGh4Dk9WFbzK5eMaoYR/MORxJlLVu+DAFQ9RGTv23hO5y3jc6mXJEKUF7kG4BtaaU/cb7s8G34eh1iI/CbA==} + '@nivo/voronoi@0.99.0': + resolution: {integrity: sha512-KfmMdidbYzhiUCki1FG4X4nHEFT4loK8G5bMBnmCl9U+S78W+gvkfrgD2Aoqp/Q9yKQvr3Y8UcZKSFZnn3HgjQ==} peerDependencies: - react: '>= 16.14.0 < 20.0.0' + react: ^16.14 || ^17.0 || ^18.0 || ^19.0 '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -3521,8 +3537,11 @@ packages: '@types/d3-format@1.4.5': resolution: {integrity: sha512-mLxrC1MSWupOSncXN/HOlWUAAIffAEBaI4+PKy2uMPsKe4FNZlk7qrbTjmzJXITQQqBHivaks4Td18azgqnotA==} - '@types/d3-hierarchy@1.1.11': - resolution: {integrity: sha512-lnQiU7jV+Gyk9oQYk0GGYccuexmQPTp08E0+4BidgFdiJivjEvf+esPSdZqCZ2C7UwTWejWpqetVaU8A+eX3FA==} + '@types/d3-hierarchy@3.1.7': + resolution: {integrity: sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==} + + '@types/d3-interpolate@3.0.4': + resolution: {integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==} '@types/d3-path@3.1.1': resolution: {integrity: sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==} @@ -4480,8 +4499,9 @@ packages: resolution: {integrity: sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==} engines: {node: '>=12'} - d3-hierarchy@1.1.9: - resolution: {integrity: sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==} + d3-hierarchy@3.1.2: + resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==} + engines: {node: '>=12'} d3-interpolate@3.0.1: resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} @@ -6174,6 +6194,12 @@ packages: react: ^18 || ^19 react-dom: ^18 || ^19 + react-virtualized-auto-sizer@1.0.26: + resolution: {integrity: sha512-CblNyiNVw2o+hsa5/49NH2ogGxZ+t+3aweRvNSq7TVjDIlwk7ir4lencEg5HxHeSzwNarSkNkiu0qJSOXtxm5A==} + peerDependencies: + react: ^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0 || ^19.0.0 + react@19.2.5: resolution: {integrity: sha512-llUJLzz1zTUBrskt2pwZgLq59AemifIftw4aB7JxOqf1HY2FDaGDxgwpAPVzHU1kdWabH7FauP4i1oEeer2WCA==} engines: {node: '>=0.10.0'} @@ -6838,6 +6864,12 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + use-debounce@10.1.1: + resolution: {integrity: sha512-kvds8BHR2k28cFsxW8k3nc/tRga2rs1RHYCqmmGqb90MEeE++oALwzh2COiuBLO1/QXiOuShXoSN2ZpWnMmvuQ==} + engines: {node: '>= 16.0.0'} + peerDependencies: + react: '*' + use-sync-external-store@1.6.0: resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} peerDependencies: @@ -8939,20 +8971,24 @@ snapshots: '@next/swc-win32-x64-msvc@16.2.4': optional: true - '@nivo/annotations@0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + '@nivo/annotations@0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': dependencies: - '@nivo/colors': 0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@nivo/core': 0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/colors': 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/core': 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/theming': 0.99.0(react@19.2.5) '@react-spring/web': 9.7.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5) lodash: 4.17.23 react: 19.2.5 transitivePeerDependencies: - react-dom - '@nivo/arcs@0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + '@nivo/arcs@0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': dependencies: - '@nivo/colors': 0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@nivo/core': 0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/colors': 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/core': 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/text': 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/theming': 0.99.0(react@19.2.5) + '@react-spring/core': 9.7.5(react@19.2.5) '@react-spring/web': 9.7.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@types/d3-shape': 3.1.8 d3-shape: 3.2.0 @@ -8960,10 +8996,12 @@ snapshots: transitivePeerDependencies: - react-dom - '@nivo/axes@0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + '@nivo/axes@0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': dependencies: - '@nivo/core': 0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@nivo/scales': 0.89.0 + '@nivo/core': 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/scales': 0.99.0 + '@nivo/text': 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/theming': 0.99.0(react@19.2.5) '@react-spring/web': 9.7.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@types/d3-format': 1.4.5 '@types/d3-time-format': 2.3.4 @@ -8973,15 +9011,18 @@ snapshots: transitivePeerDependencies: - react-dom - '@nivo/bar@0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': - dependencies: - '@nivo/annotations': 0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@nivo/axes': 0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@nivo/colors': 0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@nivo/core': 0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@nivo/legends': 0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@nivo/scales': 0.89.0 - '@nivo/tooltip': 0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/bar@0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + dependencies: + '@nivo/annotations': 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/axes': 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/canvas': 0.99.0 + '@nivo/colors': 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/core': 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/legends': 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/scales': 0.99.0 + '@nivo/text': 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/theming': 0.99.0(react@19.2.5) + '@nivo/tooltip': 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@react-spring/web': 9.7.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@types/d3-scale': 4.0.9 '@types/d3-shape': 3.1.8 @@ -8992,9 +9033,12 @@ snapshots: transitivePeerDependencies: - react-dom - '@nivo/colors@0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + '@nivo/canvas@0.99.0': {} + + '@nivo/colors@0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': dependencies: - '@nivo/core': 0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/core': 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/theming': 0.99.0(react@19.2.5) '@types/d3-color': 3.1.3 '@types/d3-scale': 4.0.9 '@types/d3-scale-chromatic': 3.1.0 @@ -9006,9 +9050,10 @@ snapshots: transitivePeerDependencies: - react-dom - '@nivo/core@0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + '@nivo/core@0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': dependencies: - '@nivo/tooltip': 0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/theming': 0.99.0(react@19.2.5) + '@nivo/tooltip': 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@react-spring/web': 9.7.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@types/d3-shape': 3.1.8 d3-color: 3.1.0 @@ -9020,83 +9065,111 @@ snapshots: d3-time-format: 3.0.0 lodash: 4.17.23 react: 19.2.5 + react-virtualized-auto-sizer: 1.0.26(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + use-debounce: 10.1.1(react@19.2.5) transitivePeerDependencies: - react-dom - '@nivo/legends@0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + '@nivo/legends@0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': dependencies: - '@nivo/colors': 0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@nivo/core': 0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/colors': 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/core': 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/text': 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/theming': 0.99.0(react@19.2.5) '@types/d3-scale': 4.0.9 d3-scale: 4.0.2 react: 19.2.5 transitivePeerDependencies: - react-dom - '@nivo/line@0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': - dependencies: - '@nivo/annotations': 0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@nivo/axes': 0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@nivo/colors': 0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@nivo/core': 0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@nivo/legends': 0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@nivo/scales': 0.89.0 - '@nivo/tooltip': 0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@nivo/voronoi': 0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/line@0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + dependencies: + '@nivo/annotations': 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/axes': 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/colors': 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/core': 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/legends': 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/scales': 0.99.0 + '@nivo/theming': 0.99.0(react@19.2.5) + '@nivo/tooltip': 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/voronoi': 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@react-spring/web': 9.7.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@types/d3-shape': 3.1.8 d3-shape: 3.2.0 react: 19.2.5 transitivePeerDependencies: - react-dom - '@nivo/pie@0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + '@nivo/pie@0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': dependencies: - '@nivo/arcs': 0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@nivo/colors': 0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@nivo/core': 0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@nivo/legends': 0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@nivo/tooltip': 0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/arcs': 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/colors': 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/core': 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/legends': 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/theming': 0.99.0(react@19.2.5) + '@nivo/tooltip': 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@types/d3-shape': 3.1.8 d3-shape: 3.2.0 react: 19.2.5 transitivePeerDependencies: - react-dom - '@nivo/scales@0.89.0': + '@nivo/scales@0.99.0': dependencies: + '@types/d3-interpolate': 3.0.4 '@types/d3-scale': 4.0.9 '@types/d3-time': 1.1.4 '@types/d3-time-format': 3.0.4 + d3-interpolate: 3.0.1 d3-scale: 4.0.2 d3-time: 1.1.0 d3-time-format: 3.0.0 lodash: 4.17.23 - '@nivo/tooltip@0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + '@nivo/text@0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': dependencies: - '@nivo/core': 0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/core': 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/theming': 0.99.0(react@19.2.5) '@react-spring/web': 9.7.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5) react: 19.2.5 transitivePeerDependencies: - react-dom - '@nivo/treemap@0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + '@nivo/theming@0.99.0(react@19.2.5)': dependencies: - '@nivo/colors': 0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@nivo/core': 0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@nivo/tooltip': 0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + lodash: 4.17.23 + react: 19.2.5 + + '@nivo/tooltip@0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + dependencies: + '@nivo/core': 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/theming': 0.99.0(react@19.2.5) + '@react-spring/web': 9.7.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + react: 19.2.5 + transitivePeerDependencies: + - react-dom + + '@nivo/treemap@0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + dependencies: + '@nivo/colors': 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/core': 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/text': 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/theming': 0.99.0(react@19.2.5) + '@nivo/tooltip': 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@react-spring/core': 9.7.5(react@19.2.5) '@react-spring/web': 9.7.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@types/d3-hierarchy': 1.1.11 - d3-hierarchy: 1.1.9 + '@types/d3-hierarchy': 3.1.7 + d3-hierarchy: 3.1.2 lodash: 4.17.23 react: 19.2.5 transitivePeerDependencies: - react-dom - '@nivo/voronoi@0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + '@nivo/voronoi@0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': dependencies: - '@nivo/core': 0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@nivo/tooltip': 0.89.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/core': 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@nivo/theming': 0.99.0(react@19.2.5) + '@nivo/tooltip': 0.99.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@types/d3-delaunay': 6.0.4 '@types/d3-scale': 4.0.9 d3-delaunay: 6.0.4 @@ -9925,7 +9998,11 @@ snapshots: '@types/d3-format@1.4.5': {} - '@types/d3-hierarchy@1.1.11': {} + '@types/d3-hierarchy@3.1.7': {} + + '@types/d3-interpolate@3.0.4': + dependencies: + '@types/d3-color': 3.1.3 '@types/d3-path@3.1.1': {} @@ -11072,7 +11149,7 @@ snapshots: d3-format@3.1.2: {} - d3-hierarchy@1.1.9: {} + d3-hierarchy@3.1.2: {} d3-interpolate@3.0.1: dependencies: @@ -11750,7 +11827,7 @@ snapshots: cli-width: 3.0.0 external-editor: 3.1.0 figures: 3.2.0 - lodash: 4.17.21 + lodash: 4.17.23 mute-stream: 0.0.8 ora: 5.4.1 run-async: 2.4.1 @@ -13023,6 +13100,11 @@ snapshots: react: 19.2.5 react-dom: 19.2.5(react@19.2.5) + react-virtualized-auto-sizer@1.0.26(react-dom@19.2.5(react@19.2.5))(react@19.2.5): + dependencies: + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + react@19.2.5: {} read-pkg@10.1.0: @@ -13787,6 +13869,10 @@ snapshots: dependencies: punycode: 2.3.1 + use-debounce@10.1.1(react@19.2.5): + dependencies: + react: 19.2.5 + use-sync-external-store@1.6.0(react@19.2.5): dependencies: react: 19.2.5